遺傳演算法寫的這麼厲害,為什麼在最優化理論裡面罕見有應用,還是以梯度下降為主呢?

時間 2021-05-05 20:31:44

1樓:Qing Liu

罕有應用?請恕不能苟同。

至少,目標函式不可微的問題不適合梯度類搜尋演算法;此外,多目標優化也被認為適合以遺傳演算法為代表的智慧型演算法,因為批量輸出pareto非劣解更有意義;最後,也是最重要的,一些優化問題的目標函式根本寫不出精確的表示式,梯度類演算法在面對這類被稱為「黑箱優化」的問題面前也很無力。

2樓:毛飛飛

引數優化一般是高維的.遺傳演算法要撒很多點來估計損失最速降的方向,也就是損失對引數的偏導數.比如n維引數空間,為了估計區域性的偏導數,至少要計算附近n個點的值(因為偏導數有n個變數,需要n個方程才能解).而梯度下降通過計算得到損失最速降的精確方向,只需要對乙個點求導就可以得到.當n很大時,效率對比就很明顯了.

3樓:

啟發式演算法就像他的名字,「收到自然現象啟發設計的演算法」。這類演算法作為黑箱調優演算法的一種很少有比較好的收斂性證明:黑箱調優演算法在我見過最好的證明是貝葉斯優化的證明,簡單可以概括為「當迭代次數接近無限的時候,演算法可以達到目標最優值」(就我感覺這簡直是廢話,資源無限演算法都把定義域取光了還找不到最優?

),我們根本沒法給出這個演算法到底為了達到最優消耗多少資源。

凸優化方法相比之下給的上限就可靠多了,收斂結論是「迭代多少步,離最優解會差多遠」,這意味著我能給出的精讀和資源的期望。

當然現在很多偽裝成凸優化的啟發式演算法,比如神經網路,很明顯神經網路的既不凸,也有可能不利普希茨連續,在這上面強用凸優化顯然是錯的,最多勉強可以解釋為「在乙個凸的區間內找乙個極值」,不過這種解釋還是差強人意,所以很多主流解釋都是正反傳的啟發式演算法來模擬人腦受刺激。這種訓練方法還真不一定有遺傳演算法好,據我所知有的組訓練dnn模型還真的用的是遺傳演算法。

4樓:AIKaggle

你了解優化演算法嗎?

附上梯度下降演算法的發展史

5樓:蕭雪涯

通俗點說,遺傳演算法、PSO為代表的一系列仿生啟發演算法(或者稱非梯度優化)是在對目標問題內在機理了解極少情況下,以隨機犧牲資源和效率進行求解。

直白的比喻,求x+1=2,你對這個問題的內在機理完全清楚可以直接寫出1,當然如果你確實不會求解一元方程,也可以用啟發演算法在-5到5區間內搜尋,至少可以逼近答案。

再回頭看近幾年梯度下降用的最多的神經網路,很明顯我們對神經網路內在機理有一定理解,但遠遠達不到對1+1=2的理解程度,因此可以用隨機演算法求解。實際上神經網路中從頭到尾都透出隨機的氣味,初始化,dropout........

少用非梯度優化原因1既然有一定認識,比如梯度確實對優化有益那就應該充分使用,2是時間等不起,寧肯接受差一點到解。

ps 仿生仿生仿的生物進化史就是大自然內在機理幾乎無了解,以巨大的生物數量,漫長的地質年代進行的一場史詩優化遊戲,效果的確不錯,即便乙個節肢動物的神經系統也不熟我們的state-of-the-art,不過也不是所謂的全域性最優解。

6樓:

主要是因為遺傳演算法計算量太大,比如神經網路,10000個樣本,如果用梯度下降,迭代一次只需要計算10000次,如果用遺傳演算法,population size是100的話,迭代一次就需要計算1000000次,是梯度下降的100倍,這還不包括選擇、交叉、變異等的計算量。

7樓:

佛系玩法和常規玩法

佛系玩法讓人覺得很厲害,明明看著很扯卻常常能完美通關.然而佛系玩法隨機性太大而且一般人去玩要花很長很長的時間才能偶然通關,對於一般人遊戲體驗太差

因此大家通常選擇常規玩法,循規蹈矩也能通關

8樓:

說明: 這個回答是在2023年年初的時候寫的,當時這個問題下面只有乙個回答說「遺傳演算法適合搜尋空間大的問題」,所以這個回答一直針對這一點,主要從收斂速率方面講的,其他方面只提了一下。現在這個回答排到前面了,只說收斂速率似乎不太夠,在後面對優化問題的難點這個更大的問題做一點補充。

所謂遺傳演算法適合搜尋空間大的問題是誤導性的,有必要做澄清。

遺傳演算法,或者更廣泛的說,隨機搜尋演算法(隨機搜尋演算法是一大類非確定性搜尋演算法的統稱Stochastic optimization, Stochastic Global Optimization)最主要的問題就是收斂性差,收斂速度慢。進化計算常常聲稱的優勢就是馬爾可夫鏈證明的全域性收斂性,當演算法執行時間趨於無窮的時候,以概率一趨於全域性最優。即使是完全隨機搜尋,比如從標準正態分佈產生乙個點,好的話就作為均值,不做任何步長之類的引數調整,一樣滿足這一條件。

這種理論保障這在實際中是完全沒有意義的,有誰跑程式的時候把執行時間設定成無窮?

在很多問題上,這種程度的理論保障是不夠的,需要更精細的收斂速率分析。具體來說就是,k次迭代之後找到的解的精度或者找到epsilon精度的解所需的迭代次數。對於收斂速率,上面那種隨機演算法收斂速率是sub-linear的,在普通單峰函式(如球函式)上搜尋到 精度所需的迭代次數是,n是變數個數。

這樣即使是非常低的維度比如n=10,所需的時間也是不可接受的。

絕大部分演算法是自適應調整的,能比上面那種要精細很多。從收斂速率方面考慮,自適應調整的隨機搜尋、進化計算、或者無梯度優化的收斂速率不可能超過 ,即收斂速率隨著變數個數增加而下降。如果更精細一些,這個可以寫成 , rho是Hessian的條件數。

這對於神經網路一類的優化問題仍然是不可接受的,神經網路等問題中涉及的優化變數通常都非常大,state-of-the-art的模型則動輒達到 的量級。無梯度優化過小的收斂速率使得在這些問題上所需的迭代次數是不可接受的。這才是這一大類演算法沒有被廣泛應用的原因。

與此相對應的,梯度下降法的收斂速率是和維度(變數個數)無關的, dimension-free。這其實很好理解,從有限差分的角度來說,計算一次梯度需要n次有限差分進行估計,這樣就退回到了無梯度的情形,收斂速率與維度成反比。這樣dimension-free的演算法才能用到變數個數非常多的,空間維度很高的優化問題。

Random Gradient-Free Minimization of Convex Functions

Our experiments confirm the following conclusion. If the computation of the gradient is feasible, then the cost of the iteration of random methods, and the cost of iteration of the gradients methods are the same. In this situation, the total time spent by the random methods is typically in O(n) times bigger than the time of the gradient schemes.

Hence, the random gradient-free methods should be used only if creation of the code for computing the gradient is too costly or just impossible.

Linear Convergence of Comparison-based Step-size Adaptive Randomized Search via Stability of Markov Chains

Comparison based adaptive evolution strategies converge linearly. The convergence rate is inverse proportional to the dimension of search space .

Evolution Strategies as a Scalable Alternative to Reinforcement Learning

Path Integral Policy Improvement with Covariance Matrix Adaptation

Flexible Muscle-Based Locomotion for Bipedal Creatures

進化計算以及很多隨機優化演算法領域,人們認為的優化問題的難點就是多峰問題,multimodal objective function。這種問題上很難做出什麼有效的收斂速率方面的分析,使得這些領域長期就停留在「設計乙個演算法,跑幾個函式,有的好有的不好」這樣的程度。

至少在機器學習領域,高維非凸問題並沒有那麼多惡劣的區域性極值,目標函式值很差的臨界點通常是鞍點而不是區域性極值,而區域性極值本身的目標函式值通常和全域性最優比較接近。更進一步的,由於模型引數數目極大,整個目標函式的Hessian是高度退化的,使得區域性極值可能是連續存在的。

至少有相當的理由相信,區域性極值並不構成高維非凸問題的主要難點。這種情況下,所說的優勢還剩下多少? 在神經網路上絕大部分臨界點是鞍點這個結果到現在已經有很多年了,然而鞍點問題上進化演算法表現如何,到現在也沒有乙個像樣的說法。

相關問題

梯度下降法的神經網路容易收斂到區域性最優,為什麼應用廣泛?

基於遺傳演算法的特徵選擇效果如何?如何選擇最優的特徵選擇方法?

西窗燭影 對於一般的分類器,遺傳演算法進行特徵選擇一定會有效果,但是可能比較慢。可以試一試互資訊法 Fisher Score RelieF等方法進行特徵選擇。對於問題中提到的隨機森林,隨機森林是多個決策樹的整合,包含樣本的隨機擾動和屬性的隨機擾動。個人認為隨機森林不太需要進行特徵選擇,因為屬性的隨機...

為什麼機器連最簡單的演算法都寫不出來?

MisT大野兔 抖個機靈 演算法的性質 有窮 確定 可行 如果需要設計一套生成演算法的通用演算法,那它是不是需要首先有能力驗證生成的操作集合是否滿足這三條基本性質呢?第一條有窮性的判定似乎就辦不到,因為頭頂壓了停機悖論的大山。我不是搞可算理論的,這個理解可能很粗淺,如果有錯求指出求輕噴 回答裡有人提...

為什麼別人Python寫的演算法解題只要10多秒,我的要10分鐘?

用c寫120ms左右 1.6GHz inti,j k charn 10 m 11 chars 10 j 0 while n 9 s 9 0 printf s s s m n 0 1 dowhile m n 0 0 m n 0 0 while n j 9 while m n j j m n j j w...