第二章 演算法介紹
第三節 棘波分類演算法
棘波分類單元通常會包含學習以及分類兩部分,學習的部分會使用非監督
式學習演算法,使用非監督式學習原因是因為如果要達到即時性的分類,那我
們沒辦法預先知道所偵測到的棘波的特性如何,所以不知道要分類的答案是什
麼,沒有預測目標(label),因此實用上沒有辦法使用監督式學習。本論文所使用
的非監督式學習演算法是競爭性學習演算法搭配Nearest Neighbor(NN)
classifier,為棘波的特徵值資料做學習以及分類,在學習階段我們使用競爭性學 習法則透過輸入進來的特徵值學習出每個類別的中心點,當學習完成後,把每
個類別的中心點固定下來,為之後輸入的特徵值資料做分類,產生分類結果。
競爭性學習法則學習的主要策略為贏者全拿(Winner Take All),只有透過式
2.7判斷為勝利者(Winner)的中心點才會透過學習規則執行更新。假設勝利者
由上述整理出我們尋找勝利者(Winner)的過程定義如下列式子:
Winner 𝑘 = 𝑎𝑟𝑔𝑚𝑖𝑛1≤𝑙≤𝐾(𝑋(𝑛) − 𝐶𝑙(𝑛))2 (2.7)
在式2.7中,我們所採用的距離公式為歐基里德距離,其中為了運算方便所 以把開根號的部份去除掉。透過計算特徵值資料𝑋(𝑛)和每一類中心點𝐶𝑙(𝑛), 𝑙 =
1 … 𝐾的距離。找到距離特徵值資料最近的中心點,即為勝利者𝑘,當找到勝利
者之後,下一個階段就為勝利的中心點(勝利者)做更新,其他非勝利的中心點則
保持原樣,更新的規則定義如下式:
{ 𝐶𝑙(𝑛 + 1) = 𝐶𝑙(𝑛), 𝑤ℎ𝑒𝑛 𝑙 ≠ 𝑘
𝐶𝑙(𝑛 + 1) = 𝐶𝑙(𝑛) + 𝜂(𝑋(𝑛) − 𝐶𝑙(𝑛)), 𝑤ℎ𝑒𝑛 𝑙 = 𝑘 (2.8) 在式2.8中,當找到勝利的中心點𝐶𝑙(𝑛), l = k,我們就為該中心點執行更新運
算,並得到新的中心點𝐶𝑙(𝑛 + 1), l = k,其他非勝利的中心點則保持原樣不變。
其中更新運算中的𝜂為學習參數(Learning Rate),值得一提的是𝜂學習參數通常為
小於1的浮點數,因此需要做浮點數運算,但因為硬體實作上要處理浮點數運算
比較複雜,因此在第三章會說明如何以簡單且有效的方法,透過此方法來避免
使用浮點數運算。透過重複步驟式2.7以及式2.8,可以學習出每一類相似特性的
特徵值的中心點,在每次學習過程中,勝利的中心點,透過更新規則更新完
後,都會往用來學習的特徵值資料,做移動靠近,示意圖如下:
因此當透過競爭性學習演算法學習到一定程度之後,每類的中心點就會移
動到具有相似特性的特徵值群組中,成為那個群組的中心點。得到每群的中心
點之後,我們就能為之後輸入進來的特徵值,同樣透過歐基里德距離判斷距離
最近的中心點,將特徵值資料歸類為屬於該中心點的類別。
由式2.7及式2.8中,可以發現競爭性學習演算法的運算並不複雜,而且每次
輸入的學習資料也不需要做儲存,讓之後的疊代過程做使用,因此不需要額外
的記憶體空間去儲存學習資料,且在之後的實驗數據會顯示競爭性學習法則,
應用在棘波分類系統中,具有良好的分類成功率。
圖 2.2 更新中心點示意圖