1. ANN简介
人工神经网络(Artificial Neural Network,ANN)是计算机领域用于处理机器学习问题的强大工具,其广泛应用于回归与分类等问题中,它模拟了生物体神经细胞的运作原理,将一个个具有层次关系,连接关系的人工神经元组成网络结构,通过数学表达的方式模拟神经元之间的信号传递,从而可建立一个具有输入与输出关系、并可通过网络方式可视化的的非线性方程,我们称之为人工神经网络。一般而言,ANN可通过合理的网络结构配置拟合任意非线性函数,因此它也用于处理内部表达较为复杂的非线性系统或黑箱模型。
本文主要针对多维输入,多维输出,多层,并具有全连接结构的神经网络进行模型介绍以及网络权重更新的推导,其网络结构如图所示
除输出层外,每一层都有个偏置节点,并用1表示。
2. ANN网络模型
假设神经网络的层数为
接下来我们定义每一层的权重矩阵与偏置向量
并定义每一层的激活函数分别为
这里
因此,对于第
我们通过正向逐层计算,可得到网络中每一层的
3. 基于误差反向传播(error back propagation)的网络更新方法
3.1 损失函数与随机梯度下降方法介绍
我们的目标是希望通过调整网络的权重
其中
ANN的网络训练的意图是希望得到一组网络的权重
这里的0被加粗,表明损失函数对所有权重或偏置的导数值都为0。 然而对于复杂的网络,我们很难采用解析的方式求得上式的解或解集,因此采用计算机比较青睐的数值求解法,及采用机器学习领域中最重要的数值求解方法之一**随机梯度下降法**(Stochastic Gradient Descent,SGD),其表达式如下
其中
For
For
因此我们的主要目标便是计算每一层的梯度
3.2 链式求导法则介绍
对于第
这里我们另外定义了
(1)中的各偏导项的表达式为
下面将根据(1)-(6),从输出层开始,逐层反向推导
(1)对于第
根据(2)(3)(4),我们可以求得
然后,
我们已经求出单个分量的求导结果,那么对于整个
其中
符号
(2)当
此时式(3)中的
则
则
根据上式,其矩阵表达式为
其中
(3)当
式(3)中的
则
同理可得
同理,其矩阵表达式为
其中
此时可以发现式(26)与式(19)具有相同的结构,由此我们可以得到任意
3.3 权重更新
综上,我们可以得到ANN网络权重更新一次的整个过程
- Step1: 前向计算
- Step2: 反向逐层梯度计算
- Step3: 网络参数逐层更新
参考资料
- 激活函数介绍
- 随机梯度下降方法
- BP神经网络原理简单介绍以及公式推导(矩阵形式和分量形式)