BP神经网络理解及公式推导
__508任务
仅个人学习记录使用,可能有误
一、人工神经网络
人工神经网络(ANN)是一种旨在模仿人脑结构及其功能的由多个非常简单的处理单元彼此按某种方式相互连接而形成的计算机系统,该系统靠其状态对外部输入信息的动态响应来处理信息 。
神经网络是一种运算模型,由大量的节点(也可以说神经元)之间连接构成。每个节点代表一种特定的输出函数,称为激励函数或者激活函数。每两个节点间的连接都代表一个对于通过连接信号的加权值,称之为权重。这相当于人神经的记忆(就是仿生),神经网络的输出则根据网络的连接方式、权重值和激活函数的不同而不同。而网络本身通常都是对自然界某种算法或函数的逼近,也可能是一种逻辑策略的表达。简单来说,人工神经网络搭建利用函数拟合的性质体现某种规律。人工神经网络的每个节点(神经元)不同于生物上的神经元只有激活和抑制两种状态,它通过激活函数传递一种可连续变化的值。在神经网络中,输入层与输出层之间的层称为隐含层或隐层,隐层和输出层的神经元都是具有激活函数的功能神经元。 关于神经网络结构可参考视频
二、逆向误差神经网络
2.1梯度下降法
首先我们介绍一下梯度下降法,机器学习中很多技术的实现都是基于这个方法 梯度下降的基本过程和下山类似,我们需要找到一定最陡峭的位置先前走一段距离,然后再以当前为基准找最陡峭的方向。这个最陡峭的方向对应在函数中既是梯度的反方向,重复利用此方法,反复求取梯度,最后就能到达局部的最小值。 详见此连接
2.2BP神经网络
BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。这里的“前馈”指的是网络拓扑结构中不存在环或回路,而不是指该网络只能向前传播而不能向后传播。BP网络采用梯度下降法,通过不断调整神经元的权值和阈值,以使得到的误差的平方和最小。
BP神经网络的特点在于信号向前传播,误差向后传播,依据得到的误差进行调整以求得误差的最小化。
打个比方,就好像我们射箭,开始时以某一定力度角度拉弓,并不一定能射中。这时当我们看到箭与靶心相差的距离方向后,我们就会根据产生的误差进行调整。这射箭的过程就是BP网络的前传,而我们看到误差就是误差的逆向传播,我们向着最接近靶心的方向不断调整角度和力度的过程就是梯度下降。
2.3BP算法的公式推导
参考《机器学习》——周志华,书中以Whj为例,下面以Vih为例
注:学习率在(0,1)之间,不必太小就像我们下山时不会每步都精准测量否则速度太慢,当然也不能太大不然会引起振荡。有时我们也可时隐层(的权值和阈值)与输出层分别采用不同学习率。
提示:其实公式的推导主要是链式求导的使用,直观理解反向传播算法可参考b站视频
|