BP神经网络:
backpropagation算法
监督式,前向神经网络
学习算法:
一、propagation
1.输入训练样本,由激活函数得到映射,与实际结果对比得到误差
2.把误差向后传递
二、weight update
1.用梯度下降法,在梯度下降最快的地方修正
mapminmax 归一化函数[-1 1]
[Y,PS] = mapminmax(X,YMIN,YMAX)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)
newff 创建前向神经网络
net = newff(P,T,[S1 S2 ...S(N-1)],{TF1 TF2...TFN},BTF,BLF,PF,IPF,OPF,DDF)
train 训练
[net,tr,Y,E,Pf,Af] = train(net,P,T,Pi,Ai)
sim 仿真模拟预测
[Y,Pf,Af,E,perf] = sim (net,P,Pi.Ai,I)
数据集的划分:训练集、测试集、验证集
模型性能:训练集的选择非常重要,训练集一定要具有足够的代表性。
训练集的列一定要相等,是训练集的个数。
参数对BP神经网络性能的影响:
- 隐含层神经元节点个数
- 激活函数类型的选择:tansig logsig
- 学习率
- 初始权值与阈值:遗传算法来优化
参数选取方法:
交叉验证(cross validation):
训练集(training set)
验证集(validation set)
测试集(testing set)
留一法(leave one out,LOO):样本较少时
在整个数据集里,每次都留出一个来做验证,剩下的用来训练。
RBF、GRNN和PNN神经网络:
RBF:
隐含层与输入层的连接权值是通过一定方式确定的