Name: Password: Sign in
多变量微积分 中的文章
  • 梯度方向与最速下降方向的关系
  • 本文在 署名-非商业性使用-相同方式共享 3.0 版权协议下发布, 转载请注明出自 kyleslight.net

    梯度方向与最速下降方向的关系

    该问题来自于Andrew Ng 的 Machine Learning Lecture 2 中一个学生的提问.

    按照 Ng 的说法:

    … and you’re standing there, and would look around and ask, if I take a small step, what’s the direction of steepest descent that would take me downhill as quickly as possible? …

    也就是(在二维问题中假设你站在一个山上)当你360度环视四周后要寻找到一个方向,这个方向下降速度最快. 不过他并没有说明为什么要选取负梯度方向而是直接抛出了结论.

    为了简单起见我们从一个二维问题入手。

    1 二维情况下的假设

    假设有一个二元函数 f(x(1),x(2)),如果在一点 A1(x1(1),x1(2)) 附近一阶可微,且在A1附近有一点 A2(x2(1),x2(2)),他们之间的相对关系用向量 n=(Δx(1),Δx(2)) 表示.

    2 方向导数的引入

    于是我们需要想到一个方法来度量「陡」.

    一元函数中我们有所谓斜率,多维中我们可以将此概念推广.

    为了度量 A2 相对于 A1 的斜率,在此我们引入方向导数。它的含义其实很简单,假设我们迈一小步(也就是 n ),度量函数值的变化与这一步的步长比值.

    (dfdn)A1=limA2A1f(x2(1),x2(2))f(x1(1),x1(2))|n|

    3 方向导数与梯度向量的关系

    由泰勒展开:

    f(x2(1),x2(2))=f(x1(1),x1(2))+fx(1)Δx(1)+fx(2)Δx(2)+O((Δx(1))2,(Δx(2))2)

    从而

    (dfdn)A1=limA2A1fx(1)Δx(1)+fx(2)Δx(2)|n|+limA2A1O((Δx(1))2,(Δx(2))2)(Δx(1))2+(Δx(2))2

    取极限后消去后一项(其实这一步可以直接用链式法则得到):

    (dfdn)A1=fx(1)Δx(1)|n|+fx(2)Δx(2)|n|

    对上式稍作整理,即:

    (dfdn)A1=[fx(1)fx(2)]T[Δx(1)|n|Δx(2)|n|]

    我们将第一项抽象出来称作梯度向量 f ,在 A1 给定的时候是一个确定的量.

    而第二项我们同样可以抽象出来,也就是所谓的方向余弦向量 e=n|n|,它的每个元素描述了 n 与各坐标之间夹角的余弦.

    4 方向导数的最大化

    上式可以简写为:

    (dfdn)A1=fe

    梯度向量是一个确定的量,它的模也是确定的,将其分离为f=|f|gg 即梯度余弦方向上的单位向量. 注意到方向余弦向量也是单位向量.

    所以

    (dfdn)A1=|f|ge=|f|cos<g,e>

    结论很明显了,|f| 为确定值的条件下,取得最大值的条件是 ge 方向相同. 即 n 与 梯度余弦向量同向时方向导数取得最大值 .

    于是我们认为梯度方向最「陡」,而最速下降方向是负梯度所指向的方向.

    值得注意的是,最速下降是一个局部的概念. 从全局的角度上它的下降方式走了很多弯路.

    5 推广

    注意到

    (dfdn)A1=fe

    是一个通用的表示方式,于是将二维问题的结论推广到 Rn 就非常自然了:)

    Copyright (c) 2014-2016 Kyles Light.
    Powered by Tornado.
    鄂 ICP 备 15003296 号