simulation report on intelligent control and application
本**报告分别用多项式拟合和bp神经网络逼近函数,并分析多项式阶次和bp网络隐含层神经元个数与逼近精度之间的关系。
bp神经网络主要应用于函数逼近,模式识别,分类以及数据压缩。本**报告目的是之一利用matlab建立神经网络模型,检测bp神经网络的函数逼近效果。
由数学分析知道,复杂的函数曲线可以有多项式函数逼近。因此本**报告将利用matlab的polyfit函数建立从1到30阶的多项式函数,**多项式拟合函数的效果。其中,polyfit函数的数学基础是最小二乘法曲线拟合原理,所得到的函数值在基点处的值与原来点的坐标偏差最小,常用于数据拟合。
bp神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递, 误差反向传播。在前向传递中,输入信号从输入层经隐含层逐层处理, 直至输出层。每一层的神经元状态只影响下一层神经元状态。
如果输出层得不到期望输出, 则转入反向传播,根据**误差调整网络权值和阈值,从而使b p神经网络**输出不断逼近期望输出。
本设计中具体的神经网络模型如下:
采用三层bp神经网络,输入层和输出层各有一个神经元,隐含层的神经元的个数可变,选取从1到20的整数,从而分析隐含层神经元的个数与逼近效果之间的关系。
隐含层采用标准sigmoidal激活函数,输出层采用线性激活函数。
学习率为0.003,目标误差为0.5,最大学习次数为5000次。
初始权值和阀值取[-0.1,0.1]内的随机数。
学习算法采用标准bp算法。
多项式拟合由于涉及到较深的数学理论,不再作具体介绍,只在用的地方做一些解说。
用matlab做出函数在区间[-10,10]的曲线图,同时绘制函数y1=x以及dy=y-y1的曲线。曲线图见图1.
图1 原函数曲线图。
由图1以及数学分析可以看出,在远离原点(0,0)的地方,目标函数接近y=x,因此,需要用多项式或者bp神经网络逼近的部分在原点附近,其他部分用y=x近似,误差就已经很小了。例如,x=+/2时,dy=3.2*10-28。
因此本**选用的自变量x的区间为[-2,2]。
1) 根据目标函数产生样本输入输出。
2) 调用polyfit(x,y,n),产生基于最小二乘法的各阶次多项式。
3) 设置循环变量cnt,实现在一个程序中,可以产生从1阶到30阶的多项式。
4) 将样本输入传给多项式函数,得到逼近函数值,绘制各阶次多项式的拟合曲线。
5) 绘制各阶次的误差变化曲线。
1. 根据目标函数产生样本输入输出。
2. 设计bp神经网络。为了熟悉bp网络,本设计没有调用神经网络工具箱,而是自己编程,实现了bp神经网络,具体**见附录中程序。
3. 设置循环变量hiddenunitnum,实现在一个程序中,可以产生隐含层含有从1到20的个神经元的网络。同时循环变量hiddenunitnum为隐含层神经元数目。
4. 用根据目标函数产生的样本输入训练神经网络,其中,样本输出为教师信号。
5. 用训练过的bp网络拟合目标函数。同时记录下拟合效果。
图2中,以下各小图依次是利用多项式拟合函数的matlab**图。按照从左到右,从上到下的顺序,各小图对应的多项式的阶次从1依次递增到30,由于篇幅所限,以及相邻阶次多项式之间的拟合效果很相近,因此,有一部分阶次的拟合图形没有列出。其中在每一幅小图中都包含了目标函数曲线(用黑色实线表示),样本点(用黑色加号+表示),拟合的效果图(用红色实线表示),样本点与多项式之间的误差值(用红色点划线表示)。
每幅图中的标题数字对应多项式的阶次。(见下页)
从以下各图中可以分析得到,在选取拟合区间为[-2,2]时,利用最小二乘法得到的多项式,随着多项式阶次的增大,多项式拟合目标函数曲线的拟合曲线效果越好,也就是说,随着阶次的升高,拟合误差越来越小。并且,从图形中可以直观地看出,当多项式的阶次为20时,拟合效果已经很好了,几乎完全拟合。具体的数值分析见图3和表1。
表 1 1-30阶多项式拟合误差统计表。
注意:以上数据**于一次的**结果,但是经过多次**发现,每次的**结果一样的,因此,在一般要求下,以上数据是合理的。)
图2 1-30阶多项式拟合函数的matlab**图。
图3 1-30阶多项式拟合误差变化曲线(横坐标为阶次,纵坐标为误差)
图4 高阶次多项式拟合效果图。
图5 1-55阶多项式拟合误差变化曲线(横坐标为阶次,纵坐标为误差)
图6 1-70阶多项式拟合误差变化曲线(横坐标为阶次,纵坐标为误差)
从表1和图3-6可以得出的结论是:
当阶次从1增到15时,误差下降迅速,从一阶时的26.4727迅速下降为1.6644。平均每升高一个阶次,误差下降1.6;
当阶次从15升到20时,误差下降速度明显放慢,每升高一个阶次,误差平均下降0.25左右。
当阶次从20升到30时,误差下降的速度变得更慢,每升高一个阶次,误差下降0.0045左右。
当阶次在30到60时,误差变化很小。
当阶次超过60之后,误差急速上升。这就是多项式的过拟合效果。
当然,以上分析都是对于区间[-2,2]。如果区间的大小发生变化,结果就不同了,具体分析见第7节。
总结起来就是,要根据目标函数的非线性程度选择合适的阶次。对于给定的目标函数和自变量区间。随着阶次的增加,拟合误差会出现逐渐减小,而后在某个阶次之后出现过拟合,误差迅速增大的现象。
对本例来说,在实际使用时,不管从**的效果图,还是误差数据的分析,对于,如果要拟合的区间为[-2,2],那么利用最小二乘法产生20-30阶次的多项式即可。由于篇幅所限,这里仅给出**中的20阶多项式的表达式。
y=1.0*x - 21.963*x^2 + 4.
5987e-10*x^3 + 96.545*x^4 - 2.2953e-9*x^5 - 215.
03*x^6 + 5.1767e-9*x^7 + 276.08*x^8 - 6.
2887e-9*x^9 - 218.54*x^10 + 4.4644e-9*x^11 + 110.
01*x^12 - 1.9064e-9*x^13 - 35.28*x^14 + 4.
8173e-10*x^15 + 6.9752*x^16 - 6.6312e-11*x^17 - 0.
77461*x^18 + 3.8299e-12*x^19 + 0.036953*x^20 + 1.
8835
图4中,以下各小图依次是利用标准bp神经网络逼近函数的matlab**图。按照从左到右,从上到下的顺序,各小图对应标准bp神经网络的隐含层神经元的个数的**结果(每幅图中的标题数字对应bp神经网络的隐含层神经元的个数),由于篇幅所限,以及相邻bp神经网络的隐含层神经元的个数之间的拟合效果很相近,因此,有一部分拟合图形没有列出。其中在每一幅小图中都包含了目标函数曲线(用黑色实线表示),样本点(用黑色加号+表示),拟合的效果图(用红色实线表示),样本点与bp神经网络之间的误差值(用红色点划线表示)。
图7标准bp神经网络逼近的matlab**图。
图8 标准bp神经网络matlab**逼近的误差图(横坐标为隐含层神经元节点数,纵坐标为误差)
先对图7和图8做一点说明:在图7中,为了方便比较,说明bp网络存在的缺陷,将对应几个隐含层神经元的学习误差曲线放在了其中,有一点不严谨。
图8中左图是对应图7中的结果的,右图是为了证明标准bp算法的缺陷,而另外做的一次**结果。
结果分析如下:
从**结果可以看出,标准bp算法存在的缺陷,容易陷入局部极小点,收敛速度慢。尤其是当隐含层的神经元的个数超过7之后,这种缺陷变得很明显。很容易出现在训练了20000次之后,仍然无法达到目标的情况。
图5中的折线很明显的表达了这一点。因此,在这里采用改进后的变步长学习算法,重新**。可以看到,变步长bp神经网络能够较好的拟补以上两点缺陷。
对于标准bp算法,隐含层神经元数从0增到7的过程中,逼近误差迅速下降。而随着隐含层的神经元的个数的进一步增加,标准bp算法存在的缺陷就暴露出来了,容易陷入局部极小点,从而是最后的训练结果未能达到要求。
图9中,以下各小图依次是利用变步长bp神经网络逼近函数的matlab**图。相关说明同图4。
智能控制课程作业
题目1 设计一个在 1,1 end altimg w 99 h 20 上的模糊系统,使其已精度一致地逼近函数,并进行matlab 设计过程如下所示 1 求解h的过程 cos beginx end sin beginx end cos beginx end sin beginx end end 2 a...
智能控制结课作业
兰州理工大学。智能控制 结课作业。院系 电气工程与信息工程学院 班级 自动化 卓越班。姓名 xxx 学号 138401xx 时间 2016 年 10 月 28 日。电气工程与信息工程学院。一 简答题。1.请阐述智能控制的结构特点,并说明智能控制与传统控制的主要区别?5分 解 结构特点 被控对象描述的...
智能控制导论大作业
智能控制导论。姓名。学院自动化与电气工程学院 专业控制科学与工程。班级。学号。指导老师。二 一六年六月十八。故障诊断中基于神经网络的特征提取方法研究。摘要 对文章 故障诊断中基于神经网络的特征提取方法研究 进行总结概括,分析了bp神经网络的优缺点,针对bp神经网络不足,提出了一种新的特征提取方法,即...