a、輸入x---(w1和b2)-->中間輸出h(省略很多層)---(wi和bi)-->輸出y-->loss函式
b、現在的需求是loss取最小值,可以求出loss對所有引數的梯度,讓沿梯度下降的方向更新引數,例如w1= w1-lr*∂(loss)/∂(w1)
c、這樣多次更新,各個引數就一直在往loss的極小值處靠,並且某些引數的梯度為0之後,也並不影響其它引數的繼續更新∂(loss)/∂(w1)=(∂(loss)/∂(y))*(∂(y)/∂(h))*(∂(h)/∂(w1)) 同時更新,因為可以求出loss對這些所有引數的梯度,這些引數用w1= w1-lr*∂(loss)/∂(w1)的方式就可以都更新**或參考:「反向傳播演算法」過程及公式推導(超直觀好懂的backpropagation)
下面是反向傳播(求網路誤差對各個權重引數的梯度):
導數(梯度)已經計算出來了,下面就是反向傳播與引數更新過程:
上面的圖已經很顯然了,耐心看一下上面的幾張圖,一定能看懂的。
如果要想求誤差e對w1的導數,誤差e對w1的求導路徑不止一條,這會稍微複雜一點,但換湯不換藥,計算過程如下所示:
神經網路反向傳播理解
訓練神經網路的目標是 優化代價函式,使得代價函式找到乙個 全域性最小值或者區域性最小值。不管使用何種梯度下降演算法 bgd,sgd adam 都需要先算出各個引數的梯度。反向傳播的作用 就是快速算出所有引數的偏導數。求導數通常可以分為兩類,一類是直接用定義,第二類是公式法 包括鏈式法 定義法 定義法...
卷積神經網路反向傳播推導
以tensorflow的卷積神經網路為例 卷積 池 卷積 池 全連線 softmax c1層 卷積神經網路的輸入是28 28的矩陣 a 經過f1 個5 5的卷積核k1 i i 1,2,f1 的卷積生成f1 個24 24大小的feature maps c1 i co nv2 a,k1 i,v alid...
神經網路學習引入 反向傳播
反向傳播技術是神經網路的核心技術之一。如果乙個運算我們能夠使用計算圖表式出來,那麼我們就能夠利用反向傳播的方法,即從後往前遞迴地呼叫鏈式法則來計算梯度。乙個簡單的函式f x y,z x y zf x,y,z x y z f x,y,z x y z的計算圖如下所示。假設輸入為 x 2,y 5,z 4,...