• 沒有找到結果。

Fast CL 架構與硬體實現

第三章 kCL 架構與硬體實現

3.3 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*都會成為最後輸出到下一個層級的神經元,透過這樣的方 式,我們便實現了之前所提到的“贏家帶著走"概念,訓練向量會隨時帶著其贏 家候選神經元一步一步在管線化層級中推進。

第三章 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。

第三章 Fast CL 架構與硬體實現

3-5 第 i 個管線化層級的電路架構圖

i 個層級的架構如圖 3-5 所示,包含了 swap unit、registers、comparator、

multipliers 和 mulitiplexers,輸入埠有 xin、yi-1、yi+1Dmin和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*

第三章 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 電路架構圖

第三章 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 狀態

第三章 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 的情況產生。

第三章 Fast CL 架構與硬體實現

3-8 交換機制未啟動下之層級 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 個層級。

第三章 Fast CL 架構與硬體實現

圖3-9 第一個管線化層級的電路架構圖

圖3-9 為管線化第一個層級的電路架構圖,由於對每個訓練向量來說,第一 個進行運算的神經元必會成為目前的贏家神經元,因此就不需要與其他神經元做 任何比較,只需要考量未來是否會和第二個層級的神經元做交換的動作,因此我 們可以看到電路圖中少了comparator,Dmin的輸出就等於D1值,而swap unit 的 輸入神經元也簡化成只有 y1與 y2,當來自層級2 的 c2訊號為1 時,就會啟動交 換動作。

第三章 Fast CL 架構與硬體實現

3-10 第 N 個管線化層級的電路架構圖

當訓練資料來到winner selection unit 中最後一個層級(第 N 個層級)時,計算DNDmin進行比較過後,我們便可以知道最後真正的贏家神經元,由於競爭 式學習法則的神經元更新部分不需要平方距離值,我們便拿掉了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 已經更新完成,此時

第三章 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。

第三章 Fast CL 架構與硬體實現

圖3-12 Winner update unit 的電路架構圖

Update unit 負責進行學習率的計算以及贏家神經元的更新。在我們的實做中,

本論文所採用的學習率函數源於[14],可以下式表示:

* 4 *

1

j = ×rj

η

, (3.1) 其中rj*代表贏家神經元 yj*的獲勝次數,因此update unit 中的 counter 便用來負責 累加次數。

第三章 Fast CL 架構與硬體實現

為了計算學習率,每個神經元 yi都必須有自己的獲勝次數 ri,當神經元 yi-1

與 yi在執行交換動作時,其獲勝次數ri-1ri也會隨之跟著交換。由於獲勝次數 在winner selection unit 中並未被使用到,為了簡化表示,我們並沒有在圖 3-5、

圖3-9 和圖 3-10 中標示出來。

第三章 Fast CL 架構與硬體實現

因此結合了查表式除法的winner update unit,其更新過程如下,傳送進來的 訓練向量 xk與贏家神經元權重向量 yj*進行減法運算,而rj*透過counter 累加 1(代

第三章 Fast CL 架構與硬體實現

習率ηj*的查表動作,透過乘法器計算出ηj*(xk - yj*)的結果,再加回原本的 yj*就完 成了贏家神經元權重向量更新部分。最後將神經元updated yj*與獲勝次數new rj*

傳送至層級N,便完成了整體的更新動作。

19088 LEs 個數最大值

one III FPG grammable 與系統再修

ra Cyclone I

第四

效能比

際效能的量

ne III EP3C

提供的邏輯 ry bits)最大 要以LEs 的數

驗證硬體電 C) 可以快

,非常適合

III EP3C120

四章 實驗 gic elements

312 memor 為面積複雜度 ry bits,

度的量 系統晶片 現並完成 來我們將

第四章 實驗數據與效能比較

N

LEs Memory bits DSP blocks

absolute squared

distance absolute squared

distance absolute squared distance 4 1478/119088

(1%)

1615/119088 (1%)

0/3981312 (0%)

0/3981312 (0%)

2856/119088 (2%)

0/3981312 (0%)

0/3981312 (0%)

8/576 (1%)

40/576 (7%) 16 4650/119088

(4%)

5320/119088 (4%)

0/3981312 (0%)

0/3981312 (0%)

8/576 (1%)

72/576 (13%) 32 8623/119088

(7%)

10353/119088 (9%)

0/3981312 (0%)

0/3981312 (0%)

8/576 (1%)

136/576 (24%) 64 16793/119088

(14%)

20512/119088 (17%)

0/3981312 (0%)

0/3981312 (0%)

8/576 (1%)

264/576 (46%) 128 33137/119088

(28%)

40449/119088 (34%)

0/3981312 (0%)

0/3981312 (0%)

8/576 (1%)

520/576 (90%) 256 65756/119088

(55%) null 0/3981312

第四章 實驗數據與效能比較

可以看到加入了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

Entire SOPC system

相關文件