- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机器学习中常见的几种优化方法
阅读目录
梯度下降法( Gradient Descent )
牛顿法和拟牛顿法( Newtons method amp;
Quasi-Newton Methods )
共轭梯度法( Conjugate Gradient )
启发式优化方法
解决约束优化问题——拉格朗日乘数法
我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种
数学方法,它是研究在给定约束之下如何寻求某些因素 (的
),以使某一 (或某些 )指标达到最优的一些学科的总称。随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进
行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯
度法等等。
回到顶部
1. 梯度下降法( Gradient Descent )
梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。梯度下降法的搜索迭代示意图如下图所示:
牛顿法的缺点:
1 )靠近极小值时收敛速度减慢,如下图所示;
2 )直线搜索时可能会产生一些问题;
3 )可能会“之字形”地下降。
从上图可以看出,梯度下降法在接近最优解的区域收敛速度明显变慢,利用梯度下降法求解需要很多次的迭代。
在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。
比如对一个线性回归( Linear Logistics )模型,假设下面的 h(x) 是要拟合的函数, J(theta) 为损失函数, theta 是参数,要迭代求解的值, theta 求解出来了那最终要拟合的函
h(theta) 就出来了。其中 m 是训练集的样本个数, n 是特征的个数。
1)批量梯度下降法( Batch Gradient Descent , BGD )
1 )将 J(theta) 对 theta 求偏导,得到每个 theta 对应的的梯度:
2)由于是要最小化风险函数,所以按每个参数theta
的梯度负方向,来更新每个 theta :
3 )从上面公式可以注意到,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果
很大,那么可想而知这种方法的迭代速度会相当的慢。所以,这就引入了另外一种方法——随机梯度下降。
对于批量梯度下降法,样本个数 m, x 为 n 维向量,一
次迭代需要把 m 个样本全部带入计算,迭代一次计算量为
m*n2 。
2)随机梯度下降 ( Random Gradient Descent ,RGD )
1 )上面的风险函数可以写成如下这种形式,损失函数对应的是训练集中每个样本的粒度,而上面批量梯度下降对应的是所有的训练样本:
2)每个样本的损失函数,对 theta 求偏导得到对应梯度,来更新 theta :
3 )随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万) ,那么可能只用其中
几万条或者几千条的样本, 就已经将 theta 迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样
本,一次迭代不可能最优,如果迭代 10 次的话就需要遍历
训练样本 10 次。但是,SGD 伴随的一个问题是噪音较 BGD
要多,使得 SGD 并不是每次迭代都向着整体最优化方向。
随机梯度下降每次迭代只使用一个样本,迭代一次计算量为 n2 ,当样本个数 m 很大的时候,随机梯度下降迭代一次的速度要远高于批量梯度下降方法。两者的关系可以这样
理解:随机梯度下降方法以损失很小的一部分精确度和增加
一定数量的迭代次数为代价,换取了总体的优化效率的提升。
增加的迭代次数远远小于样本的数量。
对批量梯度下降法和随机梯度下降法的总结:
批量梯度下降 --- 最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下。
随机梯度下降 --- 最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向,
但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于大规模训练样本情况。
回到顶部
文档评论(0)