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