7.第8章--自组织竞争神经网络PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
X1
X2
. . .
XN
Y1
. .
. YN
输入层 核心层
“胜者为王,败者为寇” 。兴奋最强的神经元“战胜”了其他神经元, 在权值调制中其兴奋程度得到进一步加强,而其他神经元则保持不变。
竞争神经网络通过这种竞争学习的方式获取训练样本的分布信息,每个
训练样本都对应一个兴奋的核心层神经元,也就是对应一个类别,当有新样 本输入时,就可以根据兴奋的神经元进行模式分类。
5
3.自组织特征映射网络
自组织特征映射网络(Self-Organizing Feature Maps,SOFM)又称 自组织映射网络(SOM)。自组织映射网络是一种竞争性神经网络,同时 引入了自组织特性。
自组织现象来源于人脑细胞的自组织性:大脑中不同区域有着不同的 作用,不同的感官输入由不同位置的脑细胞进行处理,这种特性不完全来 自遗传,更依赖于后天的学习和训练。
X1
Y1 X2
.
Y2
.
.
XN
输入层 竞争层
线性层
12
6.自组织竞争网络相关函数详解
gridtop——网格拓扑函数
pos=gridtop(dim1,dim2,…,dimN)
gridtop(2,3,4)表示 234 的三维
拓扑结构
用gridtop创建一个包含40个输出层神经元节点的 网格,并输入到selforgmap函数中。
>> pos = gridtop(8,5);
% 创建网格
>> pos
% 神经元的坐标
>> net = selforgmap([8 5],'topologyFcn','gridtop');
>> plotsomtop(net)
% 显示网络
13
6.自组织竞争网络相关函数详解
hextop——六边形拓扑函数
net=newsom(P,[d1,d2,…],tfcn,dfcn,steps,in) P:R*Q矩阵,包含Q个典型的R维输入向量 di:拓扑结构中第i维的大小。默认值为 [5,8]
显示自组织映射网络与竞争神经网络的结构差别
>> net1=competlayer(40);
% 40个节点的竞争层
>> load simpleclass_dataset
k 1 k x k 10
4. SOM的学习算法
(5)更新学习速率及拓扑邻域,并对学习后的权值进行重新归一化。 学习率和邻域大小的调整按排序阶段、调整阶段两步来进行。 (6)判断是否收敛。判断迭代次数是否达到预设的最大值,若没有达 到最大迭代次数则转到第三步,否则结束算法。
11
5.学习矢量量化网络
>> P = [.2 .8 .1 .9; .3 .5 .4 .5]; >> plot(P(1,:),P(2,:),'o'); >> axis([0,1,0,1]) >> set(gcf,'color','w') >> grid on >> title('四个坐标点的分类') >> net = newc(P,2); >> net = train(net,P); >> Y = net(P) >> Yc = vec2ind(Y)
>> net2=newsom(simpleclassInputs,[5 8]);
>> view(net1)
>> view(netBiblioteka Baidu)
22
6.自组织竞争网络相关函数详解
selforgmap——新版自组织映射网络函数
net=selforgmap(dimensions,coverSteps,initNeighbor,topologyFcn,distanceFcn)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
8
4. SOM的学习算法
使用learnsom函数进行自组织映射网络的学习 。在learsom函 数学习过程中,学习率与邻域大小是可调的。在训练过程中分为 两个阶段进行调节:
newc——竞争网络
net=newc(P,S,KLR,CLR) P:R*Q矩阵,包含Q个R维的输入样本向量。 S:标量,表示输出层神经元个数。 KLR:Kohonen学习率,默认值为 0.01 CLR:“良心”学习率,默认值为 0.001
19
6.自组织竞争网络相关函数详解
使用竞争神经网络将4个坐标点分为两类
4
2.竞争神经网络的学习算法
Kohonen学习规则
竞争神经网络采用的Kohonen学习规则是从内星学习规则发展而来的。 阈值学习规则 在竞争型神经网络中,有可能某些神经元始终无法赢得竞争,其
初始值偏离所有样本向量,因此无论训练多久都无法成为获胜神经 元。这种神经元称为“死神经元”。
可以给很少获胜的神经元以较大的阈值,使其在输入向量与权值相 似性不太高的情况下也有可能获胜;而对那些经常获胜的神经元则 给以较小的阈值 。有效解决了“死神经元”问题。
9
4. SOM的学习算法
(1)设定变量。 xx1,x2,L,xm ik i1 k ,i2 ,k L ,in k
(2)初始化。权值使用较小的随机值进行初始 化,并对输入向量和权值都做归一化处理
x x x
i k
i k i k
(3)将随机抽取的样本输入网络。
(4)更新权值。对获胜神经元拓扑邻域内的 神经元,采用Kohonen规则进行更新
iris_dataset是MATLAB自带的用于分类的样本数据,其中包含了150分鸢尾花数 据,每份数据用一个4维向量表示。用竞争神经网络将其分为3类
>> inputs = iris_dataset;
% 载入数据
>> net = competlayer(3);
% 创建竞争网络
>> net = train(net,inputs);
>> pos = tritop(8,5);
% 三角拓扑函数
>> net = selforgmap([8 5],'topologyFcn','tritop');
>> plotsomtop(net)
16
6.自组织竞争网络相关函数详解
dist、boxdist、linkdist、mandist——距离函数
% 待分类坐标点 % 绘制坐标点
% 创建竞争层
>> P >> c1=P(:,Yc==1); % 绘制分类结果 >> c2=P(:,Yc==2); >> plot(c1(1,:),c1(2,:),'ro','LineWidth',2) >> hold on >> plot(c2(1,:),c2(2,:),'k^','LineWidth',2) >> title('四个坐标点的分类结果') >> axis([0,1,0,1])
自组织映射网络除了能学习输入样本的 分布外,还能够识别输入向量的拓扑结构
6
3.自组织特征映射网络
自组织神经网络同样包含输入层、输出层两层网络,但在输出层引入网络 的拓扑结构,以更好地模拟生物学中的侧抑制现象。
Yj
f
xiij
...
i
输入神经元与输出神经元通过权值相连,同时,近邻的输出神经元 之间也通过权值向量相连。输出神经元被放置在一维、二维甚至多 维的网格节点中,最常见的是二维拓扑结构。
第8章 自组织竞争神经网络
编者
Outline
1.竞争神经网络 2.竞争神经网络的学习算法 3.自组织特征映射网络 4. SOM的学习算法 5.学习矢量量化网络 6.自组织竞争网络相关函数详解 7.自组织竞争神经网络应用实例
2
1.竞争神经网络
采用竞争学习的规则即可构成最简单的竞争神经网络,在此基础 上,还发展了形形色色的自组织网络。
网络中输入层包含3个神经元,输出层包含4个神经元,给定一个 三维输入向量,计算其与各个输出神经元对应权值之间的欧氏距离。
>> rng(0) >> W = rand(4,3) >> P = rand(3,1) >> Z1 = dist(W,P)
% 权值矩阵 % 输入列向量
18
6.自组织竞争网络相关函数详解
3
2.竞争神经网络的学习算法
内星学习规则
P1
P2
1
2
Y
P3 3
Pr 4
内星模型训练的目标是使得神经元只对某些特定的输入向量产生 兴奋。这一点是通过连接权值的逐步调整得到的。
ij Pi ij Y
随机权值中有一个被激活,其权值按上式向输入样本的方向 调整,会变得越来越“像”输入样本
如果对内星模型输入多个样本进行训练,最终得到的网络权 值趋近于各输入向量的平均值。
学习率有 lr _order 、 lr _tuning两个给定的参考值,且lr_o rd er ,lr_tu n in g 邻域大小也有两个给定的参考值:nd _ max nd_tuning
➢ 排序阶段:在排序阶段,随着迭代的进行,学习率从下降到, 邻域大小从下降到。在这个阶段,权值根据输入向量进行调整,使其 相对位置体现了输入样本的分布。 ➢ 调整阶段:在这个阶段,学习率从开始以缓慢的速度下降,邻 域大小则保持为不变,以确保学习的稳定性
自组织映射网络具有有效的聚类功能,但由于没有采用导师信号, 适合无法获知样本类别的情况。将自组织竞争的思想与有监督学习相 结合,这就是学习矢量量化网络(Learning Vector Quantization, LVQ) 。
LVQ是SOM网络的一种变形,它在原有两层结构的基础上增加了 线性层,竞争层得到的类别称为子类,输出层又称线性层,线性层的 类别标签是由导师信号给出的,是目标分类。
% 设置随机数种子
>> net = selforgmap([8 5],'topologyFcn','randtop');
>> plotsomtop(net)
15
6.自组织竞争网络相关函数详解
tritop——三角拓扑函数 pos=tritop(dim1,dim2,…,dimN)
神经元节点被安排在N维的空间中,节点按三 角形的形状排列。
% 训练
>> outputs = net(inputs);
% 分类
>> classes = vec2ind(outputs) % 格式转换。classes为分类结果,这里仅列出部分数据
>> c=hist(classes,3)
% 每个类别的数量
21
6.自组织竞争网络相关函数详解
newsom——自组织特征映射网络
(4)Manhattan距离,即曼哈顿距离,也就是出租车几何距离,相当 于向量之差的1-范数。
d x 1 y 1 x 2 y 2 L x n y n
17
6.自组织竞争网络相关函数详解
网络中输入层包含3个神经元,输出层包含4个神经元,给定一个 三维输入向量,计算其与各个输出神经元对应权值之间的欧氏距离。
pos=hextop(dim1,dim2,…,dimN) 显示三维六边形拓扑结构。 >> pos = hextop(3,4,2); % 建立3*4的两层六边形 >> pos >> plot3(pos(1,:),pos(2,:),pos(3,:),‘o’) % 显示节点位置 >> title('hex拓扑') >> set(gcf,'color','w')
20
6.自组织竞争网络相关函数详解
competlayer——新版竞争网络函数 net=competlayer(numClasses,kohonenLR,conscienceLR)
numClasses:分类的类别数
kohonenLR:Kohonen学习率
conscienceLR:“良心”学习率,即阈值学习规则的学习率
(1)欧氏距离 d x 1 y 1 2 x 2 y 2 2 L x n y n 2
Z = dist(W,P) (2)boxdist函数用于求得的距离是向量个分量绝对差的最大值
d m a x x 1 y 1 ,x 2 y 2 ,L ,x n y n
(3)linkdist是newsom的默认距离函数
7
4. SOM的学习算法
竞争网络与SOM网络的主要区别在于: ➢在竞争神经网络中不存在核心层之间的相互连接,在更新权值时 采用了胜者全得的方式,每次只更新获胜神经元对应的连接权值;
➢而在自组织映射网络中,每个神经元附近一定邻域内的神经元也 会得到更新,较远的神经元则不更新,从而使几何上相近的神经元 变得更相似。
14
6.自组织竞争网络相关函数详解
randtop——随机拓扑结构函数 :
pos=randtop(dim1,dim2,…,dimN)
神经元节点被安排在N维的空间中,节点的位置都是 随机给定的。
创建一个随机拓扑结构的自组织映射网络,并显示 网络结构
>> pos = randtop(8,5);
>> rng(2)