前向傳播和反向傳播是神經(jīng)網(wǎng)絡(luò)中的重要基礎(chǔ)。兩者存在一些聯(lián)系,所以本文將兩者一起講述,有利于大家理解。同時反向傳播是理解神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的重點(diǎn),需要一些微積分基礎(chǔ)(導(dǎo)數(shù),偏導(dǎo)數(shù),鏈?zhǔn)椒▌t)。如果你準(zhǔn)備好了,那我們開始吧。
1.前向傳播Forward-Propagation
前向傳播如圖所示:圖片下方的單詞表示該層所使用的active function。

Input Layer-->h1 Layer矩陣計算細(xì)節(jié):


舉個例子:

h1 Layer-->h2 Layer矩陣計算細(xì)節(jié):


例子:

h2 -->output 矩陣計算細(xì)節(jié):


例子:

上面的[0.2698, 0.3223, 0.4078],便是我們將[0.1, 0.2, 0.7]輸入模型后得到的結(jié)果。好了我們來通俗解釋一下什么是前向傳播。
Forward-propagation:將固定的數(shù)值的一個樣本
輸入模型,模型利用weight ,bias(隨機(jī)初始),active function對
進(jìn)行一系列的運(yùn)算最后輸出一個結(jié)果
(actual output)。
2.損失函數(shù) loss function
好奇的小伙伴可能會想不是要說back-propagation么?為什么搞個loss function 出來?慢慢看下去你就明白了。
在監(jiān)督學(xué)習(xí)的任務(wù)中,我們會有大量的固定的輸入和固定的輸出
(desired output)作為樣本。我們將一個樣本
輸入?yún)?shù)隨機(jī)初始化后的模型得到一個輸出
,但
只是一個估計值,我們想得到的是
。于是就想怎么樣可以使
盡量的接近
呢?這個問題好像有點(diǎn)復(fù)雜,那我們先衡量一下
和
的差距吧。
均方誤差 MSE(mean square error)常用于回歸任務(wù):

交叉熵 (cross-entropy)常用于分類任務(wù):

我們知道在訓(xùn)練階段,模型的輸入和輸出
是固定的,只能夠調(diào)節(jié)模型中的weight和bias 使
盡量的接近
,即調(diào)節(jié)模型中的參數(shù)使loss function計算出的loss盡可能的小。更進(jìn)一步的可以理解為:
當(dāng)loss 逐步變小時,weight和bias應(yīng)該如何變化。原來loss function 就像一個教練,它能夠指導(dǎo)模型去學(xué)習(xí)最優(yōu)的weight和bias去完成預(yù)測任務(wù)。
具體的weight和bias的更新過程就是back-propagation所要做的啦。

例子:

3.反向傳播 Back-Propagation
output Layer-->h2 Layer的反向傳播:

a. 與
的變化關(guān)系:


例子:

b. 與
的變化關(guān)系:


例子:

c.與
的變化關(guān)系:

例子:

d.與
的變化關(guān)系:由鏈?zhǔn)椒▌t可得


例子:

以0.01的學(xué)習(xí)率對 更新:

h2 Layer-->h1 Layer的反向傳播:

a.與
的變化關(guān)系:

例子:

b.與
的變化關(guān)系:

例子:

c.與
的變化關(guān)系:由鏈?zhǔn)椒▌t可得




例子:

d.與
的變化關(guān)系:由鏈?zhǔn)椒▌t可得


例子:

以0.01的學(xué)習(xí)率對進(jìn)行更新:

h1 Layer-->Input Layer 的反向傳播:

a.與
的變化關(guān)系:


例子:

b.與
的變化關(guān)系:

例子:

c.與的變化關(guān)系:由鏈?zhǔn)椒▌t可得

例子:

c.與
的變化關(guān)系:由鏈?zhǔn)椒▌t可得

例子:

以0.01的學(xué)習(xí)率對進(jìn)行更新:

4.總結(jié)
模型隨機(jī)初始化的全部weight:

向模型輸入一個樣本
:[0.1, 0.2, 0.7]和
:[1.0, 0.0, 0.0],通過forward propagation 模型輸出一個結(jié)果
:[0.2698, 0.3223, 0.4078]。然后利用loss function 計算
與
的loss,以loss 變小為原則指導(dǎo)back propagation,最終實現(xiàn)weight的一次更新。
更新后的全部weight:


小伙伴們?nèi)绻X得文章還行的請點(diǎn)個贊呦??!同時覺得文章哪里有問題的可以評論一下 謝謝你!