Transcript 類神經網路簡介
類神經網路簡介
生物神經細胞
發生於神經元突觸之時間性相加示意圖
圖片摘自:M. Arbib, The Metaphorical Brain : Neural Networks and
Beyond, John Wiley & Sons, Inc., 1989.)
類神經元的模型
x0 =
wj0
x1
wj1
x2
wj2
...
...
輸
入
-1
xp
wjp
鍵結值 (Synaptic Weights)
wj0 = 閾值
加法
單元
活化
函數
輸出 yj
類神經元的模型
• 利用數學式描述類神經元的輸入輸出關係:
p
u j w ji xi
i 0
y j u j
其中
w ji 代表第 i 維輸入至第 j 個類神經元的鍵結值。
x (1, x1 , , x p )T 代表 p 維的輸入。
u j 代表第 j 個類神經元所獲得的整體輸入量,
其物理意義是代表位於軸突丘的細胞膜電位。
代表活化函數。
y j 則代表了類神經元的輸出值,也就是脈衝頻率。
活化函數
• 硬限制函數 (hard limiter or threshold function):
1 if v 0
(v )
0 if v 0
嚴格限制函數
• 區域線性函數 (piecewise linear function):
if v v1
1
(v) cv if v2 v v1
0
if v v2
區域線性函數
活化函數
• s-字型函數 (sigmoid function):
(v )
1
1 exp(cv)
(v) tanh(cv)
s-字型函數
• 高斯函數 (Gaussian function):
v2
(v ) exp 2
2
高斯函數
網路架構
• 單層前饋網路 (Single-layer feedforward networks):此種
網路的功能性較差,只能處理線性的問題。
單層前饋網路
網路架構
• 多層前饋網路 (Multi-layer feedforward networks):根據
鍵結的聯接方式,此種網路又可分為部份連結 (partially
connected) 網路與完全連結 (fully connected) 網路,此種
網路可處理複雜性高的問題。
多層前饋網路: (a)部份連結 (b)完全連結
類神經網路的學習規則
• 數學式描述通用型的學習規則
w ji (n 1) w ji (n) w ji (n)
其中
w ji (n ) 及 w ji (n 1) 分別代表原先的及調整後的鍵結值。
w ji (n) 代表此類神經元受到刺激後,為了達成學習效果,所
必須採取的改變量。
• 改變量 w ji (n) :
– 輸入
– 原先的鍵結值
– 期望的輸出值
錯誤更正法則
• 若類神經元的真實輸出值 y j (n) 與期望的目標值d j (n)
不同時,則兩者之差,定義誤差信號為 e j (n) :
e j ( n) d j ( n) y j ( n)
• 一般都採用梯度坡降法 (Gradient decent method) 來搜尋一
組鍵結值,使得代價函數達到最小。
– Windrow-Hoff 學習法
– Delta 學習法
Windrow-Hoff 學習法
• 目標函數定義為:
1
E e j (n) d j (n) v j (n) 2
2 j
j
2
1
d j (n) wTj (n) x(n)
2 j
• 根據梯度坡降法可得:
w j (n )
E
w j (n)
d j (n) wTj (n) x(n) x(n)
d j (n) v j (n)x(n)
此學習規則,亦被稱為最小平方演算法 (Least square error algorithm)
Delta 學習法
• 使用此種學習法的類神經網路,其活化函數都是採用連續
且可微分的函數型式,而目標函數則定義為:
1
E e j (n) d j (n) y j (n) 2
2 j
j
• 根據梯度坡降法可得:
w j (n )
E
w j (n)
d j (n) y j (n) ' v j (n) x(n)
當 v j (n) v j (n) 時,則 Widrow-Hoff 學習可視為 Delta 學習法的一項特例。
感知機
• 感知機是由具有可調整的鍵結值 (Synaptic weights) 以及閾
值 (Threshold) 的單一個類神經元 (Neuron) 所組成。
• 最簡單且最早發展出來的類神經網路模型,通常被用來做
為分類器(Classifier)使用。
• 感知機基本架構
v>0 , y=+1
v<=0 , y=-1
感知機基本架構
• 分類的判斷規則是:若感知機的輸出為 +1,則將其歸類
於 C1 群類;若感知機的輸出為 -1,則將其歸類於 C2 群類。
感知機演算法
• 步驟一:網路初始化
以隨機的方式來產生亂數,令鏈結值 w(0)為很小的實數,
並且將學習循環 n 設定為1。
• 步驟二:計算網路輸出值
在學習循環時,輸入向量 x(n)與鏈結值 w(n) 之運算值帶
入活化函數,此時類神經元的輸出為:
y (n) [ w (n) x(n)]
[v ]
T
1 if v 0
(v)
1 if v 0
感知機演算法
• 步驟三:調整鍵結值向量
w(n) x(n) wT (n) x(n) 0
w(n 1) w(n) x(n) wT (n) x(n) 0
w(n)
x(n)被正確分類
• 步驟四:
將學習循環 n 加1,回到步驟二
感知機練習
學習率 為 0.8,並且將鍵結值的初始值設定為 (0, 1),
令活化函數為sgn函數,神經元之閾值為-1
多層感知機
• 多層感知機具有以下三個特性:
– 每個類神經元的輸出端都包含了一個非線性元件。
(v )
1
1 exp(cv)
– 網路包含了一層以上的隱藏層。
– 網路具有高度的聯結性 (connectivity)。
s-字型函數
多層感知機
wi1
x1
i
yi
wki
wi2
yk = Ok
k
wj1
x2
wj2
wkj
j
yj
倒傳遞演算法
• 訓練包含兩個階段:前饋階段以及倒傳遞階段
• 前饋階段: 輸入向量由輸入層引入,以前饋方式經由隱藏
層傳導至輸出層,並計算出網路輸出值,此時,網路的鍵
結值都是固定的。
• 倒傳遞階段: 將期望輸出值減去網路輸出值以得到誤差信
號,然後將此誤差信號倒傳遞回網路中,藉此修正鍵結值,
使得網路的輸出值趨向於期望輸出值。
倒傳遞演算法
• 網路輸出層的第 k 個類神經元的誤差函數定義為
ek (n) d k (n) yk (n)
• 瞬間誤差平方函數,E(n),就是所有輸出層類神經元的平
方差瞬間值總合,表示為:
1
E (n) ek2 (n)
2 kC
其中集合 C 是包含所有輸出層類神經元的子集合。
• N 為輸入訓練資料的個數,則均方差函數定義為
Eav
1 N
E (n)
N n 1
倒傳遞演算法
• 第 k 個類神經元在第 n 次學習循環時的輸出為
P
v j ( n ) w ji ( n ) yi ( n )
i 0
y j (n) j (v j (n))
• 倒傳遞演算法對鍵結值 wji(n) 的修正量 Δwji(n) 和梯度的估
測值, E(n)/ wji(n) ,成正比關係。根據鍊鎖率(chain
rule),我們可將梯度表示為:
E ( n ) E ( n ) v j ( n )
w ji ( n ) v j ( n ) w ji (n )
倒傳遞演算法
v j (n )
p
w
(
n
)
y
(
n
)
yi ( n )
ji
i
w ji (n ) w ji (n ) i 0
• 定義區域梯度函數為:
j (n)
E ( n )
v j ( n )
• 整體調整鍵結值公式為
w ji (n 1) w ji (n) w ji (n) w ji (n) j (n) yi (n)
倒傳遞演算法
• 第 j 個類神經元是輸出層的類神經元
– 位於輸出層的類神經元,期望輸出值是已知的,因此其δ(•)為
E (n )
E (n ) y j (n )
j (n)
v j (n )
y j (n ) v j (n )
1
2 v j ( n )
d j ( n ) y j ( n )
y j (n ) 2 jc
v j (n )
d j (n) y j (n) j v j (n)
倒傳遞演算法
• 第 j 個類神經元是隱藏層的類神經元
E (n ) y j (n )
E ( n )
j (n)
v j ( n )
y j ( n )
y j (n ) v j (n )
yj(n)透過wkj來連結第k個類神經元,因此
E ( n ) v k ( n )
E ( n )
E ( n )
n
wkj ( n )
y j ( n ) k v k ( n ) y j ( n ) k v k ( n )
若第 k 個類神經元是輸出層的類神經元,則
E (n)
k (n ) d k (n) yk (n) vk (n)
vk (n)
隱藏層的類神經元之δ(•)為
j (n) j v j (n) k (n) wkj (n)
k
j v j (n) d k (n) yk (n ) vk (n) wkj (n)
k
倒傳遞演算法
• 在多層感知機裡最常使用的活化函數是sigmoid 函數
y j (n) v j (n)
1
, v j ( n )
1 exp v j ( n )
y j ( n )
exp v j (n )
v j ( n )
v j ( n )
1 exp v j (n)2
v j (n) y j (n)[1 y j (n)]
1
f'
( )' 2
f
f
ex
ex
dx
倒傳遞演算法
• 是由「delta 法則」來定義:
鍵結值 學習率 區域 第 j個類神經元
修正量 參數 梯度函數 的輸入向量
w (n ) ( n )
y
(
n
)
ji
j
i
• 區域梯度函數 的計算是依據第 j 個類神經元是輸出層類神經元
或是隱藏層類神經元而不同:
一、如果第 j 個類神經元是輸出層的類神經元
j (n) e j (n) v j (n) d j (n) O j (n)O j (n)1 O j (n)
二、如果第 j 個類神經元是隱藏層的類神經元
j (n ) v j (n) k (n ) wkj (n) y j (n)1 y j (n) k (n) wkj (n)
k
k
XOR 問題
• 將這三個類神經元採用sigmoid 函數當作活化函數,當第
三個類神經元的輸出大於或等於0.5時(期望值是1),我們
將輸入向量歸成“”類,反之,當輸出小於0.5時(期望值
0),我們將輸入向量歸成“”類