◎ 说明: 完成作业可以使用你所熟悉的编程语言和平台,比如 C,C++、MATLAB、Python等。作业链接: [2023秋季学期人工神经网络](https://editor.csdn.net/md/?articleId=134412071>
01 简单竞争网络
一、单位圆上点集聚类
1、题目内容
建立一个竞争神经网络,由输入层和竞争层组成。网络结构如下图所示。
▲ 图1.1.1 竞争网络结构示意图
竞争层神经元内星向量进行归一化,位于单位圆上, 对应的角度分别为:
∣ W ^ n ∣ = 1 , n ∈ { 1 , 2 , 3 } , ∠ W ^ n = { 4 5 0 , 15 5 0 , 30 0 0 } \left| {\hat W_n } \right| = 1,\,\,n \in \left\{ {1,2,3} \right\},\,\,\angle \hat W_n = \left\{ {45^0 ,155^0 ,300^0 } \right\} W^n =1,n∈{1,2,3},∠W^n={450,1550,3000}
训练集合由八个样本向量组成,
x
n
,
n
=
1
,
2
,
3
,
⋯
,
8
x_n ,n = 1,2,3, \cdots ,8
xn,n=1,2,3,⋯,8 ,均位于单位圆上,各自所对应的角度为:
∣
x
n
∣
=
1
,
n
∈
{
1
,
2
,
3
⋯
,
8
}
\left| {x_n } \right| = 1,\,\,\,\,n \in \left\{ {1,2,3 \cdots ,8} \right\}
∣xn∣=1,n∈{1,2,3⋯,8}
∠ x n = { 18 5 0 , 17 5 0 , 16 0 0 , 27 0 0 , 25 0 0 , 24 0 0 , 3 0 0 , 6 0 0 } \angle x_n = \left\{ {185^0 ,175^0 ,160^0 ,270^0 ,250^0 ,240^0 ,30^0 ,60^0 } \right\} ∠xn={1850,1750,1600,2700,2500,2400,300,600}
▲ 图A1.1.2 训练样本与竞争神经元内星向量所在位置示意图
2、作业要求
(1) 使用胜者为王(WTA)算法对于权系数W W ^ 1 , W ^ 2 , W ^ 3 \hat W_1 ,\hat W_2 ,\hat W_3 W^1,W^2,W^3 进行调整,写出经过一次训练之后的权系数调整结果。
-
训练条件:
-
学习速率
: η = 0.6 \eta = 0.6 η=0.6 ;
样本训练次序
:按照题目中给定的 x n x_n xn 的顺序进行训练;
(2)循环训练,训练次数 N = 100 N = 100 N=100 。讨论一下两种学习速率下的训练结果,并对比。
-
第一种情况: η \eta η 按照等比下降:
η [ n + 1 ] = 0.75 η [ n ] \eta \left[ {n + 1} \right] = 0.75\eta \left[ n \right] η[n+1]=0.75η[n] -
第二种情况: η \eta η 按照训练步数线性下降:
η [ n ] = N − n N × 0.8 , N = 100 \eta \left[ n \right] = {{N - n} \over N} \times 0.8,\,\,\,N = 100 η[n]=NN−n×0.8,N=100
上面公式中 n n n 是训练步数, N N N 是训练总次数。
(3) 选做题:
讨论
W
^
1
,
W
^
2
,
W
^
3
\hat W_1 ,\hat W_2 ,\hat W_3
W^1,W^2,W^3 不同的初始化位置,对于训练结果的影响。
3、参考答案
▲ 图1.1.3 参考答案中的示例
二、字母CHL竞争算法识别
1、题目内容
下面是三个字母C,H,L样本的5×5点阵图:
▲ 图2.1.1 C、H、L样本点阵图
给它们添加噪声,形成带有噪声的样本,噪声样本与正确样本之间的海明距离(Hamming Distance)为1,即两个二值向量之间不相同元素的个数为1,下面是三个字母的噪声样本的示例:
▲ 图2.1.2 与三个样本Hamming距离为1的样本
带有噪声的样本可以在原有正确样本的基础上,随机选择一个元素,将其从原来的0或者1,改变成1,或者0。因此字母C,H,L各自有25个与其Hamming距离为1的带有噪声的样本。
2、作业要求
(1)设计竞争神经网络,应用上述样本进行训练,具体要求:
- 建立一个竞争层三个节点的竞争神经网络,并对其权系数随机初始化成0~1之间的随机小数;
- 使用胜者为王(Win-Take-All)算法,使用3个字母正确的样本和5个带有噪声的样本进行训练。自行设置学习速率和它的减少规律;
- 给出最终的训练后三个神经元的内星向量结果。
(2)验证三个字母其它剩余的20个噪声样本在该竞争网络的识别性能。
(3) 选做题要求:
随机生成三个字母的Hamming距离为2的噪声样本,并验证上述竞争网络识别的效果。
▲ 图1.2.3 与三个样本HAMMING距离为2 的样本示意图
3、参考答案
▲ 图1.2.4 参考答案中对应的竞争层神经网络内星向量变化示意图
02 SOFM神经网络
一、点阵字符聚类
1、题目内容
使用SOM对于下面六种点阵字体进行聚类,分别讨论三种拓扑结构下聚类的效果:
(1) 无拓扑结构
(2) 一维拓扑结构
(3) 二维拓扑结构
(1)六种字体数据集合
从网络上截屏得到六种5×7点阵ASCII字体,分别将A~Z字符点阵转换成0-1字符串,存储在作业文件 ASCIIFONT.TXT 中。
▲ 图3.1.1 不同字体的ASCII码
点阵数据也可以从下面CSDN文章中拷贝而得。
关于字符点阵转换过程说明参见如下CSDN文章。https://zhuoqing.blog.csdn.net/article/details/121060703
2、作业要求
(1) 网络设计要求
- 输入层35,输出层25;
- 学习速率:0.6线性递减至0.01
(2)从六种字体点阵中选择如下八个字符训练SOFM,总共有48个字符。
(3)竞争层分别采用三种不同的拓扑结构,讨论训练结果。
(4)选择内容要求:
可以自行选择其它字符的六种不同的字体对设计的网络进行训练。
3、参考答案
二、点阵数据集聚类
本题是选做题
1、题目内容
使用SOM对于下面六种数据集合进行聚类。
▲ 图4.1.1 聚类数据集合
数据集合产生方法参考文献:
-
应用在机器学习中的聚类数据集产生方法:
https://zhuoqing.blog.csdn.net/article/details/109975990 -
产生螺旋分类样本集合 SpiralData:
https://zhuoqing.blog.csdn.net/article/details/119114663
2、作业要求
(1) 任选1~3种数据集合进行实验;
(2) 根据数据分布特征,确定合适的竞争层神经元数据,并分别利用一维,二维拓扑结构完成网络训练。
(3)对于训练结果进行展示,并讨论网络参数(神经元个数,拓扑结构)对于训练结果的影响。
注:由于SOFM网络是无导师训练算法,因此,对于不同的数据集合,将所有的点阵都当做统一的训练数据。
3、参考答案
03 解决优化问题
一、SOFM保序特性
1、作业内容
构建自组织特征映射(SOFM)网络,有15个竞争层的神经元,它们具有一维的拓扑结构
注意:该一维拓扑结构首位不相连,与解决旅行商问题对应的首尾相连的一维拓扑结构不同。
- 训练样本的产生:
100个样本随机均匀选取于下图所示的三角形区域内。
▲ 图5.1.1 训练样本示意图
2、作业要求
(1)对构造的神经网络使用 SOFM算法进行进行训练后,给出神经元在坐标平面上的位置分布。阐述SOFM的“保序”特性。
(2) 选做题要求:
构建二维的SOFM网络,对于来自于
(
0
,
1
)
×
(
0
,
1
)
\left( {0,1} \right) \times \left( {0,1} \right)
(0,1)×(0,1) 二维区域中的样本进行训练。讨论不同的初始化条件与训练结果。
▲ 图3.1.2 训练过程神经网络的演变
3、参考答案
(1)MATLAB对应的语句
提示:所用到的MATLAB语句
-
构建一维的SOFM网络
net = newsom([0 1;0 1],[50]); -
训练神经网络
net = train(net,P) -
绘出一维的图形
plotsom(net.iw{1,1}, net.layers{1}.distances)
(2)Python程序参考答案
▲ 图3.1.2 竞争网络演化过程
二、解决旅行商问题
1、题目内容
利用SOFM解决旅行商路径规划问题。下图是清华园地图,在其中标记有十个“景点”的“坐标”位置:
▲ 图3.2.1 十个景点的坐标示意图
在清华大学校园内中存在着10个景点,他们的位置已经标注在地图上。请利用SOFM解决在这10个地点之间的旅行商最优路径的问题。
2、作业要求
(1)通过构建 SOFM网络求解上述景点之间的最优旅行路线。求解的时候不需要考虑清华校园内的道路问题,假设各景点之间的相对距离可以按照地图上的坐标的欧氏距离直接计算得到。
(2) 选做题要求:
下面给出了另外三种位置 所在的位置分布; 请使用SOM网络求解这三种位置分布优化后的路径。
▲ 图6.1.2 地点分布数据
3、参考答案
- Python 版本的参考答案:
▲ 图3.2.2 求解过程神经网络演变过程
04 CPN,LVQ神经网络
一、使用CPN实现函数逼近
1、作业内容
使用CPN网络逼近Hermit多项式。
▲ 图7.1.1 Hermit多项式
▲ 图7.1.2 网络结构示意图
训练样本:从[-4,4]之间随机选取x取值以及对应的Hermit多项式的函数值。
2、作业要求
(1)构造单向CPN和双向CPN完成上述网络并进行训练。
(2)对比在相同的20个隐层节点的情况下,两种CPN逼近函数的精度。
3、参考答案
▲ 图4.1.3 函数逼近过程状态演变
二、LVQ网络进行分类
本题为选做内容
1、题目内容
构造LVQ网络完成下面两类样本的分类问题。
▲ 图8.1.1 分类数据
▲ 图8.1.2 网络结构示意图
2、作业要求
(1)上面数据集合产生方法请参照第四小题;
(2)任选择其中一个数据集和,完成LVQ网络构建与训练;
(3)对于每一类对应的神经元个数n,分别选择n=5, n=20来讨论训练的结果。
(4) 选做:讨论LVQ1算法对于训练结果的影响。
Net = newlvq(PR,S1,PC,LR,LF)_
PR is an R-by-2 matrix of minimum and maximum values for R input elements.
S1 is the number of first-layer hidden neurons.
PC is an S2-element vector of typical class percentages.
LR is the learning rate (default 0.01).
LF is the learning function (default is learnlv1).
3、参考答案
下面是关于一个简单集合上, LVQ网络的训练过程: 2020年人工神经网络第二次作业-参考答案第八题
▲ 图4.2.3 训练过程网络状态演化过程
■ 相关文献链接:
- 2022年秋季学期人工神经网络第二次作业
- 2020年人工神经网络第二次作业-参考答案第一题
- 2020年人工神经网络第二次作业-参考答案第二题
- 2020年人工神经网络第二次作业-参考答案第三题
- 2020年人工神经网络第二次作业-参考答案第五题
- 2020年人工神经网络第二次作业-参考答案第六题
- 2020年人工神经网络第二次作业-参考答案第七题
- 2020年人工神经网络第二次作业-参考答案第八题
● 相关图表链接:
- 图1.1.1 竞争网络结构示意图
- 图1.1.2 样本训练集合与内星向量所在位置示意图
- 图1.1.3 参考答案中的示例
- 图2.1.1 C、H、L样本点阵图
- 图2.1.2 与三个样本Hamming距离为1的样本
- 图1.2.3 与三个样本HAMMING距离为2 的样本示意图
- 图1.2.4 参考答案中对应的竞争层神经网络内星向量变化示意图
- 图3.1.1 不同字体的ASCII码
- 图4.1.1 聚类数据集合
- 图5.1.1 训练样本示意图
- 图3.1.2 训练过程神经网络的演变
- 图3.1.2 竞争网络演化过程
- 图3.2.1 十个景点的坐标示意图
- 图6.1.2 地点分布数据
- 图3.2.2 求解过程神经网络演变过程
- 图7.1.1 Hermit多项式
- 图7.1.2 网络结构示意图
- 图4.1.3 函数逼近过程状态演变
- 图8.1.1 分类数据
- 图8.1.2 网络结构示意图
- 图4.2.3 训练过程网络状态演化过程