线性神经网络在Matlab中实现

线性神经网络的神经元传递函数是线性函数,因此输出可以是任意值,感知器的输出只能是0或1

一、神经元结构

线性神经网络在Matlab中实现_第1张图片

二、学习函数

1、newlind--设计一个线性层

net=newlind(P,T) 

返回的net已经训练完毕, P输入向量,T输出向量

2、newlin--创建未经训练的线性层

net=newlin(P,S,ID,LR)

P输入向量,S输出节点个数,ID输入延迟时间,LR学习率,默认0.01

3、learnwh--LMS学习函数

4、maxlinlr--计算最大学习速率

三、Matlab实现

1、newlind用于最小二乘拟合

x=-5:5;
y=3*x-7;
randn('state',2);   % 随机数种子,便于重复生成同样的随机数
y=y+randn(1,length(y))*1.5; % 加入噪声的直线
plot(x,y,'o');%生成原始数据点
P=x;T=y;
net=newlind(P,T); %%%%%设计线性神经网络
new_x=-5:0.2:5;
new_y=sim(net,new_x); %%%%%输出仿真结果
hold on;plot(new_x,new_y); %画图像直线
legend('原始数据点','最小二乘拟合函数');
net.iw %权值
net.b %阈值
title('newlind用于最小二乘拟合直线');
线性神经网络在Matlab中实现_第2张图片

2、在噪声对消中应用

通过滤波将信号中的噪声去掉

time=0.01:0.01:10;
noise=(rand(1,1000)-0.5)*4;
input=sin(time); %输入信号
p=noise; %将噪声作为神经网络输入量
t=input+noise; %将噪声+信号作为目标向量
net=newlin([-1 1],1,0,0.0005); %创建线性神经网络
net.adaptParam.passes=70;
[net,y,output]=adapt(net,p,t)%自适应训练,output作为网络调整过程的误差

hold on;
subplot(3,1,1)
plot(time,input,'r');
title('信号波形sin(t)');
subplot(3,1,2);
plot(time,t,'m');
xlabel('t');
title('随机噪声波形sin(t)+noise(t)');
subplot(3,1,3);
plot(time,output,'b');
xlabel('t');
title('输出信号波形y(t)');


线性神经网络在Matlab中实现_第3张图片

3、信号预测中的应用

clear all;
% 定义输入向量和目标向量
time=0.5:0.5:20;         %时间变量
y=(rand(1,40)-0.5)*4;    %定义随机输入信号
p=con2seq(y);            %将随机输入向量转换为串行向量
delays=[1 2];            %定义ADALINE神经元输入延迟量
t=p;                     %定义ADALINE神经元的数目向量
net=newlin(minmax(y),1,delays,0.0005);%%%% 创建线性神经网络
net.adaptParam.passes=70;%%%%% 线性神经网络的自适应调整(训练)
[net,a,output]=adapt(net,p,t);  %%%%%输出信号output为网络调整过程中的误差
% 绘制随机输入信号\输出信号的波形
hold on;
subplot(3,1,1);plot(time,y,'r*-'); %输出信号output为网络调整过程中的误差
xlabel('t','position',[20.5,-1.8]);
ylabel('随机输入信号s(t)');
axis([0 20 -2 2]);

subplot(3,1,2);
output=seq2con(output);
plot(time,output{1},'ko-');  %绘制预测输出信号的波形
xlabel('t','position',[20.5,-1.8]);
ylabel('预测输出信号y(t)');
axis([0 20 -2 2]);

subplot(3,1,3);
e=output{1}-y;
plot(time,e,'k-');   %绘制误差曲线
xlabel('t','position',[20.5,-1.8]);
ylabel('误差曲线e(t)');
axis([0 20 -2 2]);

hold off;
线性神经网络在Matlab中实现_第4张图片


你可能感兴趣的:(Matlab)