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%用于验证,采用提前终止的策略,防止过拟合的情况的发生。但是对于同一个问题会出现新版最终的误差大于旧版。