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

01 第一题参考答案


1.题目分析

(1) 已知条件

本题中的建立的是一个由两个竞争节点组成的竞争网络。竞争层的神经元和五个训练样本都分布在二维坐标系的单位圆上。因此,对于本题在挑选胜出者神经元的时候采用向量内积来度量输入样本xi={xi1,xi2}x_i = \left\{ {x_{i1} ,x_{i2} } \right\}xi​={xi1​,xi2​}与神经元内星向量w1={w11,w12}w_1 = \left\{ {w_{11} ,w_{12} } \right\}w1​={w11​,w12​}之间的相似度。内积越大,相似程度越强。

⟨xi,wj⟩=xi1wj1+xi2wj2\left\langle {x_i ,w_j } \right\rangle = x_{i1} w_{j1} + x_{i2} w_{j2}⟨xi​,wj​⟩=xi1​wj1​+xi2​wj2​

根据给定的五个训练样本对应的角度,∣xi∣=1,xi={45,90,130,180,−135}\left| {x_i } \right| = 1,\,\,x_i = \left\{ {45,90,130,180, - 135} \right\}∣xi​∣=1,xi​={45,90,130,180,−135}

可以获得五个训练样本的空间坐标:xi1=cos⁡(xi),xi2=sin⁡(xi)x_{i1} = \cos \left( {x_i } \right),x_{i2} = \sin \left( {x_i } \right)xi1​=cos(xi​),xi2​=sin(xi​)

(2) 求解算法

对于选定的输入样本xi={xi1,xi2}x_i = \left\{ {x_{i1} ,x_{i2} } \right\}xi​={xi1​,xi2​},寻找与它夹角最小的wjw_jwj​:j=arg⁡min⁡n(xi,wn)j = \mathop {\arg \min }\limits_n \left( {x_i ,w_n } \right)j=nargmin​(xi​,wn​)

对wjw_jwj​进行学习:wj←wj+η⋅(xi−wj)w_j \leftarrow w_j + \eta \cdot \left( {x_i - w_j } \right)wj​←wj​+η⋅(xi​−wj​)

然后在进行归一化:wj←wj∣wj∣w_j \leftarrow {{w_j } \over {\left| {w_j } \right|}}wj​←∣wj​∣wj​​

2.求解过程

(1) 求解程序

使用Python编写求解过程中相关程序参见后面附录中 作业中的程序

(2) 迭代 一次的结果

w1=[-0.87642497  0.48153841]
w2=[-0.45765242 -0.8891312 ]

▲ 迭代一次后的结果

(3) 多次学习过程

  • 学习速率:η=0.05\eta = 0.05η=0.05,迭代次数N=100N = 100N=100;

学习速率相对比较低,两个神经元的位置随着学习过程逐步靠近平衡位置。

▲ 迭代一百次的学习过程

  • 学习速率η=0.2\eta = 0.2η=0.2,迭代次数N=100N = 100N=100。

学习速率比较大的情况下,最终两个神经元的位置在平衡位置附近抖动。

▲ 迭代100次训练过程

  • 学习速率η=0.005\eta = 0.005η=0.005,迭代次数N=100N = 100N=100。

学习速率过小,两个神经元移动缓慢。在有限的步骤(N=100)之内无法运动到最佳的位置。

▲ 迭代100次的收敛过程

  • 变速率学习:学习速率线性下降,从0.2,经过100步线性下降到0.

▲ 学习速率线性下降

▲ 变学习速率的训练过程

3.结果讨论

  • 如果训练样本和网络的权系数都进行了归一化之后,可以通过比较样本与神经元的权系数向量内积来选择获胜的神经元。

  • 神经元经过学习之后还需要重新进行归一化,为后面的竞争做准备。

  • 学习速率对于竞争网络的收敛情况起到非常重要的作用。通过学习速率的逐步降低,可以保证最终训练结果收敛到一个比较稳定的结果。

➤※ 作业中的程序


#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# HW21.PY                     -- by Dr. ZhuoQing 2020-11-24
#
# Note:
#============================================================from headm import *#------------------------------------------------------------
sample_angle = [45, 90, 130, 180, -135]
sample_xy = array([[cos(a*pi/180), sin(a*pi/180)] for a in sample_angle]).astype('float32')W12 = array([[1,0], [0,-1]]).astype('float32')plt.draw()
plt.pause(.2)#------------------------------------------------------------
def shownet(s, w, title):plt.clf()plt.scatter(s[:,0], s[:,1], c='b', s=20.0, alpha=1)plt.scatter(w[:,0], w[:,1], c='r', s=30.0, alpha=1)a = linspace(0, 2*pi, 100)plt.plot(cos(a), sin(a), 'g--', linewidth=1)plt.xlabel("x1")plt.ylabel("x2")plt.grid(True)plt.title(title)plt.tight_layout()
#    plt.show()plt.draw()plt.pause(.001)#------------------------------------------------------------
def WTA1(x, w):""" Win-Take-AllIn: x-sample(x1,x2)w-net argumentRet: id-Win ID of w"""innerdot = w.dot(x)return list(where(innerdot==amax(innerdot)))[0][0]def normvect(v):m = v.dot(v)return v/sqrt(m)#------------------------------------------------------------
def compete(s, w, lr=0.1):for ss in s:winid = WTA1(ss, w)w[winid] = normvect(w[winid] + lr * (ss - w[winid]))return w#------------------------------------------------------------
pltgif = PlotGIF()sxy = sample_xy
for i in range(100):random.shuffle(sxy)eta = 0.2 - 0.2 * i / 99W12 = compete(sxy, W12, eta)shownet(sample_xy, W12, 'Step:%d, η=%4.2f'%(i, eta))pltgif.append(plt)pltgif.save(r'd:\temp\1.gif')printf('w1=%s'%W12[0])
printf('w2=%s'%W12[1])plt.show()
#------------------------------------------------------------
#        END OF FILE : HW21.PY
#============================================================

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

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

    如下是 2020年人工神经网络第二次作业 中第八题的参考答案. ➤01 第八题参考答案 1.题目分析 (1) 训练样本 根据题目中的两类样本点在坐标系的位置,可以获得训练样本输入数据矩阵x_train ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      本文是: 2021年春季学期-信号与系统-第一次作业参考答案 的参考答案. ▌第一题 1.绘出下列各信号的波形: 注:u(t),u[n]u\left( t \right),\,\,u\left[ ...

最新文章

  1. phpcms分页查询
  2. Yii的数值唯一性-场景与SQL
  3. android语言列表+波斯,Android 多语言入门及实战
  4. jvm面试之 Java内存模型之线程独占部分,线程共享部分,常问问题分析
  5. 【集合】JDK 7 HashMap集合的ConcurrentModificationException 原因
  6. C#中的System.Speech命名空间初探
  7. 同一个接口Jmeter取不到结果
  8. GPS定位基本原理解析
  9. 让Win7系统下的硬盘不在狂闪的诀窍
  10. 平面设计实验五 图层及图层混合模式
  11. **VIP邮箱哪个品牌最好用?经验分享**
  12. C++多线程std::async、std::future、std::packaged_task、std::promise
  13. 手办商城app开发功能分析
  14. 实现悬浮球的桌面显示
  15. 2018谷歌开发者节深圳站,Testin云测的AI应用案例获广泛关注
  16. 凸优化(convex optimization)第二讲:convex set
  17. 装机部落GhostXP_SP3国庆装机版2013
  18. 双离合档把上按钮作用_帕萨特档杆按钮作用是什么
  19. 实战演练-抽奖程序(C#)(第一部分)
  20. 1.Java集合框架是什么?说出一些集合框架的优点?

热门文章

  1. linux下安装配置laravel环境
  2. CentOS 6.x 播放 mp3 音乐 —— 成功
  3. 在代码中获取ApplicationContext实例
  4. javaScript通用数据类型校验
  5. 配置三层交换的综合事例
  6. Scrum立会报告+燃尽图(十月三十日总第二十一次)
  7. VC2005:无法执行添加/移除操作,因为代码元素是只读的....多个解决办法
  8. 中国移动选择博科NFV软件设备来支持“互联网+”使命
  9. UNIX高手应该保持的习惯
  10. 模拟Web 服务器磁盘满故障深入解析