←上一篇 ↓↑ 下一篇→
2.9 学习率衰减 回到目录 2.11 总结

局部最优的问题 (The Problem of Local Optima)

在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,我们对局部最优的理解也发生了改变。我向你展示一下现在我们怎么看待局部最优以及深度学习中的优化问题。

这是曾经人们在想到局部最优时脑海里会出现的图,也许你想优化一些参数,我们把它们称之为 W1W_1W1​ 和 W2W_2W2​ ,平面的高度就是损失函数。在图中似乎各处都分布着局部最优。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。如果你要作图计算一个数字,比如说这两个维度,就容易出现有多个不同局部最优的图,而这些低维的图曾经影响了我们的理解,但是这些理解并不正确。事实上,如果你要创建一个神经网络,通常梯度为零的点并不是这个图中的局部最优点,实际上成本函数的零梯度点,通常是鞍点。

也就是在这个点,这里是 W1W_1W1​ 和 W2W_2W2​ ,高度即成本函数 JJJ 的值。

但是一个具有高维度空间的函数,如果梯度为0,那么在每个方向,它可能是凸函数,也可能是凹函数。如果你在2万维空间中,那么想要得到局部最优,所有的2万个方向都需要是这样,但发生的机率也许很小,也许是 2−200002^{-20000}2−20000 ,你更有可能遇到有些方向的曲线会这样向上弯曲,另一些方向曲线向下弯,而不是所有的都向上弯曲,因此在高维度空间,你更可能碰到鞍点。

就像下面的这种:

而不会碰到局部最优。至于为什么会把一个曲面叫做鞍点,你想象一下,就像是放在马背上的马鞍一样,如果这是马,这是马的头,这就是马的眼睛,画得不好请多包涵,然后你就是骑马的人,要坐在马鞍上,因此这里的这个点,导数为0的点,这个点叫做鞍点。我想那确实是你坐在马鞍上的那个点,而这里导数为0。

所以我们从深度学习历史中学到的一课就是,我们对低维度空间的大部分直觉,比如你可以画出上面的图,并不能应用到高维度空间中。适用于其它算法,因为如果你有2万个参数,那么 JJJ 函数有2万个维度向量,你更可能遇到鞍点,而不是局部最优点。

如果局部最优不是问题,那么问题是什么?结果是平稳段会减缓学习,平稳段是一块区域,其中导数长时间接近于0,如果你在此处,梯度会从曲面从从上向下下降,因为梯度等于或接近0,曲面很平坦,你得花上很长时间慢慢抵达平稳段的这个点,因为左边或右边的随机扰动,我换个笔墨颜色,大家看得清楚一些,然后你的算法能够走出平稳段(红色笔)。

我们可以沿着这段长坡走,直到这里,然后走出平稳段。

所以此次视频的要点是,首先,你不太可能困在极差的局部最优中,条件是你在训练较大的神经网络,存在大量参数,并且成本函数 JJJ 被定义在较高的维度空间。

第二点,平稳段是一个问题,这样使得学习十分缓慢,这也是像Momentum或是RMSpropAdam这样的算法,能够加速学习算法的地方。在这些情况下,更成熟的优化算法,如Adam算法,能够加快速度,让你尽早往下走出平稳段。

因为你的网络要解决优化问题,说实话,要面临如此之高的维度空间,我觉得没有人有那么好的直觉,知道这些空间长什么样,而且我们对它们的理解还在不断发展,不过我希望这一点能够让你更好地理解优化算法所面临的问题。

课程PPT




←上一篇 ↓↑ 下一篇→
2.9 学习率衰减 回到目录 2.11 总结

2.10 局部最优的问题-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授相关推荐

  1. 0.0 目录-深度学习第五课《序列模型》-Stanford吴恩达教授

    文章目录 目录 第五课 第四课 第三课 第二课 第一课 目录 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1. ...

  2. 0.0 目录-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  3. 0.0 目录-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  4. 2.11 总结-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.10 局部最优的问题 回到目录 3.1 调试处理 总结 习题 第 51 题 当输入从第8个mini-batch的第7个的例子的时候,你会用哪种符号表示第3层的激活? A. ...

  5. 0.0 目录-深度学习第二课《改善神经网络》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  6. 0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  7. 深度学习教程(6) | 神经网络优化算法(吴恩达·完整版)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/35 本文地址:https://www.showmeai.tech/article-d ...

  8. 2.9 学习率衰减-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.8 Adam 优化算法 回到目录 2.10 局部最优的问题 学习率衰减 (Learning Rate Decay) 加快学习算法的一个办法就是随时间慢慢减少学习率,我们将 ...

  9. 机器学习和深度学习到底怎么学?顶尖专家吴恩达告诉你

    机器学习和深度学习到底怎么学? 在外国版知乎上,有位网友问:新手如何学习机器学习?学习完MOOC的课程后有没有能力阅读研究论文或者真正的做出一点研究成果? 这个困惑很多人的问题吴恩达给出了详细的回答, ...

最新文章

  1. 重装windows installer
  2. 玩转python轻松过二级 百度网盘,玩转Python轻松过二级
  3. win10系统运行python虚拟环境执行ll_env\Scripts\activate : 无法加载文件的解决方法(亲测有效)
  4. Alter操作(修改列名,修改列数据类型,增加列,删除列,增加列且设为主键及对默认值操作)
  5. Windows常用快捷键整理
  6. php xss 实例,php - 关于sql注入和xss的具体实例分析
  7. (7)Zynq AXI_GP接口介绍
  8. js图片加载效果(延迟加载+瀑布流加载)
  9. HDU - 3506 Monkey Party
  10. c# gerber文件读取_必须收藏的一篇关于:AD18生成gerber文件及用CAM350读取gerber教程...
  11. jks签名文件转pk8
  12. mysql中MVCC多版本并发控制原理的详解
  13. Fedora 9与Windows共享文件
  14. 综合布线系统技术是建设智慧城市的血脉
  15. Android Software
  16. APK 本地化/修改利器 —— 《android-apktool》
  17. 04-05赛季欧洲冠军杯决赛.AC milan vs Liverpool
  18. 倒梁法matlab,柱下条形基础等基础工程.ppt
  19. 计算机教师工作日志,【小学教师工作日志简短】_小学教师每日工作日志范文...
  20. Cisco packet tracer基本操作(快速入门了解这个软件)

热门文章

  1. CentOs下手动升级node版本
  2. Python 操作 MySQL 的正确姿势
  3. STM32 SPI的使用
  4. ajax判断用户名是否已经存在
  5. SQL Server 2005 Express
  6. 在程序中设置最小化、最大化、关闭按钮
  7. 在继承中派生类成员的访问权限测试
  8. 一道微软面试题的运算过程解析
  9. Java Class文件结构
  10. python路径找类并获取静态字段