機器學習系列3 梯度下降

2021-09-10 12:28:23 字數 1198 閱讀 9754

梯度下降(gradient descent)是乙個用來求代價函式最小值的演算法。梯度下降演算法的思想就是首先先從一組引數值(θ0, θ1)開始,不斷地去嘗試各種(θ0, θ1),直到使得代價函式 j(θ0, θ1) 最小為止。以下圖代價函式為例,從不同起始點開始,到達的區域性最優位置不同,也就是區域性最優解不同。

那麼如何求得區域性最優解呢?可以把這個代價函式看成一座座小山,你從乙個點出發,每次邁出一小步,這一小步要保證你下降盡可能多的高度,直到不能再下降你的高度為止。

將梯度下降以偽**形式呈現:

該函式每次迴圈都要將 θ0, θ1 更新,並且保證同步更新:

解釋一下這個偽**,首先是乙個迴圈結構,當不能再更新 θ0, θ1 時迴圈停止,:= 是乙個賦值號,α 是學習速率,也就是你下山每次邁出多大步子,後面緊跟著的是乙個偏導數。這個偏導數我們用一種最簡單的情況來解釋,就令 θ0=0,現在就剩下 θ1 了。

還記得之前的代價函式影象嗎?

其中 α 後面的導數就代表著這一點的斜率,每次  θ1 更新都是減去乙個 α與該點的斜率之積,當下降到區域性最小處時,導數恰好為零,此時  θ1 不再更新,就得到了我們想要的結果(美滋滋),如下圖:

但是值得注意的一點是, 學習速率 α 要選擇恰當,如果太大的話會出現下圖中的情況,直接跳過區域性最優解,一直迴圈,而且離區域性最優解會越來越遠。

如果太小的話,尋找區域性最優解的速率會特別特別慢。

機器學習(三) 梯度下降法

本部落格大部分參考了這篇博文 在微積分裡面,對多元函式的引數求 偏導數,把求得的各個引數的偏導數以向量的形式寫出來,就是梯度。比如函式f x,y 分別對x,y求偏導數,求得的梯度向量就是 f x f y 簡稱gr adf x,y 或者 f x,y 如果是3個引數的向量梯度,就是 f x f y,f ...

機器學習(九)梯度下降演算法

梯度 是乙個向量,其方向上的方向導數最大,其大小正好是此最大方向導數。關於梯度的更多介紹請看 如何直觀形象的理解方向導數與梯度以及它們之間的關係?乙個標量函式 的梯度記為 在三維直角座標系中表示為 梯度下降法 英語 gradient descent 是乙個一階最優化演算法,通常也稱為最速下降法。要使...

機器學習(二) 梯度下降法

前言 在上篇博文機器學習 一 中,最後我們提到,通過計算代價函式j 是否收斂於最小值來確定假設函式的引數 進而訓練出機器學習中的線性回歸演算法,那麼如何來找到使得j 最小話的引數 呢,本篇博文將介紹一種常用的方法,梯度下降法來確定引數 值。一 對於單特徵線性回歸,梯度下降法的演算法如下 repeat...