競爭學習神經網路-SOM
相似性是聚類的關鍵:
- 如何決定相似度;
- 如何決定聚類的類別數;
- 如何決定哪種分類的結果是理想的;
相似性測量:
1. 歐式距離法
兩個模式向量的歐式距離越小,則兩個向量越接近,因此認為這兩個模式越相似。
如果對同一類內各個模式向量間的歐式距離作出規定,不允許超過某一最大值T,則最大歐式距離T就成為了一種聚類依據。
最終形成大小相似且緊密的圓形聚類
2. 餘弦法
兩個模式向量越接近,其夾角越小,餘弦越大。當兩個模式方向完全相同時,其夾角餘弦為1 。如果對同一類內各個模式向量間的夾角作出規定,不允許超過某一最大角,則最大角哦就成為了一種聚類依據。
最終形成大體同向的狹長形聚類
3. 內積法
內積值越大則相似度越高
不一定會形成大體同向的狹長形聚類
競爭學習演算法:
- 向量歸一化
- 尋找獲勝神經元
- 網路輸出與權值調整
當外界輸入不同的樣本時,網路中哪個位置的神經元興奮開始是隨機的,但自組織訓練後會在競爭層中形成神經元的有序排列,功能相近的神經元非常靠近,功能不同的神經元離得較遠。
SOM網的拓補結構和權值調整域:
1. 拓補結構->
SOM網共有兩層,輸入層各神經元通過權向量將外界資訊彙集到輸出層的各神經元。
其中輸入層的形式和BP網相同,節點數與樣本維數相等。
輸出層也是競爭層,神經元的排列有多種形式,如一維線陣,二維平面陣,和三維柵格陣。
一維陣列SOM網的輸出層只標出了相鄰神經元之間的側向連線。
二維平面陣SOM網輸出層的每個神經元同其周圍的其他神經元側向連線,排列成棋盤狀的平面;
2. 權值調整域
SOM網的主要區別在於調整權向量與側抑制的方式不同,只有競爭獲勝神經元才能調整權向量,其他任何神經元都無權調整。
以獲勝神經元為中心設定一個鄰域半徑,該半徑圈定的範圍稱為優勝鄰域。在som的學習過程中,優勝鄰域內的所有神經元均按照其離開獲勝神經元的距離遠近不同程度的調整權值。優勝鄰域開始定的很大,但其大小隨著訓練次數的增加而不斷收縮,最終收縮到半徑為0;
SOM的執行原理和學習方法:
1. 執行原理
som網的執行分為訓練和工作兩個階段。
訓練階段中:對som網隨機輸入訓練集中的樣本,對某個特定的輸入模式,輸出層會有某個節點產生最大響應而獲勝,開始時對哪個位置的節點你哪類輸入模式會產生最大的響應是不確定的。於是每次改變輸入模式的類別,進而改變二維平面的獲勝節點,再對獲勝節點及其優勝鄰域內的所有節點所連線的權向量均向輸入向量的方向做程度不同程度的調整,調整的力度根據鄰域內各個節點距獲勝節點的遠近而逐漸衰減。
網路通過自組織的方式,用大量的訓練樣本調整網路的權值,最後使得輸出層的各個節點成為對特定模式類敏感的神經細胞,對應的內星權向量成為各輸入模式類的中心向量。當兩個模式類的特徵接近時,代表這兩類的節點在位置上也接近。從而在輸出層形成能夠反映樣本模式類分佈情況的有序特徵圖。
當訓練結束後,輸出層各個節點與各輸入模式類的特定關係就完全確定了,即可用作模式分類器。當輸入一個模式時,網路輸出層代表該模式類的特定神經元將產生最大的響應,從而將該神經元自動歸類。如果當輸入的模式不屬於任何一個模式類時,SOM網只能將其歸入最接近的模式類。
2. 學習演算法
-
初始化 對輸出層各權向量賦小隨機數並進行歸一化處理,得到W1,並建立初始優勝鄰域,對學習率賦上初始值;
-
接受輸入 從訓練集中隨機選取一個輸入模式並進行歸一化處理,得到X1;
-
尋找獲勝節點 計算X1與W1的點積,從中選出點積最大的獲勝節點J1;如果輸入模式未經歸一化,則可以通過計算歐式距離,來找出距離最小的獲勝節點;
-
定義優勝鄰域,N1,以J1為中心確定t時刻的權值調整域,一般初始鄰域的N1較大,訓練過程中N1隨訓練時間逐漸收縮;
-
調整權值 對優勝鄰域N1內的所有節點調整權值:
w(t+1) = w(t) + n(t,N)[ x^p - w(t) ].
其中,n(t,n)是訓練時間t和鄰域內第j個神經元與獲勝神經元j*之間的拓補距離N的函式,其中t與其成n成反比,n與其成正比;
所以這個函式可以採用t的單調下降函式,這種隨著時間單調下降的函式稱為退火函式;
-
結束檢查
som網的訓練沒有BP網路中的輸出誤差的概念,訓練何時結束是以學習率是否衰減到0或某個預定的正小數為條件,不滿足則返回步驟二進行重新輸入;
3. SOM網的功能特點
一就是儲存對映,即能將輸入空間的樣本模式類有序的對映在輸出層上;
二是資料壓縮,指高維空間的樣本在保持拓補結構不變的條件下投影到低維空間;
三是特徵抽取,從特徵抽取的角度看高維空間樣本向低維空間的對映;
SOM網的設計
1. 輸出層設計
輸出層的設計涉及兩個問題,一個是節點數的設計,另一個是節點排列的設計。
-
節點數設計:
節點數與訓練集樣本中有多少模式類有關,根據節點數目的不同,可能會產生分的過粗,分的過細,還有可能出現某個節點因為距離較遠而從未得到過訓練,從而出現死節點的情況。因此在解決分類問題時,如果沒有確切的類別數資訊,則可以先設定較多的輸出節點,以便較好的對映樣本的拓補結構,如果分類過細,則可以減少輸出節點。而死節點的問題一般可以通過重新初始化權值來得到解決。
-
輸出層的節點排列
輸出層的節點排列成哪種形式取決於實際應用的需要,比如對於旅行路徑類問題,二維平面比較直觀;而對於一般的分類問題,一個輸出節點就能代表一個模式類,用一維線陣意義明確且結構簡單。、
2. 權值初始化問題
為了使得權向量充分分散在樣本空間,SOM網的權值一般初始化為較小的隨機數。
如果有這樣一種情況,當樣本整體上相對集中於高維空間的某個區域性區域,權向量的初始位置卻隨機的分散於樣本空間的廣闊區域,訓練時必然是距離整個樣本群最近的權向量被不斷的得到調整,並逐漸的進入到全體樣本的中心位置,而其他權向量因初始位置而遠離樣本群進而永遠得不到調整。如此的話,可能會將全部的樣本聚為一類。
解決這類問題的思路是儘量使權值的初始位置與輸入樣本的大致分佈區域充分的重合,當初始的權向量與輸入模式向量整體上呈混雜狀態時,會大大的提高訓練的速度。
實現方法有兩種:
一種是從訓練的集合中隨機抽出m個樣本作為初始的權值,W = X^k
其中,k是輸入樣本的順序隨機數,因為任何的X一定是輸入空間內的某個模式類的成員,各個權向量按照上式子初始化後從訓練一開始就分別接近了輸入空間的各個模式類;
另一種方法是先計算出全體樣本的中心向量:
X = 1/P 級數X^p
在該中心向量的基礎上疊加小隨機數作為權向量初始值,也可將權向量的初始位置確定在樣本群中。
3. 優勝鄰域的設計
優勝鄰域的設計原則是使鄰域不斷縮小,這樣輸出平面上相鄰神經元對應的權向量之間既有區別又有相當的相似性,從而保證當獲勝節點對某一類模式產生最大響應時,其鄰近節點也能產生較大的響應。
優勝鄰域的大小可以用鄰域半徑來表示,通常有兩種計算式子來進行選擇:
r = C (1 - t/tm)
r = C exp(-B*t/tm)
在式子中,C為與輸出層節點數m有關的正常數,B為大於1的常數,tm為預先選定的最大訓練次數;
4. 學習率的設計
為了很快的捕捉到輸入向量的大致結構,學習率的取值在開始時比較大,之後以較快的速度下降。然後又以較小的值上緩降至0值。
n = C(1-t/tm)
還有一種n隨訓練時間線性下降至0的規律:
n = C * exp(-B * t/tm)
式子中,C為0-1之間的常數,B為大於1的常數
SOM網路的優勢是速度快,同時也存在著以下的侷限性:
- 隱層神經元數目難以確定,因此隱層神經元往往未能充分利用,某些距離學習向量較遠的神經元不能獲勝,從而成為死節點;
- 聚類網路的學習速率需人為確定,學習終止往往需要人為控制,影響學習的進度;
- 隱層的聚類結果與初始的權值有關。