顧名思義全連線神經網路便是指相鄰網路層的各神經元是全連線的,如下圖:
xi代表輸入層第i個資料;wmn
jw_^j
wmnj
代表j層第m位置和j+1層第n位置間的權重,j是第幾層網路;zij
z_i^j
zij
代表神經元的輸入和,yij
y_i^j
yij
代表第j隱藏層第i個神經元的輸出;k
jk_j
kj代表第j層網路的偏置;o
io_i
oi代表輸出層第i個資料。
全連線神經網路的主要思想:輸入的每個資料對最後的結果都有影響。
如上圖結構,當啟用函式為sigmoid(f(x
)=11
+e−x
,f′(
x)=f
(x)(
1−f(
x))f(x)=\frac},f'(x)=f(x)(1-f(x))
f(x)=1
+e−x
1,f
′(x)
=f(x
)(1−
f(x)
))時,正向傳播思路為:對於隱含層(隱藏層)或輸出層的神經元,神經元的輸出等於將神經元的所有輸入乘上權重後再與偏置求和。
計算方式具體為:
z 11
=x1×
w111+
x2×w
211+k
1z_1^1=x_1×w_^1+x_2×w_^1+k_1
z11=x
1×w
111
+x2
×w21
1+k
1y 11
=f(z
11)y_1^1=f(z_1^1)
y11=f
(z11
)z 12
=y11
×w112
+y21
×w212
+k2z_1^2=y_1^1×w_^2+y_2^1×w_^2+k_2
z12=y
11×
w112
+y2
1×w
212
+k2
o 1=
f(z1
2)o_1=f(z_1^2)
o1=f(
z12
) 當一次正向傳播結束後神經網路能獲得輸出o
io_i
oi,如果期望輸出t
it_i
ti與真實輸出存在差距時,就需要修改權重再進行訓練。神經網路通過反向傳播來更新權重,反向傳播的最終目的為:修正權重,使神經網路的輸出結果盡可能地接近期望;更新權重的常用方法是梯度下降法。
演算法原理:
1、計算損失函式(代價函式)。損失函式代表了實際輸出與期望輸出的差距,常用的損失函式是均方誤差。
l os
s=∑i
=1n(
ti−o
i)2n
loss=\frac^ (t_i-o_i)^2}
loss=n
i=1∑
n(t
i−o
i)2
其中t
it_i
ti代表期望輸出,o
io_i
oi代表實際輸出
通過損失函式可以判斷模型訓練後是否可用
2、梯度下降法
根據單個權重對誤差的影響程度來對權重進行更新,單個權重對誤差的影響程度的數學計算方式便是計算誤差對相應權重的偏導數:
w =w
k−η∂
loss
∂wkw=w_k-η\frac
w=wk−
η∂wk
∂lo
ssη為學習速率,學習速率過大會導致代價函式振盪,迭代過快導致無法找到最優解,學習速率過小會導致訓練速度非常慢。
根據前面的正向傳播公式可得:
∂ lo
ss∂w
k=∂l
oss∂
o×∂o
∂z×∂
z∂wk
\frac=\frac×\frac×\frac
∂wk∂l
oss
=∂o∂
loss
×∂z
∂o×
∂wk
∂z具體計算為:
∂ lo
ss∂w
112=∂
loss
∂o1×
∂o1∂
z12×
∂z12
∂w112
\frac^2}=\frac×\frac×\frac^2}
∂w112
∂los
s=∂
o1∂
loss
×∂z
12∂
o1
×∂w1
12∂
z12
w112′
=w112
−η∂l
oss∂
w112^2}'=w_^2-η\frac^2}
w112′
=w11
2−η
∂w11
2∂l
oss
參考文章:
[1]:
[2]:
前向傳播和反向傳播 手撕 神經網路反向傳播
神經網路前向傳播一般用於搭建整個神經網路的結構框架,形成整個網路的邏輯通路。反向傳播用於更新每層之間的權重,減少損失,進而提公升 準確度。下面是乙個神經網路的結構圖 第一層是輸入層,包含兩個神經元i1,i2,和截距項b1 第二層是隱含層,包含兩個神經元h1,h2和截距項b2,第三層是輸出o1,o2,...
神經網路反向傳播理解
訓練神經網路的目標是 優化代價函式,使得代價函式找到乙個 全域性最小值或者區域性最小值。不管使用何種梯度下降演算法 bgd,sgd adam 都需要先算出各個引數的梯度。反向傳播的作用 就是快速算出所有引數的偏導數。求導數通常可以分為兩類,一類是直接用定義,第二類是公式法 包括鏈式法 定義法 定義法...
神經網路前向傳播與反向傳播
神經網路 神經網路可以理解為乙個輸入x到輸出y的對映函式,即f x y,其中這個對映f就是我們所要訓練的網路引數w,我們只要訓練出來了引數w,那麼對於任何輸入x,我們就能得到乙個與之對應的輸出y。只要f不同,那麼同乙個x就會產生不同的y,我們當然是想要獲得最符合真實資料的y,那麼我們就要訓練出乙個最...