深度学习相关概念:梯度下降

简介:  在深度学习中,你一定听说过“梯度下降”,在绝大部分的神经网络模型里有直接或者间接地使用了梯度下降的算法。深度学习的核心:就是把数据喂给一个人工设计的模型,然后让模型自动的“学习”,通过反向传播进而优化模型自身的各种参数,最终使得在某一组参数下该模型能够最佳的匹配该学习任务。

1. 梯度下降概念


 在深度学习中,你一定听说过“梯度下降”,在绝大部分的神经网络模型里有直接或者间接地使用了梯度下降的算法。深度学习的核心:就是把数据喂给一个人工设计的模型,然后让模型自动的“学习”,通过反向传播进而优化模型自身的各种参数,最终使得在某一组参数下该模型能够最佳的匹配该学习任务。那么如果想要这个模型达到我们想要的效果,这个“学习”的过程就是深度学习算法的关键。梯度下降法就是实现该“学习”过程的一种最常见的方式,尤其是在深度学习(神经网络)模型中,BP反向传播方法的核心就是对每层的权重参数不断使用梯度下降来进行优化。虽然不同的梯度下降算法在具体的实现细节上会稍有不同,但是主要的思想是大致一样的。


2. 梯度下降的目的


 在之前我们介绍过交叉熵函数,交叉熵函数就是损失函数的一种,损失函数用来衡量模型的精确度。一般来说,损失函数的值越小,我们训练的模型的精确度就越高。如果要提高模型的精确度,就需要尽可能降低损失函数的值。而降低损失函数的值,我们一般采用梯度下降这个方法。所以,梯度下降的目的,就是最小化损失函数。


06d40e50cd0a418388f3df385f6b1075.png


3. 梯度下降的原理


梯度下降就是寻找损失函数的最低点。那么如何寻找损失函数的最低点呢?在这里,我们使用了微积分里导数,通过求出函数导数的值,从而找到函数下降的方向或者是最低点(极值点)。


ff69632e1408489783bec70d6a2d3f46.png

计算梯度后如何找到最低点?如下图路线所示


9a58cacf06594115b475b2f5fdda2ae5.png

a21a1ed4766543098bd4cf01a7c0c1bc.png


2f81298430744983a21ef0557dbd669d.png

30fffa32bed54063b7174deb389ce1cb.png


4. 梯度计算


梯度的计算分为数值法和解析法:


864f3849d55c48beb484227bc345ffa4.png

410334a496264ec6b56da8643fcf1f3d.png


5. 梯度下降算法的类别及计算效率


5.1 批量梯度下降(BGD)


在梯度下降的每一步中,我们都用到了所有的训练样本,我们需要进行求和运算,在梯度下降中,在计算微积分时,每一个样本都需要计算,会导致运算速度比较慢。


e186874edd2e4f6db5e8375029a8560a.png


5.2 随机梯度下降(SGD)


随机梯度下降法和批量梯度下降法是两个极端,批量梯度下降每次采用所有数据下降,随机梯度下降每次用一个样本来梯度下降。


  • 训练速度:随机梯度下降法由于每次仅仅采用一个样本来迭代,训练速度很快。


  • 精准度:随机梯度下降法每次训练仅仅用一个样本决定梯度的方向,可能得到局部最小值,精准度不高。


  • 收敛速度:由于随机梯度下降法一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。


21d17ac86cca4f058bdedfc0ed1a4cca.png


5.3 小批量梯度下降(MBGD)


小批量梯度下降每次迭代使用一个以上但又不是全部的样本。小批量梯度下降是集中了随机梯度下降(SGD)和批量梯度下降(BGD)的优点:使用多个样本相比SGD提高了梯度估计的精准度,小批量的估计。缺点:同SGD一样,每次梯度的方向不确定加粗样式,可能陷入局部最优。通常在使用MBGD之前先将数据随机打乱,然后划分Mini-batch,所以MBGD有时也称SGD。Mini-batch 大小的选择通常使用2的幂数,可以获得更少的运行时间。


f14b2296b13541abac9d75342e0da917.png


但是梯度下降3种算法都有缺点,都可能会陷入局部最优或者计算量大。应该如何改进?


目前人们已经提出动量法和自适应梯度来解决本文中的问题。详情见我的下一篇博客——深度学习相关概念:动量法与自适应梯度

目录
相关文章
|
7月前
|
机器学习/深度学习 数据可视化 算法
深度学习之梯度下降参数可视化
深度学习之梯度下降参数可视化
127 2
|
7月前
|
机器学习/深度学习 自然语言处理 算法
深度学习算法概念介绍
深度学习算法概念介绍
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
梯度下降求极值,机器学习&深度学习
梯度下降求极值,机器学习&深度学习
60 0
|
12天前
|
机器学习/深度学习 算法 安全
从方向导数到梯度:深度学习中的关键数学概念详解
方向导数衡量函数在特定方向上的变化率,其值可通过梯度与方向向量的点积或构造辅助函数求得。梯度则是由偏导数组成的向量,指向函数值增长最快的方向,其模长等于最速上升方向上的方向导数。这两者的关系在多维函数分析中至关重要,广泛应用于优化算法等领域。
63 36
从方向导数到梯度:深度学习中的关键数学概念详解
|
23天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
48 8
|
2月前
|
机器学习/深度学习 数据采集 自然语言处理
通过深度学习实践来理解深度学习的核心概念
通过实践,不仅可以加深对深度学习概念的理解,还能发现理论与实际之间的差距,进而对模型进行改进和优化。实践中遇到的问题(如梯度消失、过拟合、训练效率低等)能促使你深入思考,进而更加全面地掌握深度学习的核心概念。
53 4
|
3月前
|
机器学习/深度学习 分布式计算 数据可视化
对深度学习概念的基础理解与认识
一、神经网络的组成 人工神经网络(Artificial Neural Networks,简写为ANNs)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。 这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。神经网络类型众多,其中最为重要的是多层感知机。为了详细地描述神经网络,我们先从最简单的神经网络说起。 感知机 感知机是1957年,由Rosenblatt提出会,是神经网络和支持向量机的基础。 感知机是有生物学上的一个启发,他的参照对象和理论依据可以参照下图:(我们的大脑可以认为是一个神经网络,
对深度学习概念的基础理解与认识
|
6月前
|
机器学习/深度学习 算法 数据可视化
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
|
6月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】39. 梯度下降优化之动量法介绍及其Pytorch实现
【从零开始学习深度学习】39. 梯度下降优化之动量法介绍及其Pytorch实现
|
6月前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】