您的位置:首页 > 其它

支持向量机 数学推导 Part4

2018-03-06 23:59 155 查看
这篇介绍如何求约束问题的解。涉及到很多高等数学和线性代数的知识。

最优分离超平面的优化问题

上一篇文章的最后我们发现要求最优分离超平面等价于求W最小的模。求这个模需要解决一个优化问题:

最小化在(w,b)(w,b)中的∥w∥‖w‖, 服从 yi(w⋅xi+b)≥1yi(w⋅xi+b)≥1 , i=1,…,ni=1,…,n。

这个优化问题有n个约束。在解决难题之前,先介绍如何解决无约束条件最小化问题。

无约束条件最小化问题

极值定理:

函数在定义域内有连续的二阶导数,当一阶导数为0,二阶导数大于零时,在该点取得极小值。

深入定理

ff 在x∗x∗处梯度为零, 可以表示为 ∇f(x∗)=0∇f(x∗)=0,

函数 ff 在x∗x∗处的二阶导数大于零,可以用矩阵的形式可以表示为 z⊺((∇2f(x∗))z>0,∀z∈Rnz⊺((∇2f(x∗))z>0,∀z∈Rn,其中二阶偏导数为 ∇2f(x)=⎛⎝⎜⎜⎜⎜⎜∂2f∂x21⋮∂2f∂xn∂x1⋯⋱⋯∂2f∂x1∂xn⋮∂2f∂x2n⎞⎠⎟⎟⎟⎟⎟∇2f(x)=(∂2f∂x12⋯∂2f∂x1∂xn⋮⋱⋮∂2f∂xn∂x1⋯∂2f∂xn2)

维基百科-海森矩阵

海森矩阵(Hessian matrix 或 Hessian)是一个多变量实值函数的二阶偏导数组成的方块矩阵,所以上面的二阶偏导数也就是海森矩阵。

二维情况下

给定二阶导数连续的映射f:R2→Rf:R2→R,海森矩阵的行列式,可用于分辨ff的临界点是属于鞍点还是极值点。

- H > 0:若∂2f∂x2>0∂2f∂x2>0,则(x0,y0)(x0,y0) 是局部极小点;若 ∂2f∂x2<0∂2f∂x2<0,则 (x0,y0)(x0,y0)是局部极大点。

- H < 0: (x0,y0)(x0,y0) 是鞍点。

- H = 0:二阶导数无法判断该临界点的性质,得从更高阶的导数以泰勒公式考虑.

高维情况下

当函数f:Rn→Rf:Rn→R二阶连续可导时,Hessian矩阵H在临界点x0x0上是一个n×nn×n阶的对称矩阵。这也是一个定理,下面会用到。

- 当H是正定矩阵时,临界点x0x0是一个局部的极小值。

- 当H是负定矩阵时,临界点 x0x0是一个局部的极大值。

- H=0,需要更高阶的导数来帮助判断。

- 在其余情况下,临界点 x0x0不是局部极值。

正定矩阵

我们想要寻找函数在某点处的值是不是极小值,在高维情况下,只要海森矩阵是正定矩阵,那么就能够得到在这个点处取得极小值。

正定矩阵定义: 如果一个x⊺Ax>0x⊺Ax>0,那么对称矩阵A是正定矩阵。

正定有两个条件:1)矩阵A是对称矩阵 2)存在一个可逆变换xx使得x⊺Ax>0x⊺Ax>0。

上面说到,具有连续二阶偏导数的函数,其海森矩阵是对称矩阵。定义中的x⊺Ax>0x⊺Ax>0换成我们的表达式就是 z⊺((∇2f(x∗))z>0,∀z∈Rnz⊺((∇2f(x∗))z>0,∀z∈Rn中,如何确定zz呢?这个通常是很困难的。我们通常用以下定理来证明一个对称矩阵是正定矩阵。

所有特征值大于0

所有余子式大于0

存在非奇异方阵B,使得A=B⊺BA=B⊺B

例子

寻找 Rosenbrock’s banana function: f(x,y)=(2−x)2+100(y−x2)2f(x,y)=(2−x)2+100(y−x2)2的最小值。



1)求一阶偏导数

∇f(x,y)=⎛⎝∂f∂x∂f∂y⎞⎠∇f(x,y)=(∂f∂x∂f∂y)

∂f∂x=2(200x3−200xy+x−2)∂f∂x=2(200x3−200xy+x−2)

∂f∂y=200(y−x2)∂f∂y=200(y−x2)

2(200x3−200xy+x−2)=0200(y−x2)=02(200x3−200xy+x−2)=0200(y−x2)=0

x=2x=2 y=4y=4

2) 求海森矩阵(所有二阶偏导数和二阶导数)

∇2f(x,y)=⎛⎝⎜∂2f∂x2∂2f∂yx∂2f∂xy∂2f∂y2⎞⎠⎟∇2f(x,y)=(∂2f∂x2∂2f∂xy∂2f∂yx∂2f∂y2)

∂2f∂x2=1200x2−400y+2∂2f∂x2=1200x2−400y+2

∂2f∂xy=−400x∂2f∂xy=−400x

∂2f∂yx=−400x∂2f∂yx=−400x

∂2f∂y2=200∂2f∂y2=200

代入(x,y)=(2,4)(x,y)=(2,4)计算得∇2f(x,y)=(3202−800−800200)∇2f(x,y)=(3202−800−800200)

3)判断其是否为正定矩阵。

首先,这个海森矩阵是对称矩阵,接着就要看他满不满足上面说的三个定理中的任意一个。阶数低的情况下比较好求,这里通过余子式就能看出来。

a11=3202a11=3202

∣∣∣a11a21a12a22∣∣∣=∣∣∣3202−800−800200∣∣∣=3202×200−(−800)×(−800)=400|a11a12a21a22|=|3202−800−800200|=3202×200−(−800)×(−800)=400

如何求最小值

上面求了半天求的只是求了局部极小值。

局部极小值并不一定是最小值,极大值也不一定大于极小值,可以通过求出所有的极值,选择其中最小的就是最小值。



才疏学浅,还未能创造知识,先做知识的搬运工!

原文地址:https://www.svm-tutorial.com/2016/09/unconstrained-minimization/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息