BP神经网络matlab程序

Log-Sigmoid 函数
x=-3:.01:3;
plot(x,x,'-')
hold on;
plot(zeros(1,length(x)),x,'-')
grid on
title('原始数据')
y=logsig(x);								% 计算y的值
figure(2);
plot(x,y,'-')								% 显示y
hold on;
plot(zeros(1,length(y)),y,'-')
grid on
title('Sigmoid函数处理之后')

在这里插入图片描述
在这里插入图片描述
可以看出sigmoid函数把绝对值较大的数据挤压到了一个较小的区间,而绝对值较小的数据被扩张了。如下图
在这里插入图片描述

tansig 函数
x=-4:.1:4;
y=tansig(x);			% Tag-Sigmoid函数
plot(x,y,'^-r')
title('Tan-sig 函数')
xlabel('x')
ylabel('y')
grid on

在这里插入图片描述

建立网络newff

新旧版神经网络比较

x=-4:.5:4;
y=x.^2-x;
net=newff(minmax(x),minmax(y),10);					% net为新版newff创建的
net=train(net,x,y);									% 训练
xx=-4:.2:4;
yy=net(xx);
figure(1)
plot(x,y,'o-',xx,yy,'*-');
title('新版newff')
net1=newff(minmax(x),[10,1],{'tansig','purelin'},'trainlm');	% net1为旧版newff创建的
net1=train(net1,x,y);								% 训练
yy2=net1(xx);
figure(2);
plot(x,y,'o-',xx,yy2,'*-')
title('旧版newff')

在这里插入图片描述
在这里插入图片描述
1.新版训练速度快,但占用内存多,易发生超出内存。
2.新版由于采用60%用于训练,20%用于检验,20%用于验证,采用提前终止的策略,防止过拟合的情况的发生。但是对于同一个问题会出现新版最终的误差大于旧版。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值