類神經網路簡介

Download Report

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 kC
其中集合 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 jc
 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),我們將輸入向量歸成“”類