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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

神经网络反向传导算法

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 神经网络反向传导算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

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


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


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


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


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


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

其中??是學習速率。其中關鍵步驟是計算偏導數。我們現在來講一下反向傳播算法,它是計算偏導數的一種有效方法。


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


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


反向傳播算法的思路如下:給定一個樣例?,我們首先進行“前向傳導”運算,計算出網絡中所有的激活值,包括??的輸出值。之后,針對第??層的每一個節點?,我們計算出其“殘差”?,該殘差表明了該節點對最終輸出值的殘差產生了多少影響。對于最終的輸出節點,我們可以直接算出網絡產生的激活值與實際值之間的差距,我們將這個差距定義為??(第??層表示輸出層)。對于隱藏單元我們如何處理呢?我們將基于節點(譯者注:第??層節點)殘差的加權平均值計算?,這些節點以??作為輸入。下面將給出反向傳導算法的細節:


  • 進行前饋傳導計算,利用前向傳導公式,得到??直到輸出層??的激活值。
  • 對于第??層(輸出層)的每個輸出單元?,我們根據以下公式計算殘差:
    [譯者注:
    ]
  • 對??的各個層,第??層的第??個節點的殘差計算方法如下:
    {譯者注:
    將上式中的與的關系替換為與的關系,就可以得到:
    以上逐次從后向前求導的過程即為“反向傳導”的本意所在。 ]
  • 計算我們需要的偏導數,計算方法如下:

  • 最后,我們用矩陣-向量表示法重寫以上算法。我們使用“” 表示向量乘積運算符(在Matlab或Octave里用“.*”表示,也稱作阿達馬乘積)。若?,則?。在上一個教程中我們擴展了??的定義,使其包含向量運算,這里我們也對偏導數??也做了同樣的處理(于是又有??)。


    那么,反向傳播算法可表示為以下幾個步驟:

  • 進行前饋傳導計算,利用前向傳導公式,得到?直到輸出層??的激活值。
  • 對輸出層(第??層),計算:
  • 對于??的各層,計算:
  • 計算最終需要的偏導數值:

  • 實現中應注意:在以上的第2步和第3步中,我們需要為每一個??值計算其?。假設??是sigmoid函數,并且我們已經在前向傳導運算中得到了?。那么,使用我們早先推導出的?表達式,就可以計算得到?。


    最后,我們將對梯度下降算法做個全面總結。在下面的偽代碼中,?是一個與矩陣??維度相同的矩陣,?是一個與??維度相同的向量。注意這里“”是一個矩陣,而不是“?與??相乘”。下面,我們實現批量梯度下降法中的一次迭代:


  • 對于所有?,令??,??(設置為全零矩陣或全零向量)
  • 對于??到?,
  • 使用反向傳播算法計算??和?。
  • 計算?。
  • 計算?。
  • 更新權重參數:
  • 現在,我們可以重復梯度下降法的迭代步驟來減小代價函數??的值,進而求解我們的神經網絡。


    中英文對照

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


    總結

    以上是生活随笔為你收集整理的神经网络反向传导算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。