第一节:BP神经网络

权值、阈值

人工神经元模型

– 按照连接方式,可以分为:前向神经网络 vs. 反馈(递归)神经网络

– 按照学习方式,可以分为:有导师学习神经网络 vs. 无导师学习神经网络

– 按照实现功能,可以分为:拟合(回归)神经网络 vs. 分类神经网络

 

 

正、反向传播;阈、权值修正,梯度下降法

输入层、隐含层、输出层

u学习率

 

什么是归一化?

– 将数据映射到[0, 1]或[-1, 1]区间或其他的区间。

为什么要归一化?

– 输入数据的单位不一样,有些数据的范围可能特别大,导致的结果是神经网络收敛慢、训练时间长。

– 数据范围大的输入在模式分类中的作用可能会偏大,而数据范围小的输入作用就可能会偏小。

– 由于神经网络输出层的激活函数的值域是有限制的,因此需要将网络训练的目标数据映射到激活函数的值域。例如神经网络的输出层若采用S形激活

函数,由于S形函数的值域限制在(0,1),也就是说神经网络的输出只能限制在(0,1),所以训练数据的输出就要归一化到[0,1]区间。

– S形激活函数在(0,1)区间以外区域很平缓,区分度太小。例如S形函数f(X)在参数a=1时,f(100)与f(5)只相差0.0067。

归一化算法

– y = ( x - min )/( max - min )    (0,1)

– y = 2 * ( x - min ) / ( max - min ) – 1    (-1,1)

 

使用算法函数

mapminmax 归一化函数

– Process matrices by mapping row minimum and maximum values to [-1 1]

– [Y, PS] = mapminmax(X, YMIN, YMAX)

– Y = mapminmax('apply', X, PS)

– X = mapminmax('reverse', Y, PS)

• newff 创建神经网络

– Create feed-forward backpropagation network

– net = newff(P, T, [S1 S2...S(N-l)], {TF1 TF2...TFNl}, BTF, BLF, PF, IPF, OPF, DDF)

• train 训练

– Train neural network

– [net, tr, Y, E, Pf, Af] = train(net, P, T, Pi, Ai)

• sim

– Simulate neural network

 

plot(NIR')

60个样本,401个特征

输入:特征、变量

输出:目标、理想值

 

训练集,选择很重要,要具有代表性

训练集50个,测试集10个

连接权值

view(net)

输入401*9

输出:9*1

输入阈值9

输出阈值1

加起来是3628

net.IW  看输入权值

net.LW  看输出权值

net.b  看阈值

均方与误差

训练方法

doc traingdx

各种梯度下降法

 

决定系数计算公式

 

 

改一下隐含层神经元节点个数,原来是9个

选择  隐含层结构:单层、多层  

激活函数设置

doc newff   tansig   logsig

初始权值、阈值  选择:

法1:交叉验证(cross validation)  样本比较多的时候

训练集(training set)

验证集(validation set)

测试集(testing set)

法2:留一法(Leave one out, LOO)

 

BP每次运行结果都不一样

原因是:初始权值和阈值随机不一样

猜你喜欢

转载自blog.csdn.net/lusics/article/details/88074340