Machine Learning學習筆記(十一)優化算法的總結

優化算法


關於優化:我們每個人都會在我們的生活或者工作中遇到各種各樣的最優化問題,比如每個企業和個人都要考慮的一個問題“在一定成本下,如何使利潤最大化”等。最優化方法是一種數學方法,它是研究在給定約束之下如何尋求某些因素(的量),以使某一(或某些)指標達到最優的一些學科的總稱。

我們現在學習的機器學習算法,大部分的機器學習算法的本質都是建立優化模型,通過最優化方法對目標函數(或損失函數)進行優化,從而訓練出最好的模型。

傳統:最優化算法 ————現代:啓發式算法

一、最優化算法

常見的最優化方法有梯度下降法、牛頓法和擬牛頓法、共軛梯度法等等。

1.1 梯度下降法

不加以贅述

1.2 牛頓法和擬牛頓法(Newton's method&Quasi Newton's method)

從本質上去看,牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說的話,比如你想找一條最短的路徑走到一個盆地的最底部,梯度下降法每次只從你當前所處位置選一個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之後,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。

推廣爲向量的情況

其中表達式中(下三角θℓ(θ))表示的ℓ(θ)對 θi的偏導數;H是一個n*n的矩陣,稱爲Hessian矩陣 。Hessian矩陣的表達式爲:

牛頓法的優缺點總結:

  優點:二階收斂,收斂速度快;

  缺點:牛頓法是一種迭代算法,每一步都需要求解目標函數的Hessian矩陣的逆矩陣,計算比較複雜。

擬牛頓法(Quasi-Newton Methods)

 擬牛頓法的本質思想是改善牛頓法每次需要求解複雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運算的複雜度。擬牛頓法和最速下降法一樣只要求每一步迭代時知道目標函數的梯度。通過測量梯度的變化,構造一個目標函數的模型使之足以產生超線性收斂性。這類方法大大優於最速下降法,尤其對於困難的問題。另外,因爲擬牛頓法不需要二階導數的信息,所以有時比牛頓法更爲有效。如今,優化軟件中包含了大量的擬牛頓算法用來解決無約束,約束,和大規模的優化問題。

1.3 共軛梯度法

  共軛梯度法是介於最速下降法與牛頓法之間的一個方法,它僅需利用一階導數信息,但克服了最速下降法收斂慢的缺點,又避免了牛頓法需要存儲和計算Hesse矩陣並求逆的缺點,共軛梯度法不僅是解決大型線性方程組最有用的方法之一,也是解大型非線性最優化最有效的算法之一。 在各種優化算法中,共軛梯度法是非常重要的一種。其優點是所需存儲量小,具有步收斂性,穩定性高,而且不需要任何外來參數。

 

 共軛梯度法不需要預先給定Q共軛方向,而是隨着迭代的進行不斷產生Q共軛方向。在每次的迭代中,利用上一個搜索方向和目標函數在當前迭代點的梯度向量 之間的線性組合構造一個新的方向,使其與前邊已經產生的搜索方向組成Q共軛方向。對於一個n維二次型函數,沿着Q共軛方向進行搜索,經過n次迭代,即可得到極小點。 

共軛梯度法的算法步驟可以歸納如下:

二、全局優化算法(啓發式算法)

2.1 進劃類

 將“適者生存”進化規律模式化的優化搜索技術。

2.1.1 遺傳算法(Genetic Algorithm,GA)

遺傳算法是模擬生物在自然環境下的遺傳和進化過程而形成的自適應隨機全局搜索和優化方法。

算法操作過程:解決方案羣中逐次產生一個近似最優解,稱爲一代;在每一代中,根據個體在問題域中的適應度和自然遺傳學中借鑑來的再造方法進行選擇,產生一個新的近似解,即下一代。新個體比原個體更適應環境。

優點是能很好的處理約束,能很好的跳出局部最優,最終得到全局最優解,全局搜索能力強;缺點是收斂較慢,局部搜索能力較弱,運行時間長,且容易受參數的影響。遺傳算法適合求解離散問題,具備數學理論支持,但是存在着漢明懸崖等問題。

2.2.2 差分進化算法(Differential Evolution,DE)

    差分進化算法是基於羣體智能理論的優化方法,是通過羣體內個體間的合作與競爭產生的智能優化搜索。

    與進化算法相同之處:使用全局搜索策略

    與進化算法不同之處:基於差分的簡單編譯操作;“一對一”的競爭生存策略;具有記憶能力,可跟蹤搜索情況以調整搜索策略。

2.1.3 免疫算法(Immune Algorithm,IA)

    免疫算法是模仿生物滿意機制,採用羣體搜索策略並迭代計算;利用自身多樣性和維持機制,克服“早熟”問題,求解全局最優。

2.2  羣智能算法

    羣智能算法是一種基於生物羣體行爲規律的計算技術,用來解決分佈式問題。這種犯法只需要目標函數的輸出值,不需要其梯度信息。

2.2.1 蟻羣算法(Ant Colony Optimization,ACO)

    蟻羣算法是通過模擬自然界中螞蟻集體尋徑行爲而提出的一種基於種羣啓發式隨機搜索算法。

    方法:螞蟻在走過的路徑上留下信息素;後來的螞蟻大概率選擇信息素強的路徑;信息素強度大會吸引更多螞蟻,形成正反饋,最終找到最短路徑。

    特點:分佈式計算、無中心控制、分佈式個體間間接通信等特徵。

適合在圖上搜索路徑問題,計算開銷會大。

2.2.2 粒子羣算法(Particle Swarm Optimization,PSO)

    粒子羣算法是一種基於羣體智能的全局隨機搜索算法。

    與其他進化算法相同之處:基於“種羣”、“進化”概念,進行個體競爭

    與其他進化算法不同之處:不進行交叉、變異、選擇等進化算子操作;而是將個體向吱聲歷史最佳位置和領域歷史最佳位置集聚。

    應用:非線性、多峯問題。

適合求解實數問題,算法簡單,計算方便,求解速度快,但是存在着陷入局部最優等問題。

2.3 模擬退火算法(Simulated Annealing,SA)

    模擬退火算法是一種基於迭代求解策略的隨機尋優算法;局部搜索算法的擴展,以一定的概率選擇領域只能怪目標值最大的狀態。

    特點:克服局部極值的缺陷和對初值的依賴性。

    方法:定義鄰域結構;在鄰域結構內選取相鄰解;利用目標函數進行評估。

優點是局部搜索能力強,運行時間較短;缺點是全局搜索能力差,容易受參數的影響。

2.4  禁忌搜索算法(Tabu Search or Taboo Search,TS)

    通過禁忌準則來避免重複搜索;通過藐視準則來赦免一些被禁忌的優良狀態。

2.5 神經網絡算法(Artificial Neural Network,ANN)

    神經網絡是一種模仿生物神經系統 新的信息處理模型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章