BP神经网络

基础不牢,地动山摇。

我在上一篇博客中详细介绍了感知机模型(Perceptron),在推导和分析的过程中,我们发现感知机模型是存在许多不足的,它的不足之处包括但不仅限于:① 仅在样本特征线性可分时才能收敛,若样本特征线性不可分,迭代结果会发生震荡并一直震荡下去;② 最终学习到的超平面不是唯一的;③ 结构简单的线性模型,无法表达复杂的函数。多层网络的学习能力比单层感知机强得多,欲要训练多层网络,简单的感知机学习规则显然不够了,需要更强大的学习算法,误差逆传播(Error BackPropagation,BP)算法就是其中最杰出的代表。使用BP算法训练的多层前馈神经网络被称为BP神经网络所谓多层前馈神经网络,是指每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络被被称为多层前馈神经网络

1. BP神经网络模型

BP神经网络是多层前馈神经网络,既然是“多层”,肯定不会像感知机那样只有输入层和输出层,它还拥有隐藏层,所以BP神经网络至少有三层。其中输入层的神经元用于接收外界输入的特征值,但是输入层并不对特征值进行处理;隐藏层和输出层的神经元是含有激活函数的功能神经元,由它们来进行特征值的处理,最终结果由输出层神经元输出。神经网络的学习过程,就是通过训练数据来调整神经元之间的连接权重和功能神经元的偏置项,换言之,神经网络学到的东西,蕴含在这些权值和偏置中

我们以下图中的简单三层BP神经网络为例,推导其中的参数更新过程。如图所示,输入层有d个神经元,可以接收样本的d个特征,隐藏层有q个神经元(注意,由于计算过程中需要加上偏置项,为了强调这一点,图中输入层和隐藏层的最上面加了一个“1”,但是它只是参与计算,并不是神经元),输出层有2个神经元。我们假设图中所示的BP神经网络解决的是二分类问题,为了推导过程中的表达方便,让我们先对网络中一些必要的参数进行说明:

① 输入:样本的d个特征,x_{1},\cdots,x_{i},\cdots,x_{d}

② 真实标签:y=(y_{1},{y_{2}),若样本属于第1类,则y=(1,0);若样本属于第2类,则y=(0,1)

③ 隐藏层和输出层的激活函数:sigmoid函数,表达式为s(x)=1/(1+e^{-x})

④ 输出:网络预测样本属于每一类的概率\hat{y}=(\hat{y_{1}},\hat{y_{2}})

⑤ 损失函数:均方误差

⑥ 学习率:\eta

BP神经网络_第1张图片

一、前向传播过程

输入层:样本的d个特征,x_{1},\cdots,x_{i},\cdots,x_{d}

隐藏层第h个神经元的输入:z_{h}=w_{1h}^{0}x_{1}+\cdots+w_{ih}^{0}x_{i}+\cdots+w_{dh}^{0}x_{d}+b_{0h}^{0}

隐藏层第h个神经元的输出:\alpha _{h}=s(z_{h})=1/(1+e^{-z_{h}})

输出层第j个神经元的输入:\beta _{j}=w_{1j}^{1}\alpha _{1}+w_{2j}^{1}\alpha _{2}+\cdots+w_{hj}^{1}\alpha _{h}+\cdots+w_{qj}^{1}\alpha _{q}+b_{0j}^{1}

输出层第j个神经元的输出:\hat{y_{j}}=s(\beta _{j})=1/({1+e^{\beta_{j}})

二、反向传播过程

BP神经网络使用误差逆传播算法,顾名思义,我们得先把误差即损失函数求出来,本例中的误差表达式如下:

E=\frac{1}{2}\left [ \left ( \hat{y_{1}}-y_{1} \right )^{2}+\left ( \hat{y_{2}}-y_{2} \right )^{2} \right ]

我们用梯度下降法,沿误差的负梯度方向进行参数更新,以隐藏层到输出层的连接权重w_{h2}^{1}为例,参数更新方法为:

w_{hj}^{1}\leftarrow w_{hj}^{1}-\eta \frac{\partial E}{\partial w_{hj}^{1}}
误差Ew_{hj}^{1}求偏导需要利用链式求导法则,

未完待续

参考:

https://baike.baidu.com/item/BP%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/4581827?fr=aladdin
https://blog.csdn.net/taoyanqi8932/article/details/53955430
https://blog.csdn.net/jaster_wisdom/article/details/78379697
《机器学习》周志华 著

你可能感兴趣的:(BP神经网络)