机器学习中为什么需要梯度下降_梯度下降直觉 - 机器是如何学习的
梯度下降法是一種求函數最小值的算法。在機器學習中,預測值和實際值之間的差稱為誤差。將所有數據點上的所有誤差加在一起時稱為成本。
當然,我們希望最小化代表此成本的函數 - 成本函數。
在機器學習中梯度下降是什么意思呢?
通過使用稱為反向傳播的技術來訓練神經網絡。梯度下降是反向傳播的一個非常重要的部分。
梯度下降法是一種非常流行的方法來調整機器學習模型的參數,以達到最小的誤差狀態。
機器學習算法是告訴機器學習數據的行為。鑒于機器只能理解0和1,有必要通過數學模型表示數據。任何數學模型都會有一些參數,例如直線有兩個參數 - 斜率和截距:y = m * x + b。
正如線性回歸中所解釋的那樣,我們的目的是為我們的數據擬合一條直線。這本質上意味著調整參數m和b,使之符合線表示數據的方式。
上 :直線模型的參數 下:神經網絡的參數
其他的數學模型也包含參數,例如神經網絡中所有隱含層的權重都是該網絡的參數。權重是一層神經元和另一層神經元之間連接的強度。每一個權重都成為一個需要調整的參數,以便我們的模型能夠最好地表示數據并在未來給出準確的預測。
注意m和b是如何變化的。
Gradient Descent如何運作?
好了,現在我們知道梯度下降用于找到機器學習模型的最小誤差(最低成本)狀態,讓我們看看它是如何工作的。
想象一個迷路的徒步旅行者。他在山頂附近迷路了,不知道要走哪條路。他需要從他可以走的地方找到通往山谷的路。
實質上,梯度下降也是如此。
迷路的徒步旅行者
現在讓我們試著把這個類比和我們的實際問題等同起來。
- 山=成本函數
- 旅行者的地面位置=參數
- 山的斜率=成本函數的導數
- Step =改變參數
- 如果cost函數包含2個參數,那么這座山就是三維的,看起來就像這兩個參數中的一個:
數學
要了解Gradient Descent,我們需要了解以下內容
- 參數
- 成本函數
- 梯度=成本函數的導數
- 學習率
- 更新規則
1)參數
假設我們有n + 1個參數表示
2)成本函數
成本函數基本上是用不同的方法來總結誤差——預測的b/w和實際的b/w之差。我們不討論成本函數是怎樣的,我們用字母J來表示它,因為J是所有參數的函數,我們把它寫成
對于1個變量情況,我們只有θ0和J(θ0)
3)梯度=斜率
為了計算斜率,我們計算該點處的損失函數的導數。下面的符號表示損失函數,即對theta_j的偏導數。
這是正斜率。如果那個徒步旅行者在左邊的山峰上,他會得到一個-ve
4)學習率
學習率由字符α表示。Alpha控制我們在下降期間采取的步長有多大。由于我們的步長由上面所示的導數確定,因此alpha乘以該導數以控制步長。
如果α太小,徒步旅行者將花費太長時間來到山谷,即梯度下降將花費太長時間來收斂
非常小的alpha導致極小的步驟,導致收斂慢
如果阿爾法太大,徒步旅行者將移動得非常快,錯過山谷。
大alpha不會讓梯度下降收斂
5)更新規則
最后,梯度下降只不過是更新規則。更新規則同時更新所有參數。通過步長值減去參數的當前值。其公式來自于上述所有項的組合。
更新規則
注意:如果斜率為負,第二項將變為正(由于負號),這將導致參數值增加。所以當斜率為-ve時,則向右移動了一點。如果斜率是+ve,徒步旅行者向左移動一點。當斜率為0時,第二項為0,則值不變。
綜上所述
- 對所有thetas /參數進行初步猜測
- 應用更新規則,直到成本函數達到穩定的最小值
要注意的事情
- 梯度下降的第一步總是隨機初始化。現在我們可能很幸運,將我們的theta初始化為最低限度,但這很少見。更有可能的是,我們最終可能從一個點開始它永遠不會到達全局最小值。它可能會陷入局部極小值。例如,如果徒步旅行者從山頂的右側出發,他會被困在局部的最小值中。
局部最小值問題
- 步長:坡度越大,我們所采取的步長就越大。這是因為更陡的斜率會導致更大的導數值,θ就會使變化更大。所以越高,徒步旅行者移動得越快,當我們接近最小值時,我們就會慢下來。
- 收斂:如果alpha太小,我們可能永遠不會收斂,如果它太大,我們可能會 overshoot。下面你可以看到alpha = 0.03太慢,alpha = 0.4恰好,而alpha = 1.02太大。
- 算法的靈活性:由于梯度下降與數學模型無關,并且僅依賴于成本函數,因此它適用于各種機器學習算法 - 線性回歸,邏輯回歸,神經網絡等。
- 動量:還記得局部的最小問題嗎?有時人們使用動量的概念來防止GD卡住。動量項確保系統只在全局最小值上穩定。
上:Momentum讓系統達到全局最小化。下:陷入局部極小值
總結
以上是生活随笔為你收集整理的机器学习中为什么需要梯度下降_梯度下降直觉 - 机器是如何学习的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是庄家
- 下一篇: 高等数学与python高级应用_pyth