使用先進Kohonen網絡實現快速學習型機器視覺

使用先進Kohonen網絡實現快速學習型機器視覺
Fast Learning Computer Vision Using Advanced Kohonen Network
劉留
geo.cra[at]gmail[dot]com
摘要:在本文中,我們描述了一種Advanced Kohonen網絡,並且使用該類型網絡實現了能學習多個物件的快速學習型機器視覺(LCV)。
 
關鍵字:Kohonen、神經網絡、機器視覺、機器學習
 
一、引言
 
衆所周知,Kohonen網絡作爲無監督學習型網絡的代表,在數據挖掘等領域已經取得了很大的成就。Kohonen網絡的更大優勢在於,與反向傳播算法等沒有仿生學佐證的數學算法不同,在生物學上,Kohonen網絡機制已經獲得了佐證,因此,Kohonen網絡具有很強的仿生特性。但是,由於圖像數據的複雜性和Kohonen網絡自身學習上的一些缺陷,Kohonen網絡目前在機器視覺領域並沒有取得很大的成就。
 
二、Kohonen網絡簡介
 
Kohonen網絡作爲一種競爭機制的無監督學習模型,在很多書籍均有介紹,在此我們只簡要地進行介紹,具體請參閱其他書籍[3]
 
Kohonen網絡基於Winner-takes-all原則設計,共分兩層:一層爲輸入神經元,另一層就是競爭神經元。
 
Kohonen網絡的主要原理是通過計算誤差e=∑(d[i]-w[i]),將誤差最小的神經元作爲獲勝神經元,對其半徑r內的神經元用w=w+a*(d-w)更新權值。所以Kohonen網絡中的連接權值記錄的不是連接強度,而是物體特徵。
 
三、Advanced Kohonen設計
 
爲了實現NS1的機器視覺(NS1的機器視覺的一個重要特點即是,能夠自動學習辨認),我們經過反覆考慮,Kohonen網絡由於其不可比擬的無監督學習,每次學習不需要重構網絡等特點受到了青睞。用Kohonen網絡實現機器視覺,就不得不考慮Kohonen網絡的缺陷。Kohonen網絡在實踐過程中一個重要缺陷即是,該網絡是在沒有監督的情況下實現的,雖然能夠取得很好的聚類效果,但是作爲一個分類器卻是不成功的,因爲網絡中Winner的權值表現的是聚類的特徵,而無法提供能和其他物體分離的足夠信息。因此,若單純使用Kohonen網絡,是很難實現足夠低的誤判率的。
 
爲了克服這一缺陷,我們建立了環境模型。建立環境模型的主要指導思想是利用盡量多的環境模型來進行懲罰學習,使得Kohonen網絡提供足夠的分離裕度。
 
目前,對於Kohonen的有教師學習[5]採用的懲罰方法是將權值降低的方法,即將原公式w=w+a*(d-w)中的a取負值的方法。
 
但是,這種方法在提高分離裕度的同時,也降低了聚類效果,並不算是一種實用的方法。爲此,我們在Advanced Kohonen網絡中採用了所謂的誘導懲罰(attractive-correct)方法。該方法的思想是,將環境模型映射到其他的神經元上,而使得物件的獲勝神經元與環境模型的獲勝神經元相區別,大大降低了誤判率。
 
我們的研究還表明,在人類學習的過程中,也常常有類似的方法。在我們對人類的實驗中,往往告訴被實驗者某物體是什麼的記憶效果要比告訴其某物體不是什麼的記憶效果好。
 
但是由於採用了誘導懲罰方法後,會將一部分神經元用於環境模型的映射,所以神經元數量並不能表示最大學習物件數量。在實踐過程中,我們建立的20*20 Advanced Kohonen網絡能夠學習20~80個左右的物件(當然,這一結果的得出也和後面所講的內容有關)如果學習物件繼續增多,誤判率會大大提高。因此,如果要達到實用效果,含有>400個神經元的網絡是必要的,但是由於計算機運算速度的限制,每增加一倍的神經元,運算代價也要增加一倍,是很不划算的。
 
與普通神經網絡(即採用反向傳播算法訓練的N層前饋型網絡)不同,Advanced Kohonen網絡實現LCV不需要每次使用所有訓練數據進行重新訓練,只需要使用需要學習的物件和環境數據進行混合訓練即可,達到了所謂的增量學習(Add-Learn)的要求。這樣,Kohonen網絡在時間上能夠達到快速的要求。
 
而普通神經網絡一旦建立後,學習的時候,需要將所有訓練數據一起訓練,否則網絡會出現奇怪的權值變異,使得對以前學習過的物件認知性能下降。所以,普通神經網絡學習的物件數量越多,學習速度就越慢,網絡收斂需要經歷的學習紀元(學習重複次數)就越多。
 
對比下來,很容易就發現了Kohonen網絡也存在權值變異現象,而且似乎更危險。一個極端的例子是,如果新加入物件的獲勝神經元恰巧就是以前學習過的物件的獲勝神經元,就會出現一種遺忘現象,學習結束後,網絡將忘記以前學習過的物件。爲了克服這一缺點,在Advanced Kohonen網絡中,我們將學習過的物件的獲勝神經元設置爲不可用,即,學習的時候,這些神經元都不允許激活(神經元假死)保證了記憶不損失,這也是造成含有400個神經元的Advanced Kohonen網絡學習物件數量如此少的原因。
 
但普通神經網絡是不能用這一方法實現增量學習的。普通神經網絡如果要採用使神經元假死法,就不能使輸出神經元或者輸入神經元假死,因爲一旦這兩類神經元假死後,就根本無法進行反向傳播學習,因此,只能使得隱層神經元假死。但隱層神經元假死後,反向傳播算法無法使用該神經元繼續進行誤差傳播,間接減少了修正的連接數量,提高了誤判率,而且由於隱層神經元和網絡的泛化性能息息相關,由於對網絡泛化性能瞭解有限,還無法預測隱層神經元數量的不斷減少對降低泛化性能的具體影響。但是可以預見的是,一個隱層神經元的死亡會改變整個網絡的結構,導致網絡的活性受到影響。而且更重要的是,無法判斷在增量學習中應該讓哪些隱層神經元死亡,因爲無法得知哪些隱層神經元對於辨認那些學習過的物件是有貢獻的。
 
綜上所述,普通神經網絡是很難實現增量學習的。但是對於Advanced Kohonen網絡來說,由於採用了神經元假死法,所以是很容易實現快速的增量學習功能,而且不影響網絡的泛化性能。
 
三、實踐
 
下面是使用Advanced Kohonen網絡實現LCV的介紹。
 
對於網絡結構的設計如下:
 
我們採用48*48的灰度圖像輸入作爲網絡的輸入神經元。Kohonen神經元網絡設計爲二維網絡,大小爲20*20,共有400個神經元。
 
在環境模型方面,我們隨機選取了30幅圖像作爲環境模型輸入。
 
每次物件的訓練我們都只選取16~32個輸入樣本進行訓練,經過100次紀元的訓練後,馬上進行環境模型的訓練,進行50個紀元後,一次增量學習就完畢了,大致耗時爲40多s。
 
剛剛訓練的Advanced Kohonen網絡辨識效果並不見得很好,但是隨着訓練的次數增多Advanced Kohonen網絡能夠提供比較好的辨識結果。
 
如圖是Advanced Kohonen網絡學習後的一些演示結果:
對於區別不大的手和拳頭,Advanced Kohonen網絡依然提供了可以辨識的結果,這是相當令人滿意的。更可喜的是,這僅僅是在訓練了幾分鐘後得到的結果。
 
四、結論
 
通過實驗,我們認爲,Advanced Kohonen網絡比通常使用誤差傳播算法學習的前饋網絡具有更好的適應性和學習能力,作爲一種多元分類學習網絡,Advanced Kohonen網絡具有廣泛應用的能力。
 
參考文獻:
 
[1] J.P.Marques de Sa 《模式識別——原理、方法及應用》
[2] Milan Sonka, Vaclav Hlavac and Roger Boyle 《圖像處理、分析與機器視覺》
[3] George F. Luger 《人工智能——複雜問題求解的結構和策略(第四版)》
[4] Sergios Theodoridis and Konstantinos Koutroumbas《模式識別(第二版)》
[5] 史忠植 《知識發現》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章