SOM學習筆記小編打算寫兩篇,內容來自小編前階段在工作要解決的預警產品質量在多個ATE上走低的問題。第一篇從理論的角度介紹SOM的網絡模型、學習算法,第二篇從應用的角度以demo的形式展示實際的應用。
1.SOM是什么
SOM英文全拼是Self-Organizing Maps,中文一般譯作自組織映射網絡,它是神經網絡的一種,由kohonen提出,屬于非監督式學習,它模仿人腦神經元對信息的處理方式,通過自身訓練,自動對輸入的模式進行聚類。
2.SOM網絡模型
SOM網絡有兩層,分別是InputLayer和OutputLayer。InputLayer與OutputLayer通過權值相連,InputLayer即輸入層,其輸入一般為高維度向量。OutputLayer的神經元一般放置在二維網格中,輸出層近鄰的神經元也通過權值連接
SOM網絡模型
3.內星學習規則
SOM是基于內星學習規則而來的,有必要學習下該規則:
- 假設輸入信息為n維向量,該向量與權值向量連接,輸出到輸出神經元Y中,Y采用硬限幅函數作為傳遞函數,限定輸出為1和0
- 內星模型訓練的目標使得神經元Y只對某些特定的輸入向量產生興奮,即在Y出的神經元輸出為1
- 通過學習速率η對權值進行調整,當Y=1時,權值進行調整,當Y=0時,權值不做調整,最終得到的網絡權值趨近于各輸入向量的平均值
內星規則
4.SOM學習算法
- 設定變量:X=[x1,x2,x3,…,xm]為輸入樣本,每個樣本為m維向量。ωi(k)=[ωi1(k), ω i2(k),…,ωin(k)]為第i個輸入節點與輸出神經元之間的權值向量
- 初始化:權值使用較小的隨機值進行初始化,并對輸入向量和權值做歸一化處理
X’ = x/||x||
ω’i(k)= ωi(k)/||ωi(k)||
||x||和||ωi(k)||分別為輸入向量和權值向量的歐幾里得范數 - 將樣本輸入網絡:樣本與權值向量做內積,內積值最大的輸出神經元贏得競爭,記為獲勝神經元
- 更新權值:對獲勝的神經元拓撲鄰域內的神經元采用內星規則進行更新
ω(k+1)= ω(k)+ η(x- ω(k)) - 更新學習速率η及拓撲鄰域,并對學習后的權值重新歸一化
- 判斷是否收斂。如果中心改變很小或達到預設的迭代次數,結束算法
5.SOM的優缺點
- 優點
- 表示的結果非常容易理解,這點將在第二篇demo中看到
- 實現起來比較簡單
- 缺點
- 計算復雜度高,對相似性的度量非常敏感
- 不能應用存在缺失值的數據集