机器学习常见的优化算法
机器学习常见的优化算法:
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算法等。
小结:在机器学习中的无约束优化算法,除了梯度下降以外,还有前面提到的最小二乘法,此外还有牛顿法和拟牛顿法。
梯度下降法和最小二乘法相比:
梯度下降法需要选择步长,而最小二乘法不需要;梯度下降法是迭代求解,最小二乘法是计算解析解;
如果样本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有优势,计算速度很快;
但是如果样本量很大,用最小二乘法由于需要求一个超级大的逆矩阵,这时就很难或者很慢才能求解了,使用迭代的梯度下降法比较有优势。
梯度下降法和牛顿法/拟牛顿法相比:
两者都是迭代求解,不过梯度下降法是梯度求解,而牛顿法/拟牛顿法是用二阶的海森矩阵的逆矩阵或伪逆矩阵求解。
相对而言,使用牛顿法/拟牛顿法收敛更快。但是每次迭代的时间比梯度下降法长。
机器学习常见的优化算法相关推荐
- louvian算法 缺点 优化_机器学习中的优化算法(1)-优化算法重要性,SGD,Momentum(附Python示例)...
本系列文章已转至 机器学习的优化器zhuanlan.zhihu.com 优化算法在机器学习中扮演着至关重要的角色,了解常用的优化算法对于机器学习爱好者和从业者有着重要的意义. 这系列文章先讲述优化算 ...
- 我的机器学习主线「优化算法」
文章目录 优化算法 凸性 凸集 凸函数 凸函数的局部极小值 凸函数的下水平集 凸性和二阶导数 詹森不等式 约束 拉格朗日函数 惩罚 投影 小结 适定 病态 条件数 小结 梯度下降算法 一维梯度下降 多 ...
- 基于机器学习梯度下降优化算法来寻找最佳的线性回归模型
https://www.toutiao.com/a6638782437587419652/ 幻风的AI之路 2018-12-25 18:12:27 线性回归模型 线性回归模型是一个非常简单的算法模型, ...
- 【常见的优化算法介绍】
常见的优化算法介绍 1. 批量梯度下降算法(batch gradient descent BGD) 每次迭代都需要把所有样本都送入,这样的好处是每次迭代都顾及了全部的样本,做的是全局最优化,但是有可能 ...
- 【机器学习基础】优化算法详解
本文来源于吴恩达老师的深度学习课程[1]和深度学习课程[2]笔记部分. 作者:黄海广[3] 备注:笔记和作业(含数据.原始作业文件).视频都在 github[4]中下载. 导语 在学习机器学习的过程中 ...
- 常见迭代优化算法解析及python实现
目录 1.梯度下降 1.1.1批量梯度下降:每次迭代依据全体样本的误差结果更新回归系数 1.1.2随机梯度下降:每次迭代依据某个样本的误差结果更新回归系数 1.1.3小批量梯度下降:每次迭代依据部分样 ...
- 机器学习中的优化算法!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 在机器学习中,有很 ...
- [机器学习]超参数优化算法-SuccessiveHalving与Hyperband
一 传统优化算法 机器学习中模型性能的好坏往往与超参数(如batch size,filter size等)有密切的关系.最开始为了找到一个好的超参数,通常都是靠人工试错的方式找到"最优&qu ...
- 机器学习知识总结系列-机器学习中的优化算法总结(1-4)
文章目录 1.梯度下降 1.1批量梯度下降(BGD) 1.2随机梯度下降(SGD) 1.3 小批量随机梯度下降(MSGD) 1.4 比较: 1.5 动量算法(momentum) 1.6 Nestrov ...
- 机器学习中的优化算法介绍
在机器学习中,有很多的问题并没有解析形式的解,或者有解析形式的解但是计算量很大(譬如,超定问题的最小二乘解),对于此类问题,通常我们会选择采用一种迭代的优化方式进行求解. 这些常用的优化算法包括: ...
最新文章
- ExtJS 表单 submit时错误处理
- 信号源的ALC环路介绍
- lind.ddd博客笔记索引
- maven deploy plugin_Maven工程概念和关系
- hdfs web_ui深入讲解、服务启动日志分析、NN SNN关系
- python大型项目经验_图像分类:13个Kaggle项目的经验总结
- html的id不能有.吗,html – 哪些DOM元素不能接受id?
- 右手残疾学计算机学什么专业好,我是右手和右脚残疾 左手和左脚好的 可以学残疾人驾照吗...
- 关于Nginx里面的配置文件里面的location参数的意思
- QQ分析和密码获取,阿里旺旺分析和密码获取,新浪UC分析和密码获取,以及所有的UC端...请不要乱用,我可不负责
- WA47 电子管麦克风
- 【一名合格前端工程师的自检清单】--自检答案
- 将蓝牙rssi(信号强度)转换成距离
- 机器学习从入门到创业手记-处理数据的乐趣在于挖掘
- b站爬虫,用于查询主播舰队用户等级构成
- 用NDK-r25编译libpng
- 机器人硬件需求描述标准化
- 选择结构【C语言程序设计】
- 计算机文字处理选择题,网络学院统考计算机文字处理选择题及答案-20210314081302.docx-原创力文档...
- 《被讨厌的勇气》---希望大家都能勇敢前行