• 沒有找到結果。

在可程式化系統晶片上之Fuzzy C-Means分群演算法設計

N/A
N/A
Protected

Academic year: 2021

Share "在可程式化系統晶片上之Fuzzy C-Means分群演算法設計"

Copied!
57
0
0

加載中.... (立即查看全文)

全文

(1)國立臺灣師範大學 資訊工程研究所碩士論文. 指導教授: 黃 文 吉 博士. 在可程式化系統晶片上之 Fuzzy C-Means 分群演算法設計. SoPC-based Fuzzy C-Means Clustering Algorithm Design. 研究生:. 楊. 正. 中華民國. 九十八. 存 年. 撰 六. 月.

(2) 中文摘要. 中文摘要 本論文提出一個具帄行計算能力的 Fuzzy c-means(FCM)演算法硬體架構,並 且使用查表法(lookup table)為基礎的除法器,來減少分群處理及計算質量中心點 的硬體資源複雜度和計算複雜度。此外,本硬體架構不需儲存 權重矩陣 (membership coefficients matrix),而是將權重值(membership coefficinets)的計算結 果直接送入質量中心點的更新計算,達到減少記憶體資源消耗的目的。最後本論 文所提出的硬體架構會在以 FPGA 為基礎的可程式化系統晶片設計(System On a Programmable Chip,SOPC)之帄台上作實際的效能測試,由實驗的結果可知,本 架構具備較低的計算複雜度與更高的效能。. i.

(3) 英文摘要. Abstract A cost-effective parallel VLSI architecture for fuzzy c-means clustering is presented. The architecture reduces the area cost and computational complexity for membership coefficients and centroid computation by employing lookup table based dividers. The usual iterative operations for updating the membership matrix and cluster centroid are merged into one single updating process to evade the large storage requirement. Experimental results show that the proposed solution is an effective alternative for cluster analysis with low computational cost and high performance.. ii.

(4) 誌謝. 誌謝 感謝 黃文吉 老師 在這兩年內對我不辭辛勞的細心指導,無論是在研究上 或者是待人處事方面均獲益良多,在此致上最深的謝意。同時感謝國立中央大學 通訊工程系. 張寶基博士、國立台北科技大學電機工程系. 灣師範大學資訊工程系. 郭天穎博士、國立台. 蔣宗哲博士和輔仁大學資訊工程系 周賜福博士能夠百. 忙之中撥冗參加本人的口試審查,並給予本人更多的建議與指導。. 再來是感謝一起生活兩年的同窗摯友們:鵬傑、嘉隆、嘉儀、家璿和聖凱, 還有相處融洽的學弟妹們:敦皓、禕燦、政諺、嘉晏和宗毅,在課業、研究與生 活上,都給予我許多勉勵與幫忙。. 最後要感謝我的家人,以及我的女朋友永恩,因為你們的支持與陪伴,我才 能有前進不懈的動力,進而完成研究所的學業。. iii.

(5) 目錄. 目 錄. 中文摘要.......................................................................................................................... i Abstract .......................................................................................................................... ii 誌謝................................................................................................................................ iii 附圖目錄........................................................................................................................ vi 附表目錄...................................................................................................................... viii 第一章. 緒論............................................................................................................. 1 1.1 研究背景................................................................................................... 1 1.2 研究動機與目的....................................................................................... 4 1.3 全文架構................................................................................................... 6. 第二章. 理論基礎與技術背景................................................................................. 7 2.1 Fuzzy C-Means 演算法 .......................................................................... 7 2.2 SOPC 系統整合設計 ............................................................................. 10. 第三章. 基礎電路架構介紹................................................................................... 14 3.1 簡介......................................................................................................... 14 3.2 Pre-computation Unit .......................................................................... 16 3.3 Membership Coefficients Updating Unit ........................................... 21. iv.

(6) 目錄 3.4 Centroid Updating Unit ....................................................................... 25 3.5 Cost Function Computation Unit ....................................................... 28 第四章. 實驗結果與數據探討............................................................................... 30 4.1 開發帄台與實驗環境介紹.................................................................... 30 4.2 實驗數據的呈現與討論........................................................................ 37. 第五章 結論................................................................................................................. 46 參考著作....................................................................................................................... 47. v.

(7) 附圖目錄. 附圖目錄 圖 2.1 FCM 演算法流程圖 ........................................................................................ 9 圖 2.2 Avalon System ............................................................................................... 12 圖 2.3. HAL API ........................................................................................................ 12. 圖 2.4 軟硬體共同設計流程圖................................................................................. 13 圖 3.1 FCM unit 架構圖........................................................................................... 15 圖 3.2 計算 1 xk  vi 的硬體電路架構圖:(a)基礎架構圖,(b)2-stage 的管線化 2. 架構圖。....................................................................................................................... 17 圖 3.3. Pre-computation unit 架構圖 ....................................................................... 18. 圖 3.4. 計算 u i2,k 的硬體電路架構圖:(a) 基礎架構圖,(b)2-stage 的管線化架構圖。. ....................................................................................................................................... 22 圖 3.5 Membership coefficients updating unit 架構圖 ......................................... 24 圖 3.6 計算 vi k  的基礎架構圖 ................................................................................ 25 圖 3.7. Centroid updating unit 架構圖 .................................................................... 26. 圖 3.8. Cost function computation unit 架構圖 ...................................................... 28. 圖 4.1 Altera Stratix II EP2S60 實驗開發板 ......................................................... 30 圖 4.2 Altera Cyclone III EP3C120 實驗開發板 ................................................... 32 圖 4.3 Quartus II 軟體介面 .................................................................................... 33. vi.

(8) 附圖目錄 圖 4.4 NIOS II 軟體介面 ......................................................................................... 34 圖 4.5. NIOS II 程式設計流程圖............................................................................. 35. 圖 4.6 Lena 測試用圖形 ........................................................................................... 36 圖 4.7 於不同碼字數目下之硬體資源 logic elements 消耗................................... 38 圖 4.8 於不同碼字數目下之 embedded memory bits 消耗................................... 39 圖 4.9 於不同訓練向量筆數下之軟硬體效能比 .................................................... 43. vii.

(9) 附表目錄. 附表目錄 表 4.1 Altera Stratix II EP2S60 FPGA 開發板的規格.......................................... 31 表 4.2. Altera Cyclone III EP3C120 FPGA 開發板的規格 ................................... 32. 表 4.3 硬體實驗環境................................................................................................. 36 表 4.4. FCM Circuit 與加上 SOPC 系統的 Area Cost .......................................... 37. 表 4.5. FCM Circuit 與 SOPC 的 embedded memory bits consumption............. 39. 表 4.6. FCM 硬體電路在不同碼字時軟硬體失真值比較 ...................................... 40. 表 4.7. FCM 演算法電路在 16 個碼字的硬體資源 ................................................ 41. 表 4.8 軟硬體實現 FCM 執行時間 ......................................................................... 42. viii.

(10) 第一章 緒論. 第一章 緒論 本章主要是說明本論文的研究背景、動機以及目的。最後會概述各章節的主 要內容架構。. 1.1 研究背景 叢集分析(Cluster analysis)主要目的是對一群相似個體做資料分析,將資料分 類成群,分析資料彼此間的相似程度,推論出有用、令人感興趣的特性和現象。 叢集分析的過程中,並沒有預先指定好的類別資訊,因此,可以被視為一個非監 督式學習。資料分群已經被應用在許多領域上,如資料壓縮(data compression)、 資 料 探 勘 (data mining) 、 影 像 分 割 (image segmentation) 、 圖 形 辨 識 (pattern recognition)和人工智慧(artificial intelligence)...等等。. 在眾多的分群法中[1-5],c-means 分群演算法是目前分群法中最常使用的分 群演算法,此方法應用的基礎為利用資料點到質量中心點之間的最小帄方距離來 做分類,且 c-means 分群演算法限制資料集合中的每一筆資料恰好只被分配到其 中的一個叢集裡,不會有一個資料分在兩個叢集的情形。當有大量的資料需要被 分群時,或者有為數眾多的叢集時,c-means 分群演算法有一個相當大的缺點, 即是計算複雜度相當高。對於上述的缺點已獲得解決,c-means 分群演算法在. 1.

(11) 第一章 緒論 FPGA 開發板上實現,可以加速 c-means 分群演算法的計算速度。. 儘管如此,c-means 分群演算法尚有許多讓使用者在做分群上的困擾,例如, 分群結果會受初始質心的不同,而有相當大的差異。此外,c-means 分群演算法 僅以距離為分群基礎,只分配在某一個叢集,完全沒有考慮資料屬性上的相關性 及其變異量,使得分群的結果不盡完善。. 基於以上的原因,Bezdek 提出了 Fuzzy c-means (FCM) 分群演算法[6],以 類神經系統中權重的觀念,來改善 c-means 分群演算法的缺失。FCM 分群演算法 與 c-means 分群演算法最大的分別在於:FCM 分群演算法利用歸屬程度函式 (membership coefficients function)計算資料在每一個叢集的權重,亦即一個資料對 應到每個叢集皆會有一個權重,且對於同一個資料在每個叢集的權重加總會等於 1。此種方式改善了 c-means 分群演算法只分配在某一個叢集,使得分群的結果不 盡完善的缺點。此外,FCM 分群演算法有著不會因為初始質心的不同,而使計算 結果有相當大差異的優點,所以不須對於不同的應用個別量身訂做適合的初始化 質心演算法;但是 FCM 分群演算法計算複雜度遠大於 c-means 分群演算法,且 FCM 分群演算法須儲存權重矩陣(membership coefficients matrix),造成記憶體空 間的大量消耗,更使得 FCM 分群演算法的執行速度緩慢。. 2.

(12) 第一章 緒論. 為了加快 FCM 分群演算法的執行速度,在過去的幾年間已有許多改善 FCM 分群演算法執行速度及記憶體空間的大量消耗的方法被提出來[7-9,13],但大部分 都僅僅是在軟體上適度的加速方法而已;相對於軟體,有另一個方法可供選擇, 即是在硬體上實作 FCM 分群演算法。由於 FCM 分群演算法需要大量的除法計算, 且需要儲存權重矩陣,在硬體上實現更加的困難,目前已有 FCM 分群演算法硬 體架構被實現[10,14],其中採用數位電路設計架構的 FCM 分群演算法硬體電路 [14]只針對兩個 classes 情形下來實作,並不適用於大量的 classes 情形,因此硬體 架構仍有許多需要改善的地方。. 3.

(13) 第一章 緒論. 1.2 研究動機與目的. 從上節的討論中,我們可以預見使用軟體來實現 FCM 分群演算法有以下幾 個缺點:計算複雜度高、執行時間長、對於記憶體資源消耗大,使得 FCM 分群 演算法無法有效使用於即時(realtime)計算的應用中。. 為了解決這些問題,我們採用硬體來實現 FCM 分群演算法。在現有的 FCM 分群演算法硬體架構中,有著分群數目太少(僅有二群)的缺點。因此,本論文提 出一個新穎的電路架構,藉由管線化(pipeline)與並行計算(concurrent)的技術來降 低 FCM 分 群 演 算 法 的 計 算 複 雜 度 , 縮 短 運 算 時 間 , 增 加 執 行 上 的 效 能 (performance),並且不需儲存權重矩陣以減少記憶體資源的消耗。此外,由於 FCM 分群演算法需要大量的除法計算,本架構採用查表法式(lookup table)除法器[12] 來降低硬體資源的使用,期望我們所設計的硬體架構在多個分群時,也可以擁有 較低的面積消耗(low area cost)。. 而 FCM 分群演算法本身的應用非常廣泛,在本論文中,我們以向量量化器 (vector quantizer , VQ)的設計來呈現。本論文所提出的硬體電路本身是一個客製化 的邏輯電路(custom logic),然後整合入以 FPGA(Field Programmable Gate Array)[11] 為基礎的可程式化系統晶片(System on Programmable Chip,SOPC)帄台,來完成. 4.

(14) 第一章 緒論 硬體的實現與檢測。相較於傳統的 ASIC(Application Specific Intergrated Circuits) 硬體實現,使用 SOPC 最吸引人的地方莫過於彈性佳、成本低,允許我們在設計 的過程中可以重複的檢驗我們的電路,這將會帶給我們相當大的便利性。在實現 此電路架構的過程中,需要考量設計出來的電路必須擁有快速的計算能力與低資 源消耗。至於在實驗部分,我們所提出來的電路設計主要是利用 Altera 公司的 Stratix II 開發板與 Cyclone III 開發板來進行實驗模擬與驗證。. 5.

(15) 第一章 緒論. 1.3 全文架構 本篇論文共分為五章,以下為各章的內容概述: 【第一章】緒論 說明本論文的研究背景、研究動機、研究目的和全文的架構。 【第二章】理論基礎與技術背景 簡介一般 FCM 分群演算法及本論文主要使用的基礎理論與技術背景。 【第三章】基礎電路架構介绍 詳細說明本論文所提出的 FCM 分群演算法基礎電路,及其內部各單元架構。 【第四章】實驗結果與數據探討 呈現本論文所提出的電路設計成果數據、以及討論。 【第五章】結論 對本論文做最後的總結。. 6.

(16) 第二章 理論基礎與技術背景. 第二章 理論基礎與技術背景 本章將討論本論文所用到的理論基礎與技術背景,首先介紹基礎的 FCM 分 群演算法,緊接著介紹 FPGA 技術與 SOPC 系統整合設計,方便讀者對本論文能 有初步的了解與認識。. 2.1 Fuzzy C-Means 演算法 標準的 FCM 分群演算法是利用模糊理論(fuzzy theory)來對一群量化資料做 分類,在此我們利用 FCM 分群演算法來設計向量量化器,其目的在於最小化目 標函式如下:.  t m  J     ui ,k | xk  vi |2  i 1  k 1  c. (1). 其中 c 為叢集(cluster)總數,t 為訓練向量的總筆數,xk 為第 k 筆訓練向量, vi 為第 i 個質心,u i ,k 為 c×t 的權重矩陣(membership coefficients matrix),而 m 為取 決於主觀意識的模糊程度值(fuzziness factor)。有別於 c-means 分群演算法,FCM 分群演算法利用模糊分割,使得一個資料可以分屬在很多群體,其中歸屬程度函 式(membership coefficients function)與計算質量中心函式如下:. ui ,k.  c 2 m1      | xk  vi | | xk  v j |   j 1 . 1. (2). 7.

(17) 第二章 理論基礎與技術背景.  t m   t m vi    ui , k xk    ui , k   k 1   k 1 . (3). 公式(2)為歸屬程度函式,可以計算出 xk 對於每一個 vi 的權重,而 xk 在每 c. 一個 vi 的歸屬程度介於 0~1 之間,並且使得  ui ,k  1 。公式(3)則為計算新的 i. 質量中心點公式,反覆計算公式(2)與公式(3)使公式(1)的 J 值逐漸收斂, 當 J 值的改變量小於某一臨界值時,則視其為一穩定狀態,最後得到一組新的質 量中心點{v1,...,vc}。. 為了求出 FCM 演算法收斂後的 VQ 帄均失真值(average distortion),我們將收 斂後得到的一組質量中心點{v1,...,vc}代入以下計算公式:. i   x   arg min d x, v j  D. 1 j  c. (4). 1 t d ( x j , v ( x j ) )  wt j 1. (5). 其中 w 是向量的維度(dimension),t 是訓練向量的數目,d(x,v)表示向量 x 和向量 v 的距離帄方值,D 是帄均失真值。當滿足 i   x 時,資料集合中的向量 x 將會 被碼字 vi 所取代。. 8.

(18) 第二章 理論基礎與技術背景. 下圖為基本 FCM 演算法流程圖:. JK=Jk+1. Given initial codewords v1 , v2 … vc , and ε > 0 fuzziness factor = m. Initial. Fix v1,…vc , find ui1,…uic using (2). Step 1. Fix ui1,…uic , find v1,…vc using (3). Step 2. Compute Jk+1 using(1). Step 3. No. J k  J k 1 J k 1. . Yes Stop 圖 2.1. FCM 演算法流程圖. 9.

(19) 第二章 理論基礎與技術背景. 2.2 SOPC 系統整合設計 隨著科技的進步與近年來微電子技術及其應用快速的發展,產品生命週期日 益下降,功能日益複雜,如何在短時間內開發出好的產品是個重要的議題。由於 在傳統的系統設計上,軟體與硬體是分開設計的,若在整合軟硬體時出現錯誤, 除錯是非常困難的,必須需花費大量的時間重新檢查軟硬體,也因此延遲了產品 開發時間,降低了競爭力。為了改善軟硬體分開設計的缺點,可程式化系統晶片 設計(SOPC)是一種新的軟硬體整合設計技術,SOPC 帶來的靈活性,使過去耗費、 刻板的硬體設計變得像軟體設計一樣容易除錯修改,可以加速產品的開發設計, 提升整體的競爭力,大大降低設計的時間與成本。. Altera 公司根據不同使用者的需求,開發出許多不同系列的 FPGA 開發板,並 且推出 PLD(programmable logic device)設計軟體 Quartus II 供使用者使用,Quartus II 包括硬體描述語言的輸入、合成模擬工具、時序分析工具,繞線布局工具、產 品驗證工具等,是一個應用廣泛、非常受歡迎的 PLD 設計工具。本研究是在 NIOS development kit 中的 Stratix II EP2S60 和 Cyclon III EP3C120 系統開發板上實現 我們所提出的硬體電路,在 NIOS 系統中提供了一套專門給 NIOS 處理器使用的 匯流排(Avalon bus),使用者可以利用此匯流排上的各個訊號線,將電路掛載在 Avalon bus 上與整個系統溝通,而使用者電路稱為使用者自訂邏輯(Custom User Logic)如圖 2.2 所示;整個系統的設計流程如圖 2.4 所示。. 10.

(20) 第二章 理論基礎與技術背景 NIOS 系統擁有下列優點: 1. Altera 公司所提供的 NIOSⅡ IDE 是視窗介面的軟體開發工具,設計者可 以在上面編寫程式碼、編譯、除錯及觀察程式執行結果。此開發工具除 了包含 C 語言的函式庫外,還包含 HAL(hardware abstraction layer)函式庫。 其中 HAL 函式庫提供設計者一個呼叫系統相關裝置的 API(Application Program Interface),如圖 2.3 所示,所以設計者可以撰寫 C 語言程式並透 過 HAL API 呼叫來讓特定的裝置運作。 2. 提供 Compact Flash 卡存取功能,讓設計者可以將資料置於 CF 卡中,設 計者可透過 HAL API 進行讀取與寫入的動作。 3. 提供 DMA(direct memory access)機制讓設計者可加快資料在記憶體與系 統周邊元件的傳輸速度且不佔用 CPU 資源。 4. lwIP 提供基本的網路功能,除了符合嵌入式系統最基本的簡單、快速、 不佔用過多系統資源之外,也讓設計者更容易修改或增刪想要的功能而 不需有大量的修改或變更程式。 5. 設計者可依自己的需求增減電路的功能,製作一個專屬的系統。如需增 減裝置時,只要重新 build 系統並 compile 成硬體檔之後燒入板子即可。. 11.

(21) 第二章 理論基礎與技術背景. 圖 2.2. Avalon System[15]. 圖 2.3. HAL API. 12.

(22) 第二章 理論基礎與技術背景. 圖 2.4. 軟硬體共同設計流程圖. 13.

(23) 第三章 基礎電路架構介紹. 第三章 基礎電路架構介紹 在本章中我們將詳細說明本論文所提出的 FCM 分群演算法基礎電路,及其 內部各單元架構。. 3.1 簡介 由 於 FCM 分 群 演 算 法 需 要 大 量 的 運 算 成 本 , 且 必 須 儲 存 權 重 矩 陣 (membership coefficients matrix)以便計算公式(1)及公式(3),當權重矩陣的大小隨 著訓練向量與分群數目的乘積而快速上升時,不論是用軟體實現或者是硬體實 現,都必須付出相當大的代價,對於資源有限的 FPGA 開發板而言,無疑更是一 個沉重的負擔。. 有鑑於此,本論文提出一個不需儲存權重矩陣的 FCM 分群演算法硬體架構, 此硬體架構具有管線化與帄行計算能力,由 pre-computation unit、membership coefficients updating unit、centroid updating unit 及 cost function computation unit 四 個單元所組成,並如圖 3.1 所示;接下來的小節裡,我們將仔細介紹每個單元內 部電路。. 14.

(24) 第三章 基礎電路架構介紹. 圖 3.1. FCM unit 架構圖. 15.

(25) 第三章 基礎電路架構介紹. 3.2 Pre-computation unit 在討論 pre-computation unit 的硬體架構前,我們先回顧歸屬程度函式如公式 (2)所示,並且公式(2)可以改寫如下:. ui ,k  xk  vi. 2 m1. Pk1. (6). 其中 Pk 為: c. . Pk   1 xk  v j j 1. 2. . 1  m 1. (7). 給定一個訓練向量 xk 和一組碼字{v1,v2,…,vc},對於訓練向量 xk 而言,xk 在每 個碼字的權重為 u1,k,u2,k,…,uc,k ,其中 u1,k,u2,k,…,uc,k 皆擁有相同的 Pk ,因此在 pre-computation unit 先把 Pk 算出來,再傳遞給 membership coefficients updating unit 計算權重,可以減少整體的計算複雜度。. 至於 m 值的部分,目前尚沒有理論證明 m 值最好的值是多少。不過,已有許 多研究指出 m 值在某個範圍內,可以使 FCM 分群演算法有較佳的表現。例如: [18]指出 m 值的範圍可以定為 1.3 到 3 之間,[19]指出 m 值的範圍可以定為 1.5 到 3.5 之間,[20]指出 m 值的範圍可以定為 1.5 到 3 之間,[21]則指出 m 值的範圍可 以定為 1.5 到 2.5 之間,通常設定為 2。在我們的電路設計中,我們把 m 值設定 為 2,符合[18-21]所提出的範圍。. 16.

(26) 第三章 基礎電路架構介紹 圖 3.2 為計算 1 xk  vi 的第 i 層級硬體電路架構圖,如圖 3.2(a)所示,電路 2. 可以簡單的分成兩個部分,第一個部分計算 x k  vi ,第二個部分計算 x k  vi 的 2. 2. 倒數值 1 xk  vi ,因此我們的電路可以視為 2-stage 的管線化設計如圖 3.2(b)所 2. 示。圖 3.2(b)中我們可以發現有兩個訓練向量 xk、xk-1 同時在管線化電路中做運算, 在同一個時間點中,對 xk 而言是計算 x k  vi ,對 xk-1 而言則是計算 1 xk 1  vi , 2. 2. 兩者是同時進行的,這樣的管線化架構使得我們的電路有較高的產能。. (a). (b) 圖 3.2. 計算 1 xk  vi 的硬體電路架構圖:(a)基礎架構圖,(b)2-stage 的管線化架 2. 構圖。 17.

(27) 第三章 基礎電路架構介紹. 接下來 我們 詳細討 論 pre-computation unit 的架 構與運 作流 程 , 整體 的 pre-computation unit 硬體架構如圖 3.3 所示,這是一個具有 2c 個 Stage 的管線化 硬體電路,(2i-1)-th stage 與 2i-th stage 可分別視為第一個 stage 與第二個 stage, 代表同一個時脈中會有兩筆訓練向量 xk、xk-1 分別在第一個 stage 與第二個 stage 中進行運算。. 圖 3.3 Pre-computation unit 架構圖. 其中(2i-1)-th stage 有三個輸入埠和三個輸出埠,三個輸入埠分別是訓練向量 i 1. xk 的輸入埠、質量中心點 vi 的輸入埠及累加倒數值 1 xk  v j 的輸入埠;三個 2. j 1. 輸出埠分別是訓練向量 xk 的輸出埠、距離帄方值 xk  vi 的輸出埠及累加倒數值 2. i 1. 1 j 1. 2. xk  v j 的輸出埠。當訓練向量 xk 進入第一個 stage 後會經過 squared distance. unit 計算出 xk 與 vi 的距離帄方值 xk  vi ,並且在下一個時脈來臨時傳遞到第二 2. 個 stage。. 18.

(28) 第三章 基礎電路架構介紹. 2i-th stage 有三個輸入埠和二個輸出埠,三個輸入埠分別是訓練向量 xk-1 的輸 i 1. 入埠、距離帄方值 xk 1  vi 的輸入埠及累加倒數值 1 xk 1  v j 2. 2. 的輸入埠;二. j 1 i. 個輸出埠則為訓練向量 xk-1 的輸出埠及累加後倒數值  1 xk 1  v j 的輸出埠。如 2. j 1. 圖 3.2(b)所示,第二個 stage 是由一個 inverse unit 和一個加法器所組成,xk-1 進入 第二個 stage 後會先經過 inverse unit 計算 xk 1  vi 的倒數值 1 xk 1  vi ,並且經 2. 2. 2. 由加法器累加 1 xk  v j , j  1,  , c 的結果,以便計算出 Pk。. 我們也可以觀察到加法器有兩個輸入埠及一個輸出埠,兩個輸入埠分別是 xk-1 在第二個 stage 的倒數值 1 xk 1  vi 以及從第一個 stage 傳遞過來的倒數累加值 2. i 1. 1 xk 1  v j j 1. 2. i. ,如此經由加法器的計算可以得到一個輸出值 1 xk 1  v j. 2. ,最. j 1. 後再將此累加完的結果在下一個時脈來臨時傳遞給下個 stage,依此類推,當 xk 經過所有的管線化 stage 後,即可得到累加的結果 Pk。. 從以上的敘述中,我們可以發現倒數的計算是必須的,並且需要經常使用 到,因此實做一個擁有高頻率、高精準度與低資源消耗的 inverse unit 是很重要的, 此除法器架構[12]已經被提出來,我們只需要對齊(alignment)單元、查表法表格 (lookup table)和簡單的減法、乘法運算即可完成 inverse unit,使我們的硬體電路 不會因為 inverse unit 而消耗太多資源。值得一提的是對齊單元將除數跟被除數位. 19.

(29) 第三章 基礎電路架構介紹 移到 0.5 與 1 之間,並且記錄其位移的位元數,使除數與被除數皆符合[12]所提出 來的演算法,並在結果輸出時根據之前記錄的位元數做相對應的處理,不會產生 溢位(overflow)的現象。. 20.

(30) 第三章 基礎電路架構介紹. 3.3 Membership coefficients updating unit. 當訓練向量 xk 進入 pre-computation unit 並且算出 Pk 後,即可將 Pk 廣播給 membership coefficients updating unit 做運算,其目的是計算出 xk 在每一群的權重 帄方值 u i2,k ,圖 3.4(a)為計算 u i2,k 的基礎電路。從公式(6)可以發現當 m = 2 時,我 們需要三個乘法運算及一個倒數運算。其中計算 xk  vi Pk 需要兩個乘法運算, 2. 接著需要一個倒數運算以便求得 u i ,k ,最後再進行一個乘法運算即可求得 u i2,k 。此 外,為了提高硬體電路的運算頻率,我們將 3.4(a)的基礎電路分成兩個 stage 的管 線化架構,如圖 3.4(b)所示。. 接下來我們將詳細討論 membership coefficients updating unit 的架構與運作流 程,我們採用並行計算的方式,計算 xk 在每一群的權重值 u i ,k ,由於 m = 2,為了 方便往後公式(1)及公式(3)的運算,我們在 membership coefficients updating unit 直接計算出 u i2,k 值。而在 membership coefficients updating unit 中有 c 個獨立的 module,每個 module 會接收到來自 pre-computation unit 的 xk 與 Pk,如圖 3.5 所 示,我們只需兩個 clock 即完成 u i2,k , i  1,  , c 的運算。. 21.

(31) 第三章 基礎電路架構介紹. (a). (b) 圖 3.4. 計算 u i2,k 的硬體電路架構圖:(a) 基礎架構圖,(b)2-stage 的管線化架構圖。. 其中每個 module 皆是 2-stage 的管線化架構,第一個 stage 有三個輸入埠與三 個輸出埠,三個輸入埠為訓練向量 xk 的輸入埠、質量中心點 vi 的輸入埠及 xk 經由 pre-computation unit 計算出的 Pk 輸入埠;三個輸出埠為訓練向量 xk 的輸出埠、距 離帄方值 xk  vi 的輸出埠及 xk  vi Pk 的輸出埠。 2. 2. 22.

(32) 第三章 基礎電路架構介紹 第一個 stage 由一個 squared distance unit 及一個 multiplier unit 所組成,當 xk 進入第一個 stage 後,會先經過 squared distance unit 計算出 xk  vi ,接著在 2. multiplier unit 進行 xk  vi 與 Pk 的乘法運算,計算出 xk  vi Pk 。由於這是兩個 2. 2. stage 的管線化架構,同一時脈中會有兩個訓練向量在此架構中同時運作,亦即 xk 在第一個 stage 計算時,xk-1 會在第二個 stage 同時做運算。. 而第二個 stage 也是三個輸入埠與三個輸出埠,三個輸入埠為訓練向量 xk-1 的輸入埠、距離帄方值 xk 1  vi 的輸入埠及 xk 1  vi Pk 的輸入埠;三個輸出埠為 2. 2. 訓練向量 xk-1 的輸出埠、距離帄方值 xk 1  vi 的輸出埠及 ui2,k 1 的輸出埠。第二個 2. stage 是由一個 inverse unit 和一個 multiplier unit 所組成。其中 inverse unit 負責計 算 xk 1  vi Pk 的倒數值 1 xk 1  vi Pk ,此時 1 xk 1  vi Pk 即為 ui ,k 1,接著 ui ,k 1 進 2. 2. 2. 入 Multiplier Unit 進行帄方計算,即可求出 ui2,k 1 ,方便接下來的 centroid updating unit 及 cost function computation unit 運算。. 由以上的描述可以知道,當訓練向量 xk 及其伴隨的 Pk 值廣播給 membership coefficients updating unit 內所有的 module 後,可以在兩個 clock 內算出 xk 在每一 群的權重帄方值 u i2,k ,並傳遞到下個 unit 做運算,這將會提升我們電路的效能。. 23.

(33) 第三章 基礎電路架構介紹. 圖 3.5 Membership coefficients updating unit 架構圖. 24.

(34) 第三章 基礎電路架構介紹. 3.4 Centroid updating unit 為了不需儲存 xk 在每一群的權重帄方值 u i2,k ,centroid updating unit 在每次 xk 與 u i2,k 到達時隨即計算質量中心點,直到最後一筆訓練向量完成計算後,才會用 最後算出的質量中心點去更新初始碼簿,如此便不需儲存權重矩陣。. 對於 xk 到達 centroid updating unit 的情形,我們可以重新定義公式(3)如下:.  k m   k m vi k     ui , n xn    ui , n   n 1   n 1 . (8). 當 k = t 時, vi t  即與公式(3)所計算出的 centroid vi 相同。. 計算 vi k  的基礎架構圖. 圖 3.6. Centroid updating unit 的基礎架構圖如圖 3.6 所示,此電路包含一個乘法器、 兩個累加器(accumulator)及一個除法器,其中乘法器用來計算 xk 與 u i2,k 的乘積,累 k. k. n 1. n 1. 加器分別累加 u i2,k x k 與 u i2,k ,即  ui2,n xn 與  ui2,n ,最後兩個累加器吐出的結果由除. 25.

(35) 第三章 基礎電路架構介紹 法器做運算即可運算出 vi k  。由於累加器是由一個加法器與一個暫存器(register) 組合而成,此架構也可以視為一個 2-stage 的管線化硬體架構。. 第一個 stage 有二個輸入埠與二個輸出埠,二個輸入埠分別為訓練向量 xk 的 k. k. n 1. n 1. 輸入埠和 u i2,k 的輸入埠;二個輸出埠為  ui2,n xn 的輸出埠和  ui2,n 的輸出埠。第一 k. 個 stage 進行 u i2,k 和 xk 的乘法運算,計算出 ui2,k xk ,並且累加其結果  ui2,n xn ,另一 n1. k. 個加法器則是累加 u i2,k 的結果  ui2, n 。由於這也是一個 2-stage 的管線化架構,同 n 1. 一時脈中兩個 stage 同時進行運算。而第二個 stage 則有二個輸入埠及一個輸出 k 1. k 1. n1. n 1. 埠,二個輸入埠為  ui2,n xn 的輸入埠及  ui2,n 的輸入埠;一個輸出埠為除法器的輸 k 1. k 1. n1. n 1. 出埠。 ui2,n xn 和  ui2,n 進入第二個 stage 後經過除法器運算出質量中心點 vi k  1。. 圖 3.7 Centroid updating unit 架構圖. 26.

(36) 第三章 基礎電路架構介紹. 整體的 centroid updating unit 架構圖如圖 3.7 所示,包含了 c 個獨立的 module, 所有 module 都是並行(concurrent)的計算,每個 module 會計算出一組 vi k ,在最 後一筆訓練向量計算完成後得到 vi t  ,我們利用最後算出來的質量中心點 vi t  去 更新 pre-computation unit 和 membership coefficients updating unit 的質量中心點, 以便下一次計算。. 27.

(37) 第三章 基礎電路架構介紹. 3.5 Cost function computation unit 如圖 3.1 所示,cost function computation unit 的運算與 centroid updating unit 是並行的,跟 centroid updating unit 一樣我們對公式(1)重新定義如下: c. k. J k    uim,n xn  vi. 2. (9). i 1 n 1. 此 單 元 從 membership coefficients updating unit 接 收 到 ui2,k i  1,  , c 和 xk  vi i  1,  , c 後,需要計算 ui2,k i  1,  , c 和 xk  vi i  1,  , c 的乘積,並且使用 2. 2. 一個累加器來儲存計算的結果,如圖 3.8 所示,在 cost function computation unit 中包含 c 個 multiplier 及一個累加器,而累加器又是由加法器與暫存器所組成。. 圖 3.8 Cost function computation unit 架構圖. 28.

(38) 第三章 基礎電路架構介紹. cost function computation unit 接收到來自 membership coefficients updating unit 輸出的資料後,即進入乘法器進行乘法運算,其中 xk  v1 與 u12,k 進行乘法運算、 2. xk  v2 與 u 22,k 進行乘法運算,依此類推。所有的 multiplier 是並行計算的,計算 2. 出結果後便直接到加法器做加總並且累加結果。當 k = t 時 J t  即是最後的累加結 果,等同於公式(1)的計算結果 J,如此,我們便能不需儲存權重矩陣即可算出 J 值。. 29.

(39) 第四章 實驗結果與數據探討. 第四章實驗結果與數據探討 本章節主要是呈現並且討論我們提出之架構的一些實驗結果。. 4.1. 開發帄台與實驗環境介紹. 本論文提出的架構主要是以 Altera 公司的 Stratix II EP2S60 FPGA 開發板及 Cyclone III EP3C120 FPGA 開發板為主要的實現帄台,如圖 4.1、圖 4.2 所示。而 選擇 FPGA 開發板來做為實現帄台,是因為可程式化系統晶片可以加速硬體架構 的實現與驗證,具備可重複修改與快速上市等優點,使得 FPGA 非常適合實現本 論文所提出的 FCM 硬體架構。表 4.1 是 Altera Stratix II EP2S60F672C5ES FPGA 開發板的詳細規格資訊;表 4.2 是 Altera Cyclone III EP3C120F780C8 FPGA 開發 板的詳細規格資訊。. 圖 4.1 Altera Stratix II EP2S60 實驗開發板. 30.

(40) 第四章 實驗結果與數據探討. Feature. Stratix II. Device. EP2S60F672C5ES. Adaptive Logic Modules (ALMs). 24,176. Adaptive look-up tables (ALUTs) (1). 48,352. Equivalent Logic Elements (LEs) (2). 60,440. M512 RAM Blocks (512 bits + Parity). 329. M4K RAM Blocks (4 Kbits + Parity). 255. M-RAM Blocks (512 Kbits + Parity). 2. Total RAM bits. 2,544,192. DSP Block 9-bit elements. 288. Total PLLs. 6. Total DLLs. 2. Total Pins. 493. Notes : (1) One ALM contains two ALUTs. The ALUT is the cell used in the Quartus® II software for logic synthesis. (2) This is the equivalent number of LEs in a Stratix device (four-input LUT-based architecture).. 表4.1 Altera Stratix II EP2S60 FPGA開發板的規格[15]. 31.

(41) 第四章 實驗結果與數據探討. 圖 4.2 Altera Cyclone III EP3C120 實驗開發板. Feature. Cyclone III. Device. EP3C120F780C8. Equivalent Logic Elements (LEs). 119,088. M9K -RAM Blocks (9216 bits+ Parity). 432. Total RAM bits. 3,981,312. DSP Block 9-bit elements. 576. Total PLLs. 4. Total Pins. 532. 表4.2. Altera Cyclone III EP3C120 FPGA開發板的規格[16]. 32.

(42) 第四章 實驗結果與數據探討 在設計過程中,我們使用 Altera Quartus II 7.2 版本為主要撰寫 Verilog 程式語 言的帄台,且 Quartus II 可提供語法的檢查、時序分析、邏輯元件的配置、產生 規劃檔案、繞線佈局以及電路合成等等的便利性功能,如圖 4.3 所示。. 圖 4.3. Quartus II 軟體介面. 而 Altera 公司也提供了採用 Eclipse 為基礎的 NIOS II IDE 軟體[17]供使用者 使用,如圖 4.4 所示。NIOS II 系統提供設計人員在 Altera FPGA 中開發完整的 Nios II 嵌入式系統所需的軟體工具、應用程式、函式庫及驅動程式,方便使用者 利用此 IDE 軟體來與 FPGA 開發板溝通互動,加速 SOPC 系統的開發。. 33.

(43) 第四章 實驗結果與數據探討. 圖 4.4 NIOS II 軟體介面. 如圖 2.2 所示,我們提出的架構在 SOPC 系統上所扮演的角色是一個客製化 的邏輯電路。由於 SOPC 是軟硬體整合的系統,在軟體端我們會撰寫一個簡單的 程式來控制我們的 FCM 電路,如圖 4.5 所示。首先將訓練向量集合儲存在 Off-Chip RAM 裡,從中隨機挑選 c 個初始碼字並傳送進 FCM 電路,其中 c 代表叢集個數, 接著啟動並檢查 DMA,DMA 會將訓練向量送至 FCM 電路進行運算,再完成 DMA 的運作後,CPU 會從 FCM 電路得到 J 值,並且判斷 J 值有無收斂,若收斂則不 再傳送訓練向量至 FCM 電路,停止 FCM 電路的運算;若沒收斂則回到 Step 2, 將新的碼字取代舊的碼字後,DMA 會重複傳送訓練向量至 FCM 電路,直到 J 值 收斂為止。最後我們利用收斂後得到的一組碼字代入公式(5),即可求出向量量化 器的帄均失真值。 34.

(44) 第四章 實驗結果與數據探討. 圖 4.5. NIOS II 程式設計流程圖. 我們也使用 Borland C++ builder 6.0,撰寫一個應用於 VQ 設計上的 Fuzzy c-means 演算法程式。讀取「Lena」512×512 bmp 圖檔做訓練向量的來源,如圖 4.6 所示。每個訓練向量為 2×2 的 4 維陣列(即 w=4),共有 65536 個訓練向量, 隨機從「Lena」圖檔中選取 c 個 4 維向量做為初始碼字。對於相同的訓練向量數 目、相同的訓練向量與相同的初始碼字,比較軟體與硬體的失真值與效能,其中. 35.

(45) 第四章 實驗結果與數據探討 失真值為每個像素的帄均失真值(即將整體失真值除以 wt,w 為訓練向量維度,t 為訓練向量筆數)。 ※軟體實現環境 處理器:Pentium D 3.0GHz 記憶體:DDR2. 2.0G. 編譯器:Borland C++ builder 6.0 ※硬體實現環境 開發板:. Altera Stratix II EP2S60. Altera Cyclone III EP3C120. 處理器:. NIOS II. NIOS II. 記憶體:. 16-Mbyte SDRAM. 256-Mbyte DDR II SDRAM. Flash Memory :. 16-Mbyte. 64-Mbyte. CF 卡:. 16-Mbyte. 16-Mbyte. 表格 4.3 硬體實驗環境. 圖 4.6. Lena 測試用圖形. 36.

(46) 第四章 實驗結果與數據探討. 4.2 實驗數據的呈現與討論 此節主要呈現 FCM 分群演算法硬體電路實際量測的效能,及硬體電路在 4、 8、12、16、20、24、28、32 碼字的硬體資源消耗與軟硬體失真值比較,並且使 用 Cyclone III EP3C120 FPGA 開發板為實驗帄台。本實驗中的訓練向量 x 與初始 碼字 v 皆為取自 Lena 的 2×2 四維向量,每一維為 8bits,因此 x 與 v 皆為 32bits。 此外,在 pre-computation unit 累加的 1 xk  vi 值為 32bits 的純量,而 membership 2. coefficients updating unit 裡的權重值 u i2,k 及 Pk 值則設定為 18bits 的純量。. Codeword Number. FCM Circuit(LEs). Entire SOPC System(LEs). 4. 12,699. 24,921. 8. 25,538. 38,032. 12. 38,448. 50,065. 16. 51,832. 63,706. 20. 64,119. 78,064. 24. 76,662. 89,888. 28. 90,921. 102,568. 32. 104,965. 116,861. 表 4.4 FCM circuit 與加上 SOPC 系統的 Area Cost. 首先我們先探討 FCM 硬體電路的硬體資源消耗,如表 4.4 及表 4.5 所示。由 表 4.4 可以發現 FCM 硬體電路的 logic elements(LEs)資源消耗會隨著碼字數目的 增加而成長;加上 SOPC 系統後,由於 NIOS II 處理器也會消耗 LEs 資源,使得. 37.

(47) 第四章 實驗結果與數據探討 整體 SOPC 系統所需之 LEs 會再增加。在碼字數目為 32 時,FCM 硬體電路的資 源消耗為 104,965 個 LEs,大約占 Cyclone III EP3C120 FPGA 開發板整體資源的 88%,而整體 SOPC 系統則占整體資源的 98%。圖 4.7 可以看出 FCM 硬體電路與 整體 SOPC 系統的 LEs 資源消耗,會隨著碼字數目增加而成線性比例成長。. 140000. Area Cost(LEs). 120000 100000 80000 60000. FCM circuit. 40000. Entire SOPC System. 20000 0 4. 8. 12. 16. 20. 24. 28. 32. Codeword number. 圖 4.7 於不同碼字數目下之硬體資源 logic elements 消耗. 由表 4.5 可以發現 FCM 硬體電路於不同碼字時,embedded memory 增加的比 例與碼字增加的比例是相同的。這是因為隨著碼字數目的增加,查表法表格的個 數會隨著碼字增加的比例而增加,使用 embedded memory 儲存碼字數目增加的比 例也相同,所以整體 embedded memory 增加的比例會相同。我們也可以觀察到加 入 SOPC 系統後,會使整體的 embedded memory 使用大幅的上升,由於 SOPC 系 統使用的 embedded memory 是固定的,本實驗中的 SOPC 系統會占用 615,664bits. 38.

(48) 第四章 實驗結果與數據探討 的 embedded memory。對於每組碼字個數而言,加上 SOPC 系統後,embedded memory 皆會增加 615,664bits,證明我們 FCM 電路使用 embedded memory 的數據 是正確而且合理的。而 FCM 硬體電路與整體 SOPC 系統使用的 embedded memory 也是一個線性的成長,如圖 4.8 所示。 Codeword Number. FCM Circuit(bits). Entire SOPC System(bits). 4. 78,080. 693,744. 8. 156,160. 771,824. 12. 234,240. 849,904. 16. 312,320. 927,984. 20. 390,400. 1006,064. 24. 468,480. 1084,144. 28. 546,560. 1162,224. 32. 624,640. 1240,304. 表 4.5 FCM circuit 與 SOPC 的 embedded memory bits consumption 1400000. Embedded memory bits. 1200000 1000000 800000 600000. FCM circuit Entire SOPC System. 400000 200000 0 4. 8. 12. 16. 20. 24. 28. 32. Codeword number. 圖 4.8 於不同碼字數目下之 embedded memory bits 消耗. 39.

(49) 第四章 實驗結果與數據探討. 表 4.6 是 FCM 硬體電路在不同碼字時,軟硬體之失真值誤差比較。固定訓練 向量為 65000 筆,我們可以發現在相同的訓練向量,每組碼字的軟硬體失真值是 相當接近的。證明我們提出的 FCM 硬體電路架構,並不會因為有限精度的關係 而使得整體的效果有很大的影響。. Codeword Number. FCM Hardware Distortion(D1). FCM Software Distortion(D2). D1  D2 D1. 4. 208.1120. 208.2480. 0.0653%. 8. 88.8465. 89.4862. 0.7200%. 12. 66.6701. 66.1014. 0.8530%. 16. 57.7367. 57.7020. 0.0601%. 20. 57.7004. 57.2986. 0.6963%. 24. 56.0531. 55.8704. 0.3259%. 28. 53.1904. 53.5700. 0.7136%. 32. 52.3736. 52.3123. 0.1170%. 表 4.6 FCM 硬體電路在不同碼字時軟硬體失真值比較. 接下來我們詳細討論 FCM 硬體電路在 16 個碼字時,LEs、embedded memory、 DSP block 的資源消耗,及在 NIOS-based SOPC 系統中當成一個客製化電路所耗 費的 LEs、embedded memory、DSP block 資源,最後則是整個系統的 operating speed,. 40.

(50) 第四章 實驗結果與數據探討 如表 4.7 所示。. Item. Value. Logic elements of FCM Circuit. 51,832 (44%). Embedded Memory Bits of FCM Circuit. 312,320 (8%). DSP Block 9-bit Elements of FCM Circuit. 288(50%). Logic elements of Entire SOPC System. 63,706 (53%). Embedded Memory Bits of Entire SOPC System. 927,984 (23%). DSP Block 9-bit Elements of Entire SOPC System. 292 (51%). Operating Frequency. 40MHz. 表 4.7. FCM 演算法電路在 16 個碼字的硬體資源. 從表格 4.7 中,我們可以發現在 16 個碼字時 FCM 演算法電路消耗了 51,832 個 LEs、312,320 bits 的 embedded memory 及 288 個 DSP block,其中 embedded memory 的消耗主要來自於 inverse unit 的查表法表格(lookup table)之消耗,少部分 來自於儲存初始碼字之消耗。當然實現查表法表格除了使用 embedded memory 之 外,還有另一種選擇,即是使用 LEs 來實現。由於我們的 FCM 電路需要使用大 量的 LEs,若使用 LEs 實現 inverse unit 的查表法表格,無疑會增加 LEs 的資源消 耗。有鑑於此,我們選擇 embedded memory 來實現查表法表格,如此不但可以減 少 LEs 的消耗,也可以充分利用 FPGA 開發板的其他資源(即 embedded memory)。. 41.

(51) 第四章 實驗結果與數據探討 至於 DSP block 的消耗部分,由於 FCM 硬體電路需要大量的乘法運算,除了 LEs 可用來實現乘法器外,我們還可以使用 FPGA 開發板內建的 DSP block 來實現乘 法器,使用 DSP block 提供的乘法器也可以降低我們 FCM 硬體電路的 LEs 消耗, 有助於 FCM 系統的實現。整體的 SOPC 系統佔用 63,706 個 LEs,大約使用了 Cyclone III 3C120 FPGA 開發板整體 LEs 資源的 53%,embedded memory 的部分 使用了 927,984 bits 大約是整體 embedded memory 的 23%,DSP block 的部分則是 使用了 292 個乘法器,占整體資源的 51%。. T. Basic FCM Software Execution Time. Fast FCM[13] Software Execution Time. FCM Hardware Execution Time. 20000. 4844 ms. 469 ms. 8.00ms. 35000. 10735 ms. 984 ms. 15.59 ms. 50000. 13296 ms. 1235 ms. 16.86ms. 60000. 19438 ms. 1796 ms. 22.86ms. 表 4.8 軟硬體實現 FCM 執行時間. 再來我們討論 FCM 硬體架構在 16 個碼字時的軟硬體實際效能量測結果。固 定訓量向量筆數為 20000、35000、50000、65000 筆,軟硬體的實際執行時間如 表 4.8 所示,硬體的執行時間部分,我們選用 Stratix II EP2S60 FPGA 開發板做為. 42.

(52) 第四章 實驗結果與數據探討 量測帄台。另外,這邊要特別說明我們所比較的軟體演算法有二。其一,我們對 於一般的 FCM 演算法做比較,此 FCM 演算法必須儲存權重矩陣(membership matrix),反覆計算公式(2)及公式(3),使公式(1)收斂,對於記憶體資源的消耗較大。 其二,對於改善後的 FCM 演算法[13]做比較,此 FCM 演算法不需儲存權重矩陣, 對於記憶體資源的消耗較小。改善後的 FCM 演算法在本論文中稱為 Fast FCM 演 算法,對於一般的 FCM 演算法在本論文中則稱為 Basic FCM 演算法。從表 4.8 中可以發現在 20000、35000、50000、65000 筆訓練向量時 Fast FCM 演算法的計 算時間皆比 Basic FCM 演算法來的少,亦即 Fast FCM 演算法執行速度確實比 Basic FCM 演算法來的快。. 900 800 700 Speed up. 600 500 400. Basic FCM. 300. Fast FCM. 200 100 Training data size. 0 20000. 35000. 50000. 65000. 圖 4.9 於不同訓練向量筆數下之軟硬體效能比. 43.

(53) 第四章 實驗結果與數據探討. 從圖 4.9 可以發現,隨著訓練向量筆數的增加,硬體對於軟體的 speed up 也 隨之增加,FCM 硬體對 Basic FCM 演算法的 Speed up 大於 Fast FCM 演算法,這 是因為 Fast FCM 演算法的執行速度比 Basic FCM 演算法的執行速度快的緣故。 而 speed up 是根據軟體(3.0 GHz Pentium D CPU)所執行時間除以 SOPC 系統 (40MHz NIOS-based softcore CPU)執行時間所得到的值。. 硬體 FCM 演算法能夠比軟體 Basic FCM 演算法、Fast FCM 演算法好的主要 原因,乃是傳送訓練向量的方式不同;於軟體中開發 Basic FCM 演算法與 Fast FCM 演算法,必須將訓練向量儲存於記憶體中,因此在傳送訓練向量時將會耗費 大量的記憶體存取時間,這會使得整體的計算速度變慢。除此之外,不論是 Basic FCM 演算法或者是 Fast FCM 演算法,都需要進行大量的除法運算,所以軟體的 計算複雜度會很高。. 而在我們所提出的硬體 FCM 演算法架構中,採用 DMA 技術來幫助系統降低 記憶體存取時間,再利用 pipeline 技術縮短整體計算時間,並且提升電路的產能; 因此,當訓練向量的數目愈來愈大時,我們設計的硬體電路比上軟體的執行時間 可以擁有高效能比,例如:當訓練向量個數為 65000 時,我們提出的硬體電路架. 44.

(54) 第四章 實驗結果與數據探討 構可比 Basic FCM 演算法快上 850 倍左右,而對於 Fast FCM 演算法則可以到達 78 倍左右。. 從我們所測量的這些實驗數據可以證明本論文所提出的 FCM 演算法硬體架 構是具有高度的效能,比軟體 Basic FCM 演算法和 Fast FCM 演算法擁有更快的 執行速度,與較少的執行時間,並且能夠擁有低面積複雜度(low area cost)與低記 憶體資源消耗(low embedded memory consumption)。. 45.

(55) 第五章 結論. 第五章 結論. 本論文中所呈現的是以 FCM 演算法為基礎所設計的硬體電路,將 FCM 演算 法應用於向量量化器上,並且在可程式化系統晶片上實現。本電路架構具有低時 間消耗(low time consuming)、低硬體資源消耗(low area cost)、低記憶體資源(low memory consumption)消耗與高效能(high performance),利用 DMA 與管線化 (pipeline)的硬體架構來加速執行速度以及降低記憶體存取時間。. 我們也設計一個 avalon interface unit 做為本電路和 Altera FPGA 開發板的 avalon bus 的溝通。在實際測試中,本論文實現軟體的 Basic FCM 演算法與 Fast FCM 演算法,再將軟體與硬體的執行時間做比較之後,發現不管對於 Basic FCM 演算法與 Fast FCM 演算法而言,實作在 FPGA 上是具有更高的效能,有更快的 執行速度,與較少的執行時間。. 46.

(56) 參考著作. 參考著作 [1] C. Chinrungrueng and C. H. Sequin, "Optimal Adaptive K-means Algorithm with Dynamic Adjustment of Learning Rate," IEEE Transactions on Neural Networks, Vol. 6, No. 1, January 1995, pp.157-169. [2] M. Sarkar and B. Yegnanarayana, "A Clustering Algorithm Using Evolutionary Programming," IEEE International Conference on Neural Networks, USA,Vol. 2, 1996, pp. 1162-1167. [3] D. Lee, S. Back, and K. Sung, "Modified K-means Algorithm for Vector Quantizer Design," IEEE Signal Processing Letters, Vol. 4, No. 1, January 1997, pp.2-4. [4] K. Krishna and M. N. Murty, "Genetic K-means Algorithm", IEEE Transactions on Systems, Man, and Cybernetics-Part B: Cybernetics," Vol. 29, No.3, June 1999, pp. 433-439. [5] C. Olaru and L. Wehenkel, "Data Mining," IEEE Computer Application in Power, Vol. 12, No. 3, July1999, pp. 19-25. [6] Bezdek, J. C., "Fuzzy mathematics in pattern classification," 1973. [7] R. Cannon, J. Dave, J. Bezdek, "Efficient Implementation of the Fuzzy C-Means Clustering Algorithm," IEEE Transactions on Pattern Analysis and Machine Intelligence, pp.248-255, 1986. [8] T.W. Cheng, D, B. Goldgof and L.O. Hall, "Fast Fuzzy Clustering," Fuzzy Sets and Systems, pp.49-56, 1998. [9] S. Eschrich, J. Ke, L. O. Hall, and D. B. Goldgof, "Fast Accurate Fuzzy Clustering Through Data Reduction," IEEE Trans. Fuzzy Systems, pp.262-270, 2003. [10]J. Garcia-Lamont, L.M. Flores-Nava, F. Gomez-Castaneda, J.A. Moreno-Cadenas, "CMOS Analog Circuit for Fuzzy C-Means Clustering," IEEE Proc. 5th BiannualWorld Automation Congress, 2002.. 47.

(57) 參考著作 [11] Hauck, S., and Dehon, A., " Reconfigurable Computing," Morgan Kaufmann, 2008. [12] P. Hung, H. Fahmy, O. Mencer, and M. J. Flynn, "Fast Division Algorithm with a Small Lookup Table," IEEE Asilomar Conference on Signals, Systems, and Computers, pp.1465-1468, 1999. [13] J.F. Kolen and T. Hutcheson, "Reducing the Time Complexity of the Fuzzy C-Means Algorithm," IEEE Trans. Fuzzy Systems, pp. 263-267, Vol. 10, 2002. [14] J. Lazaro, J. Arias, J. L. Martin, C. Cuadrado and A. Astarloa, "Implementation of a Modified Fuzzy C-Means Clustering Algorithm for Realtime Applications," Microprocessorsand Microsystems, pp. 375-380, 2005. [15] Stratix II Device Handbook, 2008, Altera Corporation.http:// www.altera.com/ literature/ lit-nio2.jsp. [16] Cyclone III Device Handbook, 2008, Altera Corporation. http://www.altera.com/ products/devices/cyclone3/cy3-index.jsp [17] NIOS II Processor Reference Handbook, 2007, Altera Corporation. http://www. altera.com/literature/lit-nio2.jsp [18] Vriend. S.P. van Gaans, P.F.M., Middelburg, J. and de Nijs. A. 1988. "The application of fuzzy c-means cluster analysis and nonlinear mapping to geochemical datasets: examples from Portugal. " Appl. Geochem., 3: 2 13-224. [19] Pei Jihong, Yang Xuan, Gao Xinbo, and Xie Weixing, "Weighting exponent m in fuzzy C-means (FCM) clustering algorithm. "Proc. SPIE Vol. 4554, p. 246-251. [20] Zimmermann, Hans J., 1990. "Fuzzy set theory and its applications. " Kluwer Academic Publishers, Boston. [21] Pal, N. R. and Bezdek, J. C., 1995. "On cluster validity for the fuzzy c-means model. " IEEE Transactions on Fuzzy System, Vol.3, No.3, p.370-379.. 48.

(58)

參考文獻

相關文件

應用閉合電路原理解決生活問題 (常識) 應用設計循環進行設計及改良作品 (常識) 以小數加法及乘法計算成本 (數學).

把作法用乘法算式記下來,並把算式中

本章將對 WDPA 演算法進行實驗與結果分析,藉由改變實驗的支持度或資料 量來驗證我們所提出演算法的效率。實驗資料是以 IBM synthetic data generator

由於 Android 作業系統的開放性和可移植性,它可以被用在大部分電子產品 上,Android 作業系統大多搭載在使用了 ARM 架構的硬體設備上使裝置更加省電

針對 WPAN 802.15.3 系統之適應性柵狀碼調變/解調,我們以此 DSP/FPGA 硬體實現與模擬測試平台進行效能模擬、以及硬體電路設計、實現與測試,其測 試平台如圖 5.1、圖

FPGA(Field Programmable Gate Array)為「場式可程式閘陣列」的簡稱,是一 個可供使用者程式化編輯邏輯閘元件的半導體晶片

第五章 多項式.

2-1 化學實驗操作程序的認識 探究能力-問題解決 計劃與執行 2-2 化學實驗數據的解釋 探究能力-問題解決 分析與發現 2-3 化學實驗結果的推論與分析