梯度下降演算法

2021-07-04 07:43:29 字數 1312 閱讀 1114

梯度下降演算法(最速下降演算法),其是解決引數無約束最優化的一類方法。(無約束:對引數沒有任何限制,最多限制為實數,有的根本就沒有限定)

在機器學習中,都會讓自己的乙個模型達到乙個最優值(最大或最小等等)。這裡有乙個非常簡單的模型:

f(x) = wx+b

這裡先假設x就是一維情況。

如果我們知道f(x) 與x的對應點對,如(1,2),(2,4),(3,6)等等,

我們就可以將這些點直接代入方程f(x)=wx+b

2=w*1+b   (1)

4=w*2+b   (2)

6=w*3+b   (3)

哎呀,媽呀!這個不就是我們小學學的二元一次方程組的嗎?是的。我們也可以將上面的點對資料稍作修改:(1,2),(2,4),(3,6),(4,7),(5,8),(6,11),(7,13)...

再來看這些資料,會發現這些點對資料其實不在一條直線上的,那麼w就不是能這麼簡單的解答出來了。此時,這個問題轉變成了大學統計學中回歸問題。回歸問題的本質還是求一條曲線(直線也叫曲線),使得測量出來的點(樣本)盡可能的都附著在這條曲線上。

定義如下方程:

j(w,b) = (w*x1+b-f(x1))*(w*x1+b-f(x1))+...+(w*xi+b-f(xi))*(

w*xi+b-f(xi)

)+...+(w*xn+b-f(xn))*(

w*xn+b-f(xn))

xn代表第n個樣本。

那麼,對於回歸問題,可以看做乙個求最優的問題(使得現有的點都盡可能的附著到我們所求的這條直線上),也就是求j(w,b)的最小值。

仔細觀察j(w,b),其實它的未知數是w和b,這裡xi,f(xi)都是已知數。那麼j(w,b)就是乙個關於w和b的乙個引數方程了。

高中的數學就學過一些知識,求乙個函式的極大值或極小值時其導數為0(不用最小二乘法,這裡j(w,b)可能會是乙個非常複雜的表示式(樣本太多))。不過,我們可以再回想一下極值的性質(這裡以極小值為例):在極小值的左邊(可以想象為一元函式,多元函式就是偏導)其導數是小於0的,在其右邊導數是大於0的;那麼,如果從極小值的左邊去尋找極小值,我們必需沿著導數變大的方向走;如果從極小值的右邊尋找,我們必需沿著導數變小的方向走。這裡讓我們再聯絡一下我們所學的知識:梯度。根據梯度的定義,尋找極小值時,我們走的方向其實都是和梯度方向相反的。這裡直接讓我們看到了尋找極小值時的乙個共性了。

那麼求j(w,b)的極小值就可以從選定的乙個點開始(初始w,b的值),然後沿著梯度相反的方向行走,慢慢的就能夠找到我們所要的極小值了(梯度下降法是不能保證找到全域性最優值:最小值)。

好吧,今天就先寫到這。這裡留個問題:這裡w,b的調整是乙個樣本調整一次,還是所有樣本都要參與一次引數調整中來?

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

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

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

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

梯度下降演算法

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