2.7 学习向量量化神经网络模型与学习算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LVQ神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.7.3 LVQ神经网络学习算法的MATLAB实现
ind2vec() 功能 将下标矢量变换成单值矢量组函数 格式 vec = ind2vec(ind) 说明 ind为包含n个下标的行向量x;vec为m行n列的向量组矩 阵,矩阵中的每个向量i,除了由x中的第i个元素指定的位置为 l外,其余元素均为0,矩阵的行数m等于x中最大的下标值。 (1,1) 1 (1,2) 1 (1,3) 1 (2,4) 1 1 1 1 0 00 0 1 1 1 C=[1 1 1 2 2 2 2 1 1 1] (2,5) 1 0 0 0 1 11 1 0 0 0 (2,6) 1 (2,7) 1 (1,8) 1 (1,9) 1 (1,10) 1
η + (xi − w ) (2-3) ij ∆w = ij η ij − (xi − w ) (2-4)
(6)判断是否满足预先设定的最大迭代次数, 满足时算法结束,否则返回2,进入下一轮学习。
2.7.2 LVQ神经网络的学习算法
LVQ2算法 LVQ2算法 (1)~(4)与LVQl算法相同 (5)更新连接权值
例2-6运行结果
测试数 据分类 结果
LVQ神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.7.3 LVQ神经网络学习算法的MATLAB实现
例2-6训练误差曲线
小结
LVQ神经网络结构 LVQ神经网络结构 LVQ1学习算法 LVQ1学习算法 LVQ2学习算法及特点 LVQ2学习算法及特点 LVQ神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB LVQ神经网络学习算法的MATLAB实现 LVQ神经网络应用示例 LVQ神经网络应用示例 LVQ神经网络与SOM神经网络的区别 神经网络与SOM LVQ神经网络与SOM神经网络的区别
2.7.2 LVQ神经网络的学习算法
(4)选择与权值向量的距离最小的神经元
(5)更新连接权值
计算并选择输入向量和权值向量的距离最小的神经元, 计算并选择输入向量和权值向量的距离最小的神经元,并把其 称为胜出神经元, 称为胜出神经元,记为 j∗ 。 如果胜出神经元和预先指定的分类一致,称为正确分类, 如果胜出神经元和预先指定的分类一致,称为正确分类,否则 称为不正确分类。 称为不正确分类。正确分类和不正确分类时权值的调整量分别 使用公式2 使用公式2-3、2-4:
1)神经元2属于正确分类; 神经元2属于正确分类; 神经元2 胜出神经元1与输入向量之间的距离的差值很小。 2)神经元2、胜出神经元1与输入向量之间的距离的差值很小。
则胜出神经元1的权值改变量按公式2 计算,而神经元2 则胜出神经元1的权值改变量按公式2-3计算,而神经元2的权 进行计算。 值改变量则按公式 (2-3)进行计算。
LVQ神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.7.3 LVQ神经网络学习算法的MATLAB实现 plotvec() 功能 用不同颜色绘制矢量的函数 格式 plotvec(X,C,M) 说明 X为一个列矢量矩阵;C为标记 颜色坐标的行矢量;M为指定绘图时矢 量的标记符号,缺省值为‘+’
如果胜出神经元1属于正确分类时,则权值更新与LVQ1的情况 如果胜出神经元1属于正确分类时,则权值更新与LVQ1的情况 LVQ1 相同,根据式( 进行权值的更新。当胜出神经元1 相同,根据式(2-3)进行权值的更新。当胜出神经元1属于 不正确分类时,则另选取一个神经元2 不正确分类时,则另选取一个神经元2,它的权值向量和输入 向量的距离仅比胜出神经元1大一点,且满足以下条件时时: 向量的距离仅比胜出神经元1大一点,且满足以下条件时时:
说明 式(1)返回一个没有定义结构的空对象, 并显示函数nntool的帮助文字;式(2)中,net 为生成的学习向量量化网络;PR为一个Rx2维的 网络输入向量取值范围的矩阵[Pmin Pmax];Sl 表示隐含层神经元的数目;PC表示在第二层的 权值中列所属类别的百分比;LR表示学习速率, 默认值为0.01;Lf表示学习函数,默认值为 learnlv1。
LVQ神经Hale Waihona Puke Baidu络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.7.3 LVQ神经网络学习算法的MATLAB实现
例2-6 针对一组输入向量,设计一个LVQ神经网络,经过 针对一组输入向量,设计一个LVQ神经网络, LVQ神经网络 训练后,能对给定数据进行模式识别。 训练后,能对给定数据进行模式识别。
说明 dW为S*R权值(或阈值)变化矩阵;LS为当前 学习状态(可省略);W为S*R的权值矩阵或者为S*1的阈 值矢量;P为R*Q的输入矢量或者为1*Q的全为1的矢量; 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.lr构成,缺省值为0.01;LS为学习函 数声明(可省略)。
将输人向量
送入到输入层。 x =[ x1, x2, x3,L xn ] 送入到输入层。 ,
T
(3)计算隐含层权值向量与输入向量的距离
隐含层神经元和输入向量的距离, 隐含层神经元和输入向量的距离,与自组织化映射的情况 相同,由下式给出: 相同,由下式给出:
n
dj =
(xi −w )2 ∑ ij
i= 1
LVQ神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.7.3 LVQ神经网络学习算法的MATLAB实现
learnlv1() 功能 LVQ1权值学习函数 格式
[dW,LS] = learnlv1(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) [dW, learnlv1(W, gW,gA, LP,
(6)判断算法是否结束
如果迭代次数大于预先设定的次数,算法结束, 如果迭代次数大于预先设定的次数,算法结束,否则返回第 (2)步,进入下一轮学习
LVQ神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.7.3 LVQ神经网络学习算法的MATLAB实现 MATLAB中与LVQ相关的重要函数和功能 MATLAB中与LVQ相关的重要函数和功能 中与LVQ 函数名 newlvq() learnlv1() vec2ind() plotvec() 功 能 建立一个LVQ神经网络函数 LVQ LVQ1权值学习函数 将单值矢量组变换成下标矢量 用不同的颜色画矢量函数
LVQ神经网络学习算法的MATLAB实现 神经网络学习算法的MATLAB 2.7.3 LVQ神经网络学习算法的MATLAB实现
newlvq() 功能 建立一个向量量化神经网络函数 格式
(1) net = newlvq newlvq(PR,S1,PC,LR, (2) net = newlvq(PR,S1,PC,LR,LF)
LVQ神经网络结构 2.7.1 LVQ神经网络结构
2.7.2 LVQ神经网络的学习算法
LVQ1算法具体步骤如下: LVQ1算法具体步骤如下: 算法具体步骤如下 (1)网络初始化
用较小的随机数设定输人层和隐含层之间的权值初始值。 用较小的随机数设定输人层和隐含层之间的权值初始值。
(2)输入向量的输入
2.7学习向量量化神经网络模型与 2.7 学习算法
智能中国网提供学习支持 www.5iai.com
LVQ神经网络结构 2.7.1 LVQ神经网络结构
学习向量量化LVQ(Learning Quantization)神经 学习向量量化LVQ(Learning Vector Quantization)神经 网络,属于前向有监督神经网络类型, 有监督神经网络类型 网络,属于前向有监督神经网络类型,在模式识别和优 化领域有着广泛的的应用 由芬兰学者Teuvo Kohonen提出 由芬兰学者Teuvo Kohonen提出 LVQ神经网络由输入层 隐含层和输出层三层组成, 神经网络由输入层、 LVQ神经网络由输入层、隐含层和输出层三层组成,输入 层与隐含层间为完全连接, 层与隐含层间为完全连接,每个输出层神经元与隐含层 神经元的不同组相连接。 神经元的不同组相连接。隐含层和输出层神经元之间的 连接权值固定为1 在网络训练过程中, 连接权值固定为1。在网络训练过程中,输入层和隐含 层神经元间的权值被修改。 层神经元间的权值被修改。当某个输入模式被送至网络 时,最接近输入模式的隐含神经元因获得激发而赢得竞 因而允许它产生一个" ",而其他隐含层神经元 争,因而允许它产生一个"1",而其他隐含层神经元 都被迫产生" "。与包含获胜神经元的隐含层神经元 都被迫产生"0"。与包含获胜神经元的隐含层神经元 组相连接的输出神经元也发出" ",而其他输出神经 组相连接的输出神经元也发出"1",而其他输出神经 元均发出" 元均发出"0"。
%输入向量P 及其对应的类别向量C % 输入向量P及其对应的类别向量C 输入向量 P=[-6 -4 -2 0 0 0 0 2 4 6; 0 2 -2 1 2 -2 1 2 -2 0]; C=[1 1 1 2 2 2 2 1 1 1]; 将类别向量C转换为目标向量T % 将类别向量C 转换为目标向量T T=ind2vec(C); 绘制输入向量P 如图2 26所示 所示, % 绘制输入向量P ,如图2 - 26 所示,用颜色将输入向量分为两 类 plotvec(P,C,'*r'); 输入向量绘制在一个横坐标在[- 8]之间, [-8 [-3 % 输入向量绘制在一个横坐标在[- 8 8 ] 之间,纵坐标在 [- 3 3 ] 之间的坐标平面内 axis([-8 8 -3 3]); 创建一个LVQ神经网络,隐含层有5个神经元, LVQ神经网络 0. % 创建一个LVQ 神经网络,隐含层有5 个神经元,[ 0 . 6 0 . 4 ]