策略產(chǎn)品經(jīng)理必讀系列-第三講梯度下降法_第1頁
策略產(chǎn)品經(jīng)理必讀系列-第三講梯度下降法_第2頁
策略產(chǎn)品經(jīng)理必讀系列-第三講梯度下降法_第3頁
策略產(chǎn)品經(jīng)理必讀系列-第三講梯度下降法_第4頁
策略產(chǎn)品經(jīng)理必讀系列-第三講梯度下降法_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、策略產(chǎn)品經(jīng)理必讀系列第三講梯度下降法策略產(chǎn)品經(jīng)理必須要對機器學(xué)習(xí)有一定的了解,而梯度下降法則是學(xué)習(xí)機器學(xué)習(xí)必須要了解的思想,本篇通過一個生動的案例來為大家介紹到底什么是梯度下降法。01 引入我們先從一個案例入手,下圖是一組上海市靜安區(qū)的房價信息:我們用Python在坐標(biāo)系上面畫出來如下圖:我們現(xiàn)在想擬合一個線性函數(shù)來表示房屋面積和房價的關(guān)系。我們初中都學(xué)過的一元一次函數(shù)表達式為:y=kx+b(k0)。很明顯不可能有一對組合(k,b)全部經(jīng)過上圖7個點,我們只能盡可能地找到一對組合,使得該線性函數(shù)離上圖7個點的總距離最近。如上圖所示,實際值與預(yù)測值之間差異的均方差我們把它稱為損失函數(shù),也有叫做成

2、本函數(shù)或者代價函數(shù)的,意義都一樣。我們希望找到一個組合(k,b)可以使得損失函數(shù)的值最小。上述只有一個輸入變量x,如果我們多加入幾個輸入變量,比如臥室的數(shù)量、離最近地鐵站的距離。最終目標(biāo)變量和損失函數(shù)我們用下述函數(shù)表達式來表達:現(xiàn)在我們的任務(wù)就是求出一組,在已知【x,y】的前提下使得損失函數(shù)的值最小。那么如何計算出了,使用什么方法了?我們首先回到損失函數(shù)表達式本身,損失函數(shù)本身是一個y=x2的形式,高中數(shù)學(xué)大家應(yīng)該都學(xué)過這是一個開口向上的拋物線方程,大概長下圖這樣:我們?nèi)绾握业竭@個函數(shù)的最低點?上圖是一個二維圖,我們很輕松就可以肉眼看出x=0時,y最小。如果維度更多,比如z = (x-10)2

3、 + (y-10)2,則得到下圖:我們?nèi)绾味ㄎ怀鲎钚≈?,特別強調(diào)一點,這里的x是一個“大”參數(shù)的概念,x應(yīng)該等于下述公式大家要明確上圖橫坐標(biāo)是x和y,函數(shù)表達式里的已經(jīng)知道了,所以我們是找到最合適的(x,y)使得函數(shù)值最小。如果我們現(xiàn)在是已知樣本(x,y),那么上圖的變量就變?yōu)榱薩0和_i,并不是x_i,我們是以_0和_i作為輸入變量做的圖,x_i和y_i都是已知的固定值,這一點必須明確了。上圖的縱坐標(biāo)的值就變?yōu)閾p失函數(shù)的值。我們的問題是已知樣本的坐標(biāo)(x,y),來求解一組參數(shù),使得損失函數(shù)的值最小。我們?nèi)绾握业缴蠄D中的最低點?因為找到最低點,那么最低點對應(yīng)的橫坐標(biāo)所有維度就是我們想得到的_0

4、和_i,而縱坐標(biāo)就是損失函數(shù)的最小值。找到最低點所有答案就全部解出來了?,F(xiàn)在問題來了?有沒有一種算法讓我們可以慢慢定位出最小值,這個算法就是梯度下降法。02 梯度下降法簡介1. 梯度下降法的思想我們首先介紹梯度下降法的整體思想。假設(shè)你現(xiàn)在站在某個山峰的峰頂,你要在天黑前到達山峰的最低點,那里有食品水源供給站,可以進行能量補充。你不需要考慮下山的安全性,即使選擇最陡峭的懸崖下山,你也可以全身而退,那么如何下山最快了?最快的方法就是以當(dāng)前的位置為基準,尋找該位置最陡峭的地方,然后沿該方向往下走。走一段距離后,再以當(dāng)前位置為基準,重新尋找最陡峭的地方,一直重復(fù)最終我們就可以到達最低點。我們需要不停地

5、去重新定位最陡峭的地方,這樣才不會限于局部最優(yōu)。那么整個下山過程中我們會面臨兩個問題:如何測量山峰的“陡峭”程度每一次走多長距離后重新進行陡峭程度測量;走太長,那么整體的測量次數(shù)就會比較少,可能會導(dǎo)致走的并不是最佳路線,錯過了最低點。走太短,測量次數(shù)過于頻繁,整體耗時太長,還沒有到達食品供給站就已經(jīng)GG了。這里的步長如何設(shè)置?Part1里面介紹了如何從一個開口向上的拋物線高點定位到最低點的問題和下山的場景是完全類似的,拋物線就相當(dāng)于一個山峰,我們的目標(biāo)就是找到拋物線的最低點,也就是山底。最快的下山方式就是找到當(dāng)前位置最陡峭的方向,然后沿著此方向向下走,對應(yīng)到拋物線中,就是計算給定點的梯度,然后

6、朝著梯度相反的方向( Part 2.3里面會解釋為什么是朝著梯度相反的方向),就能讓拋物線值下降的最快。同時我們也要和下山一樣,不停地定位新位置,再計算新位置的梯度,然后按照新方向下降,最后慢慢定位到拋物線的最低點。2. 梯度下降法算法Part2.1里面已經(jīng)介紹了梯度下降法的思想,遺留了兩個問題。第一就是如何計算“陡峭”程度,我們這里把它叫做梯度,我們用J_來代替。第二個也就是步長問題,我們用一個學(xué)習(xí)率來代表這個步長,越大代表步長越大。知道了這兩個值,我們?nèi)绾稳サ玫絽?shù)的更新表達式了?J是關(guān)于的一個函數(shù),假設(shè)初始時我們在_1這個位置,要從這個點走到J的最小值點,也就是山底。首先我們先確定前進的

7、方向,也就是梯度的反向“-J_”,然后走一段距離的步長,也就是,走完這個段步長,就到達了_2這個點了。表達式如下圖:我們按照上述表達式一直不停地更新的值,一直到收斂不變?yōu)橹?,?dāng)我們到達山底,此時函數(shù)的梯度就是0了,值也就不會再更新了,因為表達式的后半部分一直是0了。整個下降過程中損失函數(shù)的值是一定在減少,但是我們想學(xué)習(xí)出來的參數(shù)值不一定一直在減小。因為我們需要找到損失函數(shù)最小時的坐標(biāo)點,這個坐標(biāo)點的坐標(biāo)不一定是原點,很可能是(2,3)甚至是(4,6),我們找到的是最合適的值使得損失函數(shù)最小。下圖我們用一個例子來進行說明:上圖的最低點很明顯就是原點,我們通過梯度下降法來逼近這個最低點。我們可以看

8、到損失函數(shù)的值在一直減少,的值也在往0這個值進行收斂。3. 梯度下降法數(shù)學(xué)計算Part1和2介紹了梯度下降的思想和更新的表達式,現(xiàn)在我們從數(shù)學(xué)層面進行解釋:1)為什么是向梯度相反的方向下降上圖應(yīng)該很形象地顯示為什么要朝著梯度的反方向了。梯度是一個向量,梯度的方向是函數(shù)在指定點上升最快的方向,那么梯度的反方向自然是下降最快的方向了。2)泛化的參數(shù)更新公式Part2.2里面的例子我們選擇的是一個最簡單的函數(shù)表達式,參數(shù)分為兩種,一種是和輸入變量x配對的參數(shù)_i,一種是固定的偏差_0。我們用已知的樣本數(shù)據(jù)(x,y)來求解出使得損失函數(shù)最小的一組參數(shù)。下面我們來計算一個通用泛化的參數(shù)更新表達式。我們只

9、需要用到高中數(shù)學(xué)中的導(dǎo)數(shù)知識即可,朋友們相信我真的很easy。下圖是對和輸入變量x配對的參數(shù)_i更新表達式:下圖是對固定的偏差_0的更新表達式:上面的數(shù)學(xué)過程也就是高中我們學(xué)習(xí)導(dǎo)數(shù)里面最簡單的求導(dǎo)過程了。那么至此我們也就將梯度下降算法的思想和數(shù)學(xué)解釋全部介紹完了。4. 梯度下降法分類Part2.3里面的公式大家也看到了我們要借助樣本的(x,y)的數(shù)據(jù)來進行參數(shù)的更新,如果現(xiàn)在樣本有100條數(shù)據(jù),我們?nèi)绾蝸砀?。正常情況下,我們更新的方式有兩種:1)隨機梯度下降(Stochastic Gradient Descent)我們每次只使用單個訓(xùn)練樣本來更新參數(shù),依次遍歷訓(xùn)練集,而不是一次更新中考慮所有

10、的樣本。就像開頭介紹那7條房價數(shù)據(jù),我們一個一個來計算,計算一次更新一次,直到收斂或者達到后期更新幅度已經(jīng)小于我們設(shè)置的閥值。2)批量梯度下降(Batch Gradient Descent)我們每次更新都遍歷訓(xùn)練集中所有的樣本,以它們的預(yù)測誤差之和為依據(jù)更新。我們會一次性將7條樣本數(shù)據(jù)的預(yù)測誤差都匯總,然后進行一次更新。更新完以后,繼續(xù)以7條樣本數(shù)據(jù)的預(yù)測誤差之和進行匯總,再更新,直到收斂或者達到后期更新幅度已經(jīng)小于我們設(shè)置的閥值。當(dāng)訓(xùn)練樣本數(shù)很大時,批量梯度下降的每次更新都會是計算量很大的操作,而隨機梯度下降可以利用單個訓(xùn)練樣本立即更新,因此隨機梯度下降 通常是一個更快的方法。但隨機梯度下降

11、也有一個缺點,那就是可能不會收斂,而是在最小值附近振蕩,但在實際中也都會得到一個足夠好的近似。所以實際情況下,我們一般不用固定的學(xué)習(xí)率,而是讓它隨著算法的運行逐漸減小到零,也就是在接近“山底”的時候慢慢減小下降的“步幅”,換成用“小碎步”走,這樣它就更容易收斂于全局最小值而不是圍繞它振蕩了。03 梯度下降法Python實踐以下就是通過實際運行程序得到的相關(guān)結(jié)果圖。1. 單變量:y = x2求最低點假設(shè)X的初始值是10,我們讓程序迭代10次得到的結(jié)果如下圖:2. 多變量:z = (x-10)2 + (y-10)2求最低點假設(shè)X和Y的初始值都是20,我們讓模型迭代100次得到的效果如下圖:3. 根據(jù)給定樣本求解出最佳組合假設(shè)樣本中X和Y的值如下:x = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論