机器学习萌新必备的三种优化算法.docx

上传人:安*** 文档编号:73268361 上传时间:2023-02-17 格式:DOCX 页数:12 大小:20.88KB
返回 下载 相关 举报
机器学习萌新必备的三种优化算法.docx_第1页
第1页 / 共12页
机器学习萌新必备的三种优化算法.docx_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《机器学习萌新必备的三种优化算法.docx》由会员分享,可在线阅读,更多相关《机器学习萌新必备的三种优化算法.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、机器学习萌新必备的三种优化算法11月30日,2021亚马逊云科技re:Invent全球大会,即将浩大开启!2021re:Invent十周年度十分活动,内容的饕餮盛宴,涵盖产品、行业、社区等专题!立即预约|NasirHemed编译|Rachel出品|AI科技大本营idrgznai100【导读】在本文中对常用的三种机器学习优化算法牛顿法、梯度下降法、最速下降法进展了介绍以及比拟并结合算法的数学原理以及实际案例给出了优化算法选择的一些建议。浏览本文的根底准备线性代数多变量微积分对凸函数的根本知识我们都知道机器学习中最重要的内容之一就是优化问题。因此找到一个可以对函数做合理优化的算法始终是我们关注的问

2、题。当前我们使用最多的优化算法之一是梯度下降算法。在本文中我们会对梯度下降算法和一些其他的优化算法进展介绍并尝试从理论角度来理解它们。本文介绍的核心算法包括牛顿法NewtonsMethod最速下降法SteepDescent梯度下降法GradientDescent假如想对这些算法有更多解析你可以浏览斯坦福大学的?凸函数优化第三局部?教材。在本文中我们主要关注二次函数以及多项式函数。对待优化函数的根本假设一般而言我们假设我们处理的函数的导数都是连续的例如fC。对于牛顿法我们还需要假设函数的二阶导数也是连续的例如fC。最后我们还需要假设需要最小化的函数是凸函数。这样一来假如我们的算法集中到一个点一般

3、称为部分最小值我们就可以保证这个值是一个全局最优。牛顿法单变量函数的情况x_nstartingpointx_n1x_n-(f(x_n)/f(x_n)while(f(x_n)!f(x_n1):x_nx_n1x_n1x_n-(f(x_n)/f(x_n)牛顿法的根本思想是需要优化的函数f在部分可以近似表示为一个二次函数。我们只需要找到这个二次函数的最小值并将该点的x值记录下来。之后重复这一步骤直到最小值不再变化为止。多变量函数的情况对于单变量的情况牛顿法比拟可靠。但是在实际问题中我们处理的单变量情形其实很少。大多数时候我们需要优化的函数都包含很多变量例如定义在实数集n的函数。因此这里我们需要对多变量

4、的情形进展讨论。假设xn那么有x_nstarting_pointx_n1x_n-inverse(hessian_matrix)(gradient(x_n)while(f(x_n)!f(x_n1):x_nx_n1x_n1x_n-inverse(hessian_matrix)(gradient(x_n)其中gradient(x_n)是函数位于x_n点时的梯度向量hessian_matrix是一个尺寸为nxn的黑塞矩阵hessianmatrix其值是函数位于x_n的二阶导数。我们都知道矩阵转换的算法复杂度是非常高的O(n)因此牛顿法在这种情形下并不常用。梯度下降梯度下降是目前为止在机器学习以及其他优

5、化问题中使用的最多的优化算法。梯度算法的根本思想是在每次迭代中向梯度方向走一小步。梯度算法还涉及一个恒定的alpha变量该变量规定每次跨步的步长。下面是算法例如alphasmall_constantx_nstarting_pointx_n1x_n-alpha*gradient(x_n)while(f(x_n)!f(x_n1):#Maytakealongtimetoconvergex_nx_n1x_n1x_n-alpha*gradient(x_n)这里alpha是在每次迭代中更新x_n时都需要使用的变量一般称为超参数。下面我们对alpha值的选择进展简单分析。假如我们选择一个很大的alpha我们

6、很可能会越过最优点并离最优点越来越远。事实上假如alpha的值过大我们甚至会完全偏离最优点。当alpha的值过大时10次迭代后的梯度下降情况另外假如我们选择的alpha值过小那么可能需要经过非常屡次迭代才能找到最优值。并且当我们接近最优值时梯度会接近于0。因此假如alpha的值过小我们有可能永远都无法到达最优点。当alpha的值过小时10次迭代后的梯度下降情况因此我们可能需要多尝试一些alpha的值才能找到最优的选择。假如选择了一个适宜的alpha值我们在迭代时往往能节省很多时间。当alpha的值合理时10次迭代后的梯度下降情况最速下降法最速下降法以及梯度下降法非常相似但是最速下降法对每次迭代

7、时要求步长的值为最优。下面是最速下降法的算法例如x_nstarting_pointalpha_kget_optimizer(f(x_n-alpha*gradient(x_n)x_n1x_n-alpha_n*gradient(x_n)while(f(x_n)!f(x_n1):x_nx_n1alpha_kget_optimizer(f(x_n-alpha*gradient(x_n)x_n1x_n-alpha_n*gradient(x_n)其中x_n以及x_n1是n上的向量是算法的输入gradient是函数f在点x_n的梯度alpha_k的数学表示如下因此在对原始函数进展优化时我们需要在每一次迭代中

8、对一个内部函数进展优化。这样做的优点是这个内部优化函数是一个单变量函数它的优化不会非常复杂例如我们可以使用牛顿法来作为这里的函数。但是在更多情形下在每一步中优化这个函数都会带来比拟昂贵的花销。二次式函数的特殊情形对于均方误差函数其中I是单位矩阵yQwb。为了简化讨论这里我们只考虑寻找权重w最优值的情形假设b是连续的。将等式yQwb带入上式并进展一定整理后我们可以得到如下等式如今我们重新查看一下g()我们会发现假如我们使用点k处的梯度由于其为最优值该梯度应当为0。因此我们有如下等式对上式进展简化并将f的梯度带入后我们可以得到对于k的表示如下这就是在二次函数情形下k的值。对二次函数的收敛性分析对于

9、定义在上的二次函数最速下降法一般用来在非常接近最优值时使用使用步数不超过十步。二维中的最速下降在4次迭代后的情形在上图中每一次迭代中的改变方向都是垂直的。在3到4次迭代后我们可以发现导数的变化根本可以忽略不计了。为什么最速下降法应用很少最速下降法算法远远知足了超参数调优的需求并且保证能找到部分最小值。但是为什么该算法应用不多呢最速下降法的问题在于每一步都需要对aplha_k进展优化这样做的本钱相对高昂。例如对于二次函数每次迭代都需要计算屡次矩阵乘法和向量点乘。但对于梯度下降每一步只需要计算导数并更新值就可以了这样做的本钱远远低于最速下降算法。最速下降算法的另一个问题是对于非凸函数的优化存在困难

10、。对于非凸函数aplha_k可能没有固定的值。对于梯度下降法以及最速下降法的比照在这一局部我们对梯度下降法以及最速下降法进展比照并比拟它们在时间代价上的差异。首先我们比照了两种算法的时间花销。我们会创立一个二次函数f:该函数为一个2000x2000的矩阵。我们将对该函数进展优化并限制迭代次数为1000次。之后我们会对两种算法的时间花销进展比照并查看x_n值与最优点的间隔。我们先来看一下最速下降法0Diff:117727672.56583363alphavalue:8.032725864804974e-06100Diff:9264.791000127792alphavalue:1.0176428

11、564615889e-05200Diff:1641.154644548893alphavalue:1.0236993350903281e-05300Diff:590.5089467763901alphavalue:1.0254560482036439e-05400Diff:279.2355946302414alphavalue:1.0263893422517941e-05500Diff:155.43169915676117alphavalue:1.0270028681773919e-05600Diff:96.61812579631805alphavalue:1.0274280663010468

12、e-05700Diff:64.87719237804413alphavalue:1.027728512597358e-05800Diff:46.03102707862854alphavalue:1.0279461929697766e-05900Diff:34.00975978374481alphavalue:1.0281092917213468e-05Optimizerfoundwithx-1.688252615.31853629-3.45322318.1.59365232-2.851146895.04026352andf(x)-511573479.5792374in1000iteration

13、sTotaltimetaken:1min28s下面是梯度下降法的情况其中alpha0.0000010Diff:26206321.312622845alphavalue:1e-06100Diff:112613.38076114655alphavalue:1e-06200Diff:21639.659786581993alphavalue:1e-06300Diff:7891.810685873032alphavalue:1e-06400Diff:3793.90934664011alphavalue:1e-06500Diff:2143.767760157585alphavalue:1e-06600Di

14、ff:1348.4947955012321alphavalue:1e-06700Diff:914.9099299907684alphavalue:1e-06800Diff:655.9336211681366alphavalue:1e-06900Diff:490.05882585048676alphavalue:1e-06Optimizerfoundwithx-1.808624884.66644055-3.08228401.2.46891076-2.575817745.34672724andf(x)-511336392.26658595in1000iterationsTotaltimetaken

15、:1min16s我们可以发现梯度下降法的速度比最速下降法略快几秒或者几分钟。但更重要的是最速下降法采取的步长比梯度下降法更加合理尽管梯度下降法的的值并非最优。在上述例如中对于梯度下降算法f(xprex)以及f(curr)在第900次迭代时的差为450。而最速下降法在很屡次迭代前就已经到达这个值了大约在第300次到第400次迭代之间。因此我们尝试限制最速下降法的迭代次数为300输出如下0Diff:118618752.30065191alphavalue:8.569151292666038e-06100Diff:8281.239207088947alphavalue:1.1021416896567

16、156e-05200Diff:1463.1741587519646alphavalue:1.1087402059869253e-05300Diff:526.3014997839928alphavalue:1.1106776689082503e-05Optimizerfoundwithx-1.333628995.89337889-3.31827817.1.77032789-2.867791564.56444743andf(x)-511526291.3367646in400iterationsTimetaken:35.8s可以发现最速下降法的速度实际更快。在此情形中我们在每次迭代使用更少的步数就能

17、逼近最优值。事实上假如你的目的是估计最优值最速下降法会比梯度下降法更适宜。对于低维度的函数10步的最速下降法就会比经过1000次迭代的梯度下降法更接近最优值。下面这个例子中我们使用了一个定义在上的二次函数。10步后最速下降法的得到函数值为f(x)-62434.18。而梯度下降法在1000步后得到的函数值为f(x)-61596.84。可以发现最速下降法在10步后的结果就优于梯度下降法在1000步后的结果。需要记住的是这种情形仅在处理二次函数的时候适用。整体而言在每次迭代中都找到k的最优值是较为困难的。对函数g()求最优值并不总能得到k的最优值。通常我们会使用迭代的算法来对优化函数求最小值。在这种

18、情形下最速下降法与梯度下降法相比就比拟慢了。因此最速下降法在实际应用中并不常见。总结在本文中我们学习了三种下降算法牛顿法Newtonsmethod牛顿法提供了对函数的二阶近似并在每一步都对函数进展优化。其最大的问题在于在优化经过中需要进展矩阵转换对于多变量情形花销过高尤其是向量的特征较多的时候。梯度下降GradientDescent梯度下降是最常用的优化算法。由于该算法在每步只对导数进展计算其花销较低速度更快。但是在使用该算法时需要对步长的超参数进展屡次的猜想以及尝试。最速下降法SteepestDescent最速下降法在每步都对函数的梯度向量寻找最优步长。它的问题在于在每次迭代中需要对相关的函

19、数进展优化这会带来很多花销。对于二次函数的情形尽管每步都涉及很多矩阵运算最速下降法的效果仍然更优。相关笔记可参阅s:/colab.research.google/gist/nasirhemed/0026e5e6994d546b4debed8f1ed543c0/a-deeper-look-into-descent-algorithms.ipynb原文链接s:/towardsdatascience/a-deeper-look-at-descent-algorithms-13340b82db49本文为AI科技大本营编译文章转载请微信联络1092722531长三角开发者联盟代码就是力量长三角的开发者结合起来参加长三角开发者联盟将获得以下权益长三角地区明星企业内推岗位CSDN独家技术与行业报告CSDN线下活动优先介入权CSDN线上共享活动优先介入权我们祈望你是位于长三角地区上海、江苏、浙江等优秀开发者。扫码添加联盟小助手回复关键词“长三角4参加长三角开发者联盟。推荐浏览特斯拉全新自动驾驶芯片最强点击“浏览原文解析更多活动信息。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 工程图纸

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁