第三章 棘波分類系統架構實現
3.2 FCM 架構
FCM 單元架構中包含了六個子單元:pre-computation 單元、membership co-efficients updating 單元、center updating 單元、cost function computation 單元、FCM memory 單元以及 FCM 控制單元。每個單元的運作流程將於後續各小節中說明。
3.2.1 Pre-computation 單元
為了降低後續計算權重係數時的複雜度,pre-computation 單元將事先計算不 同權重係數間的共同因子,因此可將公式(8)改寫為:
𝑢𝑖,𝑛 = ‖𝐟𝑛 − 𝐯𝑖‖−2𝑃𝑛−1 (18) 其中
𝑃𝑛 = ∑ (1 ‖𝐟⁄ 𝑛− 𝐯𝑗‖2)
𝑐
𝑗=1
(19)
輸入 𝐟𝑛 以及質量中心點 𝐯1, … , 𝐯𝑐 ,計算權重係數時皆使用相同的 𝑃𝑛 。因此透過 pre-computation 單元事先計算出 𝑃𝑛 可降低於後續 membership coefficients updating 單元計算權重係數時的複雜度。根據公式(19) pre-computation 單元可分成兩個階
段來計算 𝑃𝑛 ,第一階段計算 ‖𝐟𝑛− 𝐯𝑗‖2 。第二階段則將前一階段所計算出的 ‖𝐟𝑛− 𝐯𝑗‖2 進行倒數運算,並將該值與 ∑𝑖−1𝑗=11 ‖𝐟⁄ 𝑛− 𝐯𝑗‖2進行累加運算。
第三章 棘波分類系統架構實現
3.2.2 Membership coefficients updating 單元
根據公式(18) membership coefficients updating 單元使用 pre-computation 單元 計算出來的 𝑃𝑛 來計算權重係數。給定一筆 𝐟𝑛,本單元計算出 𝑢𝑖,𝑛2 , i = 1, … , c 。本 單元電路亦被分作兩階段計算,第一階段計算 ‖𝐟𝑛− 𝐯𝑖‖2𝑃𝑛 ;第二階段將第一階 段計算完成後的結果進行倒數與平方運算獲得 𝑢𝑖,𝑛2 。
3.2.3 Center updating 單元
本單元逐步更新計算每個叢集的質量中心點,這最大的優點是在計算質量中 心點時不需要保存龐大的權重係數矩陣。定義公式(20),逐步更新計算對於每一 筆訓練向量 𝐟𝑘 , 𝑘 = 1, … , 𝑛 之第 𝑖 個叢集的質量中心點。
𝐯𝑖(𝑛) = (∑ 𝐟𝑘𝑢𝑖,𝑘2
𝑛
𝑘=1
) (∑ 𝑢𝑖,𝑘2
𝑛
𝑘=1
)
⁄ (20)
當 𝑛 = 𝑡 時, 𝐯𝑖(𝑛) 即與公式(9) 中目標計算出的質量中心點 𝐯𝑖 相同。
Center updating 單元根據公式(20) 來設計,其包含了一個乘法器、一個 cell 陣列與一個除法器。而 cell 陣列中分為兩組 cells:第一組 cell i 保存 ∑𝑛−1𝑘=1𝐟𝑘𝑢𝑖,𝑘2 累 加結果;第二組 cell i 則保存 ∑𝑛−1𝑘=1𝑢𝑖,𝑘2 累加結果。因此,cell 陣列中每一個 cell 內部實際上為累加器。最後,該陣列的輸出結果會交由除法器計算出 𝐯𝑖(𝑛) 。
3.2.4 Cost function computation 單元
如同 center updating 單元一般,cost function computation 單元逐步計算出 cost
function 𝐽 。定義 cost function 𝐽(𝑖, 𝑘) 為:
𝐽(𝑖, 𝑛) = ∑ ∑ 𝑢𝑗,𝑧2
𝑖
𝑗=1
‖𝐟𝑘− 𝐯𝑗‖2 (21)
𝑛
𝑘=1
本 電 路 接 收 來 自 membership coefficients updating 單 元 的 計 算 結 果 𝑢𝑖,𝑛2 與 ‖𝐟𝑛− 𝐯𝑖‖2 ,並計算出兩者的乘積 𝑢𝑖,𝑛2 ‖𝐟𝑛 − 𝐯𝑖‖2 。接著根據公式(21) 累加計算出 𝐽(𝑖, 𝑛) 。當 𝑖 = 𝑐 且 𝑛 = 𝑡 時, 𝐽(𝑖, 𝑛) 將與公式(7) 中目標計算出的 𝐽 值相同。因 此,當所有訓練向量都傳送完畢後本電路單元即會輸出完整的 cost function 𝐽 值。
第三章 棘波分類系統架構實現
3.2.5 FCM Memory 單元
此單元用來存放 FCM 各叢集的質量中心點,於 on-chip center memory 單元中 被分為兩個記憶體區塊(Memory Bank 1、Memory Bank 2)。Memory Bank 1 存放 現在 FCM 計算過程中被使用到的 𝐯1, … , 𝐯𝑐 。Memory Bank 2 則存放由 center updating 單元逐步更新計算出的 𝐯1, … , 𝐯𝑐 。
僅只有存放於 Memory Bank 1 的質量中心點會被 pre-computation 單元與
membership coefficients updating 單元所使用,用來計算出權重係數。而由 center
updating 單元所計算出新的質量中心點則會暫存於 Memory Bank 2 中。
特別注意的是,除非所有輸入的特徵向量 𝐟𝑛 , 𝑛 = 1, … 𝑡 都已計算完畢,否則
Memory Bank 2 中所存放被更新後的質量中心點將不會更新取代至 Memory Bank 1 中。
3.2.6 FCM 運作流程
為了能夠簡化說明 FCM,圖 3.10 為針對兩個叢集( 𝑐 = 2) 所設計的 FCM 電 路架構圖,該電路可將來源棘波所擷取到的特徵向量區分為兩個叢集。針對未來 可能需要支援更多的叢集數可輕易地透過增加 center updating 單元中 cell 數以及
Memory 單元中 memory banks 大小來進行延伸。
圖 3.10 FCM 電路架構( 𝑐 = 2 )
第三章 棘波分類系統架構實現
針對叢集數 𝑐 = 2 時,FCM 電路運作可被分為四個階段來進行。圖 3.10 說明 了 controller 與 FCM 電路所對應的狀態圖。表 3.1 說明了本電路於每個階段不同
Node 間所產生的對應訊號。表 3.1 中 8 個 Nodes (Nodes A-H) 所對應的位置標示 於圖 3.10 中。為了方便說明,表 3.1 僅舉例說明前兩筆特徵向量 (𝐟1, 𝐟2) 的運作流 程,其餘特徵向量的運作模式亦比照此方式運行。
表 3.1 針對前兩筆特徵向量 (𝐟1, 𝐟2) FCM 單元運作流程
State Node Name
A B C D E F G H
State 1 𝐯1 𝐟1 ╳ ╳ ╳ ╳ ╳ ╳
State 2 𝐯2 𝐟1 𝑃1 ╳ ╳ ╳ ╳ ╳
State 3 𝐯1 𝐟1 𝑃1 𝑢1,12 ╳ ╳ ╳ ╳
State 4 𝐯2 𝐟1 𝑃1 𝑢2,12 𝑢1,12 𝑢1,12 𝐟1 𝐯1(1) 𝐽(1,1) State 1 𝐯1 𝐟2 ╳ ╳ 𝑢2,12 𝑢2,11 𝐟1 𝐯2(1) 𝐽(2,1)
State 2 𝐯2 𝐟2 𝑃2 ╳ ╳ ╳ ╳ 𝐽(2,1)
State 3 𝐯1 𝐟2 𝑃2 𝑢1,22 ╳ ╳ ╳ 𝐽(2,1)
State 4 𝐯2 𝐟2 𝑃2 𝑢2,22 ∑2 𝑢1,𝑘2
𝑘=1 ∑2 𝑢𝑖,𝑘2
𝑘=1 𝐟𝑘 𝐯1(2) 𝐽(1,2)
圖 3.11 FCM 單元運作流程圖
第三章 棘波分類系統架構實現
FCM 電路中,每筆由 GHA 傳送來的特徵向量 𝐟𝑛 將於 Node B 處停留 4 個 stages。而 Node A 為每筆從 Memory 單元獲得的質量中心點 𝐯𝑖 。
表 3.1 中給定一筆特徵向量 𝐟𝑛 ,state 1 與 state 2 經由 pre-computation 單元計 算出 𝑃1 (Node C 處),接著 state 3 與 state 4 membership coefficients updating 單元分 別計算出權重係數 𝑢1,12 , 𝑢2,12 ,並於圖 3.10 中 Node D 處輸出。
此外根據由 state 3 中獲得的 𝑢1,12 ,center updating 單元與 cost function com-putation 單元將會分別於 Node G 與 H 逐步計算出新的質量中心點 𝐯1(1) 與 𝐽(1,1) 。 最後 state 4 中獲得的 𝑢2,12 將會於計算 𝐟2 時之 state 1 計算出 𝐯2(1) 與 𝐽(2,1) 。此外,
𝑃2 亦會於該 state 中進行計算。而後續針對 𝐟2 計算時 state 2-4 之運作流程與計算 𝐟1 時相同。詳細的運作模式流程圖可見圖 3.11。