關於梯度上升和梯度下降的理解
阿新 • • 發佈:2019-01-03
在求極值的問題中,有梯度上升和梯度下降兩個最優化方法。梯度上升用於求最大值,梯度下降用於求最小值。
如logistic迴歸的目標函式:
代表的是概率,我們想求概率最大值,即對數似然函式的最大值,所以使用梯度上升演算法。
而線性迴歸的代價函式:
代表的則是誤差,我們想求誤差最小值,所以用梯度下降演算法。
那麼問題來了,挖掘機技術哪家強?哦不不不,為啥求最大值是梯度上升,求最小值是梯度下降?
舉個栗子,來看兩個函式:
我們現在用梯度下降求第一個函式的最小值,該函式求導得 f(x)=2x。如果隨機取一點並使用梯度下降得到最小值,那麼每次更新的就是其梯度,梯度也就是最陡峭的方向導數,方向導數是切線的斜率(先可以簡單這麼理解,嚴格來說並不能這麼解釋)。
每次的更新方式就是:
減號後面一部分就是2x。
現在把影象切分一下,先看左半部分,當隨機的點在左半時,x為負,即梯度2x<0。那麼更新就是在x基礎上減去一個負數,相當於x加一個正數,所以x沿x軸的正方向移動;再看右半部分,當隨機的點在右半時,x為正,即梯度2x>0。那麼更新是在x基礎上減去一個正數,相當於x沿著x軸負方向移動。正好一前一後使x在向極小值移動(極小值處梯度為0,所以x不更新)。
====
再看第二個函式,我們用梯度上升求它的最大值,每次更新方式為:
該函式求導得f(x)=-2x。同樣我們先看左半部分,當隨機點在左半時,x為負,即梯度-2x>0,所以更新x相當於沿著x軸正方向移動;同理隨機點在右半部分時,更新x相當於沿著x軸負方向移動。兩種移動都慢慢靠近最後停在極大值上。