多层感知器MLP和梯度下降法

为了可以更好地研究非线性数据的决策边界,可以把多个感知器合并成为一个更大的网络,即多层感知器MLP

一、了解MLP

MLP至少由三层构成:

  • 第一层:数据集的每个输入特征都有一个节点(神经元)
  • 中间隐藏层
  • 最后一层:每个类标签的节点

具体的结构可以如图所示:

多层感知器MLP和梯度下降法(来源:百度图片)

MLP拥有一个显著的特性:如果网络足够大,就可以表示任意的数学函数,也称为万能逼近特性

例如:只有一个隐藏层的MLP可以准确地表示:

  • 任意布尔函数(与、或、非、与非等)
  • 任意有界的连续函数(如正弦函数)

如果有足够多的神经元和足够多的层数,理论上可以学习任意的输入-输出函数

二、梯度下降法

训练需要的三个基本要素:训练数据、代价函数和学习规则。但是学习规则无法泛化到MLP中,因此需要更加通用的规则

当我们在评价一个分类器是否成功的时候,常常需要选取一个代价函数来完成,可以是误分类的个数或者均方方差,这个函数一般依赖于我们想要调整的参数,也就是权重系数。

假设一个简单的神经网络有一个单一的权重 多层感知器MLP和梯度下降法 需要调整,那么可以把代价作为权重的函数呈现出图像:
多层感知器MLP和梯度下降法(来源:百度图片)

在训练开始时,从最右边的其实位置出发,我们可以知道,存在一个更好的多层感知器MLP和梯度下降法值,称为多层感知器MLP和梯度下降法,可以是的代价函数最小化。最小的代价意味着最低的误差,因此通过学习来得到多层感知器MLP和梯度下降法应该是最终的目标。

梯度下降:在梯度下降时,尝试走的方向和梯度的方向相反,这样就可以快速地从斜坡上下来,从山顶来到山谷。一旦到达了山谷,梯度为0,这时就完成了训练

下降的起始点是由初始的权重值确定的,除此之外还必须十分小心,避免过大的步长错过山谷。因此在随机梯度下降中,目标是采用较小的步长,但是尽可能多地更新,高效的步长由算法的学习率确定。具体会一次次重复下面的过程:

  1. 给网络提供少量的训练样本(称为批量大小 batch_size)
  2. 在这一小批数据上,计算代价函数的梯度
  3. 通过向梯度的反方向前进一小步,来更新权重系数
  4. 重复1-3步骤,直到权重代价不再降低为止,此时表明已经到达山谷

以上过程实际称为:小批量梯度下降法MBGD

梯度下降主要有:

梯度下降算法
梯度下降算法 优点 缺点
BGD(批量梯度下降) 全局最优化 计算量大、迭代速度慢
SGD(随机梯度下降) 训练速度快、支持在线学习 准确度下降、存在噪音、非全局最优化
MBGD(小批量梯度下降)

可以使用深层学习库中通用的矩阵优化方法,使计算小批量数据的梯度更加高效、

支持在线学习

准确度不如BGD、非全局最优解

 

梯度下降的局限:容易陷入局部最小值,存在一些优化方法,在深度学习部分介绍。