1、智能控制课程设计报告 题 目:采用 BP 网络进行模式识别 院 系: 专 业: 姓 名: 学 号: 指导老师: 日 期: 年 月 日 - 2 - 目录 1、 课程设计的目的和要求3 2、 问题描述3 3、 源程序3 4、 运行结果6 5、 总结7 - 3 - 课程设计的目的和要求 目的:1、通过本次课程设计进一步了解 BP 网络模式识别的基本原 理,掌握 BP 网络的学习算法 2、熟悉 matlab 语言在智能控制中的运用,并提高学生有关 智能控制系统的程序设计能力 要求:充分理解设计内容,并独立完成实验和课程设计报告 问题描述 采用 BP 网络进行模式识别。训练样本为 3 对两输入单输出样本
2、, 见表 7-3。是采用 BP 网络对训练样本进行训练,并针对一组实际样 本进行测试。用于测试的 3 组样本输入分别为 1,0.1;0.5,0.5 和 0.1,0.1。 表 7-3 训练样本 说明:该 BP 网络可看做 2-6-1 结构,设权值 wij,wjl 的初始值取 【-1 , +1】之间的随机值,学习参数 =0.5,=0.05.取网络训练的 最终指标 E=10(-20) ,在仿真程序中用 w1,w2 代表 wij,wjl,用 Iout 代表 x。 源程序 %网络训练程序 clear all; close all; 输入 输出 1 0 1 0 0 0 0 1 -1 - 4 - xite=
3、0.50; alfa=0.05; w2=rands(6,1); w2_1=w2;w2_2=w2; w1=rands(2,6); w1_1=w1;w1_2=w1; dw1=0*w1; I=0,0,0,0,0,0; Iout=0,0,0,0,0,0; FI=0,0,0,0,0,0; k=0; E=1.0; NS=3; while E=1e-020 k=k+1; times(k)=k; for s=1:1:NS xs=1,0; 0,0; 0,1; ys=1,0,-1; x=xs(s,:); for j=1:1:6 I(j)=x*w1(:,j); Iout(j)=1/(1+exp(-I(j); end
4、 y1=w2*Iout; el=0; y=ys(s,:); - 5 - el=el+0.5*(y(1)-y1(1)2; es(s)=el; E=0; if s=NS for s=1:1:NS E=E+es(s); end end ey=y-y1; w2=w2_1+xite*Iout*ey+alfa*(w2_1-w2_2); for j=1:1:6 S=1/(1+exp(-I(j); FI(j)=S*(1-S); end for i=1:1:2 for j=1:1:6 dw1(i,j)=xite*FI(j)*x(i)*ey(1)*w2(j,1) end end w1=w1_1+dw1+alfa*
5、(w1_1-w1_2); w1_2=w1_1;w1_1=w1; w2_2=w2_1;w2_1=w2; end Ek(k)=E; end figure(1); plot(times,Ek,r); xlabel(k);ylabel(E); save wfile w1 w2; %网络训练程序 clear all; load wfile w1 w2; x=1,0.1; - 6 - 0.5,0.5; 0.1,1; for i=1:1:3 for j=1:1:6 I(i,j)=x(i,:)*w1(:,j); Iout(i,j)=1/(1+exp(-I(i,j); end end y=w2*Iout; y=
6、y 运行结果 样本训练的收敛过程 - 7 - W1 的值 W2 的值 输入 输出 1 0.1 0.9159 0.5 0.5 0.0087 0.1 1 -0.9190 测试样本及结果 总结 本次课程设计对我们来说还是存在一定的难度的,毕竟在这之前一 直就没有做过课程设计,对 BP 网络识别理论感到生疏,另外对 matlab 软件也并不熟悉,属于现学现用的那种,但这却激发着我们 对知识的渴望,不断地上网查资料,一遍又一遍的翻着书本,不断 地探索着 BP 网络模式识别的原理,反复地研读着书本上的例题, 让我们原本望而止步的事情终究是在我们的努力之下完成了!通过 本次课程设计,进一步了解了神经网络自学习、自组织和并行处理 等特征,体会到了它强大的模式识别能力,熟悉了 BP 神经网络的 学习算法,同时也体验了 matlab 软件在智能控制系统应用中强悍的 数据处理能力!当然,在本次侧成设计中,由于程序相对于我们以 前接触的来说比较长,所以在设计及程序输入时都要特别细心,不 - 7 - 过好在 matlab 软件中只要已输入一些比较明显的错误它都能立刻做 出提示!