BP神经网络数学原理及推导过程

说明:本博客引自博客:http://blog.csdn.net/zhongkejingwang/article/details/44514073;并对此博客中有些地方的推导的过程进行详细地说明。同时,对一些基础知识进行引申介绍。

1.引言

BP神经网络,BP即Back Propagation的缩写,也就是反向传播的意思。它是一种前馈神经网络。而前馈神经网络是神经网络的一种典型分层结构,在这种网络中信息从输入层进入网络后,逐层向前传播至输出层。根据网络中神经元激活函数、隐层数和权值调整规则的不同,可以形成具有不同特点的前馈神经网络。
误差反传(BP)算法是1986年,Rumelhart和MeCelland领导的科学家小组在((Paralleloist行butedPoreessing》一书r扫提出的,实现了Minsky关于多层网络的设想。算法的基本思想是,学习过程由信号的正向传播和误差的反向两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出和期望输出不符,则转入误差的反向传播阶段,误差的反向传播是将误差以某种形式通过隐层向输出层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播和误差反向传播的各层权值调整过程,是周而复始进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到一定范围之内,或进行到预先设定的学习次数为止。

2.可以做什么

BP神经网络在函数逼近、模式识别、数据压缩、风险评估等领域有着更为广泛的应用。

3.数学原理

BP神经网络的模型结构:
BP神经网络数学原理及推导过程_第1张图片
BP神经网络数学原理及推导过程_第2张图片
BP神经网络数学原理及推导过程_第3张图片
用什么方法最小化L?BP算法采用的是随机梯度下降。也就是对每个训练样本都使权重往其负梯度方向变化。现在的任务就是求L对连接权重w的梯度。 至于什么是梯度下降法?这里插播一下:
BP神经网络数学原理及推导过程_第4张图片
至于是什么是梯度和方向导数?如果不是很清楚的,大家可以打开同济版高数.....还是给大家推荐一篇博客:http://blog.csdn.net/wolenski/article/details/8030654

我们继续开始(推导时,由于符号繁多,建议大家对这BP神经网络的模型结构来推导,上面备注了许多符号):
其实我们就是要求第一层权重的梯度(类似上图dy/dx):
第二层权值的梯度(第二层权值的梯度简单多):
先从第一层开始
BP神经网络数学原理及推导过程_第5张图片
  
BP神经网络数学原理及推导过程_第6张图片 BP神经网络数学原理及推导过程_第7张图片
BP神经网络数学原理及推导过程_第8张图片
我们将开始计算第二层:
第二层其实就是要求:
BP神经网络数学原理及推导过程_第9张图片
其中对于前半部分其实就是上面的:
BP神经网络数学原理及推导过程_第10张图片
后半部分:
BP神经网络数学原理及推导过程_第11张图片
所以对于第二层的权重的梯度是:
BP神经网络数学原理及推导过程_第12张图片

BP神经网络数学原理及推导过程_第13张图片
BP神经网络数学原理及推导过程_第14张图片
最后,需要给大家一个总结:
BP神经网络数学原理及推导过程_第15张图片为学习效率,是一个常数。
当误差达到要求精度时,算法停止。

你可能感兴趣的:(机器学习)