3演算法全稱 BP演算法

2021-10-14 20:19:23 字數 1506 閱讀 2919

深度學習系列(2):前向傳播和後向傳播演算法_demon-初來駕到-csdn部落格_後向傳播演算法​blog.csdn.net

這篇文章寫得很好理解。

74年就出現了的演算法,我們現在還在用,真的很震驚,,

大概很多網路模型都會用到bp演算法,真的是很經典的乙個演算法了。比如cnn

bp演算法是一種訓練方法,就是可以訓練乙個很簡單的神經網路。

全稱叫做誤差反向傳播

bp演算法全稱叫作誤差反向傳播(error back propagation,或者也叫作誤差逆傳播)演算法。

其演算法基本思想為:在2.1所述的前饋網路中,輸入訊號經輸入層輸入,通過隱層計算由輸出層輸出,輸出值與標記值比較,若有誤差,將誤差反向由輸出層向輸入層傳播,在這個過程中,利用梯度下降演算法對神經元權值進行調整。

核心思想:鏈式求導法則

神經網路的結構非常地簡單,對於每個神經元來說,有好幾個箭頭都指向它,那麼這個神經元的輸入就是所有箭頭的權值*上乙個神經元的輸出

先說一下閾值,這個概念我總覺得彆扭,可能潛意識裡覺得很多模型都不是0和1這麼簡單,大概就是神經元的輸出大(小)於某個值的話,輸出為1,小(大)於某個值的話,輸出為0.

損失函式是什麼

這個概念很簡單,就是慣常的均方誤差函式。就不寫了

2. 引數是如何調整的

梯度下降演算法,好像也沒啥好說的,就是往梯度負方向對引數進行調整,同樣也有乙個alfa值,決定「步長」。

3. 計算輸出層閾值的梯度。

準確的來說是誤差對閾值的梯度(1中提到的損失函式)。為什麼說鏈式法則是核心思想呢,因為這一步需要通過y作為中間量求這個梯度,這個梯度標記為g,應該會被用來反向調節權值。

4. 計算誤差函式對隱層到輸出層權值的梯度

這個的鏈式就是e(誤差)->y(輸出值)->beta(輸出層的輸入)->w(標題中提到的權值)

全部帶進去就ok

5. 計算誤差函式對隱層閾值gama的梯度

求法和上面一樣,不細說

但是你會發現乙個很神奇的事情,因為這個5的表示式跟上面求到的一些梯度會產生一些關聯:(下面說的梯度都是誤差函式對,,,的梯度)

隱層閾值的梯度取決於隱層神經元輸出,輸出層閾值梯度,隱層與輸出層連線權值(w)

這句話也就是說當前層的閾值梯度取決於他後面一層的閾值梯度。

那麼我們就可以利用輸出後的誤差來估計輸出層的直接前導層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計。

可以回憶一下線性回歸調節theta的過程,其實這個也是調節權值的過程,初始的權值都是隨機的,然後乙個隨機的東西最後輸出的結果肯定會有誤差,那正好有上述提到的關係,我們可以根據這樣的乙個誤差去調節前面的所有的權值,只到誤差小到某乙個範圍內。

不過感覺最好還是寫**實現一下可能會理解得更好。

看了好幾篇部落格和我自己的理解,可能和別人寫的會有相似的地方

BP演算法調研

bp演算法,即反向傳播方法,是用來訓練前向網路的一種普遍演算法。課本 artifitial intelligence a new synthesis,nils j.nilsson 提供了演算法實現方式,每乙個輸入樣本,利用遞迴等式,根據期望值與實際輸出值的誤差,從後向前逐步調整權重,從而實現網路的訓...

BP演算法推導

反向傳播演算法是深度學習的基礎之一,其主要的核心就是對代價函式 e 關於權重 w 或偏置 b 的偏導數 的表示式。這個表示式代表在改變權值和偏置時,代價函式變化的快慢。使用 w l 表示從 l 1 層的 k 神經元到 l 層的 j 神經元上的權重。之所以 l 的序號在 l 1 層的序號之前,是因為後...

BP演算法示例

誤差處理情況,第一種計算誤差的方式是將簡單的將網路計算結果與正確結果相減,但採用這種做法,如果我們把所有誤差相加在一起,結果居然為零,因為第乙個節點的結果與正確結果的差值和第二個節點結果與正確結果的差值剛好相反,於是誤差就相互抵消掉,由此直接將兩者相減不是一種理想的誤差計算方式。第二種是相減後求絕對...