相關(guān)概念:
步長(zhǎng)(learning rate):步長(zhǎng)決定了梯度下降過程中蚯涮,每一步沿梯度負(fù)方向前進(jìn)的長(zhǎng)度
特征(feature):樣本輸入
矩陣求導(dǎo)的鏈?zhǔn)椒▌t:
公式一:
公式二:
假設(shè)函數(shù)(hypothesis function):監(jiān)督學(xué)習(xí)中脚囊,為擬合輸入樣本,使用的假設(shè)函數(shù)奕筐,記為
損失函數(shù)(loss function):為評(píng)估模型擬合好壞,用損失函數(shù)度量擬合程度通孽。損失函數(shù)極小化意味著擬合程度最好妇智,對(duì)應(yīng)的模型參數(shù)即為最優(yōu)讨惩。線性回歸中辟癌,損失函數(shù)通常為樣本輸出和假設(shè)函數(shù)的歐式距離(L2距離),即
梯度下降法(gradient descent)是求解無約束最優(yōu)化問題的一種最常用方法荐捻,實(shí)現(xiàn)簡(jiǎn)單黍少,梯度下降法是迭代算法寡夹,每一步需要求解目標(biāo)函數(shù)的梯度。
1.確定優(yōu)化模型的假設(shè)函數(shù)和損失函數(shù)
2.算法相關(guān)參數(shù)初始化:主要對(duì)象,算法終止距離和步長(zhǎng)厂置。
3.算法過程
1)確定當(dāng)前位置的損失函數(shù)梯度菩掏,對(duì)于其梯度表達(dá)式如下:
,也可直接對(duì)損失函數(shù)在處進(jìn)行一階泰勒展開昵济。
2)步長(zhǎng)乘損失函數(shù)梯度智绸,得到當(dāng)前位置下降的距離,即
3)確定是否所有梯度下降距離都小于访忿,如果小于則算法終止瞧栗,當(dāng)前所有即為最終結(jié)果,否則進(jìn)入步驟4
4)更新所有海铆,對(duì)其更新表達(dá)式如下迹恐,更新完畢繼續(xù)轉(zhuǎn)入步驟1
向量表示為
SGD(隨機(jī)梯度下降算法)
現(xiàn)在隨機(jī)梯度下降算法一般指小批量梯度下降法(mini-batch gradient descent)
采用小批量樣本更新,選擇n個(gè)訓(xùn)練樣本(n<m卧斟,m為總訓(xùn)練集樣本數(shù))殴边,在這n個(gè)樣本中進(jìn)行n次迭代,每次使用1個(gè)樣本唆涝,對(duì)n次迭代得出的n個(gè)gradient進(jìn)行加權(quán)平均再并求和找都,作為這一次mini-batch下降梯度唇辨。
梯度下降算法與其他無約束優(yōu)化算法比較
與最小二乘相比廊酣,梯度下降法迭代求解,最小二乘法計(jì)算解析解赏枚,樣本小且存在解析解則最小二乘法比梯度下降更有優(yōu)勢(shì)亡驰,計(jì)算速度快,樣本大則需要解一個(gè)超大的逆矩陣饿幅,難解且耗時(shí)凡辱。
與牛頓法相比,兩者均為迭代求解栗恩,梯度下降法是梯度求解透乾,牛頓法用二階梯度或海森矩陣的逆矩陣或偽逆矩陣求解。牛頓法收斂更快但每次迭代時(shí)間比梯度下降法長(zhǎng)磕秤。
牛頓法
牛頓法和梯度下降法示意圖如下:
由上圖可知牛頓法每次迭代希望找到處切線與橫軸的交點(diǎn),即為所求的更新值
在處對(duì)損失函數(shù)進(jìn)行二階泰勒展開
其中一階導(dǎo)對(duì)應(yīng)雅可比矩陣市咆,二階導(dǎo)對(duì)應(yīng)海森矩陣
函數(shù)有極值的必要條件是在極值點(diǎn)處一階導(dǎo)數(shù)為0汉操,即梯度向量為0
將其一階導(dǎo)在處進(jìn)行泰勒展開
則可得
代數(shù)表示為
比較兩者差別,牛頓法迭代次數(shù)較少但求二階海森矩陣及其逆非常復(fù)雜蒙兰。