• 沒有找到結果。

第三章 棘波分類系統架構

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 19 其中

𝑃𝑛 ∑ (1 ‖ ⁄ 𝑛− 𝐯𝑗2)

𝑐

𝑗=1

20

輸入 𝑛 以及質量中心點 𝐯1 … 𝐯𝑐 ,計算權重係數時皆使用相同的 𝑃𝑛 ,因此透過 pre-computation 單元事先計算出 𝑃𝑛 可降低於後續 membership coefficients updating

單元計算權重係數時的複雜度。根據公式(20) pre-computation 單元可分成兩個階 段來計算 𝑃𝑛 ,第一階段計算 ‖ 𝑛− 𝐯𝑗2 ,第二階段則將前一階段所計算出的 ‖ 𝑛− 𝐯𝑗2 進行倒數運算,並將該值與 ∑𝑖−1𝑗=11 ‖ ⁄ 𝑛− 𝐯𝑗2 進行累加運算。

3.2.2 Membership coefficients updating 單元

根據公式(19) membership coefficients updating 單元使用 pre-computation 單元 計算出來的 𝑃𝑛 來計算權重係數。給定一筆 𝑛 ,本單元計算出 𝑢𝑖 𝑛2 i 1 … c 。 本單元電路亦被分作兩個階段計算,第一階段計算 ‖ 𝑛− 𝐯𝑖2𝑃𝑛 ,第二階段將第 一階段計算完成後的結果進行倒數與平方運算獲得 𝑢𝑖 𝑛2

3.2.3 Center updating 單元

本單元逐步更新計算每個叢集的質量中心點,這最大的優點是在計算質量中 心點時不需要保存龐大的權重係數矩陣。定義公式(21),逐步更新計算對於每一 筆訓練向量 𝑘 𝑘 1 … 𝑛 之第 𝑖 個叢集的質量中心點。

𝐯𝑖 𝑛 (∑ 𝑘𝑢𝑖 𝑘2

𝑛

𝑘=1

) (∑ 𝑢𝑖 𝑘2

𝑛

𝑘=1

)

⁄ 21

當 𝑛 𝑡 時, 𝐯𝑖 𝑛 即與公式(9) 中目標計算出的質量中心點 𝐯𝑖 相同。

Center updating 單元根據公式(21) 來設計,其包含了一個乘法器、一個 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 22

𝑛

𝑘=1

本電路將會接收來自 membership coefficients updating 單元的計算結果 𝑢𝑖 𝑛2 與 ‖ 𝑛− 𝐯𝑖2 ,並計算出兩者的乘積 𝑢𝑖 𝑛2𝑛 − 𝐯𝑖2 。接著根據公式(22) 累加計算出 𝐽 𝑖 𝑛 。當 𝑖 𝑐 且 𝑛 𝑡 時, 𝐽 𝑖 𝑛 將與公式(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 中。

第三章 棘波分類系統架構

針對叢集數 𝑐 2 時,FCM 電路運作可被分為四個階段來進行,圖 3.9 說明 了 controller 與 FCM 電路所對應的狀態圖。表 3.1 說明了本電路於每個階段不同

Node 間所產生的對應訊號。表 3.1 中 8 個 Nodes (Nodes A-H) 所對應的位置標示 於圖 3.8 中,為了說明方便,表 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 222 𝑢1 𝑘2

𝑘=12 𝑢𝑖 𝑘2

𝑘=1 𝑘 𝐯1 2 𝐽 1 2

第三章 棘波分類系統架構

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.8 中 Node D 處輸出。此外根據由 state 3 中獲得的 𝑢1 12 ,center updating 單元與 cost function computation 單元將會分別於 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.9。

相關文件