反向傳播算法


反向傳播算法

介紹

  反向傳播算法,簡稱BP算法,適合於多層神經元網絡的一種學習算法,它建立在梯度下降法的基礎上。BP網絡的輸入輸出關系實質上是一種映射關系:一個n輸入m輸出的BP神經網絡所完成的功能是從n維歐氏空間向m維歐氏空間中一有限域的連續映射,這一映射具有高度非線性。它的信息處理能力來源於簡單非線性函數的多次復合,因此具有很強的函數復現能力。這是BP算法得以應用的基礎。

  反向傳播算法主要由兩個環節(激勵傳播、權重更新)反復循環迭代,直到網絡的對輸入的響應達到預定的目標范圍為止。
BP算法的學習過程由正向傳播過程和反向傳播過程組成。在正向傳播過程中,輸入信息通過輸入層經隱含層,逐層處理並傳向輸出層。如果在輸出層得不到期望的輸出值,則取輸出與期望的誤差的平方和作為目標函數,轉入反向傳播,逐層求出目標函數對各神經元權值的偏導數,構成目標函數對權值向量的梯量,作為修改權值的依據,網絡的學習在權值修改過程中完成。誤差達到所期望值時,網絡學習結束。

相關學習

  反向傳播是神經網絡學習的核心算法。

  相關符號

  梯度向量每一項的大小實在告訴大家,代價函數對於每個參數有多敏感

  每一個訓練樣本會對權重偏置的調整造成怎樣的影響?
因為代價函數牽扯到,對成千萬個訓練樣本的代價取平均值,所以我們調整每一步梯度下降用的權重偏置,也會基於所有的訓練樣本,原理上是這么說,但為了計算效率,從而不必每一步都非得要計算所有的訓練樣本,還要說明一點,

這個訓練樣本會對調整權重和偏置造成怎樣的影響呢?
假設網絡還沒有完全訓練好,那么輸出層的激活值看起來就很隨機,也許就會出現0.5等,並不能直接改動這些激活值,只能改變權重和偏置值,但記住想要輸出層出現怎樣的變動,還是很有用的,因為得到最終的分類結果是2,希望第三個輸出值變大,其他數值變小

增加激活值,有三種方法:1.增加偏置2.增加權重3.改變上一層的激活值

如何調整權重:
各個權重的影響力各不相同,連接前一層最亮的神經元的權重,影響力也最大,因為這些權重會與大的激活值相乘,所以至少對於這一個訓練樣本而言,增大權重值,對最終代價函數造成的影響,就比增大連接暗淡神經元的權重所造成的影響,要大很多倍

反向傳播算法算的是, 單個訓練樣本想怎樣修改權重與偏置,不僅是說每個參數應該變大還是變小,還包括了這些變化的比例是多大,才能最快地降低代價,真正的梯度下降,得對好幾萬個訓練范例都這么操作,然后對變化值取平均,這樣算會很慢。
可以先把所有的樣本分到各個的minibatch中去,計算一個minibatch來作為梯度下降的一步,計算每個minibatch的梯度,調整參數,不斷循環,最終會收斂到代價函數的一個局部最小值上。

反向傳播的微積分原理

例子:
每層只有一個神經元,由3個權重和3個偏置決定的

目標是理解代價函數對於這些變量有多敏感,這樣就知道怎么調整這些變量,才可以使得代價降低的最快

相關視頻:
https://www.bilibili.com/video/BV16x411V7Qg/?spm_id_from=pageDriver

https://www.bilibili.com/video/BV16x411V7Qg/?spm_id_from=pageDriver


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM