天天看點

UFLDL閱讀筆記1—Multi-Layer Neural Network背景Neural Network modelBackpropagation算法

背景

問題

有一組資料形式為 (x(i),y(i)) ,其中 x 是輸入的向量,神經網絡可以去非線性地拟合這組資料,其形式為hW,b(x),其中的參數有 W,b

單個神經元

  1. 示意圖
    UFLDL閱讀筆記1—Multi-Layer Neural Network背景Neural Network modelBackpropagation算法
  2. 實質

    先把輸入向量 x 的各個分量進行線性組合加一個偏移成為∑ni=1Wixi+b,再将這個結果通過activation function f ,就會得到單個神經元的輸出hW,b(x)

    • activation function

      常見的activation function有3種類型:

      • sigmoid f(z)=11+exp(−z)
      • tanh f(z)=tanh(z)=ez−e−zez+e−z
      • rectified linear f(z)=max(0,x)

3個函數的圖像如下:

UFLDL閱讀筆記1—Multi-Layer Neural Network背景Neural Network modelBackpropagation算法

Neural Network model

定義

單個神經元結構分層全連結。其中,最左邊為input layer,最右邊是output layer ,中間是hidden layer ,層内标注為“+1”的節點表示的是一個偏移量,叫做bias units 。以下是一個簡單的神經網絡模型

UFLDL閱讀筆記1—Multi-Layer Neural Network背景Neural Network modelBackpropagation算法

參數說明

其實任意兩個節點之間的連接配接線上都對應了一個參數,每層都是上一層的線性組合作為輸入傳到下一層,是以每層配有各自的 W,b 來代表這一層的權重,其中 W 表示普通節點上的權重,b代表bias unit的權重。這個簡單網絡有3層,我們用上标代表層數,是以有兩組這樣的參數(W,b)=(W(1),b(1),W(2),b(2)).

- 對于每兩層之間的 W ,用下标代表是哪兩個神經元的連結。Wij表示靠前一層的第 j 個節點與靠後一層的第i個節點的連接配接線的上的權重。注意這個前後的順序和直覺上的想法不太一樣,其原因是為了友善各項表達式最終可以寫成矩陣乘法的形式,這個在之後可以展現。

- 對于每兩層之間的 b ,用下标代表前一層的bias unit和後一層的哪一個神經元相連,是以隻需要一個下标bi代表和後一層的第 i 個神經元的連接配接線上的權重。

從以上的參數分析我們可以得出,W(1)∈R3×3,這裡前一個3代表隐含層節點數,後一個3代表輸入層節點數; W(2)∈R1×3 ; b(1)∈R1×3 ; b(2)∈R1×1

forward propagation表達式

a(2)1a(2)2a(2)3hW,b(x)=f(W(1)11x1+W(1)12x2+W(1)13x3+b(1)1)=f(W(1)21x1+W(1)22x2+W(1)23x3+b(1)2)=f(W(1)31x1+W(1)32x2+W(1)33x3+b(1)3)=a(3)1=f(W(2)11a(2)1+W(2)12a(2)2+W(2)13a(2)3+b(2)1)

容易看出,把以上形式簡寫成矩陣形式即為:

z(2)a(2)z(3)hW,b(x)=W(1)x+b(1)=f(z(2))=W(2)a(2)+b(2)=a(3)=f(z(3))

這裡的參數 z 代表每層的輸入經過了線性組合的結果,參數a代表 z 經過了激活函數之後的結果,其關系如下所示:

z(l+1)a(l+1)=W(l)a(l)+b(l)=f(z(l+1))

以上是一個簡單的神經網絡的前向傳播過程。事實上,一個神經網絡的架構中,隐含層可以有很多層,輸出層也可以有不止一個節點。

Backpropagation算法

cost function

對于一個測試用例,cost function代表網絡輸出值和真實值的平方誤差的二分之一,用下面的式子表示:

J(W,b;x,y)=12∥∥hW,b(x)−y∥∥2.

對于所有的測試用例,cost function代表每一個用例的cost的平均+正則項(W中的每一個元素的和再乘正則系數)。表達式如下:

J(W,b)=[1m∑i=1mJ(W,b;x(i),y(i))]+λ2∑l=1nl−1∑i=1sl∑j=1sl+1(W(l)ji)2=[1m∑i=1m(12∥∥hW,b(x(i))−y(i)∥∥2)]+λ2∑l=1nl−1∑i=1sl∑j=1sl+1(W(l)ji)2

說明:

1. 正則項的作用是限制W不要太大(因為優化的目标就是讓J盡可能小),防止過拟合的發生。

2. 用神經網絡進行分類,若用的是sigmoid神經元,标簽應該采用(0, 1);若采用tanh神經元,标簽應采用(-1,1)

3. 用神經網絡進行拟合,應在保證輸出在[0,1](sigmoid),或-1,1

繼續閱讀