日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习基础2(反向传播算法)

發(fā)布時間:2023/12/20 pytorch 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习基础2(反向传播算法) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

反向傳播算法


我們先是用鏈式法則解釋。比如如下的神經(jīng)網(wǎng)絡(luò)
  • 前向傳播
對于節(jié)點來說,的凈輸入如下:

接著對做一個sigmoid函數(shù)得到節(jié)點的輸出:

類似的,我們能得到節(jié)點、、的輸出、、。
  • 誤差
得到結(jié)果后,整個神經(jīng)網(wǎng)絡(luò)的輸出誤差可以表示為:

其中就是剛剛通過前向傳播算出來的、;是節(jié)點、的目標值。用來衡量二者的誤差。
這個也可以認為是cost function,不過這里省略了防止overfit的regularization term()
展開得到

  • 后向傳播
對輸出層的
通過梯度下降調(diào)整,需要求,由鏈式法則:

如下圖所示:
<img src="https://pic4.zhimg.com/50/f2d8768af0d9264687905a0134dae927_hd.png" data-rawwidth="525" data-rawheight="257" class="origin_image zh-lightbox-thumb" width="525" data-original="https://pic4.zhimg.com/f2d8768af0d9264687905a0134dae927_r.png">


以上3個相乘得到梯度,之后就可以用這個梯度訓(xùn)練了:

很多教材比如Stanford的課程,會把中間結(jié)果記做,表示這個節(jié)點對最終的誤差需要負多少責(zé)任。。所以有。


對隱藏層的??
通過梯度下降調(diào)整,需要求,由鏈式法則:

如下圖所示:
<img src="https://pic3.zhimg.com/50/d50d1d812f0f036b8c5cb389e463b01a_hd.png" data-rawwidth="612" data-rawheight="494" class="origin_image zh-lightbox-thumb" width="612" data-original="https://pic3.zhimg.com/d50d1d812f0f036b8c5cb389e463b01a_r.png">參數(shù)參數(shù)影響了,進而影響了,之后又影響到、。
求解每個部分:

其中,這里之前計算過。
的計算也類似,所以得到
。
的鏈式中其他兩項如下:


相乘得到

得到梯度后,就可以對迭代了:
。
在前一個式子里同樣可以對進行定義,,所以整個梯度可以寫成
=======================
上述就是教程Unsupervised Feature Learning and Deep Learning Tutorial 中第三步計算的由來。。
<img src="https://pic3.zhimg.com/50/2d29c11b1c9da7652c63f01d5e31284e_hd.jpg" data-rawwidth="822" data-rawheight="428" class="origin_image zh-lightbox-thumb" width="822" data-original="https://pic3.zhimg.com/2d29c11b1c9da7652c63f01d5e31284e_r.jpg">

所謂的后向傳播,其實就是『將來在宣傳傳播上出了偏差,你們要負責(zé)的!』,每一個節(jié)點負責(zé)的量用表示,那么,隱藏節(jié)點需要負責(zé)的量,就由輸出節(jié)點負責(zé)的量一層層往前傳導(dǎo)。

參考:
【1】A Step by Step Backpropagation Example
【2】Unsupervised Feature Learning and Deep Learning Tutorial


假設(shè)我們有一個固定樣本集?,它包含??個樣例。我們可以用批量梯度下降法來求解神經(jīng)網(wǎng)絡(luò)。具體來講,對于單個樣例?,其代價函數(shù)為:

這是一個(二分之一的)方差代價函數(shù)。給定一個包含??個樣例的數(shù)據(jù)集,我們可以定義整體代價函數(shù)為:

以上公式中的第一項??是一個均方差項。第二項是一個規(guī)則化項(也叫權(quán)重衰減項,其目的是減小權(quán)重的幅度,防止過度擬合。


[注:通常權(quán)重衰減的計算并不使用偏置項?,比如我們在??的定義中就沒有使用。一般來說,將偏置項包含在權(quán)重衰減項中只會對最終的神經(jīng)網(wǎng)絡(luò)產(chǎn)生很小的影響。如果你在斯坦福選修過CS229(機器學(xué)習(xí))課程,或者在YouTube上看過課程視頻,你會發(fā)現(xiàn)這個權(quán)重衰減實際上是課上提到的貝葉斯規(guī)則化方法的變種。在貝葉斯規(guī)則化方法中,我們將高斯先驗概率引入到參數(shù)中計算MAP(極大后驗)估計(而不是極大似然估計)。]


權(quán)重衰減參數(shù)??用于控制公式中兩項的相對重要性。在此重申一下這兩個復(fù)雜函數(shù)的含義:?是針對單個樣例計算得到的方差代價函數(shù);?是整體樣本代價函數(shù),它包含權(quán)重衰減項。


以上的代價函數(shù)經(jīng)常被用于分類和回歸問題。在分類問題中,我們用??或?,來代表兩種類型的標簽(回想一下,這是因為 sigmoid激活函數(shù)的值域為?;如果我們使用雙曲正切型激活函數(shù),那么應(yīng)該選用??和??作為標簽)。對于回歸問題,我們首先要變換輸出值域(譯者注:也就是?),以保證其范圍為??(同樣地,如果我們使用雙曲正切型激活函數(shù),要使輸出值域為?)。


我們的目標是針對參數(shù)??和??來求其函數(shù)??的最小值。為了求解神經(jīng)網(wǎng)絡(luò),我們需要將每一個參數(shù)??和??初始化為一個很小的、接近零的隨機值(比如說,使用正態(tài)分布??生成的隨機值,其中??設(shè)置為?),之后對目標函數(shù)使用諸如批量梯度下降法的最優(yōu)化算法。因為??是一個非凸函數(shù),梯度下降法很可能會收斂到局部最優(yōu)解;但是在實際應(yīng)用中,梯度下降法通常能得到令人滿意的結(jié)果。最后,需要再次強調(diào)的是,要將參數(shù)進行隨機初始化,而不是全部置為?。如果所有參數(shù)都用相同的值作為初始值,那么所有隱藏層單元最終會得到與輸入值有關(guān)的、相同的函數(shù)(也就是說,對于所有?,都會取相同的值,那么對于任何輸入??都會有:?)。隨機初始化的目的是使對稱失效。


梯度下降法中每一次迭代都按照如下公式對參數(shù)??和?進行更新:

其中??是學(xué)習(xí)速率。其中關(guān)鍵步驟是計算偏導(dǎo)數(shù)。我們現(xiàn)在來講一下反向傳播算法,它是計算偏導(dǎo)數(shù)的一種有效方法


我們首先來講一下如何使用反向傳播算法來計算??和?,這兩項是單個樣例??的代價函數(shù)??的偏導(dǎo)數(shù)。一旦我們求出該偏導(dǎo)數(shù),就可以推導(dǎo)出整體代價函數(shù)??的偏導(dǎo)數(shù):


以上兩行公式稍有不同,第一行比第二行多出一項,是因為權(quán)重衰減是作用于??而不是?。


反向傳播算法的思路如下:給定一個樣例?,我們首先進行“前向傳導(dǎo)”運算,計算出網(wǎng)絡(luò)中所有的激活值,包括??的輸出值。之后,針對第?層的每一個節(jié)點?,我們計算出其“殘差”?,該殘差表明了該節(jié)點對最終輸出值的殘差產(chǎn)生了多少影響。對于最終的輸出節(jié)點,我們可以直接算出網(wǎng)絡(luò)產(chǎn)生的激活值與實際值之間的差距,我們將這個差距定義為??(第??層表示輸出層)。對于隱藏單元我們?nèi)绾翁幚砟?#xff1f;我們將基于節(jié)點(譯者注:第?層節(jié)點)殘差的加權(quán)平均值計算?,這些節(jié)點以??作為輸入。

具體BP算法的數(shù)學(xué)推導(dǎo)請參照機器學(xué)習(xí)《BP算法詳談》。


中英文對照

反向傳播算法 Backpropagation Algorithm
(批量)梯度下降法 (batch) gradient descent
(整體)代價函數(shù) (overall) cost function
方差 squared-error
均方差 average sum-of-squares error
規(guī)則化項 regularization term
權(quán)重衰減 weight decay
偏置項 bias terms
貝葉斯規(guī)則化方法 Bayesian regularization method
高斯先驗概率 Gaussian prior
極大后驗估計 MAP
極大似然估計 maximum likelihood estimation
激活函數(shù) activation function
雙曲正切函數(shù) tanh function
非凸函數(shù) non-convex function
隱藏層單元 hidden (layer) units
對稱失效 symmetry breaking
學(xué)習(xí)速率 learning rate
前向傳導(dǎo) forward pass
假設(shè)值 hypothesis
殘差 error term
加權(quán)平均值 weighted average
前饋傳導(dǎo) feedforward pass
阿達馬乘積 Hadamard product
前向傳播 forward propagation

總結(jié)

以上是生活随笔為你收集整理的深度学习基础2(反向传播算法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。