两层及N层全连接神经网络模型原理

  • 前言
  • 1. 两层MLP
  • 1.1 前向传播
  • 1.2 反向传播
  • 2. N层MLP
  • 2.1 网络参数
  • 2.2 超参数优化
  • 3. MLP优化


前言

  深度学习是学习样本数据的内在规律和表示层次,在学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。全连接神经网络(MLP)便是基础的网络类型的之一,充分体现深度学习方法相比于传统机器学习算法的特点,即大数据驱动、公式推导、自我迭代更新、黑匣子训练等。本文将对MLP从两层及以上对其分析和解释。

1. 两层MLP

  两(浅)层神经网络相比单层网络的差别在于隐藏层有多个神经节点,这就使得其可以处理“多输入多输出”的复杂问题。

1.1 前向传播

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_mlp神经网络算法和bp算法
  其中,mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_02代表输入图像,其维度为 mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_03; mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_04为分数向量,其维度等于类别个数 mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_05mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_06为权值矩阵,mlp神经网络算法和bp算法 bp神经网络和mlp的区别_mlp神经网络算法和bp算法_07为第mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_08个类别的权值向量;mlp神经网络算法和bp算法 bp神经网络和mlp的区别_mlp神经网络算法和bp算法_09为偏置向量,mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_10为第mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_08个类别的偏置,则两层MLP为
mlp神经网络算法和bp算法 bp神经网络和mlp的区别_神经网络_12,其中mlp神经网络算法和bp算法 bp神经网络和mlp的区别_神经网络_13为激活函数

1.2 反向传播

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_14的值,即求梯度。这样我们在传进一个新的数据时,我们可以对它准确的预测,当然也是对每一层传播来的数据的反馈。当对数据进行反馈时,损失函数是便是评测手段,下面将以均方差损失函数为例对其梯度下降。

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_15

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_mlp神经网络算法和bp算法_16


  其中mlp神经网络算法和bp算法 bp神经网络和mlp的区别_深度学习_17mlp神经网络算法和bp算法 bp神经网络和mlp的区别_mlp神经网络算法和bp算法_18是我们目前的实际值,mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_19步长(一定的值),当mlp神经网络算法和bp算法 bp神经网络和mlp的区别_神经网络_20取极值mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_21时,mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_22是梯度下降求出的值


  当对损失函数梯度下降时需要链式法则求解


mlp神经网络算法和bp算法 bp神经网络和mlp的区别_深度学习_23

  推演

  梯度下降带入损失函数

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_24


  链式法则

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_mlp神经网络算法和bp算法_25


  最终结果

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_26

2. N层MLP

  N层全连接神经网络——除输入层之外其他层的数量为N的网络

  在神经网络中,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。每一层神经元学习到的是前一层神经元值的更抽象的表示。三层神经网络也叫两隐藏层神经网络,则三层MLP为:mlp神经网络算法和bp算法 bp神经网络和mlp的区别_神经网络_27 ,其中mlp神经网络算法和bp算法 bp神经网络和mlp的区别_神经网络_13为激活函数。

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_人工智能_29

2.1 网络参数

  参数:指算法运行迭代、修正最终稳定的值。

  超参:网络结构——隐层神经元个数,网络层数,非线性单元选择等
     优化相关——学习率、dropout比率、正则项强度等

2.2 超参数优化

  网格搜索法:

    ①每个超参数分别取几个值,组合这些超参数值,形成多组超参数;
    ②在验证集上评估每组超参数的模型性能;
    ③选择性能最优的模型所采用的那组值作为最终的超参数的值。

  随机搜索法:

    ①参数空间内随机取点,每个点对应一组超参数;

    ②在验证集上评估每组超参数的模型性能;

    ③选择性能最优的模型所采用的那组值作为最最终的超参数的值。

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_30


  超参数搜索策略:    ①粗搜索:利用随机法在较大范围里采样超参数,训练一个周期,依据验证集正确率缩小超参数范围。

    ②精搜索:利用随机法在前述缩小的范围内采样超参数,运行模型五到十个周期,选择验证集上精度最高的那组超参数。

mlp神经网络算法和bp算法 bp神经网络和mlp的区别_机器学习_31

3. MLP优化

  非线性因素:围绕激活函数,提高计算速率就要使激活函数去积分化、去微分化、易求偏导,解决梯度消失和梯度爆炸的问题;

  迭代更新:围绕反向传播更新权值和偏置,损失函数选择、优化器选择、学习率衰减策略等;

  骨干网络:网络应该设置多少层,每一层应该有多少个节点。

  以上是两层及N层(以三层举例)的MLP模型原理,对于MLP优化您可以查阅本栏目全连接神经网络的优化与改进。