最优化方法总结

参考书: 最优化、矩阵分析

1. Jacobi和Hesse矩阵

1.1 Jacobi矩阵

假设 F : R n R m ,是一个从 n 维欧氏空间映射到到 m 维欧氏空间的函数。 其雅可比矩阵是从 R n R m 的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。


x = [ x 1 , x 2 , . . . , x n ] T

f 1 ( x ) , f 2 ( x ) , . . . , f m ( x ) 都是 x 实函数,令
f ( x ) = [ f 1 ( x ) , f 2 ( x ) , . . . , f m ( x ) ] T

f ( x ) 的导数为 m n 列的矩阵( m 维列向量对 n 维行向量求导),即Jacobi矩阵
f ( x ) = [ f 1 x 1 f 1 x 2 . . . f 1 x n f 2 x 1 f 2 x 2 . . . f 2 x n : : : : f m x 1 f m x 2 . . . f m x n ]

如果 p R n 中的一点, f p 点可微分,根据高等微积分, f ( x ) 是在这点的导数。在此情况下, 这个线性映射即 f 在点 p 附近的最优线性逼近,也就是说当 x 足够靠近点 p 时,我们有

f ( x ) f ( p ) + f ( x ) ( x p )

因为 f ( x ) ( x p ) 存在,所以雅可比矩阵是 m 维列向量对 n 维行向量求导.

1.2 Hesse矩阵

Hesse矩阵是一个多变量实值函数,如 f ( x 1 , x 2 , . . . , x n ) ,的二阶偏导数(二阶偏导数都存在)组成的方块矩阵

m 向量值函数 g ( x ) ,其在 x 处的导数,这里是 m 维行向量对 n 维列向量求导

g ( x ) = [ g 1 x 1 g 2 x 1 . . . g m x 1 g 1 x 2 g 2 x 2 . . . g m x 2 : : : : g 1 x n g 2 x n . . . g m x n ]

g ( x ) T g ( x ) Jacobi矩阵,令 g ( x ) = f ( x ) ,代入,
g 1 ( x ) = f ( x ) x 1 , g 2 ( x ) = f ( x ) x 2 , . . . , g n ( x ) = f ( x ) x n

得到,
[ f ( x ) ] = [ 2 f x 1 x 1 2 f x 1 x 2 . . . 2 f x 1 x n 2 f x 2 x 1 2 f x 2 x 2 . . . 2 f x 2 x n : : : : 2 f x n x 1 2 f x n x 2 . . . 2 f x n x n ]

多元函数 f ( x ) 的一阶导数是它的梯度 f ( x ) ,二阶导数是它的Hesse矩阵 2 f ( x ) ,当 f ( x ) 的所有二阶偏导数连续时,

2 f ( x ) x i x j = 2 f ( x ) x j x i i , j = 1 , 2 , . . . , n

这种情况下 Hesse矩阵是 对称的

扫描二维码关注公众号,回复: 1088248 查看本文章

2. 凸规划

2.1 凸集

设集合 C R n ,如果 C 中任取两点的任意组合仍然属于 C ,那么称集合 C 为凸集
直观地看,任取集合中两点所连成的线段仍然属于这个集合,这个集合即为凸集

2.2 凸函数

f : C R n R 1 ,其中 C 为凸集,若对于 C 中的任意两点 x 1 , x 2 和任一对满足 a 1 + a 2 = 1 的非负数 a 1 , a 2 ,总有

f ( a 1 x 1 + a 2 x 2 ) a 1 f ( x 1 ) + a 2 f ( x 2 )

则称 f 是定义在凸集 C 上的凸函数
a 1 , a 2 都是正实数,则有
f ( a 1 x 1 + a 2 x 2 ) < a 1 f ( x 1 ) + a 2 f ( x 2 )

则称 f 是定义在凸集 C 上的严格凸函数

2.3 凸规划

定义在凸集上的凸函数的极小化问题是凸规划问题

2.4 二次函数

函数

f ( x ) = 1 2 x T Q x + b T x + c

成为 n 元二次函数,其中
Q = [ q 11 q 12 . . . q 1 n q 21 q 22 . . . q 2 n : : : : q n 1 q n 2 . . q n n ] , b = [ b 1 b 2 : b n ]

这里 Q 是对称矩阵,若 Q 是正定的,则 f 是正定二次函数
其中, 2 f ( x ) = Q ,由定理[10]知, 正定二次函数是严格凸函数

2.5 证明范数是凸函数

见笔记–线性最小二乘的推导


3. 梯度下降法

对正定二次函数

f ( x ) = 1 2 x T Q x + b T x + c

f ( x ) 求关于 x 的梯度,
g ( x ) = f ( x ) = Q x + b

因此,
g k = g ( x k ) = Q x k + b

x k 出发,沿着 g k 作直线搜索,以确定 x k + 1
x k + 1 = x k t k g k

其中 t k 是最优步长因子
t k = g k T g k g k T Q g k

注意: 该公式只能用于求解正定二次函数


4. 牛顿法

由定理1.17,目标函数 f ( x ) R n 上具有连续的二阶偏导数,其Hesse矩阵 2 f ( x ) 正定

G ( x ) = 2 f ( x )

f ( x ) Taylor级数展开( 即对非线性模型线性化
f ( x ) Q ( x ) = f ( x k ) + g ( x k ) T ( x x k ) + 1 2 ( x x k ) T G ( x k ) ( x x k )

因为 G ( x ) 正定,所以 Q ( x ) x 的正定二次函数,令
Q ( x ) = G ( x ) ( x x k ) + g ( x k ) = 0


G ( x k ) ( x x k ) = g ( x k )

则得 x k + 1
x k + 1 = x k G ( x k ) 1 g ( x k )

对于正定二次函数,Newton法迭代一次就可以找到它的极小点.

牛顿法的局限性:
对于表达式很复杂的目标函数,Hesse矩阵很难或不可能求出,不宜使用Newton法,为了解决这个问题,提出了修正Newton法.


5. 最小二乘法

对残差向量(residual vector) f ( x ) = [ f 1 ( x ) , f 2 ( x ) , . . . , f m ( x ) ] T ,其中每一个 f i ( x ) 构成了一个误差项,对应于vSLAM中构造的观测值与预测值之差,则最小二乘问题的一般形式为

m i n f ( x ) T f ( x ) = m i n f ( x ) 2 2

5.1 最小二乘法分类

  • 线性(linear or ordinary least squares(OLS)):函数 f 是参数 θ 的线性函数,即 θ 都是一次的,对其求导为常数函数 f 是参数 θ 的线性函数,即 θ 都是一次的,对其求导为常数
  • 非线性(non-linear least squares):函数 f 是参数 θ 的非线性函数,即 θ 不都是一次的,对其求导不都为常数函数 f 是参数 θ 的非线性函数,即 θ 不都是一次的,对其求导不都为常数

5.2 线性最小二乘

参考:SLAM中的优化理论(一)—— 线性最小二乘
线性最小二乘通常可以通过正规方程、QR 分解、乔姆斯基分解(Cholesky decomposition)和奇异值分解(SVD)等方法求解。

线性最小二乘的解是封闭形式(closed-form)的,即对于 f ( x ) = A x b ,则有 x = ( A T A ) 1 A T b (A不一定为方阵),推导略,这是使用正规方程的解法

  • 如果 A T A 正定,一般不用求逆的方式来解,而是使用Cholesky分解或者QR分解的方法来求解
  • 如果 A T A 不正定,使用SVD分解

5.3 非线性最小二乘

其解不是封闭形式(closed-form),通常用迭代法求解,如高斯牛顿法

5.3.1 高斯牛顿法

目标函数:

s ( x ) = f ( x ) T f ( x ) = f ( x ) 2

经过 k 次迭代已求得 x k ,现在考虑 x x + 1 的求法,与牛顿法基本思想类似,把 f ( x ) 线性化区别是,牛顿法使用的二阶泰勒展开,这里是一阶泰勒展开
f ( x ) 的第 i 个分量 f i ( x ) 在点 x k 处作 Talor展开,即
f i ( x ) f i ( x k ) + f i ( x k ) ( x x k ) i = 1 , 2 , . . . , m

如用向量、矩阵形式表达出来,则上式可写为
f ( x ) f ( x k ) + J ( x k ) ( x x k ) i = 1 , 2 , . . . , m

J ( x ) f ( x ) 在点 x k 处的Jacobi矩阵,即 第1部分所讲内容
f ( x ) 代入到目标函数,这是 线性化后的表达式
s ( x ) f ( x k ) + J ( x k ) ( x x k ) 2

即将非线性最小二乘转化为线性最小二乘的求解.
根据线性最小二乘求解可得,
J ( x k ) T J ( x k ) ( x x k ) = J ( x k ) T f ( x k )

与牛顿法的区别是,这里使用 J ( x k ) T J ( x k ) 代替了牛顿法中 Hesse矩阵,省略了计算H矩阵的麻烦.

5.3.2 修正高斯牛顿法
5.3.3 列文伯格-马夸尔特方法

<未完待续.……>
@leatherwang

猜你喜欢

转载自blog.csdn.net/hzwwpgmwy/article/details/80366499
今日推荐