1、实验报告实验名称:基于 LMS算法的矩阵变换实验目的:本次实验主要是让大家对 Widrow 和 Hoff 为 ADALINE 网络设计的 LMS 学习算法进一步了解和认识,熟悉 ADALINE 网络,熟知 LMS学习算法的原理以及其在 MATLAB中的程序实现,在掌握这些基本原理的同时把 LMS算法运用求解矩阵的实际问题中。实验内容:在 Windows 环境中用 C 或 MATLAB实现 LMS学习算法,并实现 X=AY的矩阵变换(矩阵 ARnm自选)实验步骤:1、熟读 LMS算法,深知其原理,并求出其在 MATLAB中的实现程序;2、在 MATLAB中写出矩阵变换程序,并运行,查看结果是否正
2、确;3、根据实验结果写出实验报告;实验原理:W-H 学习规则是由威德罗和霍夫提出的用来修正权矢量的学习规则,所以用他们两人姓氏的第一个字母来命名。采用 W-H 学习规则可以用来训练一层网络的权值和偏差使之线性地逼近一个函数式而进行模式联想(Pattern Association)。线性网络具有抛物线型误差函数所形成的误差表面, 所以只有一个误差最小值。通过 W-H 学习规则来计算权值和偏差的变化,并使网络误差的平方和最小化,总能够训练一个网络的误差趋于这个最小值。我们的目的是通过调节权矢量, 使误差函数达到最小值。 所以在给定误差函数后, 利用 W-H 学习规则修正权矢量和偏差矢量,使误差函数
3、从误差空间的某一点开始,沿着函数的斜面向下滑行。依梯度下降原理,以均方误差为性能函数,以搜寻最优点 使 mse(we) 最小*e为目标,计算 ADALINE 网络联接关系向量 we 的梯度下降算法(Gradient Descent Algorithm)为:其中, 为学习率(Learning Rate)。上式称为 W-H 学习规则,或为最小均方差算法(LMS) 。注:在矩阵变换 X=AY中设 Y为输入量,X 为输出量,A 为权值矩阵,通过给定的 A以及运用 LMS算法找出接近给定矩阵的权值矩阵。实验程序:用 MATLAB实现 LMS算法并实现矩阵 X=AY的变换;),21,0;0( )()()1
4、( ee eee k kkesmkkxww首先给定 A的终值 A1,以及输矩阵 Y,X 是方程的输出矩阵,可由 X=AY求得;A1=1,0,1;1,3,4;1,6,8 ; %给定 A的终值 A1Y=1,3,1,5;3,6,4,1;1,6,2,3; %给定输入矩阵 YX1=A1*Y; %求得输出矩阵Wd=rand(3,3); % A的初始矩阵,一个任意给定的 3*3的矩阵fprintf(初始权值n);disp(Wd);B=; %空矩阵,用于存放SSElr=0.003; %给定学习率err_goal=0.001; %最终收敛误差max_exlen=500; %最大迭代次数for exlen=1:m
5、ax_exlenX=Wd*Y; %每训练一次得输出 XE=(X1-X); %把 X与终值 XI比较,取差SSE=sumsqr(E); %算出误差平方和Wd=Wd+2*lr*E*Y;B=B,SSE;if SSE=err_goal %直到误差平方和小于等于 0.001则停止训练,输出此时的 Aexlen=exlen-1;breakendendx=1:size(B,2); %作图,选取横坐标C=err_goal*ones(1,x); %将期望误差写成与 B阶数相同的矩阵 Cplot(x,B,b,x,err_goal,r); %画误差曲线图xlabel(步长 x);ylabel(误差 y);title
6、(训练误差与期望误差比较);fprintf(迭代终值n);disp(A) %显示 A实验结果:当 lr=0.003时误差曲线为:当 lr=0.007时误差曲线:当 lr=0.01时,实验结果为:误差曲线:实验总结:在本次实验中学习率一共取了三次值,分别是0.003,0.007 和 0.01,学习率取得值不一样,得出的结果也不一样,当学习率为 0.003时,结果能够逼近给定误差,但是训练次数比较多,当学习率为 0.007时,训练的速度要优于学习率为 0.003时的情况,当学习率取 0.01时,实验无法得到预期结果,无法逼近误差,实验出现发散的情况。通过本次实验让我对神经网络有了更深层次的了解,同时对 LMS算法的原理以及其解决实际问题方面有了更深入的认识,为以后学习 BP网络以及其他神经网络打下基础。