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

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

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

反向傳播算法的工作原理

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

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

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

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

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

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

激活函數(shù)

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

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

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

誤差函數(shù)

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

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

正向傳播

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

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

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

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

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

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

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

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

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

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

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

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

反向傳播

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

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

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

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

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

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

結(jié)束。

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

    關(guān)注

    42

    文章

    4733

    瀏覽量

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

    關(guān)注

    23

    文章

    4587

    瀏覽量

    92500

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

    MapReduce的誤差反向傳播算法

    針對(duì)誤差反向傳播(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)化問(wèn)題的方面應(yīng)用

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

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

    在 深度神經(jīng)網(wǎng)絡(luò)(DNN)模型與前向傳播算法 中,我們對(duì)DNN的模型和前向傳播算法做了總結(jié),這里我們更進(jìn)一步,對(duì)DNN的反向
    的頭像 發(fā)表于 03-22 16:28 ?3607次閱讀
    淺析深度神經(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,簡(jiǎn)稱(chēng)BP神經(jīng)網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),通過(guò)反向傳播算法進(jìn)
    的頭像 發(fā)表于 07-02 14:05 ?244次閱讀

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

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

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

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

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

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

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

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

    神經(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ò)的算法,其基本原理是通過(guò)梯度下降法來(lái)最小化損失函數(shù),從而找到網(wǎng)絡(luò)的最優(yōu)權(quán)重和偏置。本
    的頭像 發(fā)表于 07-03 11:16 ?626次閱讀

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

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

    神經(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 ?604次閱讀