关于SOM(self-organized map)自组织特征映射神经网络的理解

som网络结构

对SOM进行理解,首先要明确它的定位。
首先它是神经网络的一种,那么就有属于神经网络共同的性质。比如输入层,输出层。刚好,SOM网络只有这两层。
在这里插入图片描述
在这里插入图片描述

(上面两张是典型的som网络结构图)
输入层不必讲,从 x 1 x_1 x1 x n x_n xn,都是一个个输入样本节点,每个样本会有好几个特征值维度。
输出层的节点个数是自己设置的,排列方式也是自己设定,输出层的节点与节点之间通常也会有连接。
输出层和输入层是以全连接的方式进行连接的,相互连接的桥梁就是一组组权重矩阵。
w i w_i wi表示第i个输出节点与所有输入数据相连的权值。 w i j w_{ij} wij表示的是第i个节点与第j个输入样本之间的权重。

到这里有看出图二有什么问题吗?
没错, w i w_i wi那个向量应该一共是n列,和输入数据的个数n一致。

这些就是som网络结构的基本特点。

som网络的作用

那这个结构有什么用呢?
som是一种无监督的人工神经网络。无监督说白了就是不需要你告诉这个网络哪次输出结果是对的、哪次是错的,它会自动地对输入数据进行某种特征的识别和分类。由于输入数据一般是高维的,输出数据一遍是低维的,因此它可以将高维数据在低维空间进行特征表示。

som网络训练过程

(在写这一块的时候,我突然问自己,神经网络是什么?提出来干啥用的?为什么要对输入数据进行训练???
按照我目前的知识水平所做的理解,神经网络是一种网络结构,正如化学里面相同原子以不同结构进行组合会形成截然不同的物质,不同的网络结构最终实现的功能也不一样,神经网络就是对一堆数据加工的东西,不同结构加工的方式不同,出来的效果也不一样。至于为什么要对输入数据进行训练,是因为神经网络基本单位——神经元,本质上就是一组参数,需要对这些参数进行优化才能得到你想要的效果。)

训练就是优化网络参数的过程,那如何优化呢?优化步骤呢?
1 随机初始化参数。
2 选取一个输入样本 x i x_i xi,遍历输出层的每一个节点,以某种计算规则计算 x i x_i xi与每个节点之间的值,并选出优胜节点。(也就是你觉得和输入样本最契合的那个节点)(*a常用规则后面详细写)
4 更新最优节点领域内的节点。(*b更新方式后面详细写)
5 迭代次数加一,重复2-4直到完成设定的迭代次数。

*a 一般有最大输出规则、最小欧式距离规则、最小夹角规则。
在这里插入图片描述
(比如,以最小欧式距离为规则时,计算每个输出节点与输入样本之间的距离,并取最小距离值对应的节点为优胜节点)

*b 更新涉及到每个节点前一刻值与迭代后的值之间的关系,还涉及到优胜邻域内的每个点更新幅度的问题。
以最小欧氏距离规则下的更新为例:
j ∗ j_* j表示优胜节点。j表示优胜领域内的点。t表示第t次迭代。
w i j ∗ w_{ij*} wij(t+1)= w i j ∗ w_{ij*} wij(t)+η(t)·( x i x_{i} xi- w i j ∗ w_{ij*} wij(t))
w i j w_{ij} wij(t+1)= w i j w_{ij} wij(t)+η(t)·( x i x_{i} xi- w i j ∗ w_{ij*} wij(t))·w(r)
η(t)表示学习率,一般是会随迭代次数而变化的。η(t)=η(0)·(1-t/T),T为设定的迭代次数。
w(r)为领域节点调整函数,用来决定优胜节点对领域内其他点的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值