标题:
BP神经网络算法学习(2)
[打印本页]
作者:
yuyang911220
时间:
2015-10-22 19:46
标题:
BP神经网络算法学习(2)
算法中还有几点是需要说明的:
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算法的可选项比较多,针对特定的训练数据往往有比较大的优化空间。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0