梯度下降演算法

2021-10-02 10:54:11 字數 1425 閱讀 6270

什麼是梯度下降?

a:梯度下降是一種演算法.

這種演算法是幹啥的?

a:是用來求使得損失函式最小時引數的值.

先等等,損失函式又是個什麼東西?

a:一步一步理解,首先假設你已經構建好乙個完整的向前傳播網路,

在此基礎下,你像這個網路輸入一組特徵值(x),神經網路就會給你輸出(y),這都很好理解.

1.損失函式可以首先理解為是以輸出結果為自變數的函式,

因為比較典型的損失函式如均方誤差,交叉熵,

都是拿輸出結果(一大堆y)和你給定的標準答案(也是一堆數字)之間進行一頓運算,各種求差,平方,求積一頓組合.

從這個角度來說,損失函式(cost fuction)這個名字起的一般吧,我認為叫成偏差函式更好一點.

2.但是你要搞明白,y是給了輸入之後由你的引數們一頓運算之後得到的,

輸入不變的情況下(也就是反覆只給那一套資料集),引數不同,輸出不同,損失函式也不同,

所以,損失函式要理解為以引數為自變數的函式才到位.

這樣一來,梯度下降演算法通過調整引數使得損失函式最小也就說的通了,因為損失函式本來就是關於

引數的函式.(補充一下,這樣理解的話,其實每當輸入集或者標籤集改變,這個損失函式其實即發生了改變)

嗯,那麼這個梯度下降演算法是如何做到這一點的呢?

a:首先先明白當只有乙個引數的情況,假如我的輸入恒為[1,1],標準答案為0,引數為[w,1]的轉置(1是常數),

我定義的損失函式為輸出和標準答案的差的平方,即(y-y_)^2.

那麼可得損失函式以引數為變數的情況下就為(w+1)^2.

上面就是背景交代,梯度下降的公式(兩個引數的情況下)為:

或者(更一般一點)

這裡那個奇怪的符號是求偏導的意思,這裡只有乙個變數,換成求導沒問題,

也就是先對此時的損失函式關於w求導,然後讓w做自減操作,那個α(學習率)你先理解為乙個小於一的正的係數,

如果w在極小值的右邊,導數為正,減乙個正的小的數,w接近極小值,最後與極值點重合,

如果w在極小值的左邊,導數為負,負負得正,加乙個正的小數,w又接近極小值,最後與極值點重合,

吳恩達老師的圖如下:

當這個拓展為多個引數的情況下,這下就得求偏導了,

你可以理解為固定其他引數,只對w求導,這樣就轉換為剛才的情況,原理不變.

就是這樣,不斷迭代,求梯度,然後改變引數們.

a:這就是基本的梯度下降演算法的講解,但是關於它還有很多亂七八糟的東西

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

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

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

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

梯度下降演算法

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