传统的BP算法简述
BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。具体步骤如下:
(1)初始化,随机给定各连接权[w],[v]及阀值θi,rt。
(2)由给定的输入输出模式对计算隐层、输出层各单元输出
(3)计算新的连接权及阀值,计算公式如下:
(4)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。
第一步,网络初始化
给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数M。
第二步,随机选取第k个输入样本及对应期望输出
第三步,计算隐含层各神经元的输入和输出
第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数
第五步,利用隐含层到输出层的连接权值、输出层的
和隐含层的输出计算误差函数对隐含层各神经元的偏导数
第六步,利用输出层各神经元的
和隐含层各神经元的输出来修正连接权值
第七步,利用隐含层各神经元的
和输入层各神经元的输入修正连接权。
第八步,计算全局误差
第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。
第二种
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
:
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
一个神经网络的结构示意图如下所示。
BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。输入层神经元的个数由样本属性的维度决定,输出层神经元的个数由样本分类个数决定。隐藏层的层数和每层的神经元个数由用户指定。每一层包含若干个神经元,每个神经元包含一个而阈值
,用来改变神经元的活性。网络中的弧线
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示前一层神经元和后一层神经元之间的权值。每个神经元都有输入和输出。输入层的输入和输出都是训练样本的属性值。
对于隐藏层和输出层的输入
其中,
是由上一层的单元i到单元j的连接的权;
是上一层的单元i的输出;而
是单元j的阈值。
神经网络中神经元的输出是经由赋活函数计算得到的。该函数用符号表现单元代表的神经元活性。赋活函数一般使用simoid函数(或者logistic函数)。神经元的输出为:
除此之外,神经网络中有一个学习率(l)的概念,通常取0和1之间的值,并有助于找到全局最小。如果学习率太小,学习将进行得很慢。如果学习率太大,可能出现在不适当的解之间摆动。
交代清楚了神经网络中基本要素,我们来看一下BP算法的学习过程:
BPTrain(){
初始化network的权和阈值。
while 终止条件不满足 {
for samples中的每个训练样本X {
// 向前传播输入
for 隐藏或输出层每个单元j {
;// 相对于前一层i,计算单元j的净输入
;// 计算单元j的输出
}
// 后向传播误差
for 输出层每个单元j {
;// 计算误差
}
for 由最后一个到第一个隐藏层,对于隐藏层每个单元j {
;// k是j的下一层中的神经元
}
for network中每个权
{
; // 权增值
; // 权更新
}
for network中每个偏差
{
; // 偏差增值
;// 偏差更新
}
}
}
算法基本流程就是:
1、初始化网络权值和神经元的阈值(最简单的办法就是随机初始化)
2、前向传播:按照公式一层一层的计算隐层神经元和输出层神经元的输入和输出。
3、后向传播:根据公式修正权值和阈值
直到满足终止条件。
算法中还有几点是需要说明的:
1、关于
,
是神经元的误差。
对于输出层神经元
,其中,
是单元j的实际输 出,而
是j基于给定训练样本的已知类标号的真正输出。
对于隐藏层神经元
,其中,
是由下一较高层中单元k到单元j的连接权,而
是单元k的误差。
权值增量是
,阈值增量是
,其中
是学习率。
对于
的推导采用了梯度下降的算法。推导的前提是保证输出单元的均方差最小。
,其中P是样本总数,m是输出层神经元个数
是样本实际输出,
是神经网络输出。
梯度下降思路就是对
求
的导数。
对于输出层:
其中的
就是
。
对于隐藏层:
其中
=
就是隐藏层的误差计算公式。
2、关于终止条件,可以有多种形式:
§ 前一周期所有的
都太小,小于某个指定的阈值。
§ 前一周期未正确分类的样本百分比小于某个阈值。
§ 超过预先指定的周期数。
§ 神经网络的输出值和实际输出值的均方误差小于某一阈值。
一般地,最后一种终止条件的准确率更高一些。
在实际使用BP神经网络的过程中,还会有一些实际的问题:
1、 样本处理。对于输出,如果只有两类那么输出为0和1,只有当
趋于正负无穷大的时候才会输出0,1。因此条件可适当放宽,输出>0.9时就认为是1,输出<0.1时认为是0。对于输入,样本也需要做归一化处理。
2、 网络结构的选择。主要是指隐藏层层数和神经元数决定了网络规模,网络规模和性能学习效果密切相关。规模大,计算量大,而且可能导致过度拟合;但是规模小,也可能导致欠拟合。
3、 初始权值、阈值的选择,初始值对学习结果是有影响的,选择一个合适初始值也非常重要。
4、 增量学习和批量学习。上面的算法和数学推导都是基于批量学习的,批量学习适用于离线学习,学习效果稳定性好;增量学习使用于在线学习,它对输入样本的噪声是比较敏感的,不适合剧烈变化的输入模式。
5、 对于激励函数和误差函数也有其他的选择。
总的来说BP算法的可选项比较多,针对特定的训练数据往往有比较大的优化空间。
� EMBED Equation.DSMT4 ���
_1412514691.unknown
_1412514939.unknown
_1412515196.unknown
_1412515299.unknown
_1412514989.unknown
_1412514801.unknown
_1412514674.unknown
_1412514519.unknown