一文帶你了解什麼是梯度下降

王林
發布: 2023-05-17 17:04:12
轉載
2756 人瀏覽過

一文帶你了解什麼是梯度下降

梯度下降是機器學習的動力之源

經過前面兩節內容的鋪墊,我們可以開始講一講機器學習的動力之源:梯度下降。

梯度下降並不是一個很複雜的數學工具,其歷史已經有200多年了,但是人們可能不曾料到,這樣一個相對簡單的數學工具會成為諸多機器學習演算法的基礎,而且還配合著神經網路點燃了深度學習革命。

1、什麼是梯度

對多元函數的各參數求偏導數,然後把所求得的各個參數的偏導數以向量的形式寫出來,就是梯度。

具體來說,兩個自變數的函數f(x1,x2),對應機器學習資料集中的兩個特徵,如果分別對x1,x2求偏導數,那麼求得的梯度向量就是(∂f/∂x1,∂f/∂x2)T,在數學上可以表示成Δf(x1,x2)。那麼計算梯度向量的意義何在呢?其幾何意義,就是函數變化的方向,而且是變化最快的方向。對於函數f(x),在點(x0,y0),梯度向量的方向也就是y值增加最快的方向。也就是說,沿著梯度向量的方向Δf(x0),可以找出函數的最大值。反過來說,沿著梯度向量相反的方向,也就是 -Δf(x0)的方向,梯度減少最快,能找到函數的最小值。如果某點的梯度向量的值為0,那麼也就是來到了導數為0的函數最低點(或局部最低點)了。

2、梯度下降:下山的隱喻

在機器學習中用下山來比喻梯度下降是很常見的。想像你們站在一座大山上某個地方,看著遠處的地形,一望無際,只知道遠處的位置比這裡低很多。你們想知道如何下山,但是只能一步一步往下走,那也就是在每走到一個位置的時候,求解當前位置的梯度。然後,沿著梯度的負方向,也就是往最陡峭的地方向下走一步,繼續求解新位置的梯度,並在新位置繼續沿著最陡峭的地方向下走一步。就這樣一步步走,直到山腳,如下圖。


一文帶你了解什麼是梯度下降

從上面的解釋中,就不難理解為何剛才我們要提到函數的凹凸性了。因為,在非凸函數中,有可能還沒走到山腳,而是到了某一個山谷就停了下來。也就是說,對應非凸函數梯度下降不一定總是能找到全域最優解,有可能得到的只是一個局部最優解。然而,如果函數是凸函數,那麼梯度下降法理論上就能得到全域最優解。

3、梯度下降有什麼用

梯度下降在機器學習中非常有用。簡單地說,可以注意以下幾點。

機器學習的本質是找到最優的函數。

如何衡量函數是否最優?其方法是盡量減少預測值和真值間的誤差(在機器學習中也叫損失值)。

可以建立誤差和模型參數之間的函數(最好是凸函數)。

梯度下降能夠引導我們走到凸函數的全域最低點,也就是找到誤差最小時的參數。

以上是一文帶你了解什麼是梯度下降的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!