高效能管線化架構之快速競爭式學習系統
61
0
0
全文
(2) 中文摘要. 中文摘要 本論文針對競爭式學習(competitive learning,CL)提出了一個全新的管線化 (pipeline)架構,能夠有效的加速學習時間,此架構提出了神經元交換(swapping) 的機制,來達到了不同訓練向量之間能夠同時進行神經元的競爭,有效增加神經 元競爭階段時期的效能。而在神經元更新無可避免的除法部分,我們採用了查表 式除法(lookup-table based division),能夠在很低的面積複雜度之下依然擁有很高 的精確度,同時有效的降低耗時的除法運算。. 此架構以現場可程式邏輯陣列(field programmable gate array,FPGA)為實現 平台,我們已測量出以 Nios 軟核心中央處理器執行此新管線化架構所需的 CPU 時間,而實驗結果顯示出了 CPU 時間遠遠低於未搭配硬體電路的 Pentium IV 處 理器。. i.
(3) Abstract. Abstract This paper presents a novel pipelined architecture for fast competitive learning (CL). The architecture is implemented by the field programmable gate array (FPGA). It is used as a hardware accelerator in a system on programmable chip (SOPC) for reducing the computation time. In the architecture, a novel neuron swapping scheme is adopted so that both neuron competition process for different training vectors can be operated concurrently. The neuron updating process is based on a hardware divider with simple table lookup operations. The divider performs finite precision calculation for area cost reduction at the expense of slight degradation in training performance. The CPU time of the NIOS processor executing the CL training with the proposed architecture as an accelerator is measured. Experiment results show that the CPU time is lower than that of Pentium IV processors running the CL training program without the support of custom hardware.. ii.
(4) 致謝. 致謝 首先要感謝我的指導教授. 黃文吉教授,在過去二年的時光裡,給予我課業. 與研究上的細心指導與關懷,使得本論文得以順利完成,在此獻上最誠摯的謝意。 同時也感謝國立清華大學電機工程學系 程學系. 黃仲陵教授、國立台北科技大學資訊工. 尤信程教授、清雲科技大學電子工程學系. 歐謙敏教授撥冗在論文上所. 給予的評閱與建議。. 此外,我要感謝相處兩年的同學以及學弟妹們——聖凱、家璿、嘉儀、正存、 鵬傑、敦皓、禕璨、政諺、嘉晏、宗毅等,於平日生活及課業上的協助與切磋, 在此一併致謝。. 最後,更要感謝家人與所有關心我的朋友,有了你們的支持、關懷與鼓勵, 讓我有勇氣去面對各種的挫折與壓力,並順利地完成學業。謹將此論文成果獻給 所有關心我的人,希望大家與我分享這份喜悅與榮耀。. iii.
(5) 目錄. 目 錄 中文摘要......................................................................................................................... i Abstract .........................................................................................................................ii 致謝.............................................................................................................................. iii 目 錄............................................................................................................................. iv 附圖目錄......................................................................................................................vii 附表目錄.................................................................................................................. viiiii 第一章 緒論.................................................................................................................. 1 1.1 研究背景與動機目的............................................................................. 1 1.2 研究目的................................................................................................. 3 1.3 全文架構................................................................................................. 5 第二章 基礎理論介紹.................................................................................................. 6 2.1 贏家通吃競爭式學習法......................................................................... 6 2.2 SOPC 系統整合設計.............................................................................. 8 第三章 kCL 架構與硬體實現 ................................................................................... 12 3.1 一般管線化架構.................................................................................... 12 3.2 交換機制(Swapping) ............................................................................ 16 3.3 Fast CL 架構與硬體實現 ..................................................................... 21. iv.
(6) 目錄 第四章 實驗數據與效能比較 ................................................................................... 35 第五章 結論................................................................................................................ 49 參考文獻...................................................................................................................... 50. v.
(7) 附圖目錄. 附圖目錄 圖 2-1. Avalon System ............................................................................................... 10. 圖 2-2. HAL API ........................................................................................................ 10. 圖 2-3. 軟硬體共同設計流程圖 ............................................................................... 11. 圖 3-1. 一般管線化架構的例子 ............................................................................... 13. 圖 3-2. 交換機制運作的例子 ................................................................................... 17. 圖 3-3. 在神經元數目 N=8 下之管線化層級縮圖,以陰影表示訓練向量所存在的. 層級,空白代表未有訓練向量存在的層級.............................................................. 19 圖 3-4 Fast CL 之 VLSI 系統架構........................................................................... 22 圖 3-5. 第 i 個管線化層級的電路架構圖 ................................................................ 23. 圖 3-6. Swap unit 電路架構圖 ................................................................................. 24. 圖 3-7. 交換機制啟動下之層級 i 與層級 i-1 的 swap unit 狀態 ............................ 25. 圖 3-8. 交換機制未啟動下之層級 i 與層級 i-1 的 swap unit 狀態 ........................ 27. 圖 3-9. 第一個管線化層級的電路架構圖 ............................................................... 28. 圖 3-10. 第 N 個管線化層級的電路架構圖............................................................. 29. 圖 3-11. 神經元更新時層級 N 與 winner update unit 的狀態 ................................. 30. 圖 3-12. Winner update unit 的電路架構圖.............................................................. 31. 圖 4-1. Altera Cyclone III EP3C120 實驗開發板.................................................... 35. vi.
(8) 附圖目錄 圖 4-2. 不同神經元數目 N 之下的資源曲線圖....................................................... 37. 圖 4-3. 不同神經元數目 N 之下的功率消耗曲線圖............................................... 40. 圖 4-4. Lena ............................................................................................................... 41. 圖 4-5. 於不同神經元數目 N 之效能比較............................................................... 44. 圖 4-6. 於不同訓練向量數目之效能比較 ............................................................... 46. vii.
(9) 附表目錄. 附表目錄 表 3-1. Swap unit 中之 multiplexer 真值表 .............................................................. 25. 表 4-1. 不同神經元數目 N 之下的資源消耗表 ...................................................... 36. 表 4-2. N=128 (使用平方距離值方式),Fast CL circuit 加上 SOPC 系統的資源消. 耗.................................................................................................................................. 38 表 4-3. N=256 (使用絕對值距離方式),Fast CL circuit 加上 SOPC 系統的資源消. 耗.................................................................................................................................. 38 表 4-4. 不同神經元數目 N 之下的功率消耗表(單位 mW) .................................... 39. 表 4-5. 固定訓練向量數目 65536 筆,在不同神經元數目 N 的執行時間比較(單位. ms)................................................................................................................................ 41 表 4-6. 固定神經元數目 N=128,在不同訓練向量數目的執行時間比較 ........... 45. 表 4-7. 原始與查表式除法對學習結果的影響比較(以 PSNR 表示)..................... 47. viii.
(10) 第一章 章 緒論. 第 章 緒論 第一章 論 此章探 探討本論文的 的研究背景 景與動機目的 的,並概述 述各章節的主 主要內容及 及重要特 性 性。. 1 研究背景 1.1 研 景與動 動機 資料分 分群(Data cllustering)對 對於一些窮究 究樣式分析 析(exploratorry pattern an nalysis)、 分 分組(group 機器學習(maachine learnning)的情況 況,包含 ing)、決策((decision making)及機 m 資 料 探 勘 (data miniing) 、 文 件 檢 索 (doccument rettrieval) , 樣 式 分 類 (pattern ( 分割(image segmentatio 壓縮(data coompression))等,是 c classificatio on)、影像分 s on)和資料壓 非 非常有用的 的。在類神經 經網路(artificial neuraal networkss,ANNs)中 中,分群常 常以競爭 式學習(com 式 現 [9, 17]。即網路中的 的神經元(n mpetitive leaarning,CL))法則來實現 neurons) 藉 藉由彼此競 競爭而被活化 化或代謝;而每個神經 而 經元所對應的 的權重向量 量(weight veector), 等 等於它在輸 輸入特徵空間 間(input feaature space))內的接受區 區(receptivee field)中心 心。競爭 式 式學習的目 目標,是將分 分群分析/樣 樣式分類的 的錯誤 [14,, 23],或是 是向量量化 化(vector 量化失真(quuantization distortion) [8,15] 最小 小化。 q quantization n,VQ)的量. 已經發 發展出來的眾 眾多競爭式 式學習法則,可依其競 競爭方法及學 學習規則來 來做區別。 最 最簡單的競 競爭式學習演 演算法是以 以贏家通吃((winner-takke-all,WTA 礎 [12], A)法則為基礎 使 使神經元演 演化僅發生在 在最相似於 於輸入樣式的 的贏家上。但即使是最 最簡單的競 競爭式學 習 習演算法, 仍然具有高 高計算複雜 雜度的缺點。當神經元 元的數量很 很大,及/或 或每個神 經 經元對應之 之權重向量的維度很高 高,鑑別出 出與輸入向量 量最相似神 神經元所需的平均. 1.
(11) 第一章 緒論 CPU 時間就會變得很長。而冗長的訓練時間對於即時應用(real-time applications) 而言,可能就會變成一種侷限了。. 高計算成本的缺點或可藉由加速搜尋過程的方式來避免,比方說,在原有或 轉換後的域上使用部分距離搜尋(PDS) [4, 13]。PDS 演算法因僅計算部分距離, 只需少量乘法運算便能淘汰不需要的神經元。當一個神經元的部分距離大於現有 最相配神經元的全距離(full distance)時,這個神經元便會被判淘汰。但這些軟體 方法僅能達到普通程度的加速效果。因此便有學者選擇使用 VLSI 來實現搜尋引 擎 [19, 21],把原有為了 VQ 編碼器所設計的各式心脈陣列(systolic arrays)拿來 進行平行搜尋。相較於軟體實現,硬體電路提供了較高的產量(throughput)。然而 這些提出的電路架構並不滿足競爭式學習演算法中很重要的即時神經元更新 (online neuron updating)。在 [18] 中所提出的基於部分距離搜尋法之競爭式學習 系統,其硬體架構雖能滿足即時神經元更新的要求,但在一個時間點上,只能針 對一個輸入向量做運算,因此在競爭式學習法則的訓練上其產量是有限的。. 2.
(12) 第一章 緒論. 1.2 研究目的 有鑒於上節所述之情況,本論文提出一個快速贏家通吃競爭式學習法的新硬 體架構。此架構可以快速完成訓練,並以現場可程式邏輯陣列(field programmable gate array,FPGA)為實現平台 [5, 10],因此可在重複規劃後套用到不同的競爭式 網路上。基於 FPGA 的可重組硬體幾乎可像軟體般來進行程式設計,且相較於 傳統的 ASIC 硬體實現,它最吸引人的地方莫過於彈性佳、成本低。另外,FPGA 的硬體實現可對競爭式學習法的演算進行平行處理,從而降低訓練時間。. 除了使用 FPGA,我們還提出一個全新的管線化(pipeline)架構,以求達到高 產量的特性。此架構針對於即時神經元更新使用了神經元交換(swapping)機制, 透過此機制,不同的訓練向量之間在同一個時間點上能平行化的進行神經元競爭 的運算,除此之外,訓練向量更能帶著其贏家候選神經元一同在管線化層級裡推 進,直到最後一個管線化層級選出最後的贏家神經元。而落選的神經元,在失去 競爭之後也能夠馬上參與下一個訓練向量的競爭。因此交換機制的運作,能夠大 大提升本論文提出的管線化架構效能。. 當訓練向量從最後一個管線化層級離開來到了神經元更新單元時,以硬體電 路為基礎的神經元更新程序便會隨之啟動,此程序包含了學習率(learning rate)運 算以及贏家神經元權重向量調整。為了加速此程序的執行時間,我們運用了以查 表式為基礎的有限精度除法(lookup table based finite precision division)電路,能夠 有效降低運算時間並具有低面積成本的優點。. 結合了神經元競爭階段的交換機制以及神經元更新階段中的查表式除法器 3.
(13) 第一章 緒論 兩大特色,我們有效的加速了競爭式學習法則的訓練速度,並將本論文所提出的 硬體架構成為客製化的邏輯電路,以 FPGA 為基礎的可程式化系統晶片設計 (System On a Programmable Chip,SOPC)做為我們實現的效能測試平台。在實現 此管線化架構,我們必須保證此架構必須擁有快速的計算能力以及優異的產能表 現,因此在實驗部分與數據的蒐集上,我們利用了 Altera 的 Cyclone III 開發板來 做為模擬與驗證。. 4.
(14) 第一章 緒論. 1.3 全文架構 本篇論文總共分為五章,各章的內容安排如下:. 【第一章】 緒論. 說明本論文的研究背景與動機目的。. 【第二章】 基本理論介紹. 介紹本論文主要使用的基礎理論與技術背景。. 【第三章】 Fast CL 之架構與硬體實現. 說明本論文提出的交換機制、查表式除法以及設計新電路時所依據的 基礎電路架構。. 【第四章】 實驗數據與效能比較. 呈現本論文所提出的電路設計成果數據、以及討論。. 【第五章】 結論. 說明本論文的貢獻。. 5.
(15) 第二章 章. 基礎理 理論介紹. 第 章 基礎 第二章 礎理論 論介紹 紹 本章將 將探討本論文 文架構的理 理論基礎與背 背景知識,包括贏家通 通吃競爭式 式學習法 以 SOPC 系統整合設 以及 系 設計。. 2 2.1 贏 通吃競爭 贏家通 爭式學 學習法 競爭式 式學習指的 的是一種誤差 差修正的學 學習過程。各 各神經元以 以其對應權重 重向量 與 與訓練向量 量的相似性做 做競爭;獲 獲勝神經元的 的對應權重 重向量,就利 利用其與訓 訓練向量 的 的差異來做 做調整。這個 個學習過程 程就是在使權 權重向量慢 慢慢趨近於訓 訓練向量,相當於 在 在學習訓練 練向量的平均 均值。. 回顧贏 贏家通吃競爭 爭式學習,我們可以把 把學習過程 程分為兩個階 階段:. (1) 競爭 爭階段(com mpetitive phhase):根據 據訓練向量 x 與權重向 向量 yj 兩者 者間的最 小 小歐幾里得 得距離來挑出 出贏家 yj*。贏家將滿 。 滿足 j* = arggmin1 ≤ j ≤ N D(x, yj). (2.1). (2) 學習 習階段(learrning phasee):調整獲勝 勝神經元的 的權重向量 量─也就是對 對獲勝 神 神經元的權 權重向量加上 上一個學習 習量。規則如 如下: yj* ← yj*+ ηj*(x - yj*). (2.2). 6.
(16) 第二章. 基礎理論介紹. 其中 ηj*是獲勝神經元的學習率(learning rate),會隨著時間增加而嚴格遞減。 由於學習率是一個嚴格遞減函式,故而神經元會因為學習率的遞減而穩定收斂。. 由上述公式可看出搜尋時所做的比對是全搜尋的運算,神經元數目及/或維 度的增加,將會大幅提升計算的複雜度,因此如何有效降低這項複雜度是一個重 要的課題。. 7.
(17) 第二章. 基礎理論介紹. 2.2 SOPC 系統整合設計 隨著科技的進步,電子產品從設計到出廠受到很嚴厲的時間限制,因此如何 在短時間內開發出好的產品是很大的考驗。在傳統的系統設計上,因為軟體與硬 體是分開設計的,要同時兼顧軟體與硬體設計是相當艱難的,且如果在整合軟硬 體時出現錯誤,常常因為不知道錯誤在哪,而需花費大量的時間去檢查軟硬體, 也因此延遲了產品出產時間,降低了競爭力。為了改善軟硬體分開設計的缺點, 可程式化系統晶片設計(SOPC)是一種新的軟硬體整合設計技術,也是一種軟硬 體協同設計技術,能快速將硬體設計(如使用者邏輯電路、微處理器等)與軟體設 計放在單一個可重新規劃的晶片上,此種設計方式使系統具有重複修改等優點, 且整合驗證更加容易,大大降低設計的時間和成本。. Altera 公司根據不同使用者的需求,開發出許多不同系列的 FPGA 開發板, 本研究是在 NIOS development kit 中的 Cyclone III 系統開發板上實現我們所提出 的硬體電路,在 NIOS 系統中提供了一套專門給 NIOS 處理器使用的匯流排 (Avalon bus),而使用者設計出的電路可以利用此匯流排上的各個訊號線,將電 路掛在 Avalon bus 上與整個系統溝通,如圖 2-1 所示。. NIOS 系統擁有下列優點:. 1. Altera 公司所提供的 NIOSⅡ IDE 是視窗介面的軟體開發工具,設計者可以在 8.
(18) 第二章. 基礎理論介紹. 上面編寫程式碼、編譯、除錯及觀察程式執行結果。此開發工具除了包含 C 語言的函式庫外,還包含 HAL(hardware abstraction layer)函式庫。其中 HAL 函 式 庫 提 供 設 計 者 一 個 呼 叫 系 統 相 關 裝 置 的 API(Application Program Interface),如圖 2-2 所示,所以設計者可以撰寫 C 語言程式並透過 HAL API 呼叫來讓特定的裝置運作。. 2. 提供 Compact Flash 卡存取功能,讓設計者可以將資料置於 CF 卡中,設計者 可透過 HAL API 進行讀取與寫入的動作。. 3. 提供 DMA(direct memory access)機制讓設計者可加快資料在記憶體與系統周 邊元件的傳輸速度且不佔用 CPU 資源。. 4. lwIP 提供基本的網路功能,除了符合嵌入式系統最基本的簡單、快速、不佔 用過多系統資源之外,也讓設計者更容易修改或增刪想要的功能而不需有大 量的修改或變更程式。. 5. 設計者可依自己的需求增減電路的功能,製作一個專屬的系統。如需增減裝 置時,只要重新 build 系統並 compile 成硬體檔之後燒入板子即可。. 整個系統的設計流程,如圖 2-3 所示,首先使用 Altera 公司提供的 Quartus II 軟體,將以硬體描述語言編寫的原始程式進行邏輯電路合成之編譯,再利用 SOPC. 9.
(19) 第二章. 基礎理論介紹. Builder 將此電路掛載至 Avalon bus 上,之後再將整個系統燒入到 FPGA 板子上, 最後,利用 NIOS II IDE 編譯軟體程式並觀看執行結果。. 圖 2-1. Avalon System. 圖 2-2 HAL API 10.
(20) 第二章. 圖 2-3. 軟硬體共同設計流程圖. 11. 基礎理論介紹.
(21) 第三章 章. Fast CL L 架構與硬 硬體實現. 第 章 Faast CL 第三章 L 架構 構與硬體 體實現 現 3 3.1. 一 管線化 一般管 化架構 構. 我們的 的目標是為贏 贏家通吃競 競爭式學習法 法則設計一 一個全新的管 管線化架構 構,最直 覺 覺的設計便 便是讓神經元 元數目 N 成為管線化層 成 層級數目,每個層級存 存放一個神 神經元, 訓 訓練向量從 從第一個層級 級一步一步 步推進到第 N 個層級,便能依序經 經過每個神 神經元, 進 進行運算找 找出贏家,最 最後再將贏 贏家送至第 N+1 個層 層級做更新, ,但是如果 果直接將 管 管線化架構 構就這樣套用 用至贏家通 通吃競爭式學 學習法則,會面臨到一 一個很大的 的問題─ 即 即時神經元 元更新帶來的 的阻礙。即 即時神經元更 更新意味著 著,當訓練向 向量在找出 出獲勝的 神 神經元並對 對之做相對應 應權重向量 量調整之前,下一個訓 訓練向量是不 不能參與此 此獲勝神 經 經元的運算 算,為了簡化 化說明這個 個問題,我 我們將用簡單 單的圖表來 來詳細說明這個問 題 題:. 圖 3-1 給定了兩個 個訓練向量 量 x1、x2 以及 及四個神經元 元,分別為 nneuron 1 到 neuron 4 4,代表著我 我們目前的 的管線化層級 級是四個層 層級,接下來 來我們便依 依序討論每 每個時脈 週 週期時的情 情況。. 在第一 一個時脈週期 期時,訓練 練向量 x1 進到了第一個 進 個層級,隨 隨之與 neuro on 1 進 行 行相似度運 運算,由於對 對訓練向量 量 x1 而言,它目前只跟 跟 neuron 1 做過運算 算,所以 n neuron 1 不需與其他神 不 神經元做比 比較,便能成 成為目前的 的贏家神經元 元,同時我 我們給定 12.
(22) 第三章. Fast CL 架構與硬體實現. 一個星星圖示來代表贏家。. 圖 3-1 一般管線化架構的例子. 到了第二個時脈週期,訓練向量 x1 進到了第二個層級,與 neuron 2 進行相 似度運算,在將計算結果與目前的贏家(neuron 1)進行比較,而比較的結果,假 13.
(23) 第三章. Fast CL 架構與硬體實現. 設 neuron 1 依然是目前最為相似的神經元,則 neuron 1 依然是目前的贏家,neuron 2 便失去了對訓練向量 x1 的競爭,標示上叉叉符號以代表淘汰的神經元。. 第三個時脈週期與第二個時脈週期一樣,neuron 3 依然無法打敗 neuron 1, neuron 1 依然是目前的贏家。. 到了第四個時脈週期,在訓練向量 x1 進行了最後一個神經元的相似度計算 並進行比較之後,我們獲得了最後真正的贏家─依舊是 neuron 1,我們在此可以 觀察到一個情況,由於贏家通吃競爭式學習法則在神經元更新方面是屬於即時更 新,當獲勝的神經元尚未完成更新時,下一個訓練向量是無法與之進行相似度運 算,在我們的例子裡,很不湊巧的是獲勝神經元 neuron 1 剛好位在管線化架構第 一個層級,導致了訓練向量 x2 始終無法進到我們的管線化架構裡進行訓練,而 neuron 2、neuron 3 和 neuron 4 雖然已經早已失去了對訓練向量 x1 的競爭力,也 因為獲勝的神經元 neuron 1 擋在前面,無法進行和下一個訓練向量 x2 的相似度 運算。. 由以上的例子可以看到,贏家通吃競爭式學習法則實現在管線化架構上,當 遇到獲勝的神經元集中在前面的層級時,會造成阻擋(block)效應,整體的管線化 產能將會非常的低落,在最壞情況下,若贏家神經元剛好就位於管線化第一個層 級,則神經元數目為 N 時,每個訓練向量皆須等上 N 個時脈週期的找出贏家時. 14.
(24) 第三章. Fast CL 架構與硬體實現. 間,以及一個時脈週期的神經元更新時間,也就是需整整等上(N+1)個時脈週期, 顯然這樣的情況,是我們極力想要去避免的。. 我們可以歸納出一個重點,一般的管線化架構之下,效能取決於贏家神經元 的分布,當贏家神經元集中在管線化層級的後半段,便能擁有不錯的效能,但是 若不幸的贏家神經元集中在管線化層級前半段,效能將會非常低落,可惜的是, 贏家神經元的分布根本無法事先預知,因為若不和所有的神經元進行完相似度運 算,又如何得知真正的贏家神經元位在何處,所以如何將這種缺點去除掉,並使 管線化架構始終維持在最高的產能上,便是我們的目標。. 15.
(25) 第三章. 3.2. Fast CL 架構與硬體實現. 交換機制 (Swapping). 我們提出一個簡單、有效的方法來巧妙解決贏家神經元的分布問題以及其帶 來的阻擋效應問題,這方法便是─神經元交換機制(swapping),此機制核心圍繞 著“贏家帶著走"的概念,我們在此一樣以一些簡單的圖表,來詳細呈現此機制 是如何運作,並解決了問題。. 如圖 3-2 所示,我們一樣給予兩個訓練向量 x1、x2 以及四個神經元,分別為 neuron 1 到 neuron 4,在第一個時脈週期時,訓練向量 x1 一樣進到了第一個管線 化層級,與 neuron 1 進行相似度計算,隨之 neuron 1 也理所當然的成為了目前贏 家神經元。這裡的步驟都與一般的管線化架構一模一樣。. 當來到了第二個時脈週期,訓練向量 x1 一樣進到了第二個層級,與 neuron 2 進行相似度運算,再將計算結果與目前的贏家(neuron 1)進行比較,我們一樣假 設 neuron 1 是最為相似的神經元,所以 neuron 1 依然是目前的贏家,neuron 2 便 失去了對訓練向量 x1 的競爭,並標示上叉叉符號。. 16.
(26) 第三章. 圖 3-2. Fast CL 架構與硬體實現. 交換機制運作的例子. 到了以上的步驟之前,皆與一般的管線化架構無異,但此時才是我們交換機 制運作的時刻,當我們選出了優勝的神經元時,若發現目前的贏家神經元位置是 17.
(27) 第三章. Fast CL 架構與硬體實現. 在被淘汰的神經元前面,我們便將這兩個神經元的位置做交換,我們可以清楚看 到原先位在管線化第一個層級的 neuron 1 與位在管線化第二個層級的 neuron 2, 此時已經彼此交換了位置,這樣交換的好處,將會在下一個時脈週期顯現出來。. 在第三個時脈週期我們可以看到,已經被淘汰的神經元 neuron 2,由於已經 失去對訓練向量 x1 的競爭,同時前方也沒有獲勝神經元所阻擋,此時新的訓練 向量 x2 便可順利的進到管線化層級中第一個層級,與 neuron 2 進行相似度運算, 而如同之前所說的,neuron 2 也理所當然的成為了訓練向量 x2 目前的贏家神經元。 一樣的時間點,訓練向量 x1 也來到了第三個層級,進行與 neuron 3 的相似度運 算以及和目前贏家的比較,在這我們依然假設 neuron 1 成為了贏家,因此交換機 制再度啟動,將 neuron 1 及 neuron 3 的位置彼此交換。. 在第二與第三兩個時脈週期,我們都展示了交換機制的運作方法,到了第四 個時脈週期,我們將展示出一些不一樣的情況。當訓練向量 x2 來到了管線化層 級中的第二個層級,進行與 neuron 3 的相似度運算與比較,發現到 neuron 3 擁有 比 neuron 2 更高的相似度,此時的動作非常簡單,不需要任何交換,我們只須標 記上 neuron 3 成為了獲勝神經元,neuron 2 成為了被淘汰的神經元即可。此時訓 練向量 x1 的動作就如同往常一般,我們就不再重複敘述。. 透過以上的範例,我們可以清楚看到整個交換機制的運作方式,是伴隨著其. 18.
(28) 第三章. Fast CL 架構與硬體實現. 核心想法“贏家帶著走",當訓練向量走到哪,贏家神經元就跟到哪,如此一來 我們可以完全避免掉獲勝神經元的阻擋效應問題,而原本屬於靜態的神經元分布, 也透過我們動態的交換機制,始終將獲勝神經元往後帶,讓整體的管線化效能達 到最大化。. 圖 3-3. 在神經元數目 N=8 下之管線化層級縮圖,以陰影表示訓練向量所存 在的層級,空白代表未有訓練向量存在的層級. 同時我們也可以注意到,訓練向量之間需要間隔一個時脈週期,換言之,假 設訓練向量 xk 目前位在管線化層級 i,則訓練向量 xk+1 此時必不能位在管線化層 級 i-1,這樣的間隔是合理且必須要的,因為對 xk 來說,其目前贏家候選神經元 yj*會待在管線化層級 i-1 中直到交換機制執行完成。而在競爭式學習法則中,贏 家神經元在更新之前是不能參與下一個訓練向量的競爭,因此當 xk 來到管線化 層級 i 時,若 xk+1 也來到管線化層級 i-1,這樣就會造成 xk 目前的贏家候選神經 元在未更新之前就參與了 xk+1 的競爭,這會導致錯誤的運算,以神經元數目 N=8 19.
(29) 第三章. Fast CL 架構與硬體實現. 為例,訓練向量在管線化層級之中的分布,會如圖 3-3 所示,彼此之間會間隔至 ே. 少一個層級。所以一個 (N+1) 層級的管線化架構,能夠同一時間允許 ( ) 個神 ଶ. 經元競爭平行去運算。. 20.
(30) 第三章. 3.3. Fast CL 架構與硬體實現. Fast CL 架構與硬體實現. 透過範例我們清楚了解到交換機制對本論文管線化架構的重要性及必要性, 在此我們便更進一步的詳細定義交換機制的運作情形:. 假設訓練向量 xk 目前位在管線化層級 i,我們令 yi 代表位在層級 i 的神經元 相對應權重向量,Dmin 代表在管線化層級 1 到層級 i-1 之中,xk 與其所選出的目 前贏家候選神經元 yj*之間的平方距離值,此 Dmin 值會是目前最小的平方距離值, 同時做為層級 i 的輸入。當 i=1 時,則初始的 Dmin 值為∞,yj*為 null。當 xk 抵達 管線化層級 i 時,xk 與 yi 之間的平方距離值─Di 會馬上被運算出來,並與 Dmin 做比較。當 Di< Dmin,意味著 yi 對 xk 擁有著更高的相似度,此時 yi 成為了 new yj*, 不需任何的交換動作。反之當 Di ≥ Dmin,意味著 yi 失去對 xk 的競爭,此時我們 必須啟動交換機制來交換 yi 與 yj*,在交換完成之後,yj*一樣保持著其贏家狀態 成為 new yj*,同時取代掉了 yi,而原本的 yi 則被移動至前一個層級(層級 i-1)。 於是我們可以發現,當 xk 完成了在層級 i 的所有動作之後,其所選出新的目前贏 家候選神經元 new yj*都會成為最後輸出到下一個層級的神經元,透過這樣的方 式,我們便實現了之前所提到的“贏家帶著走"概念,訓練向量會隨時帶著其贏 家候選神經元一步一步在管線化層級中推進。. 21.
(31) 第三章. Fast CL 架構與硬體實現. 圖 3-4 Fast CL 之 VLSI 系統架構. 因此將管線化架構結合交換機制,便成為了本論文提出的 Fast CL 硬體架構, 圖 3-4 顯示了在神經元數目為 N 之下,Fast CL 的(N+1)管線化層級架構,本架構 主要由 winner selection unit 和 winner update unit 兩個單元所構成, winner selection unit 由 N 個管線化層級所組成,每一個層級各代表一個神經元,而訓練 資料每間隔一個時脈週期便傳送進來進行贏家通吃競爭式學習法則的訓練。當訓 練資料經過了 N 個層級之後,便可挑選出成為贏家的神經元,最後進入到層級 N+1─winner update unit,將贏家神經元的權重向量進行學習量的更新調整。. 構成 Winner Selection Unit 的 N 個管線化層級,必須分為三個部份來討論, 分別是第一個層級,第 i 個層級(1 < i <N),第 N 個層級,其中第一個層級與第 N 個層級只是第 i 個層級的特例,我們便先討論層級 i。. 22.
(32) 第三章. 圖 3-5. Fast CL 架構與硬體實現. 第 i 個管線化層級的電路架構圖. 第 i 個層級的架構如圖 3-5 所示,包含了 swap unit、registers、comparator、 multipliers 和 mulitiplexers,輸入埠有 xin、yi-1、yi+1、Dmin 和 ci+1,而輸出埠有 xout、 yi、new Dmin 和 ci,我們在這補充說明一些符號的意義,xk 除了代表訓練向量以 外,同時還額外夾帶 1 bit 的 bk=1 訊號,透過此訊號來 enable 訓練向量 xk 所在層 級的 comparator,因此沒有訓練向量存在的層級,其 comparator 狀態為 disable, 輸出恆為 0,其作用我們在後面會詳細說明; ci 則是代表第 i 個層級的 comparator 結果,此訊號也會傳送至前一個層級做為輸入。我們必須在這再一次強調,由於 交換機制的關係,對第 i 個管線化層級來說,其輸入的神經元 yi-1 必是目前的贏 家神經元 yj*。. 當訓練向量 xk 由 xin 傳送進來時,訓練向量 xk 便與神經元相對應權重向量 yi 23.
(33) 第三章. Fast CL 架構與硬體實現. 經由 square distance unit 進行平方距離計算,得出結果 Di,然後與從前一個層級 傳送進來的 Dmin 一起傳送到 compartor 進行比較,同時訓練向量 xk 的控制訊號 bk=1 亦使 comparator 的狀態成為 enable,當 Di ≥ Dmin 時,意味著第 i 個層級的神 經元 yi 沒有比前一個神經元 yi-1 擁有更高的相似度,此時 ci=0,控制 multiplexer 使得 new Dmin ← Dmin,反之當 Di < Dmin,則意味著目前層級的神經元 yi 擁有更高 的相似度,成功打敗神經元 yi-1,成為新的贏家神經元,此時 ci=1,new Dmin ← Di。 當決定了 new Dmin 的輸出之後,同時我們還要透過 ci 訊號線來決定 swap unit 的 輸出。. 圖 3-6. Swap unit 電路架構圖. 24.
(34) 第三章. Fast CL 架構與硬體實現. ci. ci+1. MUX_out. 0. 0. yi. 1. 0. yi-1. ×. 1. yi+1. 表 3-1. Swap unit 中之 multiplexer 真值表. 交換機制的實際電路是如何運作呢?由圖 3-6 可以看到 swap unit 的電路架 構是由一個 multiplexer 和一個 register 所構成,register 一開始便會儲存一個初始 神經元 yi,而 multiplexer 的輸入有目前層級的神經元 yi、前一個層級的神經元 yi-1 和後一個層級的神經元 yi+1,其控制線有兩條,分別為目前層級的 comparator 結果 ci,以及後一個層級的 comparator 結果 ci+1,其輸出如表 3-1 所示。. 圖 3-7. 交換機制啟動下之層級 i 與層級 i-1 的 swap unit 狀態. 接下來我們深入探討 swap unit 的運作情形,在此我們先討論交換機制啟動 25.
(35) 第三章. Fast CL 架構與硬體實現. 的範例,如圖 3-7 所示,當 ci=1 (意味著 Di ≥ Dmin),代表神經元 yi 被淘汰,yi-1 依舊是贏家神經元,此時我們便需啟動交換機制,將獲勝神經元往後搬,淘汰神 經元往前移,於是對層級 i 的 swap unit 來說,由於 ci=1、ci+1=0,所以 yi ← yi-1, 而對層級 i-1 的 swap unit 來說,由於 ci-1=0、ci=1,所以 yi-1 ← y, i 透過對 multiplexer 的輸出控制,我們便完成了神經元的交換動作。. 但此處還是存在著一個疑問,為何 ci-1 和 ci+1 都為 0,不會有 1 的可能嗎?答 案是否定的,原因便在於訓練向量 xk 的控制訊號 bk,其功用在於 enable 其所在 層級的 comparator,所以當訓練向量 xk 來到了層級 i,因為訓練向量之間必存在 一個時脈週期的安全距離,代表著管線化層級 i-1 與層級 i+1 此時並沒有訓練向 量存在,所以 comparator 狀態此時必為 disable,因此 ci-1 與 ci+1 輸出恆為 0。. 透過這樣的技巧,我們解決了一個很重要的問題,不讓 comparator 的結果影 響到其它訓練資料,舉個例來說,當層級 i 的 ci 訊號為 1 時,若不在下一個時脈 週期將這個值再次清為 0,將會造成層級 i 與層級 i-1 的交換機制永遠啟動,呈 現混亂的情形。所以我們可以得到一個結論,當訓練向量 xk 來到層級 i 時,ci-1 與 ci+1 的值必為 0,自然也就不會有 1 的情況產生。. 26.
(36) 第三章. 圖 3-8. Fast CL 架構與硬體實現. 交換機制未啟動下之層級 i 與層級 i-1 的 swap unit 狀態. 不啟動交換機制的情況便簡單許多,如圖 3-8 所示,當 ci=0 (意味著 Di < Dmin), 代表神經元 yi 成為新的贏家,此時我們不需做任何的交換動作,於是對層級 i 的 swap unit 來說,由於 ci 與 ci+1 皆為 0,yi ← yi,輸出保持不變,而對層級 i-1 的 swap unit 亦是相同的情況,ci-1 與 ci 皆為 0,yi-1 ← yi-1,輸出一樣保持不變。. 在討論完了層級 i 的架構之後,我們便開始討論層級 i 的兩個特例,第一個 層級與第 N 個層級。. 27.
(37) 第三章. 圖 3-9. Fast CL 架構與硬體實現. 第一個管線化層級的電路架構圖. 圖 3-9 為管線化第一個層級的電路架構圖,由於對每個訓練向量來說,第一 個進行運算的神經元必會成為目前的贏家神經元,因此就不需要與其他神經元做 任何比較,只需要考量未來是否會和第二個層級的神經元做交換的動作,因此我 們可以看到電路圖中少了 comparator,Dmin 的輸出就等於 D1 值,而 swap unit 的 輸入神經元也簡化成只有 y1 與 y2,當來自層級 2 的 c2 訊號為 1 時,就會啟動交 換動作。. 28.
(38) 第三章. 圖 3-10. Fast CL 架構與硬體實現. 第 N 個管線化層級的電路架構圖. 當訓練資料來到 winner selection unit 中最後一個層級(第 N 個層級)時,計算 出 DN 與 Dmin 進行比較過後,我們便可以知道最後真正的贏家神經元,由於競爭 式學習法則的神經元更新部分不需要平方距離值,我們便拿掉了 new Dmin 的輸出, 因此少了一個 multiplexer 與儲存最小平方距離值的 register,如圖 3-10 所示,第 N 個管線化層級只剩下一個 multiplexer。值得注意的是,此 multiplexer 除了用來 做為層級 N 與層級 N-1 的交換機制,它另外可以儲存來自層級 N+1 的已更新神 經元。如同其它層級一樣,層級 N 的 multiplexer 一樣具有兩條控制訊號線,cN 與 cN+1,訊號線 cN 一樣用來做為交換機制用途,但訊號線 cN+1 便截然不同,如 圖 3-11 所示,當 cN+1=1 時,代表著贏家神經元在層級 N+1 已經更新完成,此時 層級 N 便能儲存已更新的神經元,以便參予下一個訓練向量的競爭。 29.
(39) 第三章. Fast CL 架構與硬體實現. 圖 3-11 神經元更新時層級 N 與 winner update unit 的狀態. 第 N+1 個管線化層級便是 winner update unit,負責進行贏家通吃競爭式學習 法的學習階段,將獲勝神經元的權重向量進行調整,如圖 3-12 所示,winner update unit 包含了 control unit 以及 update unit。當訓練向量來到 winner update unit,其 夾帶的 bk=1 訊號此時做為 control unit 的輸入,產生出 cN+1=1 訊號來讓已更新好 的神經元能夠傳送回層級 N,反之若無訓練向量在 winner update unit 之中,此時 bk=0,cN+1 輸出便為 0,透過這樣的控制訊號線,能夠避免掉當 winner update unit 沒有訓練向量存在時,錯誤的神經元傳送至層級 N。. 30.
(40) 第三章. 圖 3-12. Fast CL 架構與硬體實現. Winner update unit 的電路架構圖. Update unit 負責進行學習率的計算以及贏家神經元的更新。在我們的實做中, 本論文所採用的學習率函數源於[14],可以下式表示:. η. j*. =. 1 , 4 × r j*. (3.1). 其中 rj*代表贏家神經元 yj*的獲勝次數,因此 update unit 中的 counter 便用來負責 累加次數。. 31.
(41) 第三章. Fast CL 架構與硬體實現. 為了計算學習率,每個神經元 yi 都必須有自己的獲勝次數 ri,當神經元 yi-1 與 yi 在執行交換動作時,其獲勝次數 ri-1 與 ri 也會隨之跟著交換。由於獲勝次數 在 winner selection unit 中並未被使用到,為了簡化表示,我們並沒有在圖 3-5、 圖 3-9 和圖 3-10 中標示出來。. 當真正的贏家神經元在層級 N 確定之後,其獲勝次數 rj*便會經由 counter 累 加 1,並進行神經元更新的動作。由於學習率的計算當中帶有除法,而這不管對 於軟體或硬體而言都是不小的負擔。為此,在電路設計上,我們技巧性地將學習 率的公式以查表及移位等運算來完成。對於任何大於 0 的整數 w 而言,(3.1)式可 改寫為. w. 1 η j* = 4 × r = 2r × 2−( w+2) j* j*. (3.2). 給定一個正整數 w,即代表查詢表 ROM 中每一個實體(entity)的位元寬度為 w. w,且 ROM 中的第 rj*個實體,其值為 2. r j*. w. 。因此,對任何小於 2 的 rj*而言, 2 r w. j*. 的值都可在 ROM 中經由查詢得到。把 ROM 的輸出結果乘上權重向量與訓練向 量的差值,然後再右移(right shift)共 ( w + 2) 個位元,即完成,學習量 ηj*(xk - yj*) 的求取。. 值得注意的是,這個查詢表 ROM 的空間大小是可以縮減的。在採用有限精 32.
(42) 第三章. Fast CL 架構與硬體實現 w. 度計算的情況下,给定 2 ,當 rj*大到一定程度,則不同的 rj*都會擁有相同的 2 r w. j*. w. 值,因此這些擁有相同 2. r. 值的 rj*,可以藉由共享 ROM 中一個實體的方式來節. 省儲存空間。而這種方式只要在 ROM 中加入一個編碼器就可達到。這個編碼器 會將所有共享同一實體的 rj*全都對應到相同的位址,因此可讓我們省下可觀的 儲存空間。舉例來說,當 w = 12,則 ROM 中僅需存有 127 個實體即可,而不用 12. 存到 2 個那麼多。. w. 同時對 2. r j*. 而言,若我們採用的是有限精度計算,則 shift 的操作就會變得很 w. 簡單。在本論文的架構中, 2. r j*. w. 況下,對(xk -. yj*)× 2. r j*. 和權重向量都是以整數的格式做儲存。在這種情. 做右移 ( w + 2) 個位元的操作,就等於將相乘的結果捨棄. ( w + 2) 個 LSB 位元。. 利用查表法及位移運算所得到的學習率近似值對於調整結果僅有極小的影 響,但卻能省下可觀的計算時間,也不會造成硬體面積複雜度的過度擴張。. 因此結合了查表式除法的 winner update unit,其更新過程如下,傳送進來的 訓練向量 xk 與贏家神經元權重向量 yj*進行減法運算,而 rj*透過 counter 累加 1(代 表獲勝次數增加一次),也傳送至我們的 lookup-table based division 單元裡進行學 33.
(43) 第三章. Fast CL 架構與硬體實現. 習率 ηj*的查表動作,透過乘法器計算出 ηj*(xk - yj*)的結果,再加回原本的 yj*就完 成了贏家神經元權重向量更新部分。最後將神經元 updated yj*與獲勝次數 new rj* 傳送至層級 N,便完成了整體的更新動作。. 34.
(44) 第四 四章. 實驗 驗數據與效 效能比較. 第 章 實驗 第四章 驗數據 據與效 效能比 比較 我們已 已對本論文所 所提出之架 架構完成實際 際效能的量 量測。本章將 將呈現這些 些實際效 能 能量測的實 實驗數據,並 並做一個效 效能比較。. 整個 Fast F CL 系統 統是在 Alterra 的 Cyclon ne III EP3C C120F780C7 FPGA 發展板上 發 合 合成硬體電 電路,如圖 4-1 所示,此 此發展板提 提供的邏輯 輯單元數(loggic elementss,LEs) 最 最大值為 119088 LEs,記憶體位 位元(memorry bits)最大 大值為 39813312 memorry bits, D block 個數最大值 DSP 個 值為 576,而 而我們主要 要以 LEs 的數 數量來做為 為面積複雜度 度的量 測 測基準。選 選擇在 Cycloone III FPG GA 上實現驗 驗證硬體電 電路,是因為 為可規劃系 系統晶片 設 設計(System m On a Proggrammable Chip,SOPC) 可以快 快速地將硬體 體設計實現 現並完成 驗 驗證,具備 備快速上市與 與系統再修 修改等特性,非常適合 合做雛型設計 計。接下來 來我們將 進 進行許多 F CL 架構 Fast 構下的實驗 驗。. 圖 4-1 Alterra Cyclone III I EP3C1200 實驗開發 發板. 35.
(45) 第四章. LEs N. 4 8 16 32 64 128 256. 實驗數據與效能比較. Memory bits. DSP blocks. absolute. squared distance. absolute. squared distance. absolute. squared distance. 1478/119088 (1%) 2529/119088 (2%) 4650/119088 (4%) 8623/119088 (7%). 1615/119088 (1%) 2856/119088 (2%) 5320/119088 (4%) 10353/119088 (9%). 0/3981312 (0%) 0/3981312 (0%) 0/3981312 (0%) 0/3981312 (0%). 0/3981312 (0%) 0/3981312 (0%) 0/3981312 (0%) 0/3981312 (0%). 8/576 (1%) 8/576 (1%) 8/576 (1%) 8/576 (1%). 24/576 (4%) 40/576 (7%) 72/576 (13%) 136/576 (24%). 16793/119088 (14%) 33137/119088 (28%) 65756/119088 (55%). 20512/119088 (17%) 40449/119088 (34%). 0/3981312 (0%) 0/3981312 (0%) 0/3981312 (0%). 0/3981312 (0%) 0/3981312 (0%). 8/576 (1%) 8/576 (1%) 8/576 (1%). 264/576 (46%) 520/576 (90%). 表 4-1. null. null. null. 不同神經元數目 N 之下的資源消耗表. 首先第一項實驗,用以探討在實作出 Fast CL 系統不同神經元數目 N=4, 8, 16, 32, 64, 128, 256 的資源消耗比較。表 4-1 詳列出每個神經元數目的資源消耗,在 實做中我們額外採用了使用絕對值距離來選出贏家神經元的方式,目的在於藉由 犧牲部分精準度來換取更少的面積複雜度,而使原本使用平方距離值的 Fast CL 架構,神經元數目 N 能從 128 個更進一步提升到 256 個,藉以觀察神經元在數 量很大時,本架構的整體表現。在表中我們可看到隨著神經元的數目倍增,資源 消耗上也是呈現固定倍數增加,透過圖 4-2 我們更可清楚的看到,此全新的 Fast CL 硬體架構在資源消耗上,隨著神經元數目而線性增加,這意味著當我們需要 36.
(46) 第四 四章. 實驗 驗數據與效 效能比較. 實 實做出更多 多神經元數目 目的架構時 時,資源的消 消耗是穩定 定成長,同時 時也是我們 們所能精 確 確預估的。. 圖 4-2. 不同 同神經元數目 目 N 之下的 的資源曲線 線圖. 由於我 我們提出的架 架構在 SOP PC 系統上所 所扮演的角 角色是一個客 客製化的邏 邏輯電 路 路。因此加 加入 SOPC 系統的整體 系 體資源消耗,也是我們 們所必須考量 量進去的。 。表 4-2 詳 詳列出了在 在神經元數目 目 N=128,使用平方距 距離值方式 式時,我們的 的 Fast CL 電路架 構 構以及加入 入了 SOPC 系統的資源 系 源消耗對照表 表,透過表 表中我們可知 知道加入了 了 SOPC 系 系統在 LEss 消耗上增加 加了 9704 LEs,約占了 L 了整體 LEss 消耗的 8% %,而最後 後整體的 資 資源消耗僅 僅僅耗用了 42%的 LEss。而表 4-3 3 則詳列出 出在神經元數 數目 N=256 6,使用 絕 絕對值距離 離方式下, Fast F CL 電路 路架構以及 及加入了 SO OPC 系統的 的資源消耗對 對照表,. 37.
(47) 第四章. 實驗數據與效能比較. 可以看到加入了 SOPC 系統後,LEs 一樣也成長了 9704 LEs,約佔整體 LEs 消耗 的 8%,而最後整體的資源也僅僅消耗了 65%,但神經元數目已經提升至 256 個。. N=128. Fast CL circuit (Squared distance). Entire SOPC system. LEs. 40449 / 119088 (34%). 50153/119088 (42%). Memory bits. 0/3981312 (0%). 615664/3981312 (15%). DSP blocks. 520/ 576 (90%). 524/576 (91%). 表 4-2. N=128 (使用平方距離值方式),Fast CL circuit 加上 SOPC 系統的資 源消耗. N=256. Fast CL circuit (Absolute). Entire SOPC system. LEs. 65756/119088 (55%). 77354/119088 (65%). Memory bits. 0/3981312 (0%). 615664/3981312 (15%). DPS blocks. 8/576 (1%). 12/576 (2%). 表 4-3. N=256 (使用絕對值距離方式),Fast CL circuit 加上 SOPC 系統的資 源消耗. 再探討完了資源消耗,我們更進一步想要去了解,隨著神經元數目的增 加,其功率消耗的情況是否一樣保持穩定的線性成長,如表 4-4 所示,我們透過 Quartus II 7.2 軟體中的 PowerPlay Power Analyzer Tool 來量測不同神經元數目 N 之下的功率消耗,我們可以發現到,由於使用平方距離值的 Fast CL 架構,需要 38.
(48) 第四章. 實驗數據與效能比較. 耗用到 DSP 資源來進行乘法運算,因此其總功率消耗會比用絕對值距離的 Fast CL 架構來的高。透過圖 4-3 的功率消耗曲線圖,也可進一步觀察到隨著神經元 數目的增加,整體的功率消耗也都呈現線性成長。. 透過以上的資源消耗以及功率消耗實驗數據,皆顯示出了本論文所提出的 Fast CL 架構的設計是嚴謹的,不會隨著神經元數目的增加,而有不必要的資源 浪費和功率消耗,因此對於實現更多神經元數目時,面積複雜度以及功率消耗皆 是能有所掌控的。. N. 4 8 16 32 64 128 256. Core Dynamic Thermal Power Dissipation. Core Static Thermal Power Dissipation. I/O Thermal Power Dissipation. Total Thermal Power Dissipation. Absolute. Square distance. Absolute. Square distance. Absolute. Square distance. Absolute. Square distance. 121.87 192.78. 170.93 281.1. 68.67 68.90. 68.83 69.18. 21.69 21.78. 21.78 21.77. 212.24 283.46. 261.54 372.05. 300.04 504.63. 511.94 933.41. 69.24 69.91. 69.94 71.40. 21.77 21.82. 21.80 21.73. 391.05 596.36. 603.68 1026.55. 847 1569.53. 1766.18 3480.55. 71.09 73.82. 74.63 82.92. 20.98 21.03. 21.73 21.76. 939.08 1664.38. 1862.55 3585.55. 2745.54. null. 79.06. null. 20.96. null. 2845.55. null. 表 4-4. 不同神經元數目 N 之下的功率消耗表(單位 mW). 39.
(49) 第四 四章. 圖 4-3. 實驗 驗數據與效 效能比較. 不同神 神經元數目 N 之下的功 功率消耗曲 曲線圖. 接下來 來要探討的是 是本論文提 提出架構的 的整體效能,首先我們 們先從圖 4-4 Lena 此 512×5512 的灰階圖 此張 圖經過計算 算取得了 65 5536 筆訓練 練向量,訓練 練向量維度 度與神經 元 元相對應權 權重向量維度 度 w=2×2,接下來的實 實驗,我們 們固定輸入向 向量筆數為 為 65536 筆 筆,量測出 出在不同神經 經元數目 N 之下的 CP PU 執行時間 間。. 40.
(50) 第四 四章. 實驗 驗數據與效 效能比較. 圖 4-4 Lena. N. Sooftware. Architectture in [188]. 4. 7 72.5246. 30.1766139. 8. 136.434. 16. Pipelinee withoutt swappin ng. Fast CL circuit c Abbsolute. Squared distance. 78.2023993. 7.5525893. 7.525947. 45.91108. 129.4413330. 7.5526101. 7.526025. 2 254.086. 77.3899762. 234.8014553. 7.5525981. 7.526184. 32. 4 489.116. 140.355643. 436.9275221. 7.5526498. 7.526506. 64. 9 956.051. 266.2677944. 855.0993665. 7.5527323. 7.527146. 128. 1919.19. 518.1166394. 7.5528362. 7.528428. 256. 3771.14. 1021.7991198. null null. 7.5536521. null. 表 4-5. 固定訓練 練向量數目 65536 筆,在不同神經 經元數目 N 的執行時 時間比較 (單位 ms) m. 在固定 定訓練向量數 數目下,表 表 4-5 條列了 了競爭式學 學習法則在四 四種不同的 的實現方 法 CPU 執行時間比 法之 執 比較,分別為 為在 Pentiu um IV 處理 理器上以軟體 體實現,在 在[18]中 41.
(51) 第四章. 實驗數據與效能比較. 的硬體架構上實現,在管線化架構實現但是沒有交換機制(由於此架構資源消耗 劇烈,因此在此只實做到 N=64),以及本論文所提出的 Fast CL 硬體架構上實現, 其中我們一樣將 Fast CL 架構分為使用絕對值距離和使用平方距離值兩種方式。 此處執行時間定義為全部訓練向量完成競爭式學習法則整個過程所需花費的全 部 CPU 時間(ms)。. 在表 4-5 的執行環境上: . . 軟體測試平台: y. CPU:Pentium IV 2.8GHz. y. Memory:1.5GB DDR. y. OS : Windows XP SP2 硬體測試平台 : y FPGA Device: Altera Cyclone III EP3C120F780C7 y CPU:32bit Nios CPU 50MHz. 其中軟體呈現的數據是單純的 CL 演算法則,而在進行權重向量調整時用的 是原始除法,而非查表式除法。而[18]架構和使用管線化但沒有交換機制的架構 與本論文的架構皆實現在相同的 FPGA 開發板上。. 從表 4-5 中可以清楚看到,Pentium IV 處理器上以純軟體方式實現的執行時 間,以及[18]架構下的執行時間,皆會隨著神經元數目的倍增,時間也隨之倍增, 42.
(52) 第四章. 實驗數據與效能比較. 原因在於無管線化架構下,當一筆訓練向量傳送進來,必須等到其與全部神經元 進行運算找出贏家,進行權重向量調整之後,才能繼續傳送下一筆訓練向量進行 訓練,而在使用管線化但是並沒有交換機制的架構下,由於贏家神經元的阻擋校 應嚴重影響其效能,在加上訓練向量的傳送無法使用 DMA,因此其效能遠遠低 於其他硬體架構,只比軟體快一點,而在我們的 Fast CL 架構上,無論是使用絕 對值距離或是平方距離值,皆一樣每間隔一個時脈週期(以 CPU 頻率 50MHz 而 言,一個時脈週期為 20ns)就能傳送進來一筆訓練向量做運算,以神經元數目 N 來說,在同一時間最多能有. N 筆訓練向量同時在管線化架構裡運算,而每筆訓 2. 練向量也僅需(N+1)個時脈週期便可進行完競爭式學習法則訓練,因此我們可以 看到在執行時間上,使用絕對值距離或是平方距離值的時間差異是很微小的,因 此在接下來的實驗中,我們便不再將之分開來討論。. 43.
(53) 第四章. 實驗數據與效能比較. 600. Speed up. 500 400. Software. 300 Pipeline without swapping. 200. Architecture in [18]. 100 0 4. 8. 16. 32. 64. 128. 256. N 圖 4-5. 於不同神經元數目 N 之效能比較. 透過圖 4-5,在神經元數目 N=256 時,我們的 Fast CL 架構已經比純軟體實 做快上了 500 倍,同時也能比同為硬體架構的[18] 快上 110 倍,而在 N=64 時, 有使用交換機制的 Fast CL 架構也比沒有使用交換機制的管線化架構快上 110 幾 倍,同時藉由圖 4-5 的曲線圖,更可以發現隨著神經元數目的增加,本論文提出 的架構更能以非線性成長的加速領先於其它種架構。. 在進行完了固定訓練向量個數,觀察不同神經元數目下的執行時間實驗之後, 我們更進一步的進行另一項實驗,固定神經元數目在 N=128,觀察不同筆訓練向 量之下的執行時間比較,其中由於沒有使用交換機制的管線化架構無法實做到 N=128,我們便不納入討論。 44.
(54) 第四章. 實驗數據與效能比較. Training vector number. Software. Architecture in [18]. Fast CL circuit. 2048. 60.1104 ms. 16.193981 ms. 0.272239 ms. 4096. 117.844 ms. 32.39542 ms. 0.505721 ms. 8192. 232.324 ms. 64.767982 ms. 0.97368 ms. 16384. 463.21 ms. 129.539321 ms. 1.910745 ms. 32768. 943.878 ms. 259.067199 ms. 3.783968 ms. 65536. 1919.19 ms. 518.116271 ms. 7.528074 ms. 表 4-6. 固定神經元數目 N=128,在不同訓練向量數目的執行時間比較. 表 4-6 一樣條列了三種不同方式實現下的執行時間,我們可以清楚觀察到, 隨著訓練向量數目的倍增,所有實現方式的執行時間也會呈現倍增的情形,這樣 的結果是合理且正確的,因為每當訓練向量倍增,代表著神經元訓練與更新的計 算量也同時倍增,但經由這樣的數據,我們可看到本論文提出的架構在與純軟體 以及[18]比較之下,依舊擁有著較高的運算速度。. 45.
(55) 第四章. 實驗數據與效能比較. 300. Speed up. 250 200 150 Software 100. Architecture in [18]. 50 0 2048 4096 8192 16384 32768 65536 Training vector number 圖 4-6. 於不同訓練向量數目之效能比較. 透過圖 4-6 我們可以發現,與純軟體相較之下,皆能有快上 200 多倍的運算 速度,而與[18]相較之下,執行時間上也能快上 60 多倍,同時從曲線上來看, 可以發現隨著訓練向量的倍增,本架構增加的速度也慢慢的越來越高,原因在於 當訓練向量越來越多時,對純軟體與 [18] 而言,其訓練向量都是儲存在記憶體 當中,因此在傳送訓練向量時所將會耗費大量的記憶體存取時間,而本論文提出 的架構在資料傳送上使用了 DMA 方式,大大減低了記憶體存取時間,同時利用 了管線化技術有效縮短計算時間,因此訓練向量數目很龐大時,對我們的硬體架 構影響是很低微的。. 最後我們做了一些實驗來探討查表式除法對於學習結果的影響。若我們分別 46.
(56) 第四章. 實驗數據與效能比較. 以“House”、“Lena”、“Tree”等三張 512×512 的灰階圖當訓練向量,輸入使用原始 除法及查表式除法兩種 Fast CL 架構來訓練神經元,然後將訓練結果拿去當作 VQ 編碼器的碼簿(codebook),並且對原始圖檔做 VQ 編碼再求其 PSNR 值,則 我們可以從表 4-7 獲得查表式除法對學習結果的影響程度。. Image name. Division. Lookup-table based division. House. 26.3675. 26.3656. Lena. 24.2825. 24.2814. Tree. 21.555. 21.5478. 表 4-7. 原始與查表式除法對學習結果的影響比較(以 PSNR 表示). 表 4-7 實驗用的神經元是由“Baboo”、 “Bridge”兩張 512×512 的灰階圖經過 計算所得來,數量是 64 個。我們可以發現,查表式除法對於學習結果的影響幾 乎可以被忽略,且整個查詢表僅需 70 LEs,以此少許的面積複雜度來換取除法大 幅的計算複雜度是相當划算的。. 由以上的各項實驗結果來看,本論文提出的架構對於硬體實現非常的有效 益:. z 在效能上,透過固定神經元數目和固定訓練向量數目的兩項實驗,量測 出來的數據都證明了本論文提出的架構擁有更快的執行速度,更少的執 47.
(57) 第四章. 實驗數據與效能比較. 行時間,無論是在增加訓練向量數目或神經元數目方面,當運算量越來 越大時, Fast CL 架構越能展現其優越的效能,同時利用查表示除法, 技巧性的解決耗時的除法運算,又能幾乎不影響學習效果。. z 在面積複雜度上,隨著神經元的數目增加,資源的消耗屬於線性成長, 在神經元數目 N=128,使用平方距離值時,整體的 LEs 資源消耗僅僅耗 用了 42%。而在神經元數目 N=256,使用絕對值距離時,整體的 LEs 資源消耗也僅僅只耗用了 65%。. 48.
(58) 第五章 章 結論. 第 章 結論 第五章 論 透過全 全新的交換機 機制與管線 線化結構的結 結合,本論 論文提出的架 架構在 CP PU time 上 上幾乎獨立 立於神經元數 數目 N,當 當神經數目更 更多時,與 與軟體和其它 它硬體架構 構執行速 度 度的比較上 上更能有大幅 幅度的領先 先。而在訓練 練向量變多 多時,依然能 能保持其效 效能領先 的 的狀態,並 並呈現成長的 的趨勢。. 同時我 我們也應用了 了有限精度 度查表式除 除法來大幅降 降低調整贏 贏家神經元權重向 量 量的計算延 延遲以及有效 效的減少面 面積複雜度,實驗數據 據也顯示其對 對於更新結 結果的影 響 響幾乎可被 被忽略。而在 在整體資源 源上,我們 們也能有效控 控制,當神 神經元數目 N=128 和 N=256 時,本架構 時 構也僅僅分別 別只耗用了 了 42%和 65% %的 LEs 資 資源。. 因此本 本論文所提出 出的架構,對於贏家通 通吃競爭式 式學習法的硬 硬體實現,我們可 以 以說具有下 下列四樣優點 點:. 9. 高 高運算速度. 9. 高 高產量. 9. 低 低面積複雜度 度. 9. 低 低執行時間. 49.
(59) 參考文獻. 參考文獻 [1] Altera Corporation (2005). Stratix http://www.altera.com/literature/lit-stx.jsp.. Device. Handbook.. [2] Altera Corporation (2002). Custom Instructions for NIOS Embedded Processors, Application Notes 188. http://www.altera.com/literature/lit-nio.jsp. [3] NIOS II Processor Reference Handbook, http://www.altera.com/literature/lit-nio2.jsp.. 2008,. Altera. Corporation.. [4] Bei, C. D.; Gray, R.M. An Improvement of the Minimum Distortion Encoding Algorithm for Vector Quantization, IEEE Trans. Communication 1985, Vol. COM-33, pp.1132-1133.. [5] Bondalapati, K.; Prasanna, V.K. Reconfigurable computing systems, Proceedings of the IEEE, pp.1201-1217, 2002. [6] Colavita, A. A.; Cicuttin, A.; Fratnik, F.; Capello, G. SORTCHIP: A VLSI Implementation of a Hardware Algorithm for Continuous Data Sorting, IEEE Journal of Solid-State Circuits 2003, Vol. 38, pp 1076-1079. [7] Cole, R.; Seigel, A. R. Optimal VLSI circuit for sorting, Journal of ACM 1998, Vol. 35, pp. 777-809. [8] Gersho, A.; Gray, R.M. Vector Quantization and Signal Compression, Kluwer: Norwood, MA, 1992. [9] Grossberg, S. Competitive Learning: From Interactive Activation to Adaptive Response, Cognitive Science 1987, Vol. 11, pp.23-63. [10] Hauck, S., and Dehon, A., Reconfigurable Computing, Morgan Kaufmann, 2008. [11] Haykin, S. Neural Networks: A Comprehensive Foundation, Prentice Hall: Engle Cliffs, NJ, 1998.. 50.
(60) 參考文獻 [12] Hertz, J.; Krogh, A.; Palmer, R.G. Introduction to the Theory of Neural Computation, Addison-Wesley: New York, NY, 1991. [13] Hwang, W. J.; Lin, F.J.; Zeng, Y.C. Fast Design Algorithm for Competitive Learning, Electronics Letters 1997, Vol.33, pp.1469-1470. [14] Hwang, W. J.; Ye, B. Y.; Lin, C. T. A Novel Competitive Learning Algorithm for the Parametric Classification with Gaussian Distributions, Pattern Recognition Letters 2000, Vol.21, pp.375-380. [15] Hofmann, T.; Buhmann, J.M. Competitive Learning Algorithm for Robust Vector Quantization, IEEE Trans. Signal Processing 1998, Vol. 46, pp. 1665-1675. [16] Jain, A.K., Murty, M.N., and Flynn, P.J.,Data Clustering: A Review, ACM Computing Surveys, 1999, pp. 264-323. [17] Kohonen, T. The self-organizing map, Proc. IEEE 1990, Vol. 78, pp.1464-1480. [18] Li, H.Y.; Hwang, W.J.; Yang, C.T. High Speed k-Winner-Take-ALL Competitive Learning in Reconfigurable Hardware, Lecture Notes in Artificial Intelligence, IEA-AIE 2009. [19] Park, H.; Prasanna, V. K. Modular VLSI architectures for Real-Time Full-Search-Based Vector Quantization, IEEE Trans. Circuits Syst. Video Technology 1993, Vol.3, pp.309-317. [20] Vetterli, M.; Kovacevic, J. Wavelets and Subband Coding, Prentice Hall: Engle Cliffs, NJ, 1995. [21] Wang, C.L.; Chen, L.M. A New VLSI Architecture for Full-Search Vector Quantization, IEEE Trans. Circuits and Systems for Video Technology 1996,Vol. 6, pp.389-398. [22] Wolfe, W. J.; Mathis, D.; Anderson, C.; Rothman, J.; Gottler, M.; Brady, G.; Walker, R.; Duane, G. K-Winner Networks, IEEE Trans. Neural Networks 1991, Vol. 2, pp.310-315.. 51.
(61) 參考文獻 [23] Xu, L.; Krzyzak, A.; Oja, A. E. Rival penalized competitive learning for clustering analysis, RBFnet, and curve detection, IEEE Trans. Neural Networks 1993, Vol. 4, pp.636-649.. 52.
(62)
Outline
相關文件
後記: : :摘自 : 摘自 摘自彭台光 摘自 彭台光 彭台光教授演講稿 彭台光 教授演講稿 教授演講稿 教授演講稿. Richard Daft(
(三)使用 Visual Studio 之 C# 程式語言(.Net framework 架構)、Visual Studio Code 之 JavaScript 程式語言(JavaScript framework 架構) ,搭配 MS
則察看自己的 cache 是否有紀錄,若否才前往 root(.)3. DNS 主機會先將該查詢記錄記憶在自己的
Complex Instruction Set Computers (CISC). complicated
隧道等襯砌作業主管、施工架及施工構台組配作業主管、鋼構組
MSS6.4.2 基於判定條件運用演繹法證明全等和相似三角形 MSS6.4.3 驗證三角形四心如內心、外心、垂心和形心的作圖法 MSS6.5 認識四邊形的性質
目前的課程改革優先強化學生五種觀念:國民身份認同、責任感、承擔
建議多協助學生進 行運用工具實作的 機會,亦可嘗試將 部分概念以圖像化 (如流程圖、太陽 圖等)的形式呈現