反向传播神经网络 BPNN
2016-01-11 19:01
477 查看
回顾感知器学习算法,其核心思想是梯度下降法,即以训练样本被错分的程度为目标函数,训练中每次出现错误时便使权系数朝着目标函数相对于权系数负梯度方向更新,知道目标中没有被错分的样本为止。
而多层感知器模型中,神经元传递函数是阶跃函数,输出端的无耻只能对最后一个神经元系数求梯度,无法对其他权系数求梯度,所以无法利用梯度下降的方法学习其他的权值。
BP算法提出主要由于Sigmoid函数的出现,代替之前的阈值函数来构造神经元。
Sigmoid函数是单调递增的非线性函数,无限次可微。当且仅当权值较大时可以逼近阈值函数,当权值较小时逼线性函数。
Sigmoid函数通常写作如下形式:
取值范围是(-1,1),代替神经元阶跃函数可写作:
由于采用Sigmoid函数作为神经元传递函数,不管网络结构多么复杂,总可以通过计算梯度来考察各个参数。这就是多层感知器反向传播算法的基本思想。
BP算法就是通过迭代优化网络的权值使得输出与输入之间的实际映射关系与所期望的映射关系一致,采用梯度下降算法通过调整各层权值求目标函数最小化。网络在某个或所有训练样本上的预测输出和期望输出的误差平方和:
由输出层误差逐层反向计算各层各单元的误差, 并基于梯度下降法修正各权值:
其中,δj(k)是第k层第j单元的局部梯度,或敏感度(sensitivity) 。
而多层感知器模型中,神经元传递函数是阶跃函数,输出端的无耻只能对最后一个神经元系数求梯度,无法对其他权系数求梯度,所以无法利用梯度下降的方法学习其他的权值。
Sigmoid函数
BP算法提出主要由于Sigmoid函数的出现,代替之前的阈值函数来构造神经元。Sigmoid函数是单调递增的非线性函数,无限次可微。当且仅当权值较大时可以逼近阈值函数,当权值较小时逼线性函数。
Sigmoid函数通常写作如下形式:
取值范围是(-1,1),代替神经元阶跃函数可写作:
由于采用Sigmoid函数作为神经元传递函数,不管网络结构多么复杂,总可以通过计算梯度来考察各个参数。这就是多层感知器反向传播算法的基本思想。
反向传播(back-propagation,BP)
BP算法就是通过迭代优化网络的权值使得输出与输入之间的实际映射关系与所期望的映射关系一致,采用梯度下降算法通过调整各层权值求目标函数最小化。网络在某个或所有训练样本上的预测输出和期望输出的误差平方和:由输出层误差逐层反向计算各层各单元的误差, 并基于梯度下降法修正各权值:
其中,δj(k)是第k层第j单元的局部梯度,或敏感度(sensitivity) 。
(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)
相关文章推荐
- bp神经网络及matlab实现
- 基于神经网络的预测模型
- 神经网络初步学习手记
- RBF的一点个人理解
- 利用自收敛深度人工神经网络构建(DNN)构建多语种大词汇量连续语音识别系统
- UFLDL Exercise: Convolutional Neural Network
- 基于遗传算法(GA)的神经网络训练算法
- 神经网络 caffe 的 vs2013 版本代码
- 传统bp算法类C/C++实现
- 传统BP神经网络完整例子(电力负荷预测)
- Matlab 神经网络工具箱
- Google最新人工智能算法RankBrain的实现--写在后面的话
- 备份:创建VS工程使用神经网络库——FANN
- 卷积神经网络知识要点
- Deep learning: autoencoders and sparsity
- bp神经网络c语言实现
- 神经网络基础
- 文章标题
- 关于神经网络的学习
- 基于神经网络的统计语言模型-----第一章 引言