这篇笔记,来自我对支持向量机(SVM)算法原理的学习。支持向量机算法最终归结为二次规划问题,研究二次规划问题,必须先从一般的最优化问题开始分析。如无特别声明,本文最优化问题特指寻求目标函数最小值。
一元函数最优化问题,可以简单归结为极值点必须满足下面两个条件:
d
f
d
x
=
0
(1)
\frac{df}{dx}=0\tag{1}
dxdf=0(1)
d
2
f
d
x
2
>
0
(2)
\frac{d^2f}{dx^2}>0 \tag{2}
dx2d2f>0(2)
#条件推广:一阶导数为零
二元函数情形,很容易得到第一个条件(1)式的推广形式:
∂
f
∂
x
=
0
,
∂
f
∂
y
=
0
(3)
\frac{\partial f}{\partial x}=0, \frac{\partial f}{\partial y}=0\tag{3}
∂x∂f=0,∂y∂f=0(3)
#条件推广:二阶导数为正
我们可以认为,沿任意方向
(
d
x
1
,
d
x
2
)
=
(
cos
α
d
t
,
sin
α
d
t
)
(dx_1, dx_2)=(\cos\alpha dt, \sin \alpha dt)
(dx1,dx2)=(cosαdt,sinαdt),都有
d
2
f
d
t
2
>
0
(4)
\frac{d^2 f}{d t^2} > 0\tag{4}
dt2d2f>0(4)
下面我们推导一下,看看有什么结果,
d
f
d
t
=
∂
f
∂
x
1
d
x
1
d
t
+
∂
f
∂
x
2
d
x
2
d
t
=
∂
f
∂
x
1
cos
α
+
∂
f
∂
x
2
sin
α
(5)
\frac{df}{dt}=\frac{\partial f}{\partial x_1}\frac{dx_1}{dt} + \frac{\partial f}{\partial x_2}\frac{dx_2}{dt}=\frac{\partial f}{\partial x_1}\cos \alpha + \frac{\partial f}{\partial x_2}\sin \alpha\tag{5}
dtdf=∂x1∂fdtdx1+∂x2∂fdtdx2=∂x1∂fcosα+∂x2∂fsinα(5)
$$
\frac{d2f}{dt2}=…=\frac{\partial^2 f}{\partial x_12}\cos2 \alpha
- \frac{\partial^2 f}{\partial x_1 \partial x_2}\cos \alpha \sin \alpha
- \frac{\partial^2 f}{\partial x_2 \partial x_1}\cos \alpha \sin \alpha
- \frac{\partial^2 f}{\partial x_22}\sin2 \alpha \tag{6}
$$
对于所有的 α \alpha α ,要求上式恒大于零,那么函数的这四个二阶偏导应该满足什么条件呢?
#Hessian矩阵
令
d
=
(
cos
α
,
sin
α
)
d=(\cos \alpha, \sin \alpha)
d=(cosα,sinα),则有,
d
T
(
∂
2
f
∂
x
1
2
∂
2
f
∂
x
1
∂
x
2
∂
2
f
∂
x
2
∂
x
1
∂
2
f
∂
x
2
2
)
d
>
0
(7)
d^T \left( \begin{matrix} \frac{\partial^2f}{\partial x_1^2} & \frac{\partial^2f}{\partial x_1 \partial x_2} \\ \frac{\partial^2f}{\partial x_2 \partial x_1} & \frac{\partial^2f}{\partial x_2^2} \end{matrix} \right) d > 0\tag{7}
dT(∂x12∂2f∂x2∂x1∂2f∂x1∂x2∂2f∂x22∂2f)d>0(7)
其中,矩阵
H
(
f
)
=
(
∂
2
f
∂
x
1
2
∂
2
f
∂
x
1
∂
x
2
∂
2
f
∂
x
2
∂
x
1
∂
2
f
∂
x
2
2
)
(8)
H(f)=\left( \begin{matrix} \frac{\partial^2f}{\partial x_1^2} & \frac{\partial^2f}{\partial x_1 \partial x_2} \\ \frac{\partial^2f}{\partial x_2 \partial x_1} & \frac{\partial^2f}{\partial x_2^2} \end{matrix} \right)\tag{8}
H(f)=(∂x12∂2f∂x2∂x1∂2f∂x1∂x2∂2f∂x22∂2f)(8)
称为 Hessian 矩阵,如果函数
f
(
x
)
f(x)
f(x)二阶导数连续,则该矩阵实对称矩阵。我们看到,二元函数取得极小值的另一个条件的推广形式是,函数的 Hessian 矩阵是正定矩阵。其实,这个结论很容易推广到
n
n
n 原函数。
由前面讨论可知,(7)式表示函数在方向 d d d 的二阶导数,这算是 Hessian 矩阵的几何意义吧。
#多元函数极值的判定
如果实值多元函数
f
(
x
)
f(x)
f(x) 二阶连续可导,并且在临界点
x
‾
\overline x
x 处梯度(一阶导数)等于0,即
∇
f
(
x
‾
)
=
0
\nabla f(\overline x)=0
∇f(x)=0 , 为驻点。仅通过一阶导数无法判断在临界点 处是极大值还是极小值。
记 f ( x ) f(x) f(x) 在 x ‾ \overline x x 点处的 Hessian 矩阵为 H ( x ‾ ) H(\overline x) H(x) 。由于 f ( x ) f(x) f(x) 在 x ‾ \overline x x 点处连续,所以 H ( x ‾ ) H(\overline x) H(x) 是一个 n × n n \times n n×n 的对称矩阵。对于 H ( x ‾ ) H(\overline x) H(x) ,有如下结论:
- 如果 H ( x ‾ ) H(\overline x) H(x) 是正定矩阵,则临界点 x ‾ \overline x x 处是一个局部的极小值。
- 如果 H ( x ‾ ) H(\overline x) H(x) 是负定矩阵,则临界点 x ‾ \overline x x 处是一个局部的极大值。
- 如果 H ( x ‾ ) H(\overline x) H(x) 是不定矩阵,则临界点 x ‾ \overline x x 处不是极值。
#正定矩阵的判定
接下来的问题就是如何判断一个矩阵是否为正定矩阵了,这方面参考资料很多,本文不再赘述。
原创不易,如有帮助,敬请点赞、关注、收藏,谢谢支持!