[整理] BP神經(jīng)網(wǎng)絡(luò)講解——最好的版本

David Rumelhart 和 J.McClelland 于1985年提出了BP網(wǎng)絡(luò)的誤差反向后傳BP(Back propagation)學(xué)習(xí)算法

BP算法基本原理

利用輸出后的誤差來估計(jì)輸出層的直接前導(dǎo)層的誤差,再用這個(gè)誤差估計(jì)更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計(jì)。

一個(gè)三層BP網(wǎng)絡(luò)

激活函數(shù)

  • 必須處處可導(dǎo)(一般都使用S型函數(shù))

使用S型激活函數(shù)時(shí),BP網(wǎng)絡(luò)輸入與輸出關(guān)系

輸入:


輸出:


輸出的導(dǎo)數(shù):


使用S型激活函數(shù)時(shí),BP網(wǎng)絡(luò)的輸出及其導(dǎo)數(shù)圖形:


根據(jù)S激活函數(shù)的圖形:

  • net在 -5~0 的時(shí)候?qū)?shù)的值為正,且導(dǎo)數(shù)的值逐漸增大,說明此時(shí)f(x)在逐漸變大 且 變大的速度越來越快
  • net在 0~5 的時(shí)候?qū)?shù)的值為正,且導(dǎo)數(shù)的值逐漸減小,說明此時(shí)f(x)在逐漸變大 但是 變大的速度越來越慢

對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,我們應(yīng)該盡量將net的值盡量控制在收斂比較快的范圍內(nèi)。

BP網(wǎng)絡(luò)的標(biāo)準(zhǔn)學(xué)習(xí)算法

學(xué)習(xí)的過程:

  • 神經(jīng)網(wǎng)絡(luò)在外界輸入樣本的刺激下不斷改變網(wǎng)絡(luò)的連接權(quán)值,以使網(wǎng)絡(luò)的輸出不斷地接近期望的輸出。

學(xué)習(xí)的本質(zhì):

  • 對(duì)各連接權(quán)值的動(dòng)態(tài)調(diào)整

學(xué)習(xí)規(guī)則:

  • 權(quán)值調(diào)整規(guī)則,即在學(xué)習(xí)過程中網(wǎng)絡(luò)各神經(jīng)元的連接權(quán)值變化所依據(jù)的一定的調(diào)整規(guī)則

BP網(wǎng)絡(luò)的標(biāo)準(zhǔn)學(xué)習(xí)算法-算法思想

  1. 學(xué)習(xí)的類型: 有導(dǎo)師學(xué)習(xí)

  2. 核心思想將輸出誤差以某種形式通過隱層向輸入層逐層反傳(即,將誤差分?jǐn)偨o各層的所有單元——各層單元的誤差信號(hào),以此來修正各單元權(quán)值)
    個(gè)人理解 : ** 就如同之前的梯度下降函數(shù)每次更新Θ值一樣,每次來一個(gè)樣本,就更新Θ值,使得代價(jià)函數(shù)變得越來越小。這個(gè)類似,先給他們的權(quán)值賦個(gè)隨機(jī)初值,然后計(jì)算到最后一層(輸出層),若輸出結(jié)果與實(shí)際值有誤差(這個(gè)正常情況下是肯定有的),那么就進(jìn)行誤差的反向傳播算法,來優(yōu)化各層的Θ值(權(quán)重值)**

  3. 學(xué)習(xí)的過程: 信號(hào)的正向傳播——》誤差的反向傳播

BP網(wǎng)絡(luò)的標(biāo)準(zhǔn)學(xué)習(xí)算法-學(xué)習(xí)過程

  • 正向傳播
    輸入樣本-----輸入層------各隱層--------輸出層

  • 判斷是否轉(zhuǎn)入反向傳播階段
    若輸入層的實(shí)際輸出(h(x))與期望的輸出(y)不符。

  • 誤差反傳
    誤差以某種形式在各層表示-----修正各層單元的權(quán)值(w或者Θ)

  • 最終結(jié)果
    網(wǎng)絡(luò)輸出的誤差減少到了可以接受的程度(或 進(jìn)行到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止)

BP網(wǎng)絡(luò)的標(biāo)準(zhǔn)學(xué)習(xí)算法

  • 網(wǎng)絡(luò)結(jié)構(gòu)
    輸入層有n個(gè)神經(jīng)元,隱含層有p個(gè)神經(jīng)元,輸出層有q個(gè)神經(jīng)元

  • 變量定義



第一步,網(wǎng)絡(luò)初始化

給各連接權(quán)值分別賦一個(gè)區(qū)間(-1,1)內(nèi)的隨機(jī)數(shù),設(shè)定誤差函數(shù)e,給定計(jì)算精度值ε和最大學(xué)習(xí)次數(shù)M。

第二步,隨機(jī)選取第k個(gè)輸入樣本以及對(duì)應(yīng)的期望輸出

第三步,計(jì)算隱含層各神經(jīng)元的輸入和輸出

第四步,利用網(wǎng)絡(luò)期望輸出和實(shí)際輸出,計(jì)算誤差函數(shù)對(duì)輸出層的各神經(jīng)元的偏導(dǎo)數(shù)


可以列出如下等式:

第五步,利用隱含層到輸出層的連接權(quán)值、輸出層的
和隱含層的輸出計(jì)算誤差函數(shù)對(duì)隱含層各神經(jīng)元的偏導(dǎo)數(shù)


可以列出如下等式:

  1. 最下面那個(gè)方框是’=‘號(hào)

第六步,利用輸出層各神經(jīng)元的
和隱含層各神經(jīng)元的輸出來修正連接權(quán)值

第七步,利用隱含層各神經(jīng)元的
和輸入層各神經(jīng)元的輸入?yún)?shù)修正連接權(quán)值。

第八步,計(jì)算全局誤差

第九步,判斷網(wǎng)絡(luò)誤差是否滿足要求,判斷網(wǎng)絡(luò)誤差是否滿足要求。當(dāng)誤差達(dá)到預(yù)設(shè)精度或?qū)W習(xí)次數(shù)大于設(shè)定的最大次數(shù),則結(jié)束算法。否則,選取下一個(gè)學(xué)習(xí)樣本及對(duì)應(yīng)的期望輸出,返回到第三步,進(jìn)入下一輪學(xué)習(xí)。

BP算法直觀解釋

當(dāng)誤差對(duì)權(quán)值的偏導(dǎo)數(shù)大于零時(shí),權(quán)值調(diào)整量為負(fù),實(shí)際輸出大于期望輸出,權(quán)值向減少方向調(diào)整,使得實(shí)際輸出與期望輸出的差減少。


情況1直觀表達(dá)

當(dāng)誤差對(duì)權(quán)值的偏導(dǎo)數(shù)小于零時(shí),權(quán)值調(diào)整量為正,實(shí)際輸出少于期望輸出,權(quán)值向增大方向調(diào)整,使得實(shí)際輸出與期望輸出的差減少。

情況二直觀表達(dá)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 章節(jié)主要內(nèi)容 今天讓我們來好好理解一下機(jī)器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)算法吧,其中多隱含層的神經(jīng)網(wǎng)絡(luò)算法就是目前最熱的深...
    閃電隨筆閱讀 3,101評(píng)論 1 7
  • 楔子 再次見到他時(shí),那個(gè)臉上總是掛著暖暖的笑的男孩已經(jīng)不是當(dāng)年那個(gè)青澀稚嫩的少年了。如今,他的手心里牽著的那個(gè)人已...
    落梔青檸子閱讀 246評(píng)論 0 0
  • 周末總是忙忙碌碌的,早上九點(diǎn)多才出門,帶著軒軒和姥姥姥爺去醫(yī)院,然后取眼鏡,看課程。等吃完午飯回家已經(jīng)累的人仰馬翻...
    KellyWei閱讀 189評(píng)論 0 0
  • 目標(biāo):種出理想的伴侶 感恩冥想: 1、感恩今天有很多喜鵲給我打招呼。 2、感恩今天在單位與同事協(xié)同工作效率上的提高...
    小兔兔姐姐愛吃胡蘿卜閱讀 273評(píng)論 0 0

友情鏈接更多精彩內(nèi)容