• 沒有找到結果。

第二章 演算法介紹

第三節 棘波分類演算法

棘波分類單元通常會包含學習以及分類兩部分,學習的部分會使用非監督

式學習演算法,使用非監督式學習原因是因為如果要達到即時性的分類,那我

們沒辦法預先知道所偵測到的棘波的特性如何,所以不知道要分類的答案是什

麼,沒有預測目標(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 更新中心點示意圖

相關文件