05 | 前饋網絡與反向傳播:模型的自我學習(下)

前饋網絡
前饋神經網絡(Feedforward Neural Network,FNN),簡稱前饋網絡,它是一種單向的多層結構,也是最簡單的神經網絡,其簡化結構圖如下所示:

在這個網絡中,藍色的層是第 0 層,我們稱爲輸入層,這裏將接受模型的輸入數據,即向量 x;
中間黃色的層,分別是有 5 個神經元的第 1 層和有 3 個神經元的第 2 層,它們是模型的內部環節,我們稱爲隱藏層(實際的網絡中,隱藏層可以有很多層,不僅限於 2 個);
綠色的層,是網絡的最後一層,我們稱爲輸出層
神經元之間的單向箭頭連線,就是兩個節點之間的權重

既然叫前饋神經網絡,那我們理解了「前饋」就相當於理解了這個網絡。前饋是指這個網絡中的每一層神經元,產生信號之後會傳遞到下一層,而下一層的神經元產生的信號無法反傳遞給上一層,即數據是單向流動的

那輸入的數據最後是怎麼變成輸出的呢?爲了方便起見,咱們把上圖進一步簡化,來看看它的具體計算過程。

這個簡單的網絡中,有一個輸入層(a、b 節點),一個隱藏層(c、d 節點)和一個輸出層(e 節點)。

在開始具體計算之前,咱們先明確幾個變量。

1.輸入數據 x:

2.權重 Wij,表示從節點 i 和 j 之間的權重,方向由 j 到 i。在上圖中,我們假設 Wcb=0.7,Wda=0.3,Wec=0.4

3.權重矩陣 Wj,表示第 j 層的權重矩陣,在這裏有兩個權重矩陣,W1 和 W2:

4.**函數,這節課我選擇 Sigmoid 函數作爲**函數,其公式化表示爲:

**函數實際上是一個將線性計算過程進行非線性變換的函數。目前可以單純地理解爲:**函數是一個對輸入數據進行變化的函數

節點 c 的輸入,就是 x1 和 x2 沿着各自的路徑與對應的權重相乘後求和,即:

同理,節點 d 的輸入就是:

模型在計算的過程中是使用矩陣的方式,所以得到的結果也是以層爲單位的,計算過程如下:(權重矩陣*輸入x

現在,輸入的數據走到了 c 和 d 兩個節點,這裏還有一層Sigmoid**函數。因此,第一層的輸出是:

也就是節點 c 的輸出爲 0.6479,節點 d 的輸出爲 0.5769。

這樣,咱們就完成了隱藏層的計算了。咱們可以用同樣的方式求到最後節點 e 的輸出,過程如下: