您好,欢迎访问三七文档
学习向量量化网络LearnigVectorQuantizationNetworksLVQNetworks演讲人:吴泽光目录概述向量量化LVQ网络结构与工作原理LVQ网络的学习算法及其在MATLAB上的实现1.概述学习向量量化(LearnigVectorQuantization,LVQ)网络:•(1)在竞争网络结构基础上提出的;•(2)将竞争学习思想与有监督学习算法结合在一起;•(3)在网络学习过程中,通过教师信号对输入样本的分配类别进行规定;•(4)克服了自组织网络采用无监督学习算法带来的缺乏分类信息的弱点。2.向量量化•在信号处理领域,量化是针对标量进行的,将信号的连续取值近似为有限多个或较少的离散值的过程。•向量量化是对标量量化的扩展,适用于高维数据。•向量量化的思路:将高维输入空间分成若干不同区域,对每个区域确定一个中心向量作为聚类中心,与其处于同一区域的输入向量可作为该中心向量来代表,从而形成以各中心向量为聚类中心的点集。2.向量量化图1二维向量量化2.向量量化•自适应解决模式分类问题的步骤:第一步:自组织映射——起聚类的作用,但不能直接分类或识别;第二步:学习向量量化——采用有监督方法,在训练中加入教师信号作为分类信息对权值进行细调,并对输出神经元预先指定其类型。3.LVQ网络结构与工作原理•3.1LVQ网络结构类别1类别j类别l输出层竞争层输入层图2学习向量量化网络3.LVQ网络结构与工作原理•组成:输入层神经元、竞争层神经元和输出层神经元•输入层:有n个神经元接受输入向量,与竞争层之间完全连接;•竞争层:有m个神经元,分为若干组并呈一维线阵排列•输入层:每个神经元只与竞争层中的一组神经元连接,连接权值固定为1.3.LVQ网络结构与工作原理•3.2LVQ网络工作原理(1)在LVQ网络的训练过程中,输入层和竞争层之间的连接权值被逐渐调整为聚类中心。(2)当一个输入样本被送到LVQ网时,竞争层的神经元通过胜者为王竞争学习规则产生获胜神经元,容许其输出为1,而其他神经元输出为0.(3)与获胜神经元所在组相连接的输出神经元,其输出也为1,其他的输出为0,从而给出当前输入样本的模式类。•子类:竞争层学习得到的类目标类:输出层学习得到的类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)其中列向量Wj1为隐层第j个神经元对应的权值向量;3.LVQ网络结构与工作原理竞争层到输出层之间的权值矩阵W2=(W12,W22,…,Wk2,…,Wl2)其中列向量Wk2为输出层第k个神经元对应的权值向量。4.LVQ网络的学习算法及其在MATLAB上的实现4.1LVQ网络的学习算法•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定义为1000101000010100014.LVQ网络的学习算法及其在MATLAB上的实现•W2的列表示类,行表示子类,每一行只有一个元素为1,该元素所在的列表示这个子类所属的类。对任一输入样本,网络的输出为O=(W2)TY•LVQ网络在训练前预先定义好W2,从而指定了输出神经元的类别。训练中W2不再改变,网络的学习是通过改变W1来进行的。•根据输入样本的类别(教师信号)和获胜神经元所属类别,可判断当前分类是否正确。若分类正确,则将获胜神经元的权向量向输入方向调整;若分类错误,则向相反方向调整。4.LVQ网络的学习算法及其在MATLAB上的实现输入获胜神经元的权值向量获胜节点正确时权值向量的调整方向图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)根据分类是否正确按不同规则调整获胜神经元的权值。当网络分类结果与教师信号一致时,向输入样本方向调整权值: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)];其他非神经元的权值保持不变。•(5)更新学习速率ђ(k)=ђ(0)*(1-)当kK时,k←k+1,转到步骤(2)输入下一个样本,重复各步骤直到k=K.在上述训练过程中,需保证ђ(k)为单调下降函数,此外,寻找获胜神经元时直接用最小欧式距离来判别。kK4.LVQ网络的学习算法及其在MATLAB上的实现•4.2LVQ网络在MATLAB上的实现•MATLAB中与LVQ相关的重要函数和功能函数名newlvq()newlv1()vec2ind()plotvec()功能建立一个LVQ神经网络函数LVQ1权值学习函数将单值矢量组换成下标示量用不同的颜色画矢量函数图4.LVQ网络的学习算法及其在MATLAB上的实现•newlvq()功能:建立一个向量量化神经网络函数格式:net=newlvqnet=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中最大的下标值。C=[1112222111](1,1)(1,2)(1,3)(2,4)(2,5)(2,6)(2,7)(1,8)(1,9)(1,10)11100001110001111000其中(1,10):第10个测试样本数据,1号神经元获胜4.LVQ网络的学习算法及其在MATLAB上的实现•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上的实现•plotvec()功能:用不同颜色绘制矢量的函数格式:plotvec(X,C,M)说明:X为一个列矢量矩阵;C为标记颜色坐标的行矢量;M为指定绘图时矢量的标记符号,默认值为“+”。Theend,thankyou!
本文标题:学习向量量化网络
链接地址:https://www.777doc.com/doc-3624260 .html