赞
踩
一、什么是BP神经网络
1、什么是神经网络
以图像为例,在机器学习中,很多时候我们在原始的数据空间中,没法总结出数据的内在规律,那么我么就要先做个数据转换过程。把数据从一个空间维度转到另外一个空间维度。而我们的神经网络就是其中一种方式。
注: 上面图像从下往上看
原始数据是X(x1,x2,x3,...) 没办法用关系表达X到Y之间的关系。那么我们中间就可以多做几次空间变换。变换后的数据可以使X和Y关联起来。上图中为了便于理解,中间变换只做了一次。
在科学家去推导这个结构的时候,发现它和我们人类的神经很像,所以给它取了个名字叫神经网络。大家观察下上图的隐含层的那些节点,是不是很像我们人类大脑中的神经元。每一个神经元b都接受外界各种因素X的综合信息,然后不断传导到后面的神经元,最后大脑做出相应的反馈动作Y 。个人理解这就是神经网络的由来。
2、什么是BP
神经网络的计算过程
上图中X到B和B到Y之间都存在两种变换
1)X到B的输入端 进行了线性变换。每一个神经元的输入值,比如 b1=v11*x1+v21*x2+v31*x3..
其中v11,v21,v31,....是常数。我们为了便于描述简单。用V矩阵待变所有的这些系数。那么 X到B的输入端就可以描述成: Bi=VX
.2)B输入到B的输出存在着非线性变换。我们用一个非线性函数来表达这种关系,比如Bo=tanh(Bi-k)
注:非线性函数除了tanh外还可以是其他的,这个函数给它取个名字叫激活函数。k是一个常数,有个名字叫阈值
类似的神经元输出到y输出也有类似的两部操作。Yi=W*Bo Yo=tanh(Yi-q)
所以这个神经网络完整的计算过程X->Y应该是:
Bi=VX
Bo=tanh(Bi-k)
Yi=W*Bo
Yo=tanh(Yi-q)
其中X和Y已知,要让整个过程通顺,我们就要解出未知的系数矩阵V和W及k,q,那怎么解呢?其中有一种方法叫做BP。误差反向传播(Error Back Propagation Training),简称BP
它的原理是,首先假定V,W,k和q是一些随机的常数值。我们通过X,V,W,k和q计算出算出来的Y,我们便于区分,给它换个名字^Y,我们算出来的^Y,和一开始就已知的Y之间肯定会存在着误差。这种误差我们用方差表达,也可以用差值表达。表达的方式有很多(这些表达方式有个名字叫损失函数)。我们利用^Y和Y之间的误差再来反向修正W,修正V,k和q。就可得到更可靠的V,W,k和q。那继续这样反向修正,直至V,W,k和q不再变化。或者得到个人指定的要求。我们就可以结束了。得到准确的V,W,k和q值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。