如下是 2020年人工神经网络第二次作业 中第八题的参考答案。

01 第八题参考答案


1.题目分析

(1) 训练样本

根据题目中的两类样本点在坐标系的位置,可以获得训练样本输入数据矩阵x_train;和类别矩阵:y_train。

x_train= [[-3.  0.][-2.  1.][-2. -1.][ 0.  2.][ 0.  1.][ 0. -1.][ 0. -2.][ 2.  1.][ 3. -1.][ 3.  0.]]
y_train= [0 0 0 1 1 1 1 0 0 0]

▲ 两个类别样本点所处的位置

(2) LVQ网络结构

LVQ网络具有四个节点。其中前两个设定为第一类;后两个设定为第二类别。网络结构如下图所示:

▲ LVQ网络结构

对于网络四个节点进行随机初始化。初始化的范围在(-4.5,4.5)×(-2.5,2.5)。下面显示了四个神经节点在某次随机初始化之后所在的位置(四个绿色点):

▲ LVQ竞争层节点随机初始化的位置

2.求解过程

求解过程中相关程序参见后面附录中 作业中的程序

(1) 训练参数

  • 学习速率η\etaη从0.1线性减少到0.01
  • 训练步骤:N=100

在训练过程中,对于10个样本采取随机的顺序对LVQ进行训练。训练采用LVQ的最基本的训练算法:即只对胜出的神经元进行奖赏性,或者惩罚性学习。

(2) 训练过程1

如下是LVQ初始化状态。

▲ LVQ初始状态

下图显示了学习过程网络节点位置演变过程。可以看到最终四个节点(分成两类)分别处在两类样本集合的各自的中心位置。效果很好。

▲ LVQ训练过程

下面显示了另外一次随机初始化之后网络训练的演化过程:

▲ LVQ训练中隐层节点演过过程

(3) 训练过程2

如下是另外一种随机初始化的过程。其中第二类隐层节点中(棕色大点)存在一个位于最左边的情况。由于它受到第一类训练样本的排斥,所以在整个训练过程中,它就移出整个范围。最终竞争节点第二类中中只有一个节点回到了第二类的中心。

▲ LVQ初始化位置

下面的动态过程显示了整个训练结果的演化过程。

▲ LVQ训练过程

下面是另外一次出现这种情况的训练过程:

3.结果讨论

  • LVQ的训练结果会受到初始化的影响。有的时候,训练结果可以收到了一个全局最优的结果。有的时候,会出现部分竞争节点远离样本区域,使得可以用于学习样本的神经元节点减少。

➤※ 作业中的程序


1.LVQ程序

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# HW28.PY                      -- by Dr. ZhuoQing 2020-11-26
#
# Note:
#============================================================from headm import *
import hw28datax_train = hw28data.x_train
y_train = hw28data.y_trainW = array([[random.uniform(-4.5,4.5), random.uniform(-2.5,2.5)] for i in range(4)])def show_W(w):plt.axis([-5,5,-3,3])plt.scatter(w[0:2,0], w[0:2,1], s=75, c='darkblue', label='Node-1')plt.scatter(w[2:4,0], w[2:4,1], s=75, c='darkred', label='Node-2')hw28data.show_train(x_train, y_train)plt.xlabel("x1")plt.ylabel("x2")plt.grid(True)plt.legend(loc="upper left")#------------------------------------------------------------
def WTA_nearest(x, v):err = [x - vv for vv in v]dist = [dot(e,e) for e in err]id = where(dist==amin(dist))[0][0]if id < 2: classid = 0else: classid = 1return id, classiddef LVQ_train(x, y, w, eta):iddim = list(range(x.shape[0]))random.shuffle(iddim)for id in iddim:iidd,classid = WTA_nearest(x[id], w)if classid == y[id]:w[iidd] = w[iidd] + eta* (x[id] - w[iidd])else: w[iidd] = w[iidd] - eta * (x[id] - w[iidd])return w#------------------------------------------------------------
ETA_BEGIN       = 0.1
ETA_END         = 0.01
TRAIN_LOOP      = 100
plt.draw()
plt.pause(.2)
pltgif = PlotGIF()for id,eta in enumerate(linspace(ETA_BEGIN, ETA_END, TRAIN_LOOP)):W = LVQ_train(x_train, y_train, W, eta)plt.clf()show_W(W)plt.title('Step:%d, Eta:%4.2f'%(id, eta))plt.draw()plt.pause(.001)plt.tight_layout()pltgif.append(plt)pltgif.save(r'd:\temp\1.gif')
printf('\a')
plt.show()#------------------------------------------------------------
#        END OF FILE : HW28.PY
#============================================================

2.作业2-8中数据子程序

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# HW28DATA.PY                  -- by Dr. ZhuoQing 2020-11-26
#
# Note:
#============================================================from headm import *x_train = array([[-3,0], [-2, 1], [-2,-1], [0,2], [0,1], [0,-1], [0,-2],\[2,1], [2,-1], [3,0]]).astype('float32')
y_train = array([0,0,0,1,1,1,1,0,0,0])#------------------------------------------------------------
def show_train(x, y):x_1 = x_train[y_train==0]x_2 = x_train[y_train==1]plt.scatter(x_1[:,0], x_1[:,1], s=30, c='blue', label='Class-1')plt.scatter(x_2[:,0], x_2[:,1], s=30, c='red',  label='Class-2')#------------------------------------------------------------if __name__ == "__main__":printff('x_train=', x_train)printff('y_train=', y_train)show_train(x_train, y_train)plt.xlabel("x1")plt.ylabel("x2")plt.grid(True)plt.legend(loc="upper right")plt.tight_layout()
#    plt.show()#------------------------------------------------------------
#        END OF FILE : HW28DATA.PY
#============================================================

2020年人工神经网络第二次作业-参考答案第八题相关推荐

  1. 2020年人工神经网络第二次作业-参考答案第七题

    如下是 2020年人工神经网络第二次作业 中第七题的参考答案. ➤01 第七题参考答案 1.题目分析 根据题目要求,使用CPN(Counterpropagation Network: 对偶传播网络 ) ...

  2. 2020年人工神经网络第二次作业-参考答案第六题

    如下是 2020年人工神经网络第二次作业 中第六题的参考答案. ➤01 第六题参考答案 1.题目分析 (1) 数据处理 将题目中给定的十个景点位置{xi,yi}i=1,2,⋯,10\left\{ {x ...

  3. 2020年人工神经网络第二次作业-参考答案第五题

    如下是 2020年人工神经网络第二次作业 中第五题的参考答案. ➤01 第五题参考答案 1.题目分析 (1) 数据产生 100个样本随机均匀分布在三角形区域内,训练样本{xi,yi}\left\{ { ...

  4. 2020年人工神经网络第二次作业-参考答案第四题

    如下是 2020年人工神经网络第二次作业 中第四题的参考答案. ➤01 第四题参考答案 1.题目分析 (1) 训练数据 第一个数据集合 这个数据集合包括有16中动物.它们的属性编码在题目中的表格中给出 ...

  5. 2020年人工神经网络第二次作业-参考答案第三题

    如下是 2020年人工神经网络第二次作业 中第三题的参考答案. ➤01 第三题参考答案 1.题目分析 本题实际上是课件中例题的重现问题. 对于7个字符(三种字体),21个训练样本,它们分别属于7大类. ...

  6. 2020年人工神经网络第二次作业-参考答案第二题

    如下是 2020年人工神经网络第二次作业 中第二题的参考答案. ➤01 第二题参考答案 1.题目分析 (1) 训练样本 训练样本是低分辨率(5×5)字符,可以使用长度为25的向量表示,下面就是字母C, ...

  7. 2020年人工神经网络第二次作业-参考答案第一题

    如下是 2020年人工神经网络第二次作业 中第一题的参考答案. ➤01 第一题参考答案 1.题目分析 (1) 已知条件 本题中的建立的是一个由两个竞争节点组成的竞争网络.竞争层的神经元和五个训练样本都 ...

  8. 2020年人工神经网络第二次作业

    第二次作业TEASOFT-DOP文档所在云端目录 ➤01 第一题 1.题目描述 建立起一个竞争网络,有输入层和竞争层组组成,如下图所示,初始权向量为已经归一化为: 训练集合有五个样本向量 xn,n=1 ...

  9. 2021年春季学期-信号与系统-第二次作业参考答案-第九小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第九题 9. 已知三个系统的输入输出关系分别为: 把上述三个子系统进行如下的级联,求系统的输入输出关系,它是线性.时不变系统 ...

最新文章

  1. EditPlus 3.5 版已经发布
  2. console用法java_使用console对javaScirpt进行全面调试-全面分析console用法
  3. rp-provide-from-last
  4. [USACO1.2]回文平方数 Palindromic Squares
  5. WebServices 基础知识
  6. gym 102875 H. Happy Morse Code
  7. c语言程序设计顺序结构题目,C语言编程 顺序结构编程练习题目
  8. 点这里,关注计算机视觉技术最前沿~
  9. Hadoop 集群的基准测试
  10. 网络规划设计师教程知识点精讲之计算机网络分类
  11. 关键路径例题图表_计算题专题:关键路径法(CPM)
  12. springboot整合author2
  13. Excel的最大行数
  14. 标注工具Brat安装(本地)
  15. SAP中有些物料凭证不能用MBST冲销的原因分析
  16. element导航菜单添加搜索功能
  17. 径向基神经网络(rbfn)进行函数插值,代码实现
  18. CISCO端口带宽限制配置
  19. 公众号给微信服务器响应数据
  20. 最佳实践 | 用腾讯云AI语音识别零基础实现小程序语音输入法

热门文章

  1. img src=/引发的问题
  2. 同步方法和同步代码块
  3. [转]《JAVA与模式》之责任链模式
  4. 6 关于数据仓库维度数据处理的方法探究系列——缓慢变化维处理——记录最新记录及上一次历史...
  5. PIX配置手册三(nat)
  6. 【Zabbix】 Zabbix表结构说明【转载】
  7. 云计算服务需求促进边缘计算的应用与发展
  8. js复制input 框中的值
  9. OpenSSL使用指南
  10. cisco与h3c的console、vty配置比较