学习向量量化网络
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数名
功能
newlvq() 建立一个LVQ神经网络函数
newlv1()
LVQ1权值学习函数
vec2ind() 将单值矢量组换成下标示量
plotvec() 用不同的颜色画矢量函数图
4.LVQ网络的学习算法及其在MATLAB上的实现
•newlvq()
功能:建立一个向量量化神经网络函数
格式:net=newlvq
图3 学习向量量化的权值调整
4.LVQ网络的学习算法及其在MATLAB上的实现
•LVQ网络学习算法的步骤: (1)初始化:竞争层各神经元权值向量Wj1(0),(j=1,...,M)
赋小的随机数,确定初始学习速率ђ(0)和训练次数K. (2)输入样本向量X. (3)寻找获胜神经元j*: ║X-Wj*1║=min║X-Wj1║ j=1,2,…,M (4)根据分类是否正确按不同规则调整获胜神经元的权值。
2.向量量化
• 在信号处理领域,量化是针对标量进行的,将信号的连续 取值近似为有限多个或较少的离散值的过程。
• 向量量化是对标量量化的扩展,适用于高维数据。
• 向量量化的思路:将高维输入空间分成若干不同区域,对 每个区域确定一个中心向量作为聚类中心,与其处于同一 区域的输入向量可作为该中心向量来代表,从而形成以各 中心向量为聚类中心的点集。
• 子类:竞争层学习得到的类
目标类:输出层学习得到的类
3.LVQ网络结构与工作原理
•LVQ网络各层的数学描述: 输入向量X=(x1,x2,…,xn)T; 竞争层的输出Y=(y1,y2,…,ym)T,yi∈{0,1},i=1,2,…,
M; 输出层的输出O=(o1,oj,…,ol)T; 网络的期望输出d=(d1,d2,…,dl)T; 输入层到竞争层之间的权值矩阵 W1=(W11,W21,…,Wj1,…,WM1)
•(5)更新学习速率 ђ(k)=ђ(0)*(1- k )
当k<K时,k←k+1,转到步骤(2)输入K下一个样本,重复 各步骤直到k=K.
在上述训练过程中,需保证ђ(k)为单调下降函数,此外, 寻找获胜神经元时直接用最小欧式距离来判别。
4.LVQ网络的学习算法及其在MATLAB上的实现
• 4.2 LVQ网络在MATLAB上的实现 • MATLAB中与LVQ相关的重要函数和功能
目录
概述
向量量化 LVQ网络结构与工作原理 LVQ网络的学习算法及其在MATLAB上的实现
1.概述
学习向量量化(Learnig Vector Quantization,LVQ)网络: • (1)在竞争网络结构基础上提出的; • (2)将竞争学习思想与有监督学习算法结合在一起; • (3)在网络学习过程中,通过教师信号对输入样本的分 配类别进行规定; • (4)克服了自组织网络采用无监督学习算法带来的缺乏 分类信息的弱点。
2.向量量化
图1 二维向量量化
2.向量量化
•自适应解决模式分类问题的步骤:
第一步:自组织映射——起聚类的作用,但不能直接分 类或识别;
第二步:学习向量量化——采用有监督方法,在训练中 加入教师信号作为分类信息对权值进行细调,并对输出神经 元预先指定其类型。
3.LVQ网络结构与工作原理
• 3.1 LVQ网络结构
net=newlvq(PR,S1,PC,LR,LF)
说明:式返回一个没有定义结构的空对象,并显示函数 nntool的帮助文字;式中,net为生成的学习向量量化网络; PR为一个Rx2维的网络输入向量的取值范围的矩阵[Pmin, Pmax];S1表示隐层神经元的数目;PC表示在第二层的权 值中列所属类别的百分比;LR表示学习速率,默认值为0.01; LF表示学习函数,默认值为learnlv1.
4.LVQ网络的学习算法及其在MATLAB上的实现
•ind2vec()
功能:将下标矢量变换成单值矢量组函数
格式:vec=ind2vec(ind)
说明:ind为包含n个下标的行向量x;vec为m行n列的向量
组矩阵,矩阵中的每个向量i,除有x中的第i个元素指定的位
置为1外,其他元素均为0,矩阵的行数m等于x中最大的下
•根据输入样本的类别(教师信号)和获胜神经元所属类别, 可判断当前分类是否正确。若分类正确,则将获胜神经元的 权向量向输入方向调整; 若分类错误,则向相反方向调整。
4.LVQ网络的学习算法及其在MATLAB上的实现
获胜节点正确时权 值向量的调整方向
输入
获胜神经元的 权值向量
获胜节点错误时权 值向量的调整方向
4.LVQ网络的学习算法及其在MATLAB上的实现
•W2的列表示类,行表示子类,每一行只有一个元素为1,该 元素所在的列表示这个子类所属的类。对任一输入样本,网 络的输出为
O=(W2)TY
•LVQ网络在训练前预先定义好W2,从而指定了输出神经元 的类别。训练中W2不再改变,网络的学习是通过改变W1来 进行的。
其中列向量Wj1为隐层第j个神经元对应的权值向量;
3.LVQ网络结构与工作原理
竞争层到输出层之间的权值矩阵 W2=(W12,W22,…,Wk2,…,Wl2)
其中列向量Wk2为输出层第k个神经元对应的权值向量。
4.LVQ网络的学习算法及其在MATLAB上的实现
4.1 LVQ网络的学习算法 • LVQ网络的学习规则结合了竞争学习和有导师学习规则, 需要一组有教师信号的样本对网络进行训练。 • 设训练样本集:
{(X1,d1),…,(Xp,dp),…,(XP,dP)}, 其中每个教师向量dp(p=1,2,…,P)中只有一个 分量为1, 其他分量均为0。 • 通常把竞争层的每一个神经元指定给一个输出神经元, 相应的权值为1,从而得到输出层的权值矩阵W2。
4.LVQ网络的学习算法及其在MATLAB上的实现
• 假设某个LVQ网络竞争层有6个神经元,输出层有3个神经 元,代表3个类;将竞争层的1、3号神经元指定为第1个 输出神经元,第2、5号神经元指定为第2个输出神经元, 第4、6号神经元指定为第3个神经元,则权值矩阵W2定义 为 100 010 100 001 010 001
接权值固定为1.
3.LVQ网络结构与工作原理
• 3.2 LVQ网络工作原理
(1)在LVQ网络的训练过程中,输入层和竞争层之间的连接 权值被逐渐调整为聚类中心。
(2)当一个输入样本被送到LVQ网时,竞争层的神经元通过 胜者为王竞争学习规则产生获胜神经元,容许其输出为1, 而其他神经元输出为0.
(3)与获胜神经元所在组相连接的输出神经元,其输出也 为1,其他的输出为0,从而给出当前输入样本的模式类。
4.LVQ网络的学习算法及其在MATLAB上的实现
•plotvec() 功能:用不同颜色绘制矢量的函数 格式:plotvec(X,C,M) 说明:X为一个列矢量矩阵;C为标记颜色坐标的行 矢量;M为指定绘图时矢量的标记符号,默认值为 “+”。
The end,thank you!
•learnlv1()
功能:LVQ1权值学习函数
格式:[dW,LS]=learnlv1(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)
说明:dW为S×R权值变化矩阵;LS为当前学习状态;W为 S×R权值矩阵;P为R×Q的输入矢量;Z为S×Q的输入层的 权值矢量(可省略);N为S×Q的网络输入矢量;A为S×Q 的输出矢量;T为S×Q的目标输出矢量;E为S×Q误差矢量; gW为S×R、与性能相关的权重梯度矩阵;gA为S×Q、与性 能相关的输出梯度矩阵;D为S×S的神经元距离矩阵;LP为 学习参数,该函数的学习参数由LP、Ir构成,默认值为0.01; LS为学习函数申明。
当网络分类结果与教师信号一致时,向输入样本方向调整权 值:
4.LVQ网络的学习算法及其在MATLAB上的实现
Wj*1(k+1)=Wj*1(k)+ ђ(k)[X-Wj*1(k)]; 否则将向逆输入样本方向调整权值:
Wj*1(k+1)=Wj*1(k)- ђ(k)[X-Wj*1(k)]; 其2 1 1 1]
(1, 1) (1, 2) (1, 3) (2, 4) (2, 5) (2, 6) (2, 7) (1, 8) (1, 9) (1,10)
1110000111 0001111000
其中(1,10):第10个测试样本数据,1号神经元获胜
4.LVQ网络的学习算法及其在MATLAB上的实现
类别1
类别j
类别l
输出层
竞争层
图2 学习向量量化网络
输入层
3.LVQ网络结构与工作原理
• 组成:输入层神经元、竞争层神经元和输出层神经元 • 输入层:有n个神经元接受输入向量,与竞争层之间完全
连接; • 竞争层:有m个神经元,分为若干组并呈一维线阵排列 • 输入层:每个神经元只与竞争层中的一组神经元连接,连