梯度下降法终极版
在之前的文章中,我用梯度下降法實(shí)現(xiàn)了Logistic回歸,當(dāng)時(shí)用的是批量梯度下降法,現(xiàn)在就來進(jìn)一步了解
梯度下降法的原理以及在機(jī)器學(xué)習(xí)中的應(yīng)用。
?
常見的梯度下降法主要有兩種:(1)批量梯度下降法? (2)隨機(jī)梯度下降法
?
現(xiàn)在假設(shè)樣本的個(gè)數(shù)為,對(duì)單個(gè)樣本來說,有一個(gè)維的向量,代表這個(gè)樣本的個(gè)特征,還有一個(gè)值
為預(yù)測(cè)值,要擬合的函數(shù)設(shè)為,那么誤差準(zhǔn)則函數(shù)為
?
????
?
這是典型的線性回歸問題,現(xiàn)在的目的是使得這個(gè)誤差準(zhǔn)則函數(shù)的值最小化,可以用如下兩種梯度下降法。
?
(1)批量梯度下降法
?
????批量梯度下降法需要把個(gè)樣本全部帶入計(jì)算,迭代一次計(jì)算量為,先對(duì)誤差準(zhǔn)則函數(shù)求偏導(dǎo)
?
????
?
????所以進(jìn)一步得到批量梯度下降的迭代式為
?
????
?
????可以看出批量梯度下降法得到的是一個(gè)全局最優(yōu)解,但是每迭代一步要用到訓(xùn)練集所有的數(shù)據(jù),如果
????很大那么計(jì)算量會(huì)很大,相應(yīng)速度會(huì)很慢。所以針對(duì)這種不足,又引入了另一種方法:隨機(jī)梯度下降法。
?
(2)隨機(jī)梯度下降法
?
????上面的批量梯度下降法是將所有的樣本都帶入計(jì)算,而隨機(jī)梯度下降法每次迭代是帶入單個(gè)樣本,迭代
??? 一次計(jì)算量為,當(dāng)樣本數(shù)總數(shù)很大的時(shí)候,隨機(jī)梯度下降法迭代一次的速度要遠(yuǎn)遠(yuǎn)小于梯度下降
??? 法,隨機(jī)梯度下降法迭代公式如下
?
????
?
????可以看出隨機(jī)梯度下降法是最小化單個(gè)樣本的誤差準(zhǔn)則函數(shù),雖然每次迭代誤差準(zhǔn)則函數(shù)都不一定是向
??? 著全局最優(yōu)方向,但是大的整體方向是向著全局最優(yōu)方向的,最終得到的結(jié)果往往在全局最優(yōu)解附近。
?
?
對(duì)于上述線性回歸問題,來分析一下這個(gè)誤差準(zhǔn)則函數(shù)的性質(zhì),首先對(duì)求二階偏導(dǎo)數(shù),得到
?
????
?
即得到Hessian矩陣,中間的是一個(gè)單位矩陣且正定,所以Hessian矩陣正定。進(jìn)而推出
誤差準(zhǔn)則函數(shù)是單峰函數(shù),那么通過梯度下降法得到的最優(yōu)解也就是全局最優(yōu)解。當(dāng)然如果一個(gè)函數(shù)有
多個(gè)峰,那么通過梯度下降得到的可能不是全局最優(yōu)解。
?
其實(shí)梯度下降法,在使用的時(shí)候無非是考慮到兩個(gè)方面:一是方向,二是步長(zhǎng)。方向決定是否走在最優(yōu)化的道
路上,而步長(zhǎng)決定了要多久才能到達(dá)最優(yōu)的地方。對(duì)于第一方面,就是求梯度,多元函數(shù)求相應(yīng)變量的偏導(dǎo)數(shù);
對(duì)于第二方面,如果步子太少,則需要很長(zhǎng)的時(shí)間才能達(dá)到目的地,如果步子過大,可能導(dǎo)致在目的地周圍來
回震蕩,所以步長(zhǎng)選擇比較關(guān)鍵。
總結(jié)
- 上一篇: Logistic回归与牛顿迭代法
- 下一篇: 文本特征属性选择