第三章 表情分類與辨識
3.1 小腦模型之理論背景
3.1.2 小腦模型記憶體映射方式
一維小腦模型控制器記憶體映射方式一般而言,每個輸入變數所劃分的狀態數 之多寡,跟CMAC 的學習效果有密切的關係。每個狀態數所分配到的記憶體有重疊
(overlap)的現象,此即為CMAC之一般化特性,對映記憶體個數越多收斂速度越快。
) 1
S( S(2) S(3) S(4) S(5) S(6) S(7) S(8)
W10
W9
W8
W7
W6
W5
W4
W3
W2
W1
圖25.一維小腦模型控制器之記憶體映射方式
表5. 記憶單元與索引指標間之對映關係表
W1 W2 W 3 W4 W 5 W 6 W 7 W 8 W 9 W 10 )
1 (
S 1 1 1 0 0 0 0 0 0 0
) 2 (
S 0 1 1 1 0 0 0 0 0 0
) 3 (
S 0 0 1 1 1 0 0 0 0 0
) 4 (
S 0 0 0 1 1 1 0 0 0 0
) 5 (
S 0 0 0 0 1 1 1 0 0 0
) 6 (
S 0 0 0 0 0 1 1 1 0 0
) 7 (
S 0 0 0 0 0 0 1 1 1 0
) 8 (
S 0 0 0 0 0 0 0 1 1 1
其中:i . W1,W2,…等為記憶體單元位址。
ii. S(1)、S(2)…等為參考狀態點。
iii. 每個狀態數有被分配到的記憶體單元其索引指標設為1,未被分配到的部份則索引指 標設為0。
3.1.3配置之記憶體的總數
memory_size=k+m−1 (26) k:參考狀態點的個數(狀態數)
m: 每個取樣狀態點所對映之記憶體單元的個數
舉例說明:若參考狀態點個數為8,參考狀態點所對映之記憶體單元的個數為3,其配 置記憶體總數為10。
3.1.4小腦模型數學表示法
小腦模型的記憶體儲存架構及學習輸出結果可以利用下述之數學方程式表 示之。
[ ]
s sN N s s
s
s cw
w w w c
c c
Y =
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
= M
2 1 ,
2 , 1
,, ... (27)
其中 N :記憶體的總數
Y :某一參考狀態s的輸出 s
c :為某一取樣狀態點的聯結向量,其中只有s m個1,其餘均為0。
3.1.5小腦模型學習演譯法
小腦模型是使用反覆學習來改變所指向之記憶體單元中的資料,以達到學習的目 的。假設小腦模型利用k 個參考狀態點當作訓練樣本,每學習完k個參考狀態點一 次,就稱為一個學習週期。當CMAC 尚未訓練完成時,對應於某一訓練樣本的CMAC 輸出值可能會和此樣本被期望的輸出值有所出入,於是將此樣本的期望輸出與CMAC 實際輸出的誤差平均分配回剛才資訊檢出的記憶體位置,以期望下次CMAC 能對這 個訓練樣本的輸出反應能更接近期望的輸出值,此即為CMAC 的學習過程。經由反 覆的樣本輸入,以改變記憶體的內容,經過數次的學習週期後,若能夠收斂到某一容 許的誤差範圍內,便完成整個學習的過程,其學習流程如圖26所示。
其學習模型可以用下列式子表示:
) (
1 )
( 1 )
( i
s i
s i
s w w
w = − +Δ − (28)
ˆ )
( 1 1 ()1
1 )
( 1
i s T s s s i
s c y c w
w− = m − − − − −
Δ α
(29)
其中s為參考狀態點, i 為學習週期,yˆs−1 為參考狀態點s−1的期望輸出值,
) (
1 1
ˆs 1 cTs wsi
y− − − − 為參考狀態點s−1時的輸出誤差, cs 1(yˆs 1 csT1ws(i)1) m − − − − −
α 為輸出誤差平
均,將輸出誤差平均修正到所對應的記憶體單元,α為學習率(learning rate),m為每 個參考狀態點所對映之記憶體單元的個數。
圖26. 小腦模型學習流程圖
3.1.6一維小腦模型學習範例與結果
題目:學習y= x+4。假設測試4個測試值,且ε 定0.5,學習率為0.5,
每個狀態對映3塊記憶體,初始weight為0。
ˆ )
( 1 1 ()1
1 )
( 1
i s T s s s i
s c y c w
w− = m − − − − −
Δ α
修正公式:學習過程:ws =ws−1+Δws−1
1. x=1,CMAC輸出得到0,標準答案是5 (第一次誤差調整) 8333
. 0 ) 0 5 3 (
5 . 0
1 = − =
Δw 分配給所對映之3塊記憶體。
0.8333 0.8333 0.8333 0 0 0
2. x=1.5,CMAC輸出得到1.6667,標準答案是5.5 (第二誤差調整) 6389
. 0 ) 6667 . 1 5 . 5 3 (
5 . 0
2 = − =
Δw 分配給所對映之3塊記憶體。
0.8333 1.4722 1.4722 0.6389 0 0 3. x=2,CMAC輸出得到2.1111,標準答案是6 (做第三次差調整)
6482 . 0 ) 1111 . 2 6 3 (
5 . 0
3 = − =
Δw 分配給所對映之3塊記憶體。
0.8333 1.4722 2.1204 1.2871 0.6482 0 4. x=2.5,CMAC輸出得到1.9353,標準答案是6.5 (做第四次誤差調整)
7608 . 0 ) 9353 . 1 5 . 6 3 (
5 . 0
4 = − =
Δw
0.8333 1.4722 2.1204 2.0479 1.409 0.7608
總誤差=5+3.8333+3.8889+4.5647 = 17.2869 誤差變化率=本次誤差-前一次誤差
若誤差變化率>ε ,則必須做下一次之學習(之後以此類推)