0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

反向傳播算法的工作原理

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-07-02 16:01 ? 次閱讀

反向傳播算法(BP算法)是目前用來訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)的最常用且最有效的算法。作為谷歌機(jī)器學(xué)習(xí)速成課程的配套材料,谷歌推出一個演示網(wǎng)站,直觀地介紹了反向傳播算法的工作原理。

反向傳播算法對于快速訓(xùn)練大型神經(jīng)網(wǎng)絡(luò)來說至關(guān)重要。本文將介紹該算法的工作原理。

簡單的神經(jīng)網(wǎng)絡(luò)

如上圖,你會看到一個神經(jīng)網(wǎng)絡(luò),其中包含一個輸入節(jié)點(diǎn)、一個輸出節(jié)點(diǎn),以及兩個隱藏層(分別有兩個節(jié)點(diǎn))。

相鄰的層中的節(jié)點(diǎn)通過權(quán)重相關(guān)聯(lián),這些權(quán)重是網(wǎng)絡(luò)參數(shù)。

激活函數(shù)

每個節(jié)點(diǎn)都有一個總輸入x、一個激活函數(shù)f(x)以及一個輸出y=f(x)。

f(x)必須是非線性函數(shù),否則神經(jīng)網(wǎng)絡(luò)就只能學(xué)習(xí)線性模型。

常用的激活函數(shù)是S 型函數(shù):

誤差函數(shù)

目標(biāo)是根據(jù)數(shù)據(jù)自動學(xué)習(xí)網(wǎng)絡(luò)的權(quán)重,以便讓所有輸入?的預(yù)測輸出?接近目標(biāo)?

為了衡量與該目標(biāo)的差距,我們使用了一個誤差函數(shù)常用的誤差函數(shù)是?

正向傳播

首先,我們?nèi)∫粋€輸入樣本并更新網(wǎng)絡(luò)的輸入層。

為了保持一致性,我們將輸入視為與其他任何節(jié)點(diǎn)相同,但不具有激活函數(shù),以便讓其輸出與輸入相等,即

現(xiàn)在,我們更新第一個隱藏層。我們?nèi)∩弦粚庸?jié)點(diǎn)的輸出y,并使用權(quán)重來計(jì)算下一層節(jié)點(diǎn)的輸入x。

然后,我們更新第一個隱藏層中節(jié)點(diǎn)的輸出。 為此,我們使用激活函數(shù)f(x)。

使用這兩個公式,我們可以傳播到網(wǎng)絡(luò)的其余內(nèi)容,并獲得網(wǎng)絡(luò)的最終輸出。

誤差導(dǎo)數(shù)

反向傳播算法會對特定樣本的預(yù)測輸出和理想輸出進(jìn)行比較,然后確定網(wǎng)絡(luò)的每個權(quán)重的更新幅度。 為此,我們需要計(jì)算誤差相對于每個權(quán)重的變化情況。

獲得誤差導(dǎo)數(shù)后,我們可以使用一種簡單的更新法則來更新權(quán)重:

其中,是一個正常量,稱為“學(xué)習(xí)速率”,我們需要根據(jù)經(jīng)驗(yàn)對該常量進(jìn)行微調(diào)。

[注意] 該更新法則非常簡單:如果在權(quán)重提高后誤差降低了 (),則提高權(quán)重;否則,如果在權(quán)重提高后誤差也提高了 (),則降低權(quán)重。

其他導(dǎo)數(shù)

為了幫助計(jì)算,我們還為每個節(jié)點(diǎn)分別存儲了另外兩個導(dǎo)數(shù),即誤差隨以下兩項(xiàng)的變化情況:

反向傳播

我們開始反向傳播誤差導(dǎo)數(shù)。 由于我們擁有此特定輸入樣本的預(yù)測輸出,因此我們可以計(jì)算誤差隨該輸出的變化情況。 根據(jù)我們的誤差函數(shù),我們可以得出:

現(xiàn)在我們獲得了,接下來便可以根據(jù)鏈?zhǔn)椒▌t得出?。

其中,當(dāng)f(x)是 S 型激活函數(shù)時(shí),

一旦得出相對于某節(jié)點(diǎn)的總輸入的誤差導(dǎo)數(shù),我們便可以得出相對于進(jìn)入該節(jié)點(diǎn)的權(quán)重的誤差導(dǎo)數(shù)。

根據(jù)鏈?zhǔn)椒▌t,我們還可以根據(jù)上一層得出。此時(shí),我們形成了一個完整的循環(huán)。

接下來,只需重復(fù)前面的 3 個公式,直到計(jì)算出所有誤差導(dǎo)數(shù)即可。

結(jié)束。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4771

    瀏覽量

    100772
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4612

    瀏覽量

    92901

原文標(biāo)題:谷歌官方:反向傳播算法圖解

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    反向傳播如何實(shí)現(xiàn)

    實(shí)現(xiàn)反向傳播
    發(fā)表于 07-09 16:10

    神經(jīng)網(wǎng)絡(luò)和反向傳播算法

    03_深度學(xué)習(xí)入門_神經(jīng)網(wǎng)絡(luò)和反向傳播算法
    發(fā)表于 09-12 07:08

    【AI 學(xué)習(xí)】第六篇--講解BP(反向傳播)流程

    反向傳播整個流程如下:(1)進(jìn)行前向傳播計(jì)算,利用前向傳播公式,得到隱藏層和輸出層的激活值。(2)對輸出層(第l層),計(jì)算殘差:反向
    發(fā)表于 11-05 17:25

    MapReduce的誤差反向傳播算法

    針對誤差反向傳播(BP)算法計(jì)算迭代的特點(diǎn),給出了迭代式MapReduce框架實(shí)現(xiàn)BP算法的方法。迭代式MapReduce框架在傳統(tǒng)MapReduce框架上添加了傳送模塊,避免了傳統(tǒng)框
    發(fā)表于 12-20 16:39 ?0次下載
    MapReduce的誤差<b class='flag-5'>反向</b><b class='flag-5'>傳播</b><b class='flag-5'>算法</b>

    深讀解析反向傳播算法在解決模型優(yōu)化問題的方面應(yīng)用

    反向傳播算法隸屬于深度學(xué)習(xí),它在解決模型優(yōu)化問題的方面有著重要的地位。
    的頭像 發(fā)表于 11-01 15:48 ?5620次閱讀
    深讀解析<b class='flag-5'>反向</b><b class='flag-5'>傳播</b><b class='flag-5'>算法</b>在解決模型優(yōu)化問題的方面應(yīng)用

    淺析深度神經(jīng)網(wǎng)絡(luò)(DNN)反向傳播算法(BP)

    在 深度神經(jīng)網(wǎng)絡(luò)(DNN)模型與前向傳播算法 中,我們對DNN的模型和前向傳播算法做了總結(jié),這里我們更進(jìn)一步,對DNN的反向
    的頭像 發(fā)表于 03-22 16:28 ?3669次閱讀
    淺析深度神經(jīng)網(wǎng)絡(luò)(DNN)<b class='flag-5'>反向</b><b class='flag-5'>傳播</b><b class='flag-5'>算法</b>(BP)

    PyTorch教程5.3之前向傳播、反向傳播和計(jì)算圖

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程5.3之前向傳播、反向傳播和計(jì)算圖.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 15:36 ?0次下載
    PyTorch教程5.3之前向<b class='flag-5'>傳播</b>、<b class='flag-5'>反向</b><b class='flag-5'>傳播</b>和計(jì)算圖

    反向傳播神經(jīng)網(wǎng)絡(luò)建模的基本原理

    反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network,簡稱BP神經(jīng)網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),通過反向傳播算法進(jìn)
    的頭像 發(fā)表于 07-02 14:05 ?298次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法原理是什么

    神經(jīng)網(wǎng)絡(luò)反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練多層前饋神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)算法。它通過最小化損失函數(shù)來調(diào)整網(wǎng)絡(luò)的權(quán)重和偏置,從而提高網(wǎng)絡(luò)的預(yù)測性
    的頭像 發(fā)表于 07-02 14:16 ?636次閱讀

    神經(jīng)網(wǎng)絡(luò)前向傳播反向傳播區(qū)別

    神經(jīng)網(wǎng)絡(luò)是一種強(qiáng)大的機(jī)器學(xué)習(xí)模型,廣泛應(yīng)用于各種領(lǐng)域,如圖像識別、語音識別、自然語言處理等。神經(jīng)網(wǎng)絡(luò)的核心是前向傳播反向傳播算法。本文將詳細(xì)介紹神經(jīng)網(wǎng)絡(luò)的前向
    的頭像 發(fā)表于 07-02 14:18 ?820次閱讀

    反向傳播神經(jīng)網(wǎng)絡(luò)建?;驹?/a>

    反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network,簡稱BP神經(jīng)網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),通過反向傳播算法進(jìn)
    的頭像 發(fā)表于 07-03 11:08 ?456次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的推導(dǎo)過程

    神經(jīng)網(wǎng)絡(luò)反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練多層前饋神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)算法。它通過最小化損失函數(shù)來調(diào)整網(wǎng)絡(luò)的權(quán)重和偏置,從而提高網(wǎng)絡(luò)的預(yù)測性
    的頭像 發(fā)表于 07-03 11:13 ?558次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的原理、數(shù)學(xué)推導(dǎo)及實(shí)現(xiàn)步驟

    神經(jīng)網(wǎng)絡(luò)反向傳播算法(Backpropagation Algorithm)是一種用于訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的算法,其基本原理是通過梯度下降法來最小化損失函數(shù),從而找到網(wǎng)絡(luò)的最優(yōu)權(quán)重和偏置。本
    的頭像 發(fā)表于 07-03 11:16 ?792次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的作用是什么

    神經(jīng)網(wǎng)絡(luò)反向傳播算法(Backpropagation)是一種用于訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)的算法,它通過計(jì)算損失函數(shù)關(guān)于網(wǎng)絡(luò)參數(shù)的梯度來更新網(wǎng)絡(luò)的權(quán)重和偏置。
    的頭像 發(fā)表于 07-03 11:17 ?1421次閱讀

    神經(jīng)網(wǎng)絡(luò)反向傳播算法的優(yōu)缺點(diǎn)有哪些

    神經(jīng)網(wǎng)絡(luò)反向傳播算法(Backpropagation Algorithm)是一種廣泛應(yīng)用于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域的優(yōu)化算法,用于訓(xùn)練多層前饋神經(jīng)網(wǎng)絡(luò)。本文將介紹
    的頭像 發(fā)表于 07-03 11:24 ?968次閱讀