多元函数的向量表示_基于函数二阶特性的优化

c08bd68734fed8843e78a98ff91696a1.png
内容
  • 多元函数的导(雅克比);
  • 多元函数的方向导;
  • 多元函数的二阶导(赫森);
  • 牛顿法;
  • 共轭方向法。

本文粗体小写字母表示向量。粗体大写字母表示矩阵,有必要时用下标注明矩阵维度。细体小写希腊字母表示标量——实数)。


一、多元函数的导

如果我们有函数:

的映射。说
在点
可导是指能够用一个仿射函数(affine function) 在
附近的小区域内很好地拟合
。这里提到“仿射函数”和“很好地拟合”,这两个概念需要解释。

如果函数

满足:

其中

是标量。则
是一个线性函数。如果
是线性的,那么可以找到一个矩阵
来表示它。即存在一个矩阵
使:

为什么线性函数有此特性?任何一个

元向量
都可以被
维线性空间
的标准基线性表出:

是第
个元素为
其余元素为
的列向量。
构成
的标准基。其中
是向量
个元素。因为
是线性的,有:

其中

元向量,是对标准基的第
个向量
施加
的结果。
是以
为系数对
的线性组合。将
作为列组成一个
的矩阵
,显然有:

所以一切线性函数

都可以用一个矩阵
表示。
的列是对自变量空间的标准基施加
的结果。对
施加
等于用
左乘

如果

的线性函数,那么
的矩阵就是一个
矩阵,也就是一个行向量
。有:

的图形是
维空间中一张超平面(hyperplane)。如果自变量是
维则
的图形是
维空间中一张平面。线性函数一定过原点,因为:

把一个线性函数加上一个常向量

就形成了一个仿射函数:

如果仿射函数

的,则它的图形是
维空间中一个(
不一定过原点的)平面。

上面说

可导是指
附近可以被一个仿射函数很好地近似,这个“很好”是在极限的意义上说的。即:

随着

靠近(即
),
与仿射函数
之间的差距消失得更快。为满足这个极限必须有:

于是这个近似仿射函数是:

相等。在其他点可以不相等。但随着向
靠近,它们之间的差距消失,且消失得比自变量点靠近得要快。还差一个问题:矩阵
是什么?

选取某一个坐标轴

。让自变量点沿着坐标轴
靠近
。由可导的定义,有:

只要将 [1.10] 中的

替换为
容易得到 [1.13] 。随着
取值变化,自变量
沿着坐标轴
运动。
是矩阵
的第
列。[1.13] 表明:
的第
列是
的各个分量
对第
个自变量
的在
的偏导数组成的列向量:

于是

就由
的各个分量
的个分量
的偏导数组成:

矩阵称作
的雅克比矩阵(jacobi matrix)。它就是多元函数的导“数”。由于各个偏导数在
是唯一的,所以雅克比矩阵是唯一的。如果
的,那么它的雅克比矩阵是只有一行的矩阵,或者说行向量。这个行向量的转置称为
的梯度(gradient)。

多元复合函数的求导链式法则与一元函数相同,仍是将多个函数的导“数”连乘 —— 多元情况下是将雅克比矩阵连乘。例如有两个函数

,其雅克比矩阵为
,其雅克比矩阵为
。则复合函数
的雅克比矩阵为

接下来的小节只讨论

的函数。这样的函数的雅克比矩阵是
的行向量,其转置是梯度。梯度与函数的方向导数有关。下文详述。

二、方向导数

函数

的自变量
个分量
点的偏导数是
。用文字来说就是当把除
外的其他分量视作常数时,
点对
的瞬时变化率。用数学语言表述就是:

个分量的偏导数是
分别沿
个坐标轴的变化率。标准基向量
是指向第
坐标轴正方向的单位向量。
中方向无数,不拘于坐标轴方向。取指向任一方向的单位向量
替换进 [2.1] ,得到:

这个极限是,以单位向量

指向的方向为正方向(
可以想象相当于指定了一个新的坐标轴)时
的变化率。也可以这样看待 [2.2] : 以
为自变量的函数
的导数。将这个函数视作复合函数:

其中

。它的雅克比是
矩阵(
元列向量)。容易看出这个雅克比矩阵就是向量
。根据链式法则,有:

所以

点的导数,也就是
点沿
方向的方向导数,是
的梯度
方向做投影的长度。梯度向某方向的投影的长度等于函数沿着该方向的方向导数。如果梯度向坐标轴
做投影,得到的是梯度的第
个元素,就是函数对第
个自变量的偏导数,也是函数沿着坐标轴
的方向导数。

注意:

注意这里省略了梯度的下标,表示可以是任一点的梯度。第二个等号是因为

是单位向量,长度(
)为 1 。
是梯度与
之间的夹角。可见当夹角为
,即
与梯度同方向时
方向导数最大(
),增速最高。在与梯度相反的方向上
的方向导数最小(
),下降最快。这也就是梯度下降法的依据。在与梯度垂直的方向上
的方向导数为
,即增速为
注意这是瞬时性质)。如果
在某一点的梯度本身是
向量,那么
沿任何方向的方向导数(
瞬时增速)都为
。梯度为
的点是
点的驻点(stationary point ,
又叫 critical point 。 不是拐点,虽然现在新闻中有很多误用)。局部极小 / 极大点、鞍点都是驻点。

总结一下:

  1. 在某点的导,是一个
    的矩阵(
    雅克比矩阵),该矩阵的转置是一个
    元向量,是
    在该点的梯度。
  2. 在某点沿着某个方向的瞬时变化率是
    在该方向的方向导数,
    在某点的各个偏导数是沿着各个坐标轴方向的方向导数。
  3. 在某点沿某方向的方向导数等于
    在该点的梯度向那个方向的投影长度,沿着梯度本身方向,方向导数最大。沿着梯度相反方向,方向导数最小。垂直于梯度方向,方向导数为

三、二阶导

二阶导是导函数的导函数。函数

的导函数是将
映射到
的函数。不必在乎因变量是横排还是竖排,总之是
个数。也就是说
的导函数是一个
的函数。
的二阶导应该是一个
的矩阵,其第
列由
的各分量对
的偏导构成:

称为
的赫森矩阵。
表示
的偏导数再对
做偏导。有一个结论:如果
都在
是连续的,那么它们相等。也就是说在满足连续性的前提下,二阶偏导不依赖求偏导的次序。以下我们都假设满足连续性。如此
是对称矩阵:

的方向导数是
在某方向的变化率。那么如何求得
在某方向上的二阶变化率 —— 二阶导呢?

[3.2] 极限的分子上相减的两项是

两个点上的沿
方向的方向导数。该极限就是
方向上的二阶导。同时这个式子也是
作为
的函数,在
的导数。仍将其视为一个复合函数:

这是一个

的函数。对这个函数运用链式法则求导,得到:

所以函数

在某点沿着
方向的二阶导数是
在该点的赫森矩阵
的一个二次型

刚才说

是一个对称矩阵。对称矩阵可以进行谱分解(spectrum decomposition):

是一个
的对角阵,对角线元素是
个特征值
是正交矩阵
。它的列是
个特征值对应的
个特征向量。它们构成
维空间的一组基。对于任意一个方向
,其方向上
的二阶导是:

如果:

  1. 半正定(
    特征值都非负),那么在
    朝任何方向
    的二阶导数都是非负;
  2. 正定(
    特征值都为正),那么在
    朝任何方向
    的二阶导数都是正数;
  3. 负定或半负定与正定或半正定情况下类似;
  4. 不定,有些方向上
    二阶导为正,有些方向上
    二阶导为负。

梯度和赫森矩阵是分析函数直到二阶的特性的工具。看一个二次函数:

的梯度是
,赫森矩阵在所有点都是
。假设
是正定的。
的唯一驻点是
在任何一点朝任何方向的二阶导数都为正,方向导数都要变大。所以
是唯一的驻点,是
唯一的全局最小点。

二次型

有这样的性质:

使

达到最大的单位向量是
的最大特征值
对应的单位特征向量
。在与
正交的前提下使
达到最大的单位向量是
的第二大特征值
对应的单位特征向量
。依此类推。

看以下这个二次函数:

70da7f31d8b27e59bb62e16bc3f1204e.png
图 1

它的式子是:

原点是它的唯一驻点(全局最小点)。它的赫森矩阵是

的最大特征值是
,特征方向是
轴;最小特征值是
,特征方向是
轴。所以在原点可以看到:沿
轴方向图形向上弯曲最强烈;沿
方向图形向上弯曲最平缓。

梯度下降法只基于函数一阶信息,有时候做不出最佳选择。因为梯度反方向虽然是函数下降最快的方向,但是如果这个方向上二阶导数很大,方向导将很快上升。沿着该方向前进一小步也许函数值不降反升。接下来我们看一看利用了函数二阶信息的优化算法。


四、牛顿法

在某一点

可以对函数
进行二阶泰勒展开(taylor expansion):

上式最后的余项

的高阶无穷小,在极靠近
的区域可将其忽略。也就是说在极其靠近
的区域内可以用一个二次函数近似表示
。如果这个二次函数的赫森矩阵
是正定的,那么该二次函数具有唯一全局最小点,也就是它唯一的驻点:

在这个新的点

上重复这个过程。这就是寻找函数最优点的牛顿法。用语言描述就是:在任意起始点附近用二次函数拟合原函数。计算该二次函数的最小点。再以这个最小点为起始点重复此过程。牛顿法迭代公式如下:

如果

本身就是一个凸二次函数(
赫森矩阵正定),那么在任何一点对
进行二阶泰勒展开得到的就是
本身。在这种情况下牛顿法一步就能找到
的全局最小点。

注意,对于二次函数,只有当赫森矩阵正定时,才存在唯一全局最小点,故上述讨论,都是在赫森矩阵正定的前提下。运用牛顿法需要求赫森矩阵的逆,其计算量有时是不可承受的。人们提出了一些拟牛顿法,例如 BFGS ,LBFGS 等,本文不做介绍。


五、共轭方向法

对于一个二次函数

,其赫森矩阵为
。选一个随机的起始点
和一个随机的起始方向
用一个单位向量来指示方向)。令自变量沿着
变化:

代入
处的二阶泰勒展开。因为
是二次函数,该展开就是
本身,所以第二个等号成立。
是关于
的二次函数。它有全局最小点:

因为

沿着
方向的最小点,所以在
沿
方向的导数为
。即:

现在假设有另一方向

满足:

关于
共轭(conjugate)。我们看当自变量从任一点出发沿
运动时
沿着
方向的导数的变化率(
二阶导)如何:

上式第一步对一个三层的复合函数运用了链式法则。[5.4] 表明自变量沿着

方向运动时,
沿
方向的二阶导为
。也就是
沿着
方向的导数无变化。那么如果从 [5.2] 中的
出发沿着
运动,则在此运动过程中
沿着
方向的导数保持为
。也就是运动过程中,沿着
方向
保持是最小点。所以可以首先沿着
使
达到该方向的最小,之后沿着
寻找最小,同时能保持
沿
方向是最小。

之后可以再寻找一个方向

关于
都共轭。那么
沿着
运动时,在
方向上二阶导都为
。如果之前已经沿着
方向找到了
在相应方向的最小,则沿着
寻找时在
方向
仍保持最小。

如果有

个方向
关于
是两两共轭的,那么它们是线性无关的。因为假如存在一组系数
满足:

那么对任何一个

有:

正定,则
。于是必有
。这对所有
都成立,所以
线性独立。它们构成
的一组基。

当沿上述

个共轭方向依次完成最小值搜索,就沿着
的所有方向搜索到了
的全局最小点。这就是共轭方向法。对于凸二次函数(
赫森矩阵正定),共轭方向法用
步找到全局最小点。对于图 1 中的二次函数,若选择
轴作为第一个方向,将沿着
轴运动到
轴上。 然后以
轴为第二个共轭方向运动到原点 —— 全局最小点。

如果

的标准正交基,任取其中两个,有:

所以

就是一组关于
的共轭方向。

对非二次函数

仍然可以运用共轭方向法。计算某一点
的赫森矩阵得到
个共轭方向(
赫森矩阵的特征向量),进行
次线性搜索,找到一个新的点
,就是
点的近似二次函数的全局最小点(
牛顿法可以一步找到它)。然后以
为初始点重复本过程。

共轭方向法可以选择任意

个共轭方向,不一定是
个特征向量。比如可以从任一点选择该点的梯度反方向。这就是共轭梯度法,本文不详述。

可见,基于二阶的优化算法利用了函数局部的二阶特性。相比梯度下降法,它们参考了更多的信息。但是计算赫森矩阵的计算量是巨大的。虽然有一些二阶方法避免了赫森矩阵的计算,但是对于像神经网络训练这样的复杂非凸优化问题,二阶方法并不能保证有更好的优化性能。目前在深度学习中基于梯度的方法仍是主流。


六、参考书目
最优化导论 (豆瓣)​book.douban.com
7330ff1bf0b0a70cd6de5e29950aa33c.png
深度学习 (豆瓣)​book.douban.com
75fd717d671855d9c27b9d4623e4f61c.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值