竞争神经网络
?競爭型神經網絡是基于無監督學習方法(unsupervised learning)的神經網絡的一種重要類型,它經常作為基本的網絡形式,構成其他一些具有組織能力的網絡,如自組織映射網絡、自適應共振理論網絡、學習向量量化網絡等。
? ? ?生物神經網絡存在一種側抑制現象,即一個神經細胞興奮后,通過它的分支會對周圍其他神經細胞產生抑制,這種抑制使神經細胞之間出現競爭:在開始階段,各神經元對系統的輸入具有相同的響應機會,但產生的興奮程度不同,其中興奮最強的一個神經細胞對周圍神經細胞的抑制作用最強,從而使其他神經元的興奮程度得到最大程度的抑制,而興奮程度最強的神經細胞卻“戰勝”了其他神經元的抑制作用脫穎而出,成為競爭的勝利者,并因為獲得興奮的程度而進一步加強,正所謂“勝者為王,敗者為寇”。競爭型神經網絡在學習算法上,模擬了生物神經網絡中神經元之間的興奮、抑制與競爭的機制,進行網絡的學習與訓練。
? ? ?采用nesc可以在MATLAB中創建競爭型神經網絡,其權值的初始化函數為midpoint,閾值的初始化函數為initcon。
?
競爭神經網絡的學習:
1.Kohonen權值學習規則
?????競爭型神經網絡按照Kohonen學習規則對獲勝神經元的權值進行調整。假設第i個神經元獲勝,則輸入權值向量的第i行元素(即獲勝神經元的各連接權)按下式進行調整:
???????????????????????????? iW(k)= iW(k-1)+α*[p(k)-iW(k-1)]
而其他神經元的權值不變。
? ? Kohonen學習規則通過輸入向量進行神經元權值的調整,因此在模式識別的應用中是很有用的。通過學習,那些最靠近輸入向量的神經元權值向量得到修正,使之更靠近輸入向量,其結果是獲勝的神經元在下一次獲勝的輸入向量出現時,獲勝的可能性會更大; 而對于那些與輸入向量相差很遠的神經元權值向量,獲勝的可能性變得很小。這樣,當經過越來越多的訓練樣本學習后,每一個網絡層中的神經元權值向量很快被調整為最接近某一類輸入向量的值。最終的結果是:如果神經元的數量足夠多,則具有相似輸入向量的各類模式作為輸入向量時,其對應神經元輸出為1;而對于其他模式的輸入向量,其對應的神經元輸出為0。所以,競爭型神經網絡具有對輸入向量進行學習分類的能力。
? ? 在MATLAB工具箱中,learnk函數可以實現Kohonen學習規則。
?
?
?2.閾值學習規則
? ? 競爭型神經網絡的一個局限性是:某些神經元可能永遠也排不上用場,換句話說,某些神經元的權值向量從一開始就遠離所有的輸入向量,從而使得該神經元不管進行多長的訓練也不會贏得競爭。這些神經元稱為“死神經元”,它們實現不了任何有用的函數映射。
?
? ? 為避免這一現象的發生,對于那些很少獲勝(甚至從未獲勝)的神經元賦以較大的閾值,而對于那些經常獲勝的神經元賦以較小的閾值。正的閾值與距離的負值增加,使獲勝很少的神經元競爭層傳輸函數的輸入就像獲勝的神經元一樣。這一過程就像人們“同情”弱者一樣,表現出一個人的“良心”。
?
? ? 這一過程的實現需要用到神經元輸出向量的平均值,它等價于每個神經元輸出為1 的百分比,顯然,經常獲勝的神經元,其輸出為1的百分比要大。
?
? ? 在MATLAB工具箱中,learncon函數用于進行閾值的修正。
? ? 對于學習函數learncon進行閾值修正時,神經元輸出向量的平均值越大,其“良心”值越大,所以憑良心獲得的閾值就越小,而讓那些不經常獲勝的神經元閾值逐漸變大。其算法如下:
?
?????????????????? c(k)=(1-lr)*c(k-1) + lr*a(k-1)
?
?????????????????? b(k)=exp[1-log(c,k)]-b(k-1)
?
式中:c為“良心”值;a為神經元輸出的平均值;lr為學習率。
?
? ? ?一般講learncon的學習率設置成默認值或比learnk的學習率小的值,使其在運行過程中能夠較精確地計算神經元的輸出平均值。
?
? ? ?結果那些不經常產生響應的神經元的閾值相對于那些經常產生響應的神經元,其閾值不斷增大,使其產生響應的輸入空間也逐漸增大,即對更多的輸入向量產生響應,最終各神經元對輸入向量產生響應的數目大致相等。
?
? ? ?這樣做有兩點好處:
?
? ? ?其一,如果某個神經元因為遠離所有的輸入向量而始終不能在競爭中獲勝,則其閾值會變得越來越大,使其終究可以獲勝。當這一情況出現后,它將逐漸向輸入向量的某一類聚集,一旦神經元的權值靠近輸入向量的某一類模式,該神經元將經常獲勝,其閾值將逐漸減小到0,這樣就解決了“死神經元”的問題。
?
? ? ?其二,學習函數learncon強迫每個神經元對每個輸入向量的分類百分比大致相同,所以如果輸入空間的某個區域比另外一個區域聚集了更多的輸入向量,那么輸入向量密度大的區域將吸引更多的神經元,從而獲得更細的分類。
總結
- 上一篇: 已跳过全部重新生成_2020年最新跳对公
- 下一篇: oracle多线程删除,请教高手:多线程