1、梯度下降法
梯度下降法實(shí)現(xiàn)簡單,當(dāng)目標(biāo)函數(shù)是凸函數(shù)時(shí),梯度下降法的解是全局解。一般情況下,其解不保證是全局最優(yōu)解,梯度下降法的速度也未必是最快的。
梯度下降法的優(yōu)化思想:用當(dāng)前位置負(fù)梯度方向作為搜索方向,因?yàn)樵摲较驗(yàn)楫?dāng)前位置的最快下降方向,所以也被稱為是”最速下降法“。最速下降法越接近目標(biāo)值,步長越小,前進(jìn)越慢。
缺點(diǎn):
靠近極小值時(shí)收斂速度減慢,求解需要很多次的迭代;
直線搜索時(shí)可能會(huì)產(chǎn)生一些問題;
可能會(huì)“之字形”地下降。
2、牛頓法
牛頓法最大的特點(diǎn)就在于它的收斂速度很快。
優(yōu)點(diǎn):二階收斂,收斂速度快;
缺點(diǎn):
牛頓法是一種迭代算法,每一步都需要求解目標(biāo)函數(shù)的Hessian矩陣的逆矩陣,計(jì)算比較復(fù)雜。
牛頓法收斂速度為二階,對于正定二次函數(shù)一步迭代即達(dá)最優(yōu)解。
牛頓法是局部收斂的,當(dāng)初始點(diǎn)選擇不當(dāng)時(shí),往往導(dǎo)致不收斂;
二階海塞矩陣必須可逆,否則算法進(jìn)行困難。
關(guān)于牛頓法和梯度下降法的效率對比:
從本質(zhì)上去看,牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說的話,比如你想找一條最短的路徑走到一個(gè)盆地的最底部,梯度下降法每次只從你當(dāng)前所處位置選一個(gè)坡度最大的方向走一步,牛頓法在選擇方向時(shí),不僅會(huì)考慮坡度是否夠大,還會(huì)考慮你走了一步之后,坡度是否會(huì)變得更大。所以,可以說牛頓法比梯度下降法看得更遠(yuǎn)一點(diǎn),能更快地走到最底部。(牛頓法目光更加長遠(yuǎn),所以少走彎路;相對而言,梯度下降法只考慮了局部的最優(yōu),沒有全局思想。)
根據(jù)wiki上的解釋,從幾何上說,牛頓法就是用一個(gè)二次曲面去擬合你當(dāng)前所處位置的局部曲面,而梯度下降法是用一個(gè)平面去擬合當(dāng)前的局部曲面,通常情況下,二次曲面的擬合會(huì)比平面更好,所以牛頓法選擇的下降路徑會(huì)更符合真實(shí)的最優(yōu)下降路徑。
3、擬牛頓法
擬牛頓法的本質(zhì)思想是改善牛頓法每次需要求解復(fù)雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運(yùn)算的復(fù)雜度。
擬牛頓法和最速下降法一樣只要求每一步迭代時(shí)知道目標(biāo)函數(shù)的梯度。通過測量梯度的變化,構(gòu)造一個(gè)目標(biāo)函數(shù)的模型使之足以產(chǎn)生超線性收斂性。這類方法大大優(yōu)于最速下降法,尤其對于困難的問題。另外,因?yàn)閿M牛頓法不需要二階導(dǎo)數(shù)的信息,所以有時(shí)比牛頓法更為有效。如今,優(yōu)化軟件中包含了大量的擬牛頓算法用來解決無約束,約束,和大規(guī)模的優(yōu)化問題。
4、小結(jié)
在機(jī)器學(xué)習(xí)中的無約束優(yōu)化算法,除了梯度下降以外,還有前面提到的最小二乘法,此外還有牛頓法和擬牛頓法。
梯度下降法和最小二乘法相比,梯度下降法需要選擇步長,而最小二乘法不需要。梯度下降法是迭代求解,最小二乘法是計(jì)算解析解。如果樣本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有優(yōu)勢,計(jì)算速度很快。但是如果樣本量很大,用最小二乘法由于需要求一個(gè)超級大的逆矩陣,這時(shí)就很難或者很慢才能求解解析解了,使用迭代的梯度下降法比較有優(yōu)勢。
梯度下降法和牛頓法/擬牛頓法相比,兩者都是迭代求解,不過梯度下降法是梯度求解,而牛頓法/擬牛頓法是用二階的海森矩陣的逆矩陣或偽逆矩陣求解。相對而言,使用牛頓法/擬牛頓法收斂更快。但是每次迭代的時(shí)間比梯度下降法長。
-
優(yōu)化算法
+關(guān)注
關(guān)注
0文章
35瀏覽量
9720 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62999 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8442瀏覽量
133110
原文標(biāo)題:機(jī)器學(xué)習(xí)優(yōu)化算法:梯度下降、牛頓法、擬牛頓法
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
matlab牛頓迭代法全解
機(jī)器學(xué)習(xí)新手必學(xué)的三種優(yōu)化算法(牛頓法、梯度下降法、最速下降法)
基于牛頓迭代法的FPGA定點(diǎn)小數(shù)計(jì)算
Ptl00鉑熱電阻溫度計(jì)算問題及牛頓法與解析法的應(yīng)用特性
![Ptl00鉑熱電阻溫度計(jì)算問題及<b class='flag-5'>牛頓</b><b class='flag-5'>法</b>與解析<b class='flag-5'>法</b>的應(yīng)用特性](https://file.elecfans.com/web2/M00/49/5F/poYBAGKhwKiAKENLAAAxhSkBwH4385.png)
牛頓環(huán)形成的原理是什么_牛頓環(huán)原理和分析
![<b class='flag-5'>牛頓</b>環(huán)形成的原理是什么_<b class='flag-5'>牛頓</b>環(huán)原理和分析](https://file.elecfans.com/web1/M00/48/38/pIYBAFqnQj2AdYYNAABOnJcrd-Y807.jpg)
評論