优化算法两大核心,一曰:方向,比如由负梯度方向给出;二曰:步长。

在机器学习领域,不管是基础的梯度下降,还是更为高级的 L-BFGS、共轭梯度,都对应的是参数学习,用来学习相关模型的参数。

1. 梯度下降

梯度下降算法可以用来处理任何非约束优化问题。它最大的问题在于无法最终保证得到全局最优的结果,即最终的结果通常不能保证使损失函数最小,而只能保证在最终结果附近,没有更好的结果。因为梯度下降算法在参数更新的过程中,只利用了参数附近的梯度,对于整个参数空间的趋势,并未进行考虑。

由于步长的确定,将该问题从科学问题变成了一个工程问题

一种方法是让步长随着时间 tt(迭代次数) 的推移而变化,一般是变小,初期大步快走,后期小步慢走,这也符合我们人类进行无启发式信息时的搜索。

2. 高级优化算法

迄今为止,我们的讨论都集中在使用梯度下降法来最小化 J(θ)J(\theta)。如果你已经实现了一个计算 J(θ)\textstyle J(\theta) 和 ∇θJ(θ)\textstyle \nabla_\theta J(\theta) 的函数,那么其实还有更精妙的算法来最小化 J(θ)\textstyle J(\theta)。

举例来说,可以想象这样一个算法:它使用梯度下降,并能够自动调整学习速率 α\textstyle \alpha,以得到合适的步长值,最终使 θ\textstyle \theta 能够快速收敛到一个局部最优解。还有更妙的算法:比如可以寻找一个 Hessian 矩阵的近似,得到最佳步长值,使用该步长值能够更快地收敛到局部最优(和牛顿法类似)。

使用这些高级优化算法时,你需要提供关键的函数:即对于任一个 θ\textstyle \theta,需要你计算出 J(θ)\textstyle J(\theta) 和 ∇θJ(θ)\textstyle \nabla_\theta J(\theta)。之后,这些优化算法会自动调整学习速率/步长值 α\textstyle \alpha 的大小(并计算 Hessian 近似矩阵等等)来自动寻找 J(θ)\textstyle J(\theta) 最小化时 θ\textstyle \theta 的值。诸如 L-BFGS 和共轭梯度算法通常比梯度下降法快很多。

机器学习基础(五十九)—— 高级优化算法(梯度下降、L-BFGS、共轭梯度)相关推荐

  1. 机器学习基础(十九)—— Trick

    Trick 1:权值初始化 weights = np.ones(N)/N 应用场景: (1)由一堆 decision stump 构成的 weak classifiers 用于AdaBoost 时的的 ...

  2. 吴恩达机器学习(二十九)大规模机器学习

    目录 1.随机梯度下降 2.Mini-Batch梯度下降 3.随机梯度下降收敛 4.减少映射与数据并行 1.随机梯度下降   对很多机器学习算法,例如线性回归.逻辑回归和神经网络,推导算法的方法是提出 ...

  3. Python编程基础:第五十九节 守护线程Daemon Threading

    第五十九节 守护线程Daemon Threading 前言 实践 前言 守护线程是在后台运行的线程,对程序的运行并不重要,你的程序在退出前不会等待守护线程的完成,此类线程的特点是,当程序中主线程及所有 ...

  4. 打怪升级之小白的大数据之旅(五十九)<Hadoop优化方案>

    打怪升级之小白的大数据之旅(五十八) Hadoop优化方案与扩展知识点 上次回顾 上一章,我们对Hadoop的扩展知识HA进行了学习,本章是我们在使用Hadoop过程中的一些优化方案和其他几个需要了解 ...

  5. [Python从零到壹] 五十九.图像增强及运算篇之图像锐化Scharr、Canny、LOG实现边缘检测

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. 互联网创新创业大赛优秀范例_第五十九期创业沙龙——“互联网+”大学生创新创业大赛实践案例...

    原标题:第五十九期创业沙龙--"互联网+"大学生创新创业大赛实践案例 第五十九期创业沙龙 第六届"互联网+".2020年"创青春"系列竞赛开 ...

  7. 【Java数据结构与算法】第十九章 贪心算法、Prim算法和Kruskal算法

    第十九章 贪心算法.Prim算法和Kruskal算法 文章目录 第十九章 贪心算法.Prim算法和Kruskal算法 一.贪心算法 1.介绍 2.支付问题 二.Prim算法 1.最小生成树 2.介绍 ...

  8. 59深度解密五十九:利用“抖音”进行吸粉的简单、另类玩法

    网络营销推广技术.技巧深度解密(五十九)指南: 1.本文档适合零基础和互联网营销推广工作者,主要讲解抖音吸粉的问题. 2.原创版权文档,任何抄袭或者全部.部分模仿都是侵权行为. 3.敬畏法律,尊重原创 ...

  9. 如何选择适合你的兴趣爱好(五十九),芭蕾舞

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第五十九讲 --芭蕾舞.如果问你芭蕾舞与其他舞有什么不同,估计每一个人都会说,那就是跳舞时要踮起脚尖.芭蕾舞最重要 ...

最新文章

  1. android popupwindow 自定义背景,Android PopupWindow背景半透明兼容方案
  2. Redis数据类型(String)
  3. PHP中文乱码的常见解决方法总结
  4. 机器学习(四)决策树
  5. Go基础编程:Go语言介绍
  6. Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程)
  7. 慌的一批!新手妹子一个命令把公司服务器数据删没了...
  8. Git 本地仓库与远程仓库链接
  9. java treelist 排序_一个很好的Java排序列表
  10. 日常管理随笔一 (转载)
  11. android屏幕有残影,如何预防手机烧屏 防止手机屏幕出现残影教程分享
  12. 使用 Git 管理 Vim 插件
  13. ARDUINO LCD显示简单的汉字、符号(保姆级教程!)
  14. 性质:自反、反自反、对称、反对称、传递、互斥
  15. Prometheus监控系统:监控交换机流量、状态等(snmp_exporter)
  16. C语言散列法求英文字母字符串求余,c语言求余数
  17. 1.第一节课,从头开始学C语言
  18. 用C语言求三位数的回文素数,C语言求回文素数
  19. 非走不可的弯路 [转]
  20. PTA 7-181 天梯赛的善良

热门文章

  1. 桌面计算机主流硬盘接口,M.2、U.2谁更好?主流硬盘接口大扫盲
  2. delphi 子接口是否实现父接口_您可以从子类接口的接口调用父接口的默认方法吗?...
  3. toad for mysql调试存储过程_【oracle】oracle 调试 存储过程
  4. git 更换密码后,pull代码 fatal: Authentication failed for '
  5. Tableau可视化学习笔记:day11-12
  6. 基于JavaScript技术完成单击事件完成显示和隐藏
  7. 【luogu P3931 SAC E#1 - 一道难题 Tree】 题解
  8. com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field FileSize
  9. IOS不支持2017-09-09的日期格式
  10. Python - shutil模块(2)——压缩目录、文件