机器学习常见的优化算法:

1.梯度下降法:
梯度:如果函数是一维的变量,则梯度就是导数的方向;
如果是大于一维的,梯度就是在这个点的法向量,并指向数值更高的等值线,这就是为什么求最小值的时候要用负梯度。

梯度下降法的缺点:
(1)靠近极小值时收敛速度减慢,如下图所示;
(2)直线搜索时可能会产生一些问题;
(3)可能会“之字形”地下降。

三种梯度下降方法:
1.批量梯度下降法(BGD)(适合小量样本)
2.随机梯度下降(SGD)(适合大量样本)
3.共轭梯度法

SGD和BGD的比较:
SGD的问题是噪音比BGD要多,使得SGD不是每次迭代都向着整体最优的方向,SGD以损失一部分精确度和增加一定的迭代次数为代价,
换取了总体的优化效率的提升,增加的迭代次数远小于样本的数量。
BGD:最小化所有训练样本的损失函数,使得最终求解的是全局最优解,即使得求解的风险函数最小,但是对于大规模样本效率较低。
SGD:最小化所择的每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优的方向,但是大方向是全局最优解,
最终的结果往往是在全局最优解的附近,适用于大规模的训练样本情况。

2.牛顿法:
优点:二阶收敛,收敛速度快;
缺点:牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。

3.拟牛顿法:
拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,
它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。

梯度下降法和牛顿法的比较:
1.从本质来说,梯度下降法是一阶收敛,牛顿法是二阶收敛,所以牛顿法的收敛速度更快。
2.梯度下降法每次考虑的是当前位置的负梯度下降,而牛顿法不但考虑当前位置下降的是否够快,
还会考虑下一步下降的是否够大,也就是说牛顿法目标更长远一点。
3.牛顿法是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法使用一个平面去拟合当前的局部曲面,
通常情况二次曲面拟合会比平面更好,所以牛顿法的下降路径会更符合真实的最优下降路径。

4.启发式优化方法:包括模拟退火方法、遗传算法、蚁群算法、粒子群算法等

5.EM算法:
EM算法的思想和过程:
E-step:E的全称是Exception,即期望的意思;也就是获取期望的过程,即E过程。
M-step:M的全称是Maximization,即最大化的意思,是期望最大化的过程;
得到一轮期望值以后,重新计算模型参数,以最大化期望值。这个过程为最大化过程,即M过程。

EM算法结果:
EM算法不一定能保证获得全局最优解,但如果我们优化的目标函数是一个凸函数,那么一定能保证得到全局最优,否则可能获得局部最优;
因为如果优化的目标函数有多个峰值点,则如果优化到某个不是最高的峰值点处,则会无法再继续下去,这样获得的是局部最优。

常见的EM算法有:隐含马尔科夫模型的训练方法Baum-Welch算法、最大熵模型的训练方法GIS算法等。

小结:在机器学习中的无约束优化算法,除了梯度下降以外,还有前面提到的最小二乘法,此外还有牛顿法和拟牛顿法。

梯度下降法和最小二乘法相比:
梯度下降法需要选择步长,而最小二乘法不需要;梯度下降法是迭代求解,最小二乘法是计算解析解;
如果样本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有优势,计算速度很快;
但是如果样本量很大,用最小二乘法由于需要求一个超级大的逆矩阵,这时就很难或者很慢才能求解了,使用迭代的梯度下降法比较有优势。

梯度下降法和牛顿法/拟牛顿法相比:
两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。
相对而言,使用牛顿法/拟牛顿法收敛更快。但是每次迭代的时间比梯度下降法长。

机器学习常见的优化算法相关推荐

  1. louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...

    本系列文章已转至 机器学习的优化器​zhuanlan.zhihu.com 优化算法在机器学习中扮演着至关重要的角色,了解常用的优化算法对于机器学习爱好者和从业者有着重要的意义. 这系列文章先讲述优化算 ...

  2. 我的机器学习主线「优化算法」

    文章目录 优化算法 凸性 凸集 凸函数 凸函数的局部极小值 凸函数的下水平集 凸性和二阶导数 詹森不等式 约束 拉格朗日函数 惩罚 投影 小结 适定 病态 条件数 小结 梯度下降算法 一维梯度下降 多 ...

  3. 基于机器学习梯度下降优化算法来寻找最佳的线性回归模型

    https://www.toutiao.com/a6638782437587419652/ 幻风的AI之路 2018-12-25 18:12:27 线性回归模型 线性回归模型是一个非常简单的算法模型, ...

  4. 【常见的优化算法介绍】

    常见的优化算法介绍 1. 批量梯度下降算法(batch gradient descent BGD) 每次迭代都需要把所有样本都送入,这样的好处是每次迭代都顾及了全部的样本,做的是全局最优化,但是有可能 ...

  5. 【机器学习基础】优化算法详解

    本文来源于吴恩达老师的深度学习课程[1]和深度学习课程[2]笔记部分. 作者:黄海广[3] 备注:笔记和作业(含数据.原始作业文件).视频都在 github[4]中下载. 导语 在学习机器学习的过程中 ...

  6. 常见迭代优化算法解析及python实现

    目录 1.梯度下降 1.1.1批量梯度下降:每次迭代依据全体样本的误差结果更新回归系数 1.1.2随机梯度下降:每次迭代依据某个样本的误差结果更新回归系数 1.1.3小批量梯度下降:每次迭代依据部分样 ...

  7. 机器学习中的优化算法!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 在机器学习中,有很 ...

  8. [机器学习]超参数优化算法-SuccessiveHalving与Hyperband

    一 传统优化算法 机器学习中模型性能的好坏往往与超参数(如batch size,filter size等)有密切的关系.最开始为了找到一个好的超参数,通常都是靠人工试错的方式找到"最优&qu ...

  9. 机器学习知识总结系列-机器学习中的优化算法总结(1-4)

    文章目录 1.梯度下降 1.1批量梯度下降(BGD) 1.2随机梯度下降(SGD) 1.3 小批量随机梯度下降(MSGD) 1.4 比较: 1.5 动量算法(momentum) 1.6 Nestrov ...

  10. 机器学习中的优化算法介绍

    在机器学习中,有很多的问题并没有解析形式的解,或者有解析形式的解但是计算量很大(譬如,超定问题的最小二乘解),对于此类问题,通常我们会选择采用一种迭代的优化方式进行求解.   这些常用的优化算法包括: ...

最新文章

  1. ExtJS 表单 submit时错误处理
  2. 信号源的ALC环路介绍
  3. lind.ddd博客笔记索引
  4. maven deploy plugin_Maven工程概念和关系
  5. hdfs web_ui深入讲解、服务启动日志分析、NN SNN关系
  6. python大型项目经验_图像分类:13个Kaggle项目的经验总结
  7. html的id不能有.吗,html – 哪些DOM元素不能接受id?
  8. 右手残疾学计算机学什么专业好,我是右手和右脚残疾 左手和左脚好的 可以学残疾人驾照吗...
  9. 关于Nginx里面的配置文件里面的location参数的意思
  10. QQ分析和密码获取,阿里旺旺分析和密码获取,新浪UC分析和密码获取,以及所有的UC端...请不要乱用,我可不负责
  11. WA47 电子管麦克风
  12. 【一名合格前端工程师的自检清单】--自检答案
  13. 将蓝牙rssi(信号强度)转换成距离
  14. 机器学习从入门到创业手记-处理数据的乐趣在于挖掘
  15. b站爬虫,用于查询主播舰队用户等级构成
  16. 用NDK-r25编译libpng
  17. 机器人硬件需求描述标准化
  18. 选择结构【C语言程序设计】
  19. 计算机文字处理选择题,网络学院统考计算机文字处理选择题及答案-20210314081302.docx-原创力文档...
  20. 《被讨厌的勇气》---希望大家都能勇敢前行

热门文章

  1. 旷视科技 CSG 算法负责人姚聪:深度学习时代的文字检测与识别技术 | AI 研习社 103 期大讲堂...
  2. 知到网课教师口语艺术考试题库(含答案)
  3. 遗传算法求解TSP问题-python实现
  4. 易车网报价和4s店相比哪个低?
  5. 小程序开发——配置https后台接口访问
  6. 也许下一个倾家荡产的就是你
  7. excel 2003 VBA编程入门教程
  8. cad 计算机图库,CAD超级图库
  9. windows7系统下使DOS窗口最大化(全屏)
  10. 计算机中常用的声音编辑工具有哪些,电脑常用音频剪辑软件