ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:165.99KB ,
资源ID:7454486      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7454486.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ADLINE LMS Matlab实验.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ADLINE LMS Matlab实验.docx

1、ADLINE LMS Matlab实验神经网络导论实验一Adaline的LMS算法专业班级 硕 2081 学 号 * 姓 名 李海玥 完成时间 2012年12月 神经网络导论实验一Adaline的LMS算法李海玥2012年12月一、实验目的1通过实验了解Adaline的工作原理;2对比LMS三种算法,并通过上机实验掌握具体的实现方法;3与采用硬限幅函数的单个神经元模型进行对比,比较其异同。二、实验原理2.1.Adaline原理采用硬限幅函数的单个神经元,通过简单的学习算法,可以成功实现两类线性可分类的分类功能。但对于大多数的非线性可分类来说,则无法完成分类功能,因此采用具有线性功能函数的神经元

2、Adaline方法。设输入矢量,如果加权向量,则神经元的输出为:按照最小二乘法,就是要求所有样本的实际输出值d与理想预期值y之间的误差的均方值最小。定义误差。考虑所有可能出现的样本的均方误差:其中,是输入向量相关矩阵,是输入向量与期望输出的互相关向量,通过求梯度求得最优权向量:2.2.LMS学习问题的严格递推学习算法1.任意设置初始加权矢量;2.对于每一个时序变量k,按下式调整权向量W:2.3.LMS学习问题的随机逼近算法将严格递推公式修正如下形式:1)是时序k的非增函数;2);2.4.LMS学习基于统计的算法这是一种具有一定统计特性的学习算法,递推公式如下:如果P的取值很大相当于严格递推法,

3、若P=1,则相当于随机逼近法。三、实验内容及步骤3.1. 样本矢量用Matalb的load命令加载数据文件lms_samp.mat,其中samp是一个2003的矩阵,其中第一列是样本的横坐标,第二列是样本的纵坐标,第3列为样本的理想输出。图1 样本矢量图3.2. LMS算法1忽略阈值情况下数据在Matlab 中运行结果如下:2阈值待定情况下根据样本数据得到运行结果如下:3.3. 随机逼近算法在步幅系数选择,最小误差,在Mtalab中某一次的运行结果如下: 图2 均方误差与迭代次数图3.4. 不同步幅系数对迭代次数的影响图3 =0.002 图4 =0.008图5 =0.02 图6 =0.1图7

4、=0.3从图中可以看到步幅系数选择的越大,需要迭代的次数越少。这是由于初始权值即初始分界线确定的情况下,步幅系数越大,每次接近最佳分界线的速度越快。但是当步幅系数超过一定的值以后,就可能需要更多次的迭代,甚至出现不收敛的情况。这是因为步幅系数过大,分界线斜率一次改变过多,容易导致“转过头”的现象发生,可能需要更多的次数接近最佳分界线,也可能越来越远。3.5. 基于统计的算法取步幅系数=0.02,最小误差,在Mtalab中某一次的运行结果如下: 图8 均方误差与迭代次数图3.6. 不同样本数对收敛速度的影响表1 不同步幅下随机推进法的迭代次数测试序号样本数12345迭代次数均值224294040

5、2130.850232627242725.4从测试结果上看,在步幅系数确定的情况下,样本数越大,收敛所需的迭代次数越少。这是因为在步幅系数一定的情况下,样本数少,权值改变随机性越强,收敛速度慢;反之,样本数增多,每次权值的改变更趋于期望,因此收敛步数小,收敛速度快,迭代过程更加稳定。3.7. 检验图9 检验样本和各种算法结果表2 检验结果算法权值判错次数正确率LMS算法1095%随机逼近算法1095%基于统计的算法1095%四、试验思考1.如果想用硬限幅函数的单个神经元完成该分类任务,会出现什么样的现象?答:LMS算法以及矩阵算法,都是基于传递函数是得到的,线性函数相比于硬限幅函数,最大特点就

6、是线性函数是可微的。LMS算法是基于上式递推得到的,而三种递推算法都是通过求导完成的。因此失去了线性条件,换成硬限幅函数作为传递函数,以上算法均无法进行。如果采用硬限幅函数,传递函数为,按递推求权值,此时得到权值为W=0.0509 0.542, 图10 均方误差与迭代次数的关系图及均方误差曲线图可以看到,均方误差变化比较突兀。这是因为对于硬限幅函数所以权值可能发生多次没有变化,和突然变化的情况,所以,当使用具有硬限幅函数的神经元处理这类问题时,不能保证学习结果是收敛的。2.通过观察比较随机逼近算法与不同P时最陡下降算法的均方误差曲线随时序变量k的变化有什么不同,并简要解释原因。答:从上面的比较

7、可以看出,随着变量P的增大,均方误差曲线趋于平滑,这是因为样本取样值越多,权值改变量越趋于期望值,收敛步数更少,收敛速度快,迭代过程更加稳定。五、试验总结通过本次试验了解了Adaline算法,对LMS三种算法进行了对比,并通过Matlab对算法进行了具体的实现。比较得出了在最小误差固定的情况下,步幅系数对收敛速度的影响;以及不同样本个数对均方差的收敛性、收敛速度的影响。并与采用硬限幅函数的单个神经元模型进行对比。对于线性可分问题,采用硬限幅函数的单个神经元,通过简单的学习算法就可成功实现分类。即对于两个不同类中的输入矢量,神经元的输出值为0或1。但对于大多数非线性可分类,硬限幅神经元则无法完成

8、分类功能。自适应线性元件Adaline是一种具有线性功能函数的神绎元,在实际输出与理想预期值的最小二乘LMS的统计意义下进行学习,可以实现最佳的非线性可分集合的分类,即按照最小二乘的统计意义要求,实际输出值与理想预期值之间的误差均方值为最小。在本次实验中由于对于Matlab软件编程的不熟悉,导致实验周期长,效率不高。在后续的试验中,打算进一步熟悉Matlab软件神经网络工具箱,直接利用神经网络训练函数进行实验仿真,提高实验效率。Matlab主要源代码1.样本矢量load lms_samp.matfor i=1:length(samp)if samp(i,3)=1plot(samp(i,1),s

9、amp(i,2),g*);hold on;else if samp(i,3)=-1plot(samp(i,1),samp(i,2),ro);hold on; endendendfor theta=0:0.02:(2*pi-0.02)xx1=-1+1.7*cos(theta);xx2=xx1+2;yy1=-1+1.7*sin(theta);yy2=yy1+2;plot(xx1,yy1,:r);hold on;plot(xx2,yy2,:g);hold on;endf=(x)(-x);fplot(f,-3,3,k);hold on;axis(-3 3 -3 3);axis equal;grid o

10、n;2.LMS算法1)阈值为零情况下:load lms_samp.mat;x=samp(1:200,1:2);R(1:2,1:2)=0;P(1:2)=0;d(1:200)=0;dd=0;%定义自相关矩阵和互相关矩阵,d为期望输出;for i=1:200 d(i)=samp(i,3); dd=dd+d(i)*d(i); P=P+d(i)*x(i,1:2); xx=(x(i,1:2).*x(i,1:2); R=R+xx;endR=R/200;P=P/200;dd=dd/200;W=P*(inv(R);Emin=dd-P*(W);%计算最佳权向量,最小均方差;disp(P);disp(P);disp

11、(R);disp(R);disp(W);disp(W);disp(Emin);disp(Emin);2)阈值待定情况下:load lms_samp.matx=samp(1:200,1:3);x(:,3)=1;R(1:3,1:3)=0;P(1:3)=0;d(1:200)=0;dd=0;for i=1:200 d(i)=samp(i,3); dd=dd+d(i)*d(i); P=P+d(i)*x(i,1:3); xx=(x(i,:).*x(i,:); R=R+xx;endR=R/200;P=P/200;dd=dd/200;W=P*(inv(R);Emin=dd-P*(W);disp(P);disp

12、(P);disp(R);disp(R);disp(W);disp(W);disp(Emin);disp(Emin);3.随机逼近算法xk(:,:)=samp(:,1:2);dk=samp(:,3);wk(1,:)=0 0;averError(:,1:P)=0;u=0.01;count=1;%wk为权向量,averError为均方误差,u为步幅系数,count为迭代次数;P=1;err(:,1:P)=0;xerr(1:P,1:2)=0;yk(:,1:P)=0;%P=1时是随机逼近法,P=200是严格递推,P=1200是最陡下降法;yy(:,1:P)=0;xx(:,1:P)=0;%LMS算法求最佳

13、权值 for i=1:length(samp) xk(i,:)=samp(i,1:2); %xk为输入向量 yk=xk(i,:)*wk(i,:); %yk为实际输出向量 dk(i)=samp(i,3); %dk为期望输出 err(i)=dk(i)-yk; %err为误差wk(i+1,:)=wk(i,:)+2*u*err(i)*xk(i,:);averError(i)=(mean(err(i).2)/i;xx(i)=i;yy(i)=averError(i);plot(xx(i),yy(i),.b);hold on; enddisp(w=);disp(wk(length(samp),:);4.基于

14、统计的算法%这里将P=50,u=0.02,其他与随机逼近算法相同。5. 检验load lms_samp.matfor i=1:length(samp)if samp(i,3)=1plot(samp(i,1),samp(i,2),g*);hold on;else if samp(i,3)=-1plot(samp(i,1),samp(i,2),ro);hold on; endendendfor theta=0:0.02:(2*pi-0.02)xx1=-1+1.7*cos(theta);xx2=xx1+2;yy1=-1+1.7*sin(theta);yy2=yy1+2;plot(xx1,yy1,:r);hold on;plot(xx2,yy2,:g);hold on;endh=(x)(-0.3517*x/0.3464);fplot(h,-3,3,k-);hold on;f=(x)(-0.3421*x/0.3721);fplot(f,-3,3,b:);hold on;g=(x)(-0.3138*x/0.4129);fplot(g,-3,3,c-);hold on;axis(-3 3 -3 3);axis equal;grid on;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1