失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【神经网络】自组织特征映射网络(SOM)

【神经网络】自组织特征映射网络(SOM)

时间:2022-11-13 20:05:23

相关推荐

【神经网络】自组织特征映射网络(SOM)

自组织特征映射网络(SOM)

Self-Organizing Feature Map Neural Networks

BP学习算法是一种典型的有监督学习算法,特点:每一个输入都有一个对应的理想输出自组织特征映射网络为无监督学习算法,只有样本,没有理想输出 用途:聚类分析,分类

SOM网络及其学习算法

网络模型

输入为 n n n维:

X = [ x 1 , x 2 , . . . , x n ] T X=[x_1,x_2,...,x_n]^T X=[x1​,x2​,...,xn​]T

输出层有 p p p个结点:

Y = [ y 1 , y 2 , . . . , y p ] T Y=[y_1,y_2,...,y_p]^T Y=[y1​,y2​,...,yp​]T

每个输入结点 i i i和输出节点 j j j之间都有权值连接:

W j = [ w j 1 , w j 2 , . . . , w j n ] T , j = 1 , . . . p W_j=[w_{j1},w_{j2},...,w_{jn}]^T,j=1,...p Wj​=[wj1​,wj2​,...,wjn​]T,j=1,...p

输入输出关系:

输入输出之间为竞争关系,输出层只有1个结点能够输出(set to 1),其他的结点将被抑制(set to 0)

竞争规则

计算每个输出节点权值和输入之间的二范数,最小的能够输出:

u j = { 1 , i f ∥ W j − X ( k ) ∥ 2 → min ⁡ 0 , o t h e r w i s e u_j=\begin{cases}1,&if\Vert W_j-X(k)\Vert^2\rarr\min\\0,&otherwise\end{cases} uj​={1,0,​if∥Wj​−X(k)∥2→minotherwise​

学习算法

学习权值 W j W_j Wj​

算法1:

给定训练集 { X ( k ) } \{X(k)\} {X(k)}

初始化

W j ( 0 ) W_j(0) Wj​(0)为比较小的随机数, k ← 0 k\larr0 k←0

如果有先验知识,可以根据先验知识进行初始化

利用 X ( k ) X(k) X(k),更新 W j W_j Wj​:

寻找和 X ( k ) X(k) X(k)距离最小的权值矢量 W q W_q Wq​:

min ⁡ j { ∥ W j − X ( k ) ∥ } = ∥ W q − X ( k ) ∥ = d q , ( ∥ X − Y ∥ = ( ∑ i ( x i − y i ) 2 ) 1 / 2 ) \min\limits_j\{\Vert W_j-X(k)\Vert\}=\Vert W_q-X(k)\Vert=d_q,(\Vert X-Y\Vert=(\sum_i(x_i-y_i)^2)^{1/2}) jmin​{∥Wj​−X(k)∥}=∥Wq​−X(k)∥=dq​,(∥X−Y∥=(∑i​(xi​−yi​)2)1/2)

定义以获胜权值 W q W_q Wq​为中心的邻域范围 N q ( t k ) N_q(t_k) Nq​(tk​),其中 t k t_k tk​为该权值获胜的次数,更新该邻域范围内的权值:

W j ( t k + 1 ) = W j ( t k ) + α ( t k ) [ X ( k ) − W j ( t k ) ] , j ∈ N q ( t k ) W_j(t_k+1)=W_j(t_k)+\alpha(t_k)[X(k)-W_j(t_k)],j\in N_q(t_k) Wj​(tk​+1)=Wj​(tk​)+α(tk​)[X(k)−Wj​(tk​)],j∈Nq​(tk​)

其中 α ( t k ) \alpha(t_k) α(tk​)为学习步长: 0 < α ( t k ) < 1 0<\alpha(t_k)<1 0<α(tk​)<1

邻域定义:满足 ∥ W j − W q ∥ ≤ N q ( t k ) \Vert W_j-W_q\Vert\leq N_q(t_k) ∥Wj​−Wq​∥≤Nq​(tk​)的所有 j j j结点

事先要定义半径,半径也可以是可变的

k ← k + 1 k\larr k+1 k←k+1,直到网络收敛

算法2:

在算法1的 W j W_j Wj​更新部分做了一些改进:

使得 d j k 2 = ∥ X ( k ) − W j ∥ 2 d_{jk}^2=\Vert X(k)-W_j\Vert^2 djk2​=∥X(k)−Wj​∥2

计算 h j ( k ) = e − d j k 2 ( k ) 2 σ 2 ( k ) h_j(k)=e^{-\frac{d_{jk}^2(k)}{2\sigma^2(k)}} hj​(k)=e−2σ2(k)djk2​(k)​——高斯函数

权值更新算法为(所有权值都可以修改,但修改程度不一样):

W j ( k + 1 ) = W j ( k ) + α ( k ) h j ( k ) [ X ( k ) − W j ( t k ) ] , j = 1 , 2 , . . . , p W_j(k+1)=W_j(k)+\alpha(k)h_j(k)[X(k)-W_j(t_k)],j=1,2,...,p Wj​(k+1)=Wj​(k)+α(k)hj​(k)[X(k)−Wj​(tk​)],j=1,2,...,p

其中 σ 2 ( k ) = σ 0 2 e − k / τ 1 , σ 0 2 , τ 1 \sigma^2(k)=\sigma_0^2e^{-k/\tau_1},\sigma_0^2,\tau_1 σ2(k)=σ02​e−k/τ1​,σ02​,τ1​为需要合适选择的固定参数。推荐 τ 1 = 1000 ln ⁡ σ 0 \tau_1=\frac{1000}{\ln\sigma_0} τ1​=lnσ0​1000​

其他部分与算法1相同

如果 W j = X ( k ) , h j ( k ) = 1 W_j=X(k),h_j(k)=1 Wj​=X(k),hj​(k)=1,如果 W j ≠ X ( k ) , h j ( k ) W_j\not=X(k),h_j(k) Wj​​=X(k),hj​(k)根据高斯函数减小

在这个算法中,在竞争中获胜的权值获得的更新最大,离获胜权值越远的结点的权值更新越小。

其他还有一些改进算法

定义合适的 α ( t k ) \alpha(t_k) α(tk​),使得它随权值更新的次数变化而变化,如果更新次数增加,步长应减小

讨论

算法的收敛性

该算法经过训练应该将样本分为 p p p个子空间 V j V_j Vj​,每个子空间的的中心矢量为 V j ∗ V_{j^*} Vj∗​,也被称为 V j V_j Vj​的聚类中心通过证明可得: W j → V j ∗ , j = 1 , . . . , 0 W_j\rarr V_{j^*},j=1,...,0 Wj​→Vj∗​,j=1,...,0

竞争算法(Competitive Learning Algorithm,CL)

Winner-takes-all是一种典型的无监督算法通过竞争算法寻找聚类中心,权值矢量就是中心的近似值

邻域的选择

算法1中邻域范围鲜明,只有邻域内的权值才能被修改算法2中选择了类似高斯函数的平滑函数,使得所有的权值都可以修改

学习步长的选择

获胜次数越多,学习步长越小;使得在竞争过程中,所有的结点都能有修改机会

如何使用SOM网络进行分类

在训练过程结束后,所有的权值都已经收敛。接下来使用下面的算法即可进行分类

计算输入矢量 X X X和所有权矢量之间的距离:

d j = ∥ X − W j ∥ , j = 1 , . . . , p d_j=\Vert X-W_j\Vert,j=1,...,p dj​=∥X−Wj​∥,j=1,...,p

寻找所有 d j d_j dj​中最小的距离 d q d_q dq​

d q = min ⁡ j { ∥ X − W j ∥ } d_q=\min\limits_j\{\Vert X-W_j\Vert\} dq​=jmin​{∥X−Wj​∥}

定义 y i y_i yi​:

y i = { 1 , i f j = q 0 , i f j ≠ q y_i=\begin{cases}1,&if\quad j=q\\0,&if\quad j\not=q\end{cases} yi​={1,0,​ifj=qifj​=q​

分类

将输入 X X X分为第 q q q类

如果觉得《【神经网络】自组织特征映射网络(SOM)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。