來(lái)源 |機(jī)器學(xué)習(xí)算法與Python實(shí)戰(zhàn)

1.羅列常用的最優(yōu)化辦法

梯度降落法

牛頓法,

擬牛頓法

坐標(biāo)降落法

2.梯度降落法的關(guān)鍵點(diǎn)

梯度降落法沿著梯度的反方向進(jìn)行搜索,應(yīng)用了函數(shù)的一階導(dǎo)數(shù)信息。梯度降落法的迭代公式為:

依據(jù)函數(shù)的一階泰勒展開(kāi),在負(fù)梯度方向,函數(shù)值是降落的。只需學(xué)習(xí)率設(shè)置的足夠小,并且沒(méi)有抵達(dá)梯度為0的點(diǎn)處,每次迭代時(shí)函數(shù)值一定會(huì)降落。需求設(shè)置學(xué)習(xí)率為一個(gè)十分小的正數(shù)的緣由是要保證迭代之后的 xk+1位于迭代之前的值 xk的鄰域內(nèi),從而能夠疏忽泰勒展開(kāi)中的高次項(xiàng),保證迭代時(shí)函數(shù)值降落。

梯度降落法只能保證找到梯度為0的點(diǎn),不能保證找到極小值點(diǎn)。迭代終止的斷定根據(jù)是梯度值充沛接近于0,或者到達(dá)最大指定迭代次數(shù)。

梯度降落法在機(jī)器學(xué)習(xí)中應(yīng)用普遍,特別是在深度學(xué)習(xí)中。AdaDelta,AdaGrad,Adam,NAG等改良的梯度降落法都是用梯度結(jié)構(gòu)更新項(xiàng),區(qū)別在于更新項(xiàng)的結(jié)構(gòu)方式不同。對(duì)梯度降落法更全面的引見(jiàn)能夠閱讀SIGAI之前的公眾號(hào)文章“了解梯度降落法”。

3.牛頓法的關(guān)鍵點(diǎn)

牛頓法應(yīng)用了函數(shù)的一階和二階導(dǎo)數(shù)信息,直接尋覓梯度為0的點(diǎn)。牛頓法的迭代公式為:

其中H為Hessian矩陣,g為梯度向量。牛頓法不能保證每次迭代時(shí)函數(shù)值降落,也不能保證收斂到極小值點(diǎn)。在完成時(shí),也需求設(shè)置學(xué)習(xí)率,緣由和梯度降落法相同,是為了可以疏忽泰勒展開(kāi)中的高階項(xiàng)。學(xué)習(xí)率的設(shè)置通常采用直線搜索(line search)技術(shù)。

在完成時(shí),普通不直接求Hessian矩陣的逆矩陣,而是求解下面的線性方程組:

其解d稱為牛頓方向。迭代終止的斷定根據(jù)是梯度值充沛接近于0,或者到達(dá)最大指定迭代次數(shù)。

牛頓法比梯度降落法有更快的收斂速度,但每次迭代時(shí)需求計(jì)算Hessian矩陣,并求解一個(gè)線性方程組,運(yùn)算量大。另外,假如Hessian矩陣不可逆,則這種辦法失效。

4.拉格朗日乘數(shù)法

免責(zé)聲明:本文僅代表文章作者的個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性、真實(shí)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容文字的真實(shí)性、完整性和原創(chuàng)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并自行核實(shí)相關(guān)內(nèi)容。

舉報(bào)郵箱:3220065589@qq.com,如涉及版權(quán)問(wèn)題,請(qǐng)聯(lián)系。