假设P是原始数据向量;
T是对应的目标向量;
现在需要通过神经网络来实现P->T的非线性映射。
net = newff(minmax(P),[16,1],{'tansig','purelin'},'trainlm');
net.trainParam.epochs = 2000;
net.trainParam.goal = 1e-5;
net = init(net);
net = train(net,P,T);
T' = sim(net,P)
上面描述的是一层隐含层一层输出层的BP神经网络,训练函数是L-M。
可以通过norm(T'-T),mse(T'-T)等评估拟合的效果。
需要说明的是:
trainlm算法速度比较快,容易过拟合,不利于推广,适合数据集很全时的映射使用;
traingdx适合推广,可以设置goal来提前停止