梯度下降演算法

2021-10-09 20:25:09 字數 1588 閱讀 4159

**梯度:**在微積分裡面,對多元函式的引數求∂偏導數,把求得的各個引數的偏導數以向量的形式寫出來,就是梯度。比如函式f(x,y), 分別對x,y求偏導數,求得的梯度向量就是(∂f/∂x, ∂f/∂y)t,簡稱grad f(x,y)或者▽f(x,y)。對於在點(x0,y0)的具體梯度向量就是(∂f/∂x0, ∂f/∂y0)t.或者▽f(x0,y0),如果是3個引數的向量梯度,就是(∂f/∂x, ∂f/∂y,∂f/∂z)t,以此類推。

**梯度意義:**從幾何意義上講,就是函式變化增加最快的地方。具體來說,對於函式f(x,y),在點(x0,y0),沿著梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)t的方向是f(x,y)增加最快的地方。或者說,沿著梯度向量的方向,更加容易找到函式的最大值。反過來說,沿著梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)t的方向,梯度減少最快,也就是更加容易找到函式的最小值。

**場景匯入:**假如乙個人要從山上下來,他怎樣才能最快到達山腳的最低點呢?他可以根據當前位置為基準,找到最陡峭的地方,向這個方向走一步;然後又以這個位置為基準,尋找最陡峭的地方,再朝著這個方向走一步。重複以上過程直到走到最低處。

梯度下降(gradient descent)通常也被叫做最速下降法,是求解無約束最優化問題最常用的方法,在機器學習中應用十分的廣泛。它的主要目的是通過迭代找到目標函式的最小值,或者收斂到最小值。

其實梯度下降最關鍵的是乙個公式:

說明:這幾種提速下降主要區別就是在於使用多少資料來計算目標函式的梯度。

1.批量梯度下降演算法(batch gradent descent,bgd)

簡介:每次利用所有樣本去計算損失函式關於引數θ的梯度。公式為:

其中η為學習率,用來控制更新的「力度」/「步長」。

優點:全資料集能夠更好的代表樣本總體;當目標函式為凸函式時,批量梯度下降一定能夠得到全域性最優解。

缺點:如果樣本數量很大,訓練過程很慢,並且會花費大量時間和記憶體。

2.隨機梯度下降演算法(stochastic gradient descent ,sgd)

簡介:在樣本集中隨機挑選乙個樣本來計算損失,然後利用該樣本計算導數,最後更新引數。在樣本集中隨機挑選乙個樣本來計算損失,然後利用該樣本計算導數,最後更新引數。公式為:

優點:過程簡單,高效,通常可以較好地避免更新迭代收斂到區域性最優解;

缺點:準確度下降,若遇上雜訊則容易陷入區域性最優解,動盪性增加。

3.小批量梯度下降演算法(mini-batch gradient descent ,mbgd)

簡介:小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折中(最常用的梯度下降演算法)。先將樣本集均分,然後利用劃分後的子樣本集來進行損失計算,然後再利用子樣本集來計算導數,最後更新引數 。公式為:

優點:引數更新時的動盪變小,收斂過程更穩定,降低收斂難度。

缺點:batch_size的選擇不當可能會帶來一些問題。

梯度下降演算法 梯度下降演算法為何叫梯度下降?

首先,我們知道乙個演算法的名字可以很好地去解釋乙個演算法,那麼梯度下降演算法是什麼呢?很明顯的,就是用梯度這個工具來解決問題的一種演算法。解決什麼問題呢?如何在乙個函式曲面的某一點,找到乙個函式值變化最大的方向。比如 我們站在山上的某一點,我們想要以最快的速度上山,但是我們的步子大小是一定的,那麼最...

梯度下降演算法 梯度下降演算法公式推導

場景假設 梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人被困在山上,需要從山上下來 找到山的最低點 但此時山上的濃霧很大,導致可視度很低 因此,下山的路徑就無法確定,必須利用自己周圍的資訊一步一步地找到下山的路。這個時候,便可利用梯度下降演算法來幫助自己下山。怎麼做呢,首先以...

梯度下降演算法

機器學習在這幾年得到快速發展,乙個很重要的原因是 large dataset 大規模資料 這節課就來介紹用機器學習演算法處理大規模資料的問題。關於資料的重要性,有一句話是這麼說的 it s not who has the bestalgorithmthat wins.it s who has the...