第一章 緒論
1.1 研究背景與動機目的
資 料 分 群(Data clustering)對於一些窮究樣式分析 (exploratory pattern analysis)、分組(grouping)、決策(decision making)及機器學習 (machine learning)的情況,包含資料探勘(data mining)、文件檢索 (document retrieval),樣式分類(pattern classification)、影像分割(image segmentation)和資料壓縮(data compression)等,是非常有用的。在類 神經網路(artificial neural networks,ANNs)中[10],分群常以競爭式學 習(competitive learning,CL)法則來實現[9, 16]。即網路中的神經元 (neurons)藉由彼此競爭而被活化或代謝;而每個神經元所對應的權重 向量(weight vector),等於它在輸入特徵空間(input feature space)內的 接受區(receptive field)中心。競爭式學習的目標,是將分群分析/樣式 分類的錯誤[13, 21],或是向量量化(vector quantization,VQ)的量化失真 (quantization distortion)[8, 15] 最小化。
第一章 緒論
則 來 做 區 別 。 最 簡 單 的 競 爭 式 學 習 演 算 法 是 以 贏 家 通 吃 (winner-take-all,WTA)法則為基礎[11],使神經元演化僅發生在最相似 於輸入樣式的贏家上。這種簡易贏家通吃式學習的主要缺點為可能存 在死點(dead nodes)──亦稱為利用不足(under-utilization)問題。在這 類例子裡,一些神經元會因為不正確的初始化而永遠不能成為贏家。
所以,它們不但對學習無法給予貢獻,還可能降低競爭式學習的效 能。此外,這種競爭式學習演算法的另一個缺點是高計算複雜度。當 神經元的數量很大,及/或每個神經元對應之權重向量的維度很高,
鑑別出與輸入向量最相似神經元所需的平均 CPU 時間就會變得很 長。而冗長的訓練時間對於即時應用(real-time applications)而言,可 能就會變成一種侷限了。
解 決 利 用 不 足 問 題 的 一 個 有 效 方 法 , 是 以 k 贏 家 通 吃 (k-winners-take-all,k-WTA)取代 WTA [20],藉以降低對權重向量初始 區位(initial location)之依賴度。簡易的贏家通吃競爭式學習法已然需 要冗長的訓練時間,然而,由於排序操作在發掘 k 個最相似神經元的 過程中是必須的;因此就計算成本而言,k 贏家通吃競爭式學習法更 高過贏家通吃競爭式學習法。如此一來,k 贏家通吃法可能依然不適 於期望能做到快速訓練的競爭式學習分群。
第一章 緒論
高計算成本的缺點或可藉由加速搜尋過程的方式來避免,比方 說,在原有或轉換後的域上使用部分距離搜尋(PDS) [3, 12]。PDS 演算 法因僅計算部分距離,只需少量乘法運算便能淘汰不需要的神經元。
當 一 個 神 經 元 的 部 分 距 離 大 於 現 有 最 相 配 神 經 元 的 全 距 離(full distance)時,這個神經元便會被判淘汰。但這些軟體方法僅能達到普 通程度的加速效果。因此便有學者選擇使用VLSI 來實現搜尋引擎[16, 18],把原有為了 VQ 編碼器所設計的各式心脈陣列(systolic arrays)拿 來進行平行搜尋。相較於軟體實現,硬體電路提供了較高的產量 (throughput)。然而,這些硬體設計的彈性有限。當套用到競爭式網路,
大多數的心脈結構會被最佳化到僅供固定維度的權重向量,及/或固 定數目的神經元使用;而且也只能鑑別出最相似的神經元。因此這些 結構就只能用在贏家通吃競爭式學習法了。而這些特定應用積體電路 (application specific integrated circuit,ASIC)也有著不可重複規劃 (reconfigurable)的缺點。不同維度數及/或神經元數的競爭式網路必須 有不同的 ASIC 實體,同時也就提高了開發成本。
有鑒於上述情況,本論文提出一個 k 贏家通吃競爭式學習法的新 硬體架構,簡稱 kCL。此架構可以快速完成訓練,並以現場可程式邏 輯陣列(field programmable gat array,FPGA)為實現平台[4, 5],因此可
第一章 緒論
在重複規劃後套用到不同的競爭式網路上。基於 FPGA 的可重組硬體 幾乎可像軟體般來進行程式設計,且相較於傳統的 ASIC 硬體實現,
它最吸引人的地方莫過於彈性佳、成本低。另外,FPGA 的硬體實現 可對競爭式學習法的演算進行平行處理,從而降低訓練時間。
除了使用 FPGA,我們還在小波域上進行有限精度的子空間部分 距離搜尋法[18],以求達到高產量、高彈性及低面積複雜度等特性。由 於小波轉換具正交性,且轉換後可將大部分能量集中在低頻的幾個係 數,所以在小波域上執行部分距離搜尋的效能遠優於在原域上進行。
在本論文提出的硬體架構中,對所有輸入的測試樣本都會進行 Haar 小波轉換。在所有的小波轉換當中,Haar 小波是具正交性且最簡單 的一種方法,擁有低計算複雜度的特性,適合用硬體來實現。由於小 波高頻的係數僅保留了輸入測試樣本的少許能量,所以在進行部分距 離搜尋運算前會捨去這些高頻的係數。不僅如此,低頻係數最小顯著 位元 (Least significant bits,LSBs) 的部分位元平面也會被捨去,而 這個動作只會對部分距離搜尋的結果造成極小的影響。
根據 PDS 的結果,我們提出一種新式排序電路,供 k-WTA 中找 尋 k 個最佳神經元的操作使用。許多現有的排序架構[6, 7],僅只是單
第一章 緒論
計算及/或面積複雜度可能會變得很高。而我們的電路兼具了低計算 時間及低面積複雜度的特性。事實上,我們的電路包含了 k 個排序模 組,其中第 i 個模組的責任,就是負責找到對於輸入樣式的第 i 個最 佳神經元,故而面積複雜度僅隨 k 值線性增加。每一個排序模組只包 含一個 buffer、一個 comparator 和一個 multiplexer。由於所有模組同 時運作,因此排序操作中不存在傳遞延遲(propagation delay),計算時 間也與 k 值大小無關。故結合子空間搜尋和本論文所提出的排序電 路,搜尋速度便可有效提升,並仍然保有低面積成本的優點。
最後,因為除法運算在更新神經元時無法避免的,因此為了降低 更新神經元時的計算延遲,我們事先將除法運算的所有可能結果存於 一查詢表(lookup table)中,如此一來,即可利用查表法得知除法運算 的結果,也就技巧性地避開耗時的除法運算。
本論文所提出的硬體架構將以專用邏輯區塊電路 (custom logic block) 的方式內嵌於 Nios 軟核心中央處理器的算術邏輯單元 (ALU) 中[2],然後整合入可程式化系統晶片 (System on Programmable Chip,
SOPC) 平台來完成硬體實現與測試。Nios 處理器所提供的客製指令 (custom instruction) 便是軟體端用來存取專用邏輯區塊電路的方式。
第一章 緒論
尋專用硬體電路所需要的平均時間,同時在實驗數據中顯示出50MHz 的 Nios 處理器搭配部份距離搜尋硬體電路的效能優於未搭配部份距 離搜尋硬體電路的 Pentium IV 3.0GHz 處理器。