SOM学习笔记小编打算写两篇,内容来自小编前阶段在工作要解决的预警产品质量在多个ATE上走低的问题。第一篇从理论的角度介绍SOM的网络模型、学习算法,第二篇从应用的角度以demo的形式展示实际的应用。
SOM英文全拼是Self-Organizing Maps,中文一般译作自组织映射网络,它是神经网络的一种,由kohonen提出,属于非监督式学习,它模仿人脑神经元对信息的处理方式,通过自身训练,自动对输入的模式进行聚类。
SOM网络有两层,分别是InputLayer和OutputLayer。InputLayer与OutputLayer通过权值相连,InputLayer即输入层,其输入一般为高维度向量。OutputLayer的神经元一般放置在二维网格中,输出层近邻的神经元也通过权值连接。如下图所示,红色小圆表示输入向量,通过射线(权值)投射到X-Y的平面网格上。
SOM是基于内星学习规则而来的,有必要学习下该规则:
设定变量:X=[x1,x2,x3,…,xm]为输入样本,每个样本为m维向量。ωi(k)=[ωi1(k), ω i2(k),…,ωin(k)]为第i个输入节点与输出神经元之间的权值向量
初始化:权值使用较小的随机值进行初始化,并对输入向量和权值做归一化处理
将样本输入网络:样本与权值向量做内积,内积值最大的输出神经元赢得竞争,记为获胜神经元
更新权值:对获胜的神经元拓扑邻域内的神经元采用内星规则进行更新 ω(k+1)= ω(k)+ η(x- ω(k))
更新学习速率η及拓扑邻域,并对学习后的权值重新归一化
判断是否收敛。如果中心改变很小或达到预设的迭代次数,结束算法