首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    牛顿法和梯度下降法_最优化次梯度法例题

    我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等。

    01

    最速下降法收敛速度快还是慢_最速下降法是全局收敛算法吗

    摘自《数值最优化方法》 \qquad 已知 设步长为 α \alpha α,下降方向为 d d d, f ( x k + α d ) f(x_{k}+\alpha d) f(xk​+αd)在 x k x_{k} xk​的 T a y l o r Taylor Taylor展示为 f ( x k + 1 ) = f ( x k + α d ) = f ( x k ) + α g k T d + O ( ∣ ∣ α d ∣ ∣ 2 ) f(x_{k+1})=f(x_{k}+\alpha d)=f(x_{k})+\alpha g_{k}^{T}d+O(||\alpha d||^{2}) f(xk+1​)=f(xk​+αd)=f(xk​)+αgkT​d+O(∣∣αd∣∣2)为使函数值下降,下降方向满足 g k T d < 0 g_{k}^{T}d<0 gkT​d<0 \qquad 收敛性和收敛速度 收敛性 算法产生的点阵 { x k } \{x_{k}\} { xk​}在某种范数 ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣⋅∣∣意义下满足 l i m k → ∞ ∣ ∣ x k − x ∗ ∣ ∣ = 0 \mathop{lim}\limits_{k\to\infty}||x_{k}-x^{*}||=0 k→∞lim​∣∣xk​−x∗∣∣=0称算法是收敛的,当从任意初始点出发时,都能收敛到 x ∗ x^{*} x∗称为具有全局收敛性,仅当初始点与 x ∗ x_{*} x∗​充分接近时才能收敛到 x ∗ x^{*} x∗称算法具有局部收敛性。 \qquad 收敛速度(已知收敛):若 l i m k → ∞ ∣ ∣ x k + 1 − x ∗ ∣ ∣ ∣ ∣ x k − x ∗ ∣ ∣ = a \mathop{lim}\limits_{k\to\infty}\frac{||x_{k+1}-x^{*}||}{||x_{k}-x^{*}||}=a k→∞lim​∣∣xk​−x∗∣∣∣∣xk+1​−x∗∣∣​=a \qquad 当 0 < a < 1 0<a<1 0<a<1时,迭代点列 { x k } \{x_{k}\} { xk​}的收敛速度是线性的,这时算法称为线性收敛。当 a = 0 a=0 a=0时, { x k } \{x_{k}\} { xk​}的收敛速度是超线性的,称为超线性收敛。 \qquad 二阶收敛:若 l i m k → ∞ ∣ ∣ x k + 1 − x ∗ ∣ ∣ ∣ ∣ x k − x ∗ ∣ ∣ 2 = a \mathop{lim}\limits_{k\to\infty}\frac{||x_{k+1}-x^{*}||}{||x_{k}-x^{*}||^{2}}=a k→∞lim​∣∣xk​−x∗∣∣2∣∣xk+1​−x∗∣∣​=a \qquad a a a为任意常数,迭代点列 { x k } \{x_{k}\} { xk​}的收敛速度是二阶的,这时算法称为二阶收敛。超线性收敛和二阶收敛的收敛速度较快,是理想的收敛速度。 \qquad 负梯度法和牛顿 ( N e w t o n ) (Newton) (Newton)型方法 N e w t o n Newton Newton型方法特殊情形的一种负梯度方法—最速下降法。首先下降方向满足 g k T d < 0 g_{k}^{T}d<0 gkT​d<0,为使 ∣ g k d ∣ |g_{k}d| ∣gk​d∣达到最大值,则由 C a u c h y − S c h w a r z Cauchy-Schwarz Cauchy−Schwarz不等式 ∣ g k T d ∣ ≤ ∣ ∣ g k ∣ ∣ ∣ ∣ d ∣ ∣ |g_{k}^{T}d|\leq||g_{k}||||d|| ∣gkT​d∣≤∣∣gk​∣∣∣∣d∣∣知当且仅当 d = d k = − g k / ∣ ∣ g k ∣ ∣ d=d_{k}=-g_{k}/||g_{k}|| d=dk​=−gk​/∣∣gk​∣∣时,等式成立, g k T d g_{k}^{T}d gkT​d达到最小。考虑在 d k d_{k} dk​方向上的步长,取其负梯度方向即 d k = − g k d_{k}=-g_{k} dk​=−gk​。 \qquad 收敛性分析 1. 给定 G G G度量下的范数定义,给出 K a n t o r o v i c h Kantorovich Kantorovich不等式。定义 设 G ∈ R n × n G\in\mathbb{R}^{n\times n} G∈Rn×n对称正定, u , v ∈ R n u,v\in\mathbb{R}^{n} u,v∈Rn则 u u u与 v v

    03

    梯度下降法原理与仿真分析||系列(1)

    梯度下降法(Gradient Descent)也称为最速下降法(Steepest Descent),是法国数学家奥古斯丁·路易·柯西 (Augustin Louis Cauchy) 于1847年提出来,它是最优化方法中最经典和最简单的一阶方法之一。梯度下降法由于其较低的复杂度和简单的操作而在很多领域得到广泛研究和应用,如机器学习。由梯度下降法衍生了许多其他算法,如次梯度下降法,近端梯度下降法,随机梯度下降法,回溯梯度发,动量加速梯度法等等。本文只介绍最基础的梯度下降法原理和理论分析,与此同时,通过仿真来说明梯度下降法的优势和缺陷。其他重要的梯度下降衍生方法会持续更新,敬请关注。

    02

    PHP实现的贪婪算法实例

    本文实例讲述了PHP实现的贪婪算法。分享给大家供大家参考,具体如下: 背景介绍:贪婪算法与数据结构知识库算法可以说是离我们生活最近的一种算法,人总是贪婪的嘛,所以这种算法的设计是很符合人性的。之所以这么说,是因为人们会在生活中有意无意的使用贪婪算法来解决问题。最常见的就是找零钱了,每个人都没学过该怎么找零钱,但在所有面额的钱都充足时,每个人都会找出同样组合来凑够需要的钱。其实这里面就是贪婪算法在起作用。 设计思路:贪婪法的设计思路可以从两方面来理解,即直观上和数学上。从直观上理解贪婪算法就是用最快的方法来解决问题。在这里面“快”是主要目标,例如上面找零钱的例子,假如你要找的零钱为6.6元。那首先要拿一张5元的,因为这可以使你凑的钱增长最快。如果人民币有6元的面额那你肯定会选6元的而不是拿两张别的来凑6元;从数学上来理解贪婪算法就是在做判断时以当前最优解为目标,类似于最优化中的最速下降法。这种方法的好处是解题速度极快,基本上是一次历遍就可以完成。 算法缺陷:正如做人不能太贪婪一样,贪婪算法本身有着致命的缺陷,这使得其应用背景收到了很多限制。因为算法是取的局部最优解,没有考虑以后的问题。这就像一个自私自利的人一样,虽然短时间内可以获得一些利益,但长期以往,很难会有大的成就。当然,社会很复杂,也许会有人一直自私下去而生活的还不错。这体现在算法上就是在一些情况下(具体下面会提到),贪婪算法是可以得到最优解的,这对于算法设计来说当然是好事。

    03

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券