MATLAB中内置的BP神经网络函数 help翻译
原文请参考:help newff
newff 创建前馈反向传播网络。
在 R2010b NNET 7.0 中已过时。 最后在 R2010a NNET 6.0.4 中使用。
The recommended function is feedforwardnet.
语法
net = newff(P,T,S)
net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)
描述: __________
newff(P,T,S) takes,
P - RxQ1 matrix of Q1 representative R-element input vectors.
T - SNxQ2 matrix of Q2 representative SN-element target vectors.
Si - Sizes of N-1 hidden layers, S1 to S(N-1), default = [].
(输出层大小 SN 由 T 确定.)
并返回 N 层前馈反向传播网络。
newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) 接受可选输入,
TFi - 第 i 层的传递函数。隐藏层的默认值为“tansig”,输出层的默认值为“purelin”。
BTF - 反向传播网络训练函数,默认 = 'trainlm'。
BLF - 反向传播权重/偏差学习函数,默认值 = 'learngdm'。
PF - 性能函数,默认值 ='mse'。
IPF - 输入处理函数的行单元格数组。
默认值为 {'fixunknowns','remconstantrows','mapminmax'}.
OPF - 输出处理函数的行单元格数组。
默认值为 {'remconstantrows','mapminmax'}.
DDF - 数据除法函数,默认值 = 'dividerand';
并返回 N 层前馈反向传播网络。
传递函数TF{i}可以是任何可微传递函数,例如TANSIG,LOGSIG或PURELIN。
训练函数BTF可以是任何反向传播训练函数,如TRAINLM,TRAINBFG,TRAINRP,TRINGD等。
*警告*:TRAINLM是默认的训练功能,因为它非常快,但它需要大量内存才能运行。 如果在训练时收到“内存不足”错误,请尝试执行以下操作之一:
(1) 减慢 TRAINLM 训练,但通过将 NET.efficiency.memoryReduce 设置为 2 或更多来降低内存需求。 (See HELP TRAINLM.)
(2) 使用TRAINBFG,它比TRAINLM慢但内存效率更高。
(3) 使用比TRAINBFG更慢但内存效率更高的TRAINRP。
学习函数BLF可以是反向传播学习函数之一,例如LEARNGD或LEARNGDM。
性能函数可以是任何可微分的性能函数,例如 MSE 或 MSEREG。
Examples
[inputs,targets] = simplefitdata;
net = newff(inputs,targets,20);
net = train(net,inputs,targets);
outputs = net(inputs);
errors = outputs - targets;
perf = perform(net,outputs,targets)
Algorithm
前馈网络由使用 DOTPROD 权重函数、NETSUM 净输入函数和指定传递函数的 Nl 层组成。
第一层具有来自输入的权重。 每个后续层都有一个来自前一层的权重。 所有层都有偏差。 最后一层是网络输出。
每层的权重和偏差都使用 INITNW 初始化。
适应是通过TRAINS完成的,它使用指定的学习函数更新权重。训练是使用指定的训练功能完成的。根据指定的性能函数测量性能。
另请参阅newcf,newelm,sim,init,adapt,train,train