1.4 全文架構
本篇論文共分為五章,以下為各章的內容概述:
【第一章】緒論
說明本論文的研究背景、研究動機、研究目的和全文的架構。
【第二章】理論基礎與技術背景
簡介基本 RBF 類神經網路架構、fuzzy c-means 分群演算法、recursive LMS 的基礎理論與技術背景。
【第三章】RBF 硬體系統架構實現
詳細說明本論文所提出的 RBF 基礎電路,及其內部各單元架構。
【第四章】實驗結果與數據探討
呈現本論文所提出的電路設計成果數據、以及討論。
【第五章】結論
對本論文做最後的總結。
第二章 理論基礎與技術背景
9
第二章 理論基礎與技術背景
本章將探討本論文所用到的理論基礎與技術背景。在本章的第一節會介紹 RBF 類神經網路架構,第二節會介紹 fuzzy c-means 分群演算法,第三節會介紹 recursive LMS 演算法,最後則是介紹 SOPC 系統整合設計,讓讀者對本論文能有 初步的了解與認識。
2.1 RBF Networks
首先,這部分先說明 RBF 網路基本的架構。圖 2.1 顯示典型的 RBF 網路架 構,由一層輸入層,一層隱藏層,一層輸出層組成。輸入層包含 n 個來源節點(source
node),其中 n 是輸入向量 x 的維度,而隱藏層由 c 個神經元組成,每個神經元伴 隨著 kernel function。在 RBF 中使用的 kernel function 是 Gaussian kernel。假設i代 表第 i 個神經元的 Gaussian kernel,它的定義如下 :
) 2
exp( 1 )
( 2 i 2
i x x v
(1)
vi在公式(1)中是連結第 i 神經元的質量中心點。x 和 vi都有相同的維度 n。 2在 公式(1)中稱為 Gaussian kernel 半徑。假設在這篇論文裡所有的 kernel 都有相同的
半徑,輸出層只有一個神經元,讓 y 為輸出層的神經元,它的定義為:
x
c
i i
wi
y
1
(2)
第二章 理論基礎與技術背景
10
wi 稱為連接第i個隱藏層神經元和輸出神經元的權重。RBF 訓練通常包含質量中 心 vi的訓練和權重 wi的訓練,其中i 1,...,c。
w1
w2
wc
x1
x2
xn
... ...
... ...
...
...
1
center v1
2
center v2
i
center vc
Output
x F y
Input Layer Hidden Layer Output Layer
Input vector
x
圖 2.1 RBF 網路架構圖
第二章 理論基礎與技術背景 在第一個步驟後,membership matrix 就會被固定,然後新的質量中心點 vi會以下 列函式計算:
membership matrix 的大小也會提高,則 FCM 要求的儲存空間在硬體實作上會增 加困難度。
第二章 理論基礎與技術背景
12
2.3 Recursive Least Mean Square 演算法
權重的訓練也是以訓練向量集合 X = {x1,...,xt}為基礎。假設輸入第 k 個訓練向
第二章 理論基礎與技術背景
13
從公式(12)可以知道,計算 w 的過程包含反矩陣運算和矩陣乘法運算。當訓練 向量的數量 t 或者質量中心點的數量 c 變大時,在硬體上執行 w 的 LMS 運算是困 難的。因此,相對於 LMS 計算反矩陣的方法,一個有效的選擇是 recursive LMS,
給定訓練向量集合 X,運用 recursive LMS 做逐步計算,而不用公式(12)一次算完
第二章 理論基礎與技術背景
第二章 理論基礎與技術背景
15
2.4 SOPC 系統整合設計
進幾年來,隨著科技進步,電子產品功能日益複雜,但開發週期越來越短,
如何在短時間內開發出良好的產品並且符合客戶需求是個重要的議題,為了在競 爭的壓力下生存,必須採取更有效率的設計方法。以 Altera 提供的 SOPC 系統為 實驗平台,燒錄在可程式化邏輯閘陣列(Field Programmable Gate Array, FPGA)。
由於 FPGA 是一種可以重複改變組態的電路,有可以讓使用者進行編譯的邏輯閘 元件,其邏輯閘特性,可依設計者的需要加以改變,並提供各種基本功能,因此 完成的電路設計可以經過簡單的綜合與布局,快速的燒錄在 FPGA 上進行測試,
適用於程式在開發時必須不斷變更設計的應用。因此有效加速程式完成的時間,
提升整體的競爭力,大大的降低設計的時間與成本。
根據不同使用者的需求,Altera 公司開發出許多不同系列的 FPGA 開發板,而 本研究是在 NIOS development kit 中的 Cyclone III EP3C120 系統開發板上實現我 們所提出的硬體電路。在 NIOS 系統中提供了一套專門給 NIOS 處理器使用的匯 流排(Avalon bus),讓使用者設計的電路視為一個客製化電路(custom logic circuit),
透過此匯流排上的各個訊號線,將電路掛載在 Avalon bus 上與整個系統溝通,如 圖 2.2 所示。除此之外,Cyclone III 開發版上也提供 DDRII SDRAM、Flash memory、
I/O 裝置等,供開發人員使用。而整個系統的設計流程如圖 2.3 所示。
第二章 理論基礎與技術背景
16
S S S
Avalon Switch Fabric (Avalon Bus) DMA
Controller
Avalon Tristate Bridge
Avalon Master Port
Avalon Slave Port S 了包含 C 語言的函式庫外,還包含 HAL(hardware abstraction layer)函式庫。
其中 HAL 函式庫提供設計者一個呼叫系統相關裝置的 API(Application
Program Interface),如圖 2.3 所示,所以設計者可以撰寫 C 語言程式並透 過 HAL API 呼叫來讓特定的裝置運作。
2. 提供 DMA(direct memory access)機制讓設計者可加快資料在記憶體與系 統周邊元件的傳輸速度且不佔用 CPU 資源。
第二章 理論基礎與技術背景
17
3. 開發人員可依自己的需求增減電路的功能,製作一個專屬的系統。如需 增減裝置時,只要重新 build 系統並 compile 成硬體檔之後燒入板子即可。
具有彈性大與快速建置的優勢。
Design Custom Logic
Create a new SOPC project
Add the Custom Logic to the SOPC project
Compile the SOPC system
Program the FPGA in the development board
Use NIOS II IDE to setup a software project
Write the C program coordinated with the Custom
Logic
Compile the C program
Download the compiled code to the SOPC system
Observe the execution results from NIOS II IDE
Hardware Design Software Design圖 2.3 軟硬體共同設計圖
第三章 基礎電路架構介紹
18
第三章 RBF 硬體系統架構實現
在本章節中,我們將介紹本論文所提出的 RBF 硬體系統架構,並且將詳細介 紹各單位元件電路以及如何實現快速運算與達到低硬體資源消耗的相關過程。
3.1 簡介
如圖 3.1,RBF 訓練可以分為兩個元件:FCM Unit 和 recursive LMS Unit。FCM Unit 的運算目標是給予訓練向量集合 X,計算出新的質量中心點 vi, i=1,…,c。而 recursive LMS Unit 的運算目標則是以 FCM Unit 計算出來的質量中心點和訓練向 量集合 X 為基礎,找出權重 wi, i=1,…,c。
FCM Circuit
Recursive LMS Circuit RBF
Controller
To/From NIOS CPU
vi, i=1,…,c
wi, i=1,…,c Initial centers
xk, k =1,…,t
yk, k=1,…,t
圖 3.1 RBF 訓練硬體電路架構圖
第三章 基礎電路架構介紹
19
3.2 FCM unit
圖 3.2 顯示 FCM Unit 的架構,包含六個子元件:pre-computation unit、
membership coefficients updating unit、center updating unit、cost function computation unit、FCM memory unit 和 control unit。接下來的小節將會詳細介紹每個元件的 內部電路操作。
Pre-Computation
unit
Control unit
Membership Coefficient Updating unit
On-Chip Centroid RAM
Cost Function Computation
unit
Center Updating unit
New Centers
J
Centers
vi
, i=1,…,c
xk, k =1,…,t
圖 3.2 FCM Unit 硬體電路架構圖
第三章 基礎電路架構介紹
20
3.2.1 Pre-computation unit
Pre-computation unit 的目的是用來降低 membership coefficients updating 的計算 複雜度。如公式(4)所示,ui,k可以改寫成:
coefficients updating unit 時可以降低在計算 membership coefficients 時的複雜度。
為了簡化,在設計過程中我們預設 m=2,因此 Rk可以被視為1/ xk vj 2的總和。
+ x
Inverse
+Register
x
k第三章 基礎電路架構介紹
21
3.2.2 Membership updating unit
根據公式(20),Membership updating unit 使用 Pre-computation unit 的計算結 果來計算 membership coefficients。圖 3.4 顯示 Membership coefficients updating unit 的 架 構 。 從 圖 3.4 可 以 觀 察 出 , 給 定 訓 練 向 量 xk, membership coefficients
computation unit 計算ui2,k,i=1,…,c,一次計算一個。這部分的電路可以分為兩 個 stage,第一個 stage 和第二個 stage 都是管線化的架構,第一個 stage 計算
k i
k v 2R
x ,第二個 stage 計算ui2,k。
+ x
Inverse x
vi
x
Rk
xk
xk-1
2
1 i
k v
x
2 1 ,k
u
i RegisterRegister
Register
1-stage 2-stage
圖 3.4 Membership updating unit 硬體電路架構圖
第三章 基礎電路架構介紹
22
3.2.3 Center updating unit
Center updating unit 逐步計算每個群集的質量中心點。逐步計算的優點在於質 量中心點的計算不需要儲存所有的 membership coefficients。我們定義第 i 個群集 逐步計算至 xk: Intermediate on-chip RAM 和一個除法器。圖 3.6 顯示 Intermediate on-chip RAM 的 架構,有兩組 ACC(Accumulator)在 array 中。第一組中的第 i 個 ACC 儲存
第三章 基礎電路架構介紹
第三章 基礎電路架構介紹
24
3.2.4 Cost function computation unit
計算方式相似於 Center updating unit,Cost function computation unit 以逐步計 算的方式來計算 cost function J。定義累加的 cost function J(i, k)為:
2
第三章 基礎電路架構介紹
25
3.2.5 FCM Memory Unit
這個單元用來儲存 FCM 群集的質量中心點。在 on-chip centroid memory unit 中分為兩個區塊,即 Memory Bank 1 和 Memory Bank 2。Memory Bank 1 儲存目 前使用的質量中心點 v1,…vc,Memory Bank 2 儲存的是由 center updating unit 更新 的質量中心點。為了計算出 membership coefficients,只有儲存在 Memory Bank 1 的質量中心點會被傳遞到 pre-computation unit 和 membership updating unit。來自 center updating unit 更新過的質量中心點會儲存在 Memory Bank 2。特別注意的是,
Memory Bank 2 中的質量中心點在所有的訓練向量 xk, k = 1,…,t,被傳遞結束前不
Memory Bank 2 Memory Bank 1 Index of new centroid
(from control unit)
(from centroid computation unit)
New centroid
enable (from control unit)
Current centroid Index of current
centroid i (from control unit) Decoder
(from control unit)
Current centroid Index of current
centroid i (from control unit)
vi
圖 3.8 FCM memory unit 硬體電路架構圖
第三章 基礎電路架構介紹
26
3.3 Recursive LMS Unit
Recursive LMS 元件架構如圖 3.9,由 kernel Gaussian computation unit、memory unit、matrix computation unit 和 control unit 組成。
Kernel Gaussian Computation Unit
Memory Unit
Matrix Computation
Unit
vi, i=1,…,cwi, i=1,…,c xk, k=1,…,t
Control Unit
yk, k=1,…,t
圖 3.9 Recursive LMS 硬體電路架構圖
3.3.1 Kernel Gaussian Computation Unit
Kernel Gaussian computation unit 的目的在於計算由公式(1)中定義的i x 。給 定 xk和 v1,…vc,kernel Gaussian 計算1 xk ,..., c xk ,並且以順序的方式產生 ak。 圖 3.10 顯示 kernel Gaussian computation unit 的架構。架構中除了加法器和乘法器,
第三章 基礎電路架構介紹
27
還包含了計算指數函數(exponential function)的電路,此電路由 Altera Floating Point Exponent (ALTFP_EXP) Megafunction 來實現。
x
x
x +
xk
n
+ + +
...
vi
x
÷
-2σ2
Exponent Computation
Unit n 1
1
) ( k
ix
圖 3.10 kernel Gaussian computation unit 硬體電路架構圖
3.3.2 Memory Unit
Memory unit 用來儲存在公式(16)(17)中顯示的 recursive LMS 計算過程中所需 要的值。如圖 3.17 所示,Memory unit 有 8 個 buffers(Buffers A, Y, P, W, D, G, H, 和 S)。假設 xk 是目前計算中的訓練向量,Buffer A 儲存來自 kernel Gaussian
computation unit 的計算結果 ak,Buffer Y 儲存 yk。Buffer P 和 Buffer W 儲存由先 前輸入訓練向量的計算結果 Pk-1和 wk-1。Matrix computation unit 以 ak,yk,Pk-1和
wk-1為基礎,計算新的 Pk和 wk。而計算過程中的中繼結果儲存在 Buffers T,G,H 和 S。為了下個訓練向量 xk-1的之後操作,Pk和 wk儲存在 Buffer P 和 Buffer W。
另外,Buffer T 和 Buffer Y 由一個暫存器所組成,Buffer W, H, G 與 Buffer A 相
第三章 基礎電路架構介紹
28
同,由 c 個暫存器組成。Buffer P 和 Buffer S 由 c2個暫存器組成。其中,Buffer H 和 Buffer S 可以給予不同的訊號使之向右位移或向左循環,而 Buffer P 除了可以 向右位移向左循環之外,也可以向下位移或向上循環。
Input
RegOutput
圖 3.11 Buffer T 和 Buffer Y 硬體架構圖
Reg
Reg
Reg Reg
... Input Output
圖 3.12 Buffer W 和 Buffer A 硬體架構圖
Reg Reg
...
Reg RegInput
Output c
DMux1
圖 3.13 Buffer G 硬體架構圖
第三章 基礎電路架構介紹
29
Reg Reg
...
Reg RegInput
Output
Mux
c 1
圖 3.14 Buffer H 硬體架構圖
Reg Reg Reg Reg
Reg Reg Reg Reg
Reg Reg Reg Reg
Reg Reg Reg Reg
...
...
...
...
...
Input Output
圖 3.15 Buffer S 硬體架構圖
Reg Reg Reg Reg
Reg Reg Reg Reg
Reg Reg Reg Reg
Reg Reg Reg Reg
...
...
...
...
Input ... ... ... ...
Mux
Output c
1
圖 3.16 Buffer P 硬體架構圖
第三章 基礎電路架構介紹 From Matrix Unit
Computation From Kernel
Gasussion
input ports
Input
第三章 基礎電路架構介紹
31
3.3.3 Matrix Computation Unit
Matrix computation unit 包含 c 個 2-input 乘法器,c 個 2-input 加法器,一個 c-input 加法器和一個 inverse operator,如圖 3.18。因此,matrix computation unit
可以平行計算 c 個乘法和 c 個加法。除此之外,此電路有四種運作模式,Mode 1
第三章 基礎電路架構介紹
第三章 基礎電路架構介紹
33
3.3.4 Control Unit
Recursive LMS unit 的 control unit 協調 kernel gaussian computation unit、
memory unit 和 matrix computation unit 的運作。圖 3.23 顯示 Control Unit 的狀態圖。
圖 3.24 至圖 3.26 分別描繪出計算 Pk和 ak狀態操作。
當 recursive LMS unit 開始執行時,會依照 control unit 的狀態開始運作。除了
Initial State 和 State 0 之外,每個 State 都會執行 matrix computation unit 的四種運 作模式其中一種,即 Mode 1 到 Mode 4。此外,在計算的過程中,隨著每個狀態
Initial State 和 State 0 之外,每個 State 都會執行 matrix computation unit 的四種運 作模式其中一種,即 Mode 1 到 Mode 4。此外,在計算的過程中,隨著每個狀態