习题 7-1
设置:
%%样本输入
a = [1 0 ;0 0;0 1]';
%样本输出
s = [1;0;-1]';
%测试输入
a1 = [1 0.1;0.5 0.5;0.1 1]';
%测试输出
s1 =[0.9;0;-0.9]';
%神经网络设置 10个隐藏层 并采用动量梯度下降法
wangluo = feedforwardnet(10,'traingdm');
%网络参数:迭代17000次 训练目标最小误差为1e-15 学习速率为0.2 wangluo.trainParam.epochs =17000;
wangluo.trainParam.goal = 1e-15; wangluo.trainParam.lr = 0.2;
习题 7-1
Performance:
Training State:
Error Histogram:
gression:
拟合图像
网络的优点:
- 非线性映射能力:BP 神经网络实质上实现了一个从输入到输出的映射功能,数学理论证明三层的神经网络就能够以任意精度逼近任何非线性连续函数。这使得其特别适合于求解内部机制复杂的问题,即 BP 神经网络具有较强的非线性映射能力。
- 自学习和自适应能力:BP 神经网络在训练时,能够通过学习自动提取输出、输出数据间的“合理规则”,并自适应的将学习内容记忆于网络的权值中。即 BP 神经网络具有高度自学习和自适应的能力。
- 泛化能力:所谓泛化能力是指在设计模式分类器时,即要考虑网络在保证对所需分类对象进行正确分类,还要关心网络在经过训练后,能否对未见过的
模式或有噪声污染的模式,进行正确的分类。也即 BP 神经网络具有将学习成果应用于新知识的能力。
- 容错能力:BP 神经网络在其局部的或者部分的神经元受到破坏后对全局的训练结果不会造成很大的影响,也就是说即使系统在受到局部损伤时还是可以正常工作的。即 BP 神经网络具有一定的容错能力。
鉴于 BP 神经网络的这些优点,国内外不少研究学者都对其进行了研究,并运用网络解决了不少应用问题。但是随着应用范围的逐步扩大,BP 神经网络也暴露出了越来越多的缺点和不足。
缺点和不足
- 局部极小化问题:从数学角度看,传统的 BP 神经网络为一种局部搜索的优化方法,它要解决的是一个复杂非线性化问题,网络的权值是通过沿局部改善的方向逐渐进行调整的,这样会使算法陷入局部极值,权值收敛到局部极小点,从而导致网络训练失败。加上 BP 神经网络对初始网络权重非常敏感,以不同的权重初始化网络,其往往会收敛于不同的局部极小,这也是很多学者每次训练得到不同结果的根本原因。
- BP 神经网络算法的收敛速度慢:由于 BP 神经网络算法本质上为梯度下降法,它所要优化的目标函数是非常复杂的,因此,必然会出现“锯齿形现象”,这使得 BP 算法低效;又由于优化的目标函数很复杂,它必然会在神经元输出接近 0 或 1 的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;BP 神经网络模型中,为了使网络执行 BP 算法,不能使用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法也会引起算法低效。以上种种,导致了 BP 神经网络算法收敛速度慢的现象。
- BP 神经网络结构选择不一:BP 神经网络结构的选择至今尚无一种统一而完整的理论指导,一般只能由经验选定。网络结构选择过大,训练中效率不高,可能出现过拟合现象,造成网络性能低,容错性下降,若选择过小,则又会造
成网络可能不收敛。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题。
- 应用实例与网络规模的矛盾问题:BP 神经网络难以解决应用问题的实例规模和网络规模间的矛盾问题,其涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题。
- BP 神经网络预测能力和训练能力的矛盾问题:预测能力也称泛化能力或者推广能力,而训练能力也称逼近能力或者学习能力。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随着训练能力地提高,预测能力会得到提高。但这种趋势不是固定的,其有一个极限,当达到此极限时,随着训练能力的提高,预测能力反而会下降,也即出现所谓“过拟合”现象。出现该现象的原因是网络学习了过多的样本细节导致,学习出的模型已不能反映样本内含的规律,所以如何把握好学习的度,解决网络预测能力和训练能力间矛盾问题也是 BP 神经网络的重要研究内容。
6) BP 神经网络样本依赖性问题:网络模型的逼近和推广能力与学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。
习题 8-2
构造 30 个城市的位置坐标,采用 Hopfield 网络,实现 30 个城市路径的 TSP
问题优化,并进行 Matlab 仿真.参数设置:
(1)置初值:t=0,A=1.5,D=1.0,μ=50;
(2)计算N个城市之间的距离dxy(c,y = 1,2,…,N);
(3)神经网络输入Uxi(t)的初始化在0附近产生;
(4)利用如下动态方程式计算dUxi/dt; (5)根据一阶欧拉法离散化式,求Uxi(t+1)
(5)根据一阶欧拉法离散化式,求Uxi(t+1)
(6)为了保证收敛于正确解,即矩阵V各行各列只有一个元素为1,其余为0,采用单调上升的Sigmoid函数计算Vxi(t)
式中,p>0,u值的大小决定了Sigmoid函数的形状。
(7)根据下式,计算能量函数E;
(8)检查路径的合法性,判断迭代次数是否结束,如果结束,则终止,否则返回第 (4)步;
(9)显示输出迭代次数、最优路径、最优能量函数、路径长度的值,并作出能量函数随时间变化的曲线图
Hopfield 网络输出所代表的有效解 V1(19x19)如下图所示,其中“1”代表到达,“0”代表未到达。(第一列为城市,第一行为次序)
仿真结果:
能量函数随时间变化曲线: 网络是渐进稳定的, 随着时间的推移, 网络的状态向 E 减小的方向运动, 其稳定平衡状态就是 E 的极小点。
左图为初始路径,右图为优化路径
输出:
最优能量函数:
Final_E = 1.4838
初始路程程: Initial_Length =2.8243最短路程:
Final_Length =2.9677
城市点坐标:
Hopfield 网络是一种反馈型神经网络,常被用于解决优化问题,比如 TSP
(旅行商问题)。这个问题涉及找到一条最短路径,经过每个城市一次,最终回到起点城市。
优点:
并行处理能力: Hopfield 网络具备并行处理的能力,可以同时处理多个城市之间的信息,这在解决 TSP 这样的复杂问题时非常有用。
能够收敛到局部最优解: Hopfield 网络可以在不断迭代中收敛到一个局部最优解,对于 TSP 问题而言,这可能是一条相对较优的路径。
容错性: Hopfield 网络具有一定的容错性,可以在某些程度上处理噪声和不确定性,这对于优化问题的解决有一定帮助。
缺点:
收敛到局部最优解: Hopfield 网络可能陷入局部最优解,而不是全局最优解。在处理复杂问题时,无法保证找到最佳解决方案。
对于大规模问题的挑战: 随着问题规模增大,Hopfield 网络的计算复杂度会增加,导致解决问题变得更加困难。
对初始条件敏感: Hopfield 网络对初始条件非常敏感,不同的初始条件可能会导致不同的最终解。