参考书: 最优化、矩阵分析
1. Jacobi和Hesse矩阵
1.1 Jacobi矩阵
假设
F:Rn→Rm
,是一个从
n
维欧氏空间映射到到
m
维欧氏空间的函数。 其雅可比矩阵是从
Rn
到
Rm
的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。
设
x=[x1,x2,...,xn]T
f1(x),f2(x),...,fm(x)
都是
x
的
实函数,令
f(x)=[f1(x),f2(x),...,fm(x)]T
则
f(x)
的导数为
m
行
n
列的矩阵(
m
维列向量对
n
维行向量求导),即Jacobi矩阵
∇f(x)=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂f1∂x1∂f2∂x1:∂fm∂x1∂f1∂x2∂f2∂x2:∂fm∂x2......:...∂f1∂xn∂f2∂xn:∂fm∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥
如果
p
是
Rn
中的一点,
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(x1,x2,...,xn)
,的二阶偏导数(二阶偏导数都存在)组成的方块矩阵
设
m
向量值函数
g(x)
,其在
x
处的导数,这里是
m
维行向量对
n
维列向量求导
∇g(x)=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂g1∂x1∂g1∂x2:∂g1∂xn∂g2∂x1∂g2∂x2:∂g2∂xn......:...∂gm∂x1∂gm∂x2:∂gm∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥
∇g(x)T
为
g(x)
的
Jacobi
矩阵,令
g(x)=∇f(x)
,代入,
g1(x)=∂f(x)∂x1,g2(x)=∂f(x)∂x2,...,gn(x)=∂f(x)∂xn
得到,
∇[∇f(x)]=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂2f∂x1∂x1∂2f∂x2∂x1:∂2f∂xn∂x1∂2f∂x1∂x2∂2f∂x2∂x2:∂2f∂xn∂x2......:...∂2f∂x1∂xn∂2f∂x2∂xn:∂2f∂xn∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥
多元函数
f(x)
的一阶导数是它的梯度
∇f(x)
,二阶导数是它的Hesse矩阵
∇2f(x)
,当
f(x)
的所有二阶偏导数连续时,
∇2f(x)∂xi∂xj=∇2f(x)∂xj∂xi,i,j=1,2,...,n
这种情况下
Hesse
矩阵是
对称的
扫描二维码关注公众号,回复:
1088248 查看本文章
2. 凸规划
2.1 凸集
设集合
C⊆Rn
,如果
C
中任取两点的任意组合仍然属于
C
,那么称集合
C
为凸集
直观地看,任取集合中两点所连成的线段仍然属于这个集合,这个集合即为凸集
2.2 凸函数
设
f:C⊆Rn→R1
,其中
C
为凸集,若对于
C
中的任意两点
x1,x2
和任一对满足
a1+a2=1
的非负数
a1,a2
,总有
f(a1x1+a2x2)≤a1f(x1)+a2f(x2)
则称
f
是定义在凸集
C
上的凸函数
若
a1,a2
都是正实数,则有
f(a1x1+a2x2)<a1f(x1)+a2f(x2)
则称
f
是定义在凸集
C
上的严格凸函数
2.3 凸规划
定义在凸集上的凸函数的极小化问题是凸规划问题
2.4 二次函数
函数
f(x)=12xTQx+bTx+c
成为
n
元二次函数,其中
Q=⎡⎣⎢⎢⎢q11q21:qn1q12q22:qn2......:..q1nq2n:qnn⎤⎦⎥⎥⎥,b=⎡⎣⎢⎢⎢b1b2:bn⎤⎦⎥⎥⎥
这里
Q
是对称矩阵,若
Q
是正定的,则
f
是正定二次函数
其中,
∇2f(x)=Q
,由定理[10]知,
正定二次函数是严格凸函数
2.5 证明范数是凸函数
见笔记–线性最小二乘的推导
3. 梯度下降法
对正定二次函数
f(x)=12xTQx+bTx+c
对
f(x)
求关于
x
的梯度,
g(x)=∇f(x)=Qx+b
因此,
gk=g(xk)=Qxk+b
从
xk
出发,沿着
−gk
作直线搜索,以确定
xk+1,即
xk+1=xk−tkgk
其中
tk
是最优步长因子
tk=gTkgkgTkQgk
注意:
该公式只能用于求解正定二次函数
4. 牛顿法
由定理1.17,目标函数
f(x)
在
Rn
上具有连续的二阶偏导数,其Hesse
矩阵
∇2f(x)
正定
G(x)=∇2f(x)
对
f(x)
按
Taylor
级数展开(
即对非线性模型线性化)
f(x)≈Q(x)=f(xk)+g(xk)T(x−xk)+12(x−xk)TG(xk)(x−xk)
因为
G(x)
正定,所以
Q(x)
是
x
的正定二次函数,令
∇Q(x)=G(x)(x−xk)+g(xk)=0
得
G(xk)(x−xk)=−g(xk)
则得
xk+1
,
xk+1=xk−G(xk)−1g(xk)
对于正定二次函数,Newton法迭代一次就可以找到它的极小点.
牛顿法的局限性:
对于表达式很复杂的目标函数,Hesse矩阵很难或不可能求出,不宜使用Newton法,为了解决这个问题,提出了修正Newton法.
5. 最小二乘法
对残差向量(residual vector
)
f(x)=[f1(x),f2(x),...,fm(x)]T
,其中每一个
fi(x)
构成了一个误差项,对应于vSLAM中构造的观测值与预测值之差,则最小二乘问题的一般形式为
minf(x)Tf(x)=min∥f(x)∥22
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)=Ax−b
,则有
x=(ATA)−1ATb
(A不一定为方阵),推导略,这是使用正规方程的解法
- 如果
ATA
正定,一般不用求逆的方式来解,而是使用Cholesky分解或者QR分解的方法来求解
- 如果
ATA
不正定,使用SVD分解
5.3 非线性最小二乘
其解不是封闭形式(closed-form
),通常用迭代法求解,如高斯牛顿法
5.3.1 高斯牛顿法
目标函数:
s(x)=f(x)Tf(x)=∥f(x)∥2
经过
k
次迭代已求得
xk
,现在考虑
xx+1
的求法,与牛顿法基本思想类似,把
f(x)
线性化,
区别是,牛顿法使用的二阶泰勒展开,这里是一阶泰勒展开
把
f(x)
的第
i
个分量
fi(x)
在点
xk
处作
Talor
展开,即
fi(x)≈fi(xk)+∇fi(xk)(x−xk),i=1,2,...,m
如用向量、矩阵形式表达出来,则上式可写为
f(x)≈f(xk)+J(xk)(x−xk),i=1,2,...,m
J(x)
是
f(x)
在点
xk
处的Jacobi矩阵,即
第1部分
所讲内容
将
f(x)
代入到目标函数,这是
线性化后的表达式
s(x)≈∥f(xk)+J(xk)(x−xk)∥2
即将非线性最小二乘转化为线性最小二乘的求解.
根据线性最小二乘求解可得,
J(xk)TJ(xk)(x−xk)=−J(xk)Tf(xk)
与牛顿法的区别是,这里使用
J(xk)TJ(xk)
代替了牛顿法中
Hesse
矩阵,省略了计算H矩阵的麻烦.
5.3.2 修正高斯牛顿法
5.3.3 列文伯格-马夸尔特方法
<未完待续.……>
@leatherwang