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),我們將輸入向量歸成“”類