IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [人工智能-深度学习-15]:神经网络基础 - 常见优化器Optimizer及其算法 - 梯度下降法系列 -> 正文阅读

[人工智能][人工智能-深度学习-15]:神经网络基础 - 常见优化器Optimizer及其算法 - 梯度下降法系列

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120589554


目录

第1章 什么是优化算法

1.1 机器学习模型与优化算法在机器学习模型中的位置

1.2 什么是优化器

1.3 什么是优化算法

1.4 优化算法的核心思想

1.5 损失函数的几何图形

1.6 损失函数具有最小值的条件

第2章 基础版梯度下降法:独立可变梯度

2.1? 什么是梯度下降法(Gradient Descent)

2.2 三种基本版梯度下降法

第3章?加强版梯度下降法:带一阶动量的梯度

3.1 Momentum

3.2?Nesterov accelerated gradient (NAG)

第4章 自适应学习率梯度下降法:学习率与自身的梯度自相关

4.1? Adagrad自适应梯度:历史平均

4.2 Adadelta:平滑平均

第5章 带二阶动态的梯度下降法

5.1 RMSprop

5.2?Adam

第6章 不同优化算法的直观比较


第1章 什么是优化算法

1.1 机器学习模型与优化算法在机器学习模型中的位置

1.2 什么是优化器

优化器在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向进行适合的更新,使得更新后的各个参数让损失函数(目标函数)值不断逼近全局最小。

换句话说:

优化器目的:就是针对指定的损失函数,通过计算机数值计算的方法,求损失函数最小值,以及在最小值时候的各种参数值(W, B参数)。

优化器手段:获取最小值的方法,是用计算机数值计算的方法,而不是用解析的方法。

1.3 什么是优化算法

寻找损失函数的最小值的方法有很多种,这些方法统称为优化算法

优化器,就是定义某种算法,通过自动调整模型的参数,使得模型的预测值(输出值)与样本值之间的误差和是最小的,就求loss函数的最小值数值方法(计算机求极小值的算法)。

1.4 优化算法的核心思想

优化算法核心的手段就是:通过损失函数的导数(梯度),经过一次次的迭代,最终找到损失函数的最小值。

1.5 损失函数的几何图形

?(1)一元函数的loss函数 (只有一个W参数)

?(2)多元函数的loss函数(多个W,B参数 )

1.6 损失函数具有最小值的条件

并非所有的函数都有最小值,有最小值的函数,必须满足如下的条件:

?

第2章 基础版梯度下降法:独立可变梯度

2.1? 什么是梯度下降法(Gradient Descent)

梯度下降法是最基本的一类优化器,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法。

基本策略可以理解为”在有限视距内寻找最快路径下山“,因此每走一步,参考当前位置最陡的方向(即梯度)进而迈出下一步。可以形象的表示为:

?o??′??°??¢ˉ?o|??é?è?°

?¨è?é??¥????è?°

2.2 三种基本版梯度下降法

目前主要分为三种同源的梯度下降法,他们之前的区别在于一次迭代所需要的样本的数量

(1)标准梯度下降法(GD, Gradient Descent):每次迭代计算,使用所有的样本。

θ=θ?η??θJ(θ)
每迭代一步,都要用到训练集的所有数据,每次计算出来的梯度求平均
η代表学习率LR

(2)随机梯度下降法(SGD, Stochastic Gradient Descent),每次迭代计算,使用有限个随机样本。

θ=θ?η??θJ(θ;x(i);y(i))
通过每个样本来迭代更新一次,以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。

(3)批量梯度下降法(BGD, Batch Gradient Descent),每次迭代,所有样本中的一组样本。

θ=θ?η??θJ(θ;x(i:i+n);y(i:i+n))
为了避免SGD和标准梯度下降中存在的问题,对每个批次中的n个训练样本,这种方法只执行一次更新。【每次更新全部梯度的平均值】

第3章?加强版梯度下降法:带一阶动量的梯度

动量优化方法是在梯度下降法的基础上进行的改变,具有加速梯度下降的作用。

一般有标准动量优化方法Momentum、NAG(Nesterov accelerated gradient)动量优化方法。

3.1 Momentum

Momentum是模拟物理里动量的概念,积累之前的梯度(称为动量)来替代真正的梯度,并作为当的梯度。即在正确梯度方向上加速,并且抑制波动方向张的波动大小,在后期本次计算出来的梯度会很小,以至于无法跳出局部极值,Momentum方法也可以帮助跳出局部极值

3.2?Nesterov accelerated gradient (NAG)

?

?NAG方法收敛速度明显加快。波动也小了很多。

第4章 自适应学习率梯度下降法:学习率与自身的梯度自相关

前面的一系列优化算法有一个共同的特点,就是对于每一个参数都用相同的学习率进行更新。

但是在实际应用中各个参数的重要性肯定是不一样的,所以我们对于不同的参数要动态的采取不同的学习率,让目标函数更快的收敛。

4.1? Adagrad自适应梯度:历史平均

adagrad方法是将每一个参数每一次迭代的梯度取平方累加再开方,用基础学习率除以这个数,来做学习率的动态更新。

这样一来,每一个参数的学习率就与他们自身的梯度有关系了,那么每一个参数的学习率就不一样了!也就是所谓的自适应学习率。

Adagrad的一大优势时可以避免手动调节学习率,比如设置初始的缺省学习率为0.01,然后就不管它,另其在学习的过程中自己变化。当然它也有缺点,就是它计算时要在分母上计算梯度平方的和,由于所有的参数平方【上述公式推导中并没有写出来是梯度的平方,感觉应该是上文的公式推导忘了写】必为正数,这样就造成在训练的过程中,分母累积的和会越来越大。这样学习到后来的阶段,网络的更新能力会越来越弱,能学到的更多知识的能力也越来越弱,因为学习率会变得极其小【就会提前停止学习】,为了解决这样的问题又提出了Adadelta算法。

4.2 Adadelta:平滑平均

Adagrad会累加之前所有的梯度平方,而Adadelta只累加固定大小的项【其实就是相当于指数滑动平均,只用了前多少步的梯度平方平均值】,并且也不直接存储这些项,仅仅是近似计算对应的平均值【这也就是指数滑动平均的优点】

第5章 带二阶动态的梯度下降法

5.1 RMSprop

RMSProp算法的全称叫 Root Mean Square Prop,

在上面的Momentum优化算法中,虽然初步解决了优化中摆动幅度大的问题。所谓的摆动幅度就是在优化中经过更新之后参数的变化范围,如下图所示,蓝色的为Momentum优化算法所走的路线,绿色的为RMSProp优化算法所走的路线。?

为了进一步优化损失函数在更新中存在摆动幅度过大的问题,并且进一步加快函数的收敛速度,RMSProp算法对权重?W?和偏置 B?的梯度使用了微分平方加权平均数。?

??????3èμ°?è·ˉ?o?

5.2?Adam

Adam = Adaptive + Momentum,顾名思义Adam集成了SGD的一阶动量和RMSProp的二阶动量

SGD可以使用类似于物理中的动量来累积梯度,RMSProp可以使得收敛速度更快同时使得波动的幅度更小。Adam把它们的优点结合起来,以取得的更好的表现效果。

第6章 不同优化算法的直观比较

图 3 中,我们可以看到不同算法在损失面等高线图中的学习过程,它们均同同一点出发,但沿着不同路径达到最小值点。其中 Adagrad、Adadelta、RMSprop 从最开始就找到了正确的方向并快速收敛;SGD 找到了正确方向但收敛速度很慢;SGD-M 和 NAG 最初都偏离了航道,但也能最终纠正到正确方向,SGD-M 偏离的惯性比 NAG 更大。

图 4 展现了不同算法在鞍点处的表现。这里,SGD、SGD-M、NAG 都受到了鞍点的严重影响,尽管后两者最终还是逃离了鞍点;而 Adagrad、RMSprop、Adadelta 都很快找到了正确的方向。

不同算法,主要区别在于:

  • 是否能够跳出极小值
  • 收敛速度

提速又可以归纳为以下几个方面:
- 使用动量momentum来保持前进方向(velocity);
- 为每一维参数设定不同的学习率:进;在梯度连续性强的方向上加速前
- 用历史迭代的平均值归一化学习率:突出稀有的梯度。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120589554

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:04:52  更:2021-10-03 17:06:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:57:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码