前言
所谓BP神经网络,即前向反馈神经网络。我相信大多数人深度学习都是从神经网络开始的,本文将带大家了解神经网络基本模型结构,并详细介绍神经网络中最重要的算法,BP算法。
神经网络
我们先来看一下一个经典的神经网络结构模型:
由三层神经元组成,好,图先放着,它的具体结构和工作原理,且听我慢慢道来。
神经元模型
神经元神经网络中最基础的组成成分,结构如下图所示
连接 是神经元中最重要的部分,神经网络训练,就是调整连接上的权值,使得输出尽量接近目标值,在图中,神经元输出之前还要经过一个激活函数,负责将值转换成0或1,理想的激活函数是阶跃函数,但由于其不连续,不光滑,故而一般采用的是sigmod函数,如下图所示
神经元计算公式如下 : y=sgn(w*x+b),其中w为权值,b为偏置,是神经元的阈值。
感知机与多层网络
多个神经元按一定层级组织起来就形成了神经网络。
值得注意的是每一层神经元之间都是全连接。
感知机的公式可以用如下公式表示:
BP算法
好,神经网络我们搭建好了,怎么样来训练参数呢,就要用到这个BP算法,即误差反向传播算法。
其核心就是一句话:链式求导法则应用求误差最小值
具体过程如下:这里为了简单,先忽略激活函数
1.正向传播
2.误差反向传播
3.权值更新
为什么要对W1进行权值更新呢,因为误差是关于W1的函数,要降低误差就要对W1进行更新。
注意:权值更新这里涉及梯度下降,欢迎阅读了解详细
4.重复123
小结
作为神经网络的精髓,本文详细介绍了BP算法过程,由于还不会用LaTeX,采用手写,后面将使用LaTeX更新这些公式。