SOM (Self Organizing Maps):自组织映射神经网络,是一种类似于kmeans``的聚类算法,用于寻找数据的聚类中心。它可以将相互关系复杂非线性的高纬数据,映射到具有简单几何结构及相互关系的低纬空间。(低纬映射能够反映高纬特征之间的拓扑结构)
低维、离散的映射(Map),从某种程度上也可看成一种降维算法。SOM是一种无监督的人工神经网络。不同于一般神经网络基于损失函数的反向传递来训练,它运用竞争学习(competitive learning)策略,依靠神经元之间互相竞争逐步优化网络。且使用近邻关系函数(neighborhood function)来维持输入空间的拓扑结构。无监督学习,这意味着训练阶段不需要人工介入(即不需要样本标签),我们可以在不知道类别的情况下,对数据进行聚类;可以识别针对某问题具有内在关联的特征。可以实现数据可视化;聚类;分类;特征抽取等任务
SOM的网络结构有2层:输入层、输出层(也叫竞争层),。
输入层 :包含D个节点,节点数由输入特征的维度决定,跟输入特征维度相同。输出层:通常下将输出层的节点排列层X行Y列的矩阵形式,输出层有X x Y个节点。D条权边,与所有样本点D维特征向量相连。,输出层
i
,
j
i,j
i,j 位置的节点向量:经过训练后,输出层的各个节点之间,按照距离远近具有一定的关联,即离的越近,关联度越高,也可以表述为离的越近两个点,这个两个点的D维矢量的距离会越近。训练的目的:学习X x Y个D维权重
W
W
W,可以将所有的训练的样本(每个样本D维特征向量)映射到输出层的节点上。N x D N为样本的数量,D为每个样本的特征向量维度激活点,设其权重
g
g
g为1
整个SOM映射过程,相当于对输入的N个样本进行聚类映射,比如输入样本
x
1
x1
x1,
x
2
x2
x2,
x
3
x3
x3 映射为输出节点a, 样本
x
4
x4
x4,
x
5
x5
x5,
x
6
x6
x6映射为输出节点b,则可以用输出节点a来表征样本
x
1
x1
x1,
x
2
x2
x2,
x
3
x3
x3;用输出节点b来表征样本
x
4
x4
x4,
x
5
x5
x5,
x
6
x6
x6
(N x D)。相当于把输入样本,映射为(XxYxD)的表征向量
W
=
w
1
,
1
,
w
1
,
2
,
,
,
w
x
,
y
W=w_{1,1},w_{1,2} ,,, w_{x,y}
W=w1,1,w1,2,,,wx,y权重初始化主要有3种方法:
PCA,取特征值最大的两个特征向量M: D x 2 作为基向量进行映射。采用欧式距离计算 ,公式如下:
d
i
s
=
∣
∣
x
−
y
∣
∣
dis =|| x-y ||
dis=∣∣x−y∣∣
假设激活点坐标为 ( c X , c y ) (c_X,c_y) (cX,cy) ,其他位置 i , j i,j i,j处的权重g计算主要有两种方法:
高斯法
g
(
i
,
j
)
=
e
−
(
c
x
−
i
)
2
2
σ
2
e
−
(
c
y
−
j
)
2
2
σ
2
g(i,j)= e^{-\frac{(c_x-i)^2}{2\sigma^2}}e^{-\frac{(c_y-j)^2}{2\sigma^2}}
g(i,j)=e−2σ2(cx−i)2e−2σ2(cy−j)2
可以看出到
(
i
,
j
)
(i,j)
(i,j)为激活点
(
c
X
,
c
y
)
(c_X,c_y)
(cX,cy),计算得到的g=1。权重呈现高斯分布。其中高斯法中的
σ
\sigma
σ值也会随着迭代步数变化而变化,更新方式跟学习率方式一样,参见后面学习率的更新
硬阈值法
η = η 0 1 + t m a x s t e p / 2 \eta=\frac{\eta_0}{1+\frac{t}{max_{step}/2}} η=1+maxstep/2tη0
其中
t
t
t表示当前的迭代step,
m
a
x
s
t
e
p
max_{step}
maxstep网络训练总的迭代次数,学习率
η
\eta
η随着迭代次数的增加,会越来越小。