深度学习 | 神经网络的学习

本章的“学习”是指:从训练数据中自动获取最优权重参数的过程。
学习的目的:找出使损失函数的值达到最小的权重参数。
方法:函数斜率的梯度法。

1 从数据中学习

从数据中学习是指:由数据自动决定权重参数的值

1.1 数据驱动

  1. 利用数据来解决问题:先从图像中提取特征量,再用机器学习技术学习这些特征量的模式。
  2. 特征量:可以从输入数据(输入图像)中准确地提取本质数据(重要的数据)的转换器。
  3. 图像的特征量通常表示为向量的形式。在计算机视觉领域,常用的特征量:SIFT、SURF、HOG等。
    使用这些特征向量将图像数据转换为向量,然后对转换后的向量使用机器学习中的SVM、KNN等分类器进行学习。
    1
  4. 深度学习:端到端机器学习。从原始数据(输入)中获得目标结果(输出)。
  5. 神经网路的优点:对所有的问题都可以用同样的流程来解决。

1.2 训练数据和测试数据

  1. 首先,使用训练数据(监督数据)进行学习,寻找最优的参数;然后,使用测试数据评价训练得到的模型的实际能力。
  2. 泛化能力:处理未被观察过的数据(不包含在训练数据中的数据)的能力。
    获得泛化能力是机器学习的目标。
  3. 过拟合:只对某个数据集过度拟合的状态。
    仅仅用一个数据集去学习和评价参数,是无法进行正确评价的。
    这样会导致可以顺利地处理某个数据集,但无法处理其他数据集的情况。

2 损失函数

损失函数:神经网络学习中的指标。一般用均方误差和交叉熵误差。

2.1 均方误差

均方误差
yk是表示神经网络的输出,tk表示监督数据,k表示数据的维数。
one-hot表示:将正确解标签表示为1,其他标签表示为0。

2.2 交叉熵误差

交叉熵误差

2.3 mini-batch学习

我们从全部数据中选出一部分,作为全部数据的“近似”。神经网络的学习也是从训练数据中选出一批数据(称为mini-batch,小批量),然后对每个mini-batch进行学习。

2.4 为什么要设定损失函数

在进行神经网络的学习时,不能将识别精度作为指标。因为如果以识别精度为指标,则参数的导数在绝大多数地方都会变为0。

3 数值微分

导数就是表示某个瞬间的变化量。
导数
导数
为了减小数值微分中的误差,可以计算f在(x + h)和(x − h)之间的差分。
中心差分:以x为中心,计算它左右两边的差分。f在(x + h)和(x − h)之间的差分。
前向差分:(x + h)和x之间的差分。

4. 梯度

4.1 梯度法

  1. 梯度这样的由全部变量的偏导数汇总
    而成的向量称为梯度(gradient)。
  2. 梯度法:通过不断地沿梯度方向前进,逐渐减小函数值的过程就是梯度法(gradient method)。
  3. 梯度表示的是各点处的函数值减小最多的方向,因此,无法保证梯度所指的方向就是函数的最小值或者真正应该前进的方向。实际上,在复杂的函数中,梯度指示的方向基本上都不是函数值最小处。
  4. 函数的极小值、最小值以及被称为鞍点(saddle point)的地方,梯度为 0。
  5. 鞍点是从某个方向上看是极大值,从另一个方向上看则是极小值的点。
  6. 寻找最小值的梯度法称为梯度下降法(gradient descent method),
    寻找最大值的梯度法称为梯度上升法(gradient ascent method)。
  7. 公式:
    在这里插入图片描述
    η表示更新量,在神经网络的学习中,称为学习率(learning rate)。是事先确定的某个值。

4.2 神经网络的梯度

  1. 这里的梯度是指损失函数关于权重参
    数的梯度。比如,有一个只有一个形状为2 × 3的权重W的神经网络,损失函数用L表示。此时,梯度可以用 梯度表示。数学式表示如下:
    梯度数学式
    两者形状相同,都为2X3的形状。

5. 学习算法的实现

神经网络的学习步骤:
前提
神经网络存在合适的权重和偏置,调整权重和偏置以便拟合训练数据的过程称为“学习”。神经网络的学习分成下面4个步骤。
步骤1(mini-batch)
从训练数据中随机选出一部分数据,这部分数据称为mini-batch。我们的目标是减小mini-batch的损失函数的值。
步骤2(计算梯度)
为了减小mini-batch的损失函数的值,需要求出各个权重参数的梯度。
梯度表示损失函数的值减小最多的方向。
步骤3(更新参数)
将权重参数沿梯度方向进行微小更新。
步骤4(重复)
重复步骤1、步骤2、步骤3。

神经网络的学习按照上面4个步骤进行。这个方法通过梯度下降法更新参数,不过因为这里使用的数据是随机选择的mini batch数据,所以又称为随机梯度下降法(stochastic gradient descent)。

小结

• 机器学习中使用的数据集分为训练数据和测试数据。
• 神经网络用训练数据进行学习,并用测试数据评价学习到的模型的泛化能力。
• 神经网络的学习以损失函数为指标,更新权重参数,以使损失函数的值减小。
• 利用某个给定的微小值的差分求导数的过程,称为数值微分。
• 利用数值微分,可以计算权重参数的梯度。
• 数值微分虽然费时间,但是实现起来很简单。稍微复杂一些的误差反向传播法可以高速地计算梯度。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值