神經網路前向傳播與反向傳播

2021-10-09 12:08:36 字數 2536 閱讀 9206

神經網路

神經網路可以理解為乙個輸入x到輸出y的對映函式,即f(x)=y,其中這個對映f就是我們所要訓練的網路引數w,我們只要訓練出來了引數w,那麼對於任何輸入x,我們就能得到乙個與之對應的輸出y。只要f不同,那麼同乙個x就會產生不同的y,我們當然是想要獲得最符合真實資料的y,那麼我們就要訓練出乙個最符合真實資料的對映f。訓練最符合真實資料f的過程就是神經網路的訓練過程,神經網路的訓練可以分為兩個步驟:乙個是前向傳播,另外乙個是反向傳播

神經網路的前向傳播

神經網路前向傳播從輸入層到輸出層:前向傳播就是從輸入層開始(layer1),經過一層層的layer,不斷計算每一層的神經網路得到的結果net

anet_

neta

​及通過啟用函式(一般使用relu函式)的本層輸出結果 out

zout_

outz

​,最後得到輸出y

ˉ\bar

yˉ​的過程。前向傳播公式:

a (1

)=xz

(2)=

relu

(a(1

))a(

2)=g

(z(2

))z(

3)=r

elu(

a(2)

)...

.\\a^=x\\z^=relu(a^)\\a^=g(z^)\\z^=relu(a^)\\....

a(1)=x

z(2)

=rel

u(a(

1))a

(2)=

g(z(

2))z

(3)=

relu

(a(2

))..

..這裡公式只寫了包括輸入層的前三個layer的結果,依次最後由layer4輸出的結果為yˉ=

a(4)

=g(z

4)

\bar=a^=g(z^)

yˉ​=a(

4)=g

(z4)

神經網路的反向傳播

前向傳播計算出了**值y

ˉ\bar

yˉ​,就可以根據y

ˉ\bar

yˉ​和真實值y的差別來計算損失l(y

ˉ,y)

l(\bar,y)

l(yˉ​,

y),反向傳播就是根據損失函式l(y

ˉ,y)

l(\bar,y)

l(yˉ​,

y)來反方向地計算每一層的a、z、w、b的偏導數(梯度),從最後一層逐層向前去改變每一層的權重,也就是更新引數,其核心是損失l對每一層的每乙個引數求梯度的鏈式求導法則。

計算反向傳播,我們首先需要通過前向傳播的輸出y

ˉ\bar

yˉ​和真實樣本y(target)計算此時神經網路的損失,這個神經網路有兩個輸出,所以我們的損失應該是兩個輸出神經元損失的和, 神經網路的總損失e←l

(yˉ,

y)

e\leftarrow l(\bar,y)

e←l(yˉ

​,y):et

otal

=∑12

(tar

get−

outp

ut)2

etot

al=e

o1+e

o2

e_=\sum(target-output)^}\\e_=e_+e_

etotal

​=∑2

1​(t

arge

t−ou

tput

)2et

otal

​=eo

1​+e

o2​對引數w5求偏導可以看出w5對整體誤差產生的影響,總體誤差對w5求偏導的鏈式規則如下所示:

e o1

=∑12

(tar

geto

1−ou

tput

o1)2

etot

al=e

o1+e

o2

e_=\sum(target_-output_)^}\\e_=e_+e_

eo1​=∑

21​(

targ

eto1

​−ou

tput

o1​)

2eto

tal​

=eo1

​+eo

2​w5求偏導進行整合,求出偏導數之後,下面的任務就是進行梯度下降從而更新引數:

w 5+

=w5−

η∗∂e

tota

l∂w5

\\w_^=w_-\eta*\frac}}

w5+​=w

5​−η

∗∂w5

​∂et

otal

​​梯度下降

神經網路就是通過不斷的前向傳播和反向傳播不斷調整神經網路的權重,最終到達預設的迭代次數或者對樣本的學習已經到了比較好的程度後,就停止迭代,那麼乙個神經網路就訓練好了。

前向傳播和反向傳播 手撕 神經網路反向傳播

神經網路前向傳播一般用於搭建整個神經網路的結構框架,形成整個網路的邏輯通路。反向傳播用於更新每層之間的權重,減少損失,進而提公升 準確度。下面是乙個神經網路的結構圖 第一層是輸入層,包含兩個神經元i1,i2,和截距項b1 第二層是隱含層,包含兩個神經元h1,h2和截距項b2,第三層是輸出o1,o2,...

神經網路 前向,反向傳播過程

x,資料集矩陣。每一行的元素代表了乙個樣例的特徵值x1,x2,x3.共有n行,說明資料集一共n個樣例 theta,引數矩陣 行數 要生成的神經元個數 列數 上一層的輸入個數 每一行的元素代表了對樣例各個特徵值的權重 以資料集為x 5 3 使用上圖的網路結構為例 輸入層 x 5 3 說明資料集有5個樣...

詳解神經網路的前向傳播和反向傳播(從頭推導)

詳解神經網路的前向傳播和反向傳播 本篇部落格是對michael nielsen所著的 neural network and deep learning 第2章內容的解讀,有興趣的朋友可以直接閱讀原文neural network and deep learning。對神經網路有些了解的人可能都知道,神...