分类目录:《机器学习中的数学》总目录
相关文章:
· 病态
· 局部极小值
· 高原、鞍点和其他平坦区域
· 梯度消失和梯度爆炸
· 非精确梯度
· 局部和全局结构间的弱对应


优化通常是一个极其困难的任务。传统的机器学习会小心设计目标函数和约束,以确保优化问题是凸的,从而避免一般优化问题的复杂度。在训练神经网络时,我们肯定会遇到一般的非凸情况。即使是凸优化,也并非没有任何问题。在后续的文章中,我们会总结几个训练深度模型时会涉及的主要挑战。

在优化凸函数时,会遇到一些挑战。这其中最突出的是Hessian矩阵HHH的病态。这是数值优化、凸优化或其他形式的优化中普遍存在的问题。病态问题一般被认为存在于神经网络训练过程中。病态体现在随机梯度下降会“卡”在某些情况,此时即使很小的更新步长也会增加代价函数。
f(x)≈f(x(0))+(x−x(0))Tg+12(x−x(0))TH(x−x(0))f(x)\approx f(x^{(0)})+(x-x^{(0)})^Tg+\frac{1}{2}(x-x^{(0)})^TH(x-x^{(0)})f(x)≈f(x(0))+(x−x(0))Tg+21​(x−x(0))TH(x−x(0))

在上式中,代价函数的二阶泰勒级数展开预测梯度下降中的−ϵg-\epsilon g−ϵg会增加12ϵ2gTHg−ϵgTg\frac{1}{2}\epsilon^2g^THg-\epsilon g^Tg21​ϵ2gTHg−ϵgTg到代价中。当12ϵ2gTHg\frac{1}{2}\epsilon^2g^THg21​ϵ2gTHg超过ϵgTg\epsilon g^TgϵgTg时,梯度的病态会成为问题。判断病态是否不利于神经网络训练任务,我们可以监测平方梯度范数gTgg^TggTg和gTHgg^THggTHg。在很多情况中,梯度范数不会在训练过程中显著缩小,但是gTHgg^THggTHg的增长会超过一个数量级。其结果是尽管梯度很强,学习会变得非常缓慢,因为学习率必须收缩以弥补更强的曲率。如下图所示,成功训练的神经网络中,梯度显著增加。

在上图中,在用于对象检测的卷积网络的整个训练期间,梯度范数持续增加。左图是各个梯度计算的范数如何随时间分布的散点图。为了方便作图,每轮仅绘制一个梯度范数。我们将所有梯度范数的移动平均绘制为实曲线。梯度范数明显随时间增加,而不是如我们所期望的那样随训练过程收敛到临界点而减小。而右图表明尽管梯度递增,训练过程却相当成功。验证集上的分类误差可以降低到较低水平。

尽管病态还存在于除了神经网络训练的其他情况中,有些适用于其他情况的解决病态的技术并不适用于神经网络。例如,牛顿法在解决带有病态条件的Hessian矩阵的凸优化问题时,是一个非常优秀的工具。

机器学习中的数学——深度学习优化的挑战:病态相关推荐

  1. 机器学习中的数学——深度学习优化的挑战:局部极小值

    分类目录:<机器学习中的数学>总目录 相关文章: · 病态 · 局部极小值 · 高原.鞍点和其他平坦区域 · 梯度消失和梯度爆炸 · 非精确梯度 · 局部和全局结构间的弱对应 凸优化问题的 ...

  2. 机器学习中的数学——深度学习中的优化理论

    分类目录:<机器学习中的数学>总目录 深度学习算法在许多情况下都涉及优化.例如,模型中的进行推断涉及求解优化问题.我们经常使用解析优化去证明或设计算法.在深度学习涉及的诸多优化问题中,最难 ...

  3. 机器学习中的数学(七)--凸优化的基础知识

    写在前面 <机器学习中的数学>系列主要列举了在机器学习中用到的较多的数学知识,包括微积分,线性代数,概率统计,信息论以及凸优化等等.本系列重在描述基本概念,并不在应用的方面的做深入的探讨, ...

  4. 机器学习中的数学知识(part3)--凸优化

    学习笔记,仅供参考,有错必究 文章目录 机器学习中的数学知识 凸优化 非凸优化 机器学习中的数学知识 凸优化 下面是实际问题中常见的凸集,记住它们对理解后面的算法非常有帮助. n n

  5. 机器学习中的数学——牛顿迭代法(Newton‘s Method)

    分类目录:<机器学习中的数学>总目录 相关文章: · 梯度下降法(Gradient Descent) · 随机梯度下降(Stochastic Gradient Descent, SGD) ...

  6. 机器学习中的数学 人工智能深度学习技术丛书

    作者:孙博 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2019-11-01 机器学习中的数学 人工智能深度学习技术丛书 ISBN:9787517077190

  7. 我们该如何学习机器学习中的数学

    数学在机器学习中非常重要,不论是在算法上理解模型代码,还是在工程上构建系统,数学都必不可少.通常离开学校后很难有机会静下心学习数学知识,因此我们最好能通过阅读小组或读书会等形式营造环境,并专注学习那些 ...

  8. Pytorch框架的深度学习优化算法集(优化中的挑战)

    个人简介:CSDN百万访问量博主,普普通通男大学生,深度学习算法.医学图像处理专攻,偶尔也搞全栈开发,没事就写文章,you feel me? 博客地址:lixiang.blog.csdn.net Py ...

  9. 机器学习(Machine Learning)、深度学习(Deep Learning)、NLP面试中常考到的知识点和代码实现

    网址:https://github.com/NLP-LOVE/ML-NLP 此项目是机器学习(Machine Learning).深度学习(Deep Learning).NLP面试中常考到的知识点和代 ...

最新文章

  1. 1048 Find Coins(散列解法)
  2. easyui 常用按钮图标
  3. Linux-鸟菜-1-Linux简介
  4. Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17
  5. Linux下如何自己编译源代码(制作成可以安装的.deb文件)
  6. 极光推送 简书android,(Android)react-native集成极光推送
  7. sql 判断连续数字
  8. 这些人和事,埋葬了雅虎中国
  9. 蔡司数码视疲劳测试软件_数码视觉疲劳,你不知道的蓝光
  10. 苹果手机怎么打印wps文档_怎么用苹果手机打印文件?
  11. Log4j史诗级漏洞,从原理到实战,只用3个实例讲明白
  12. 【自勉-向后端架构师/音视频架构师出发】我的目标是星辰大海(4月)
  13. 图形驱动程序和显卡驱动什么区别_鸡血驱动已发布,可新买的显卡打不上驱动?这事儿别急...
  14. java 创建二维码 并加载显示到窗口
  15. 微服务项目:尚融宝(38)(核心业务流程:申请借款额度(1))
  16. 2.try(){}语法含义及用法
  17. ssh Key exchange was not finished sshd
  18. 基于S3c244的input输入子系统
  19. 计算机任务管理器不能打开,电脑任务管理器无法打开怎么办
  20. c语言程序2000行代码,C语言教务管理系统2000行代码

热门文章

  1. 关于计算机中的位、字节和字的介绍。(计算机基础)
  2. Sigmoid函数与损失函数求导
  3. java post json请求_java模拟post请求发送json
  4. 2002年在长沙一家软件公司编写医院系统文档的故事
  5. 零基础学Python语言 第一周
  6. 策略模式+注解,代替if-else
  7. Tcpcopy:[warn] many connections can't be established(阿里云)
  8. vue实战-面包屑的处理
  9. 常用数据规范化方法: min-max规范化,零-均值规范化等
  10. 剑指Offer/46-50