支持向量机
1 立体几何
1.1 向量的定义与几何表示
在数学中,我们把既有大小又有方向的量称为向量(矢量),而把只有大小没有方向的量称为数量(标量)。由于数量可以用实数表示,而实数与数轴上的点一一对应,所以数量可以用数轴上的点表示,不同点表示不同数量。有向线段 A B ⃗ \vec{AB} AB的长度可以表示向量的大小,有向线段的方向可以表示向量的方向,因此向量可以用有向线段来直观表示。一般向量的大小称为向量的模,记作 ∣ A B ⃗ ∣ |\vec{AB}| ∣AB∣。长度为0的向量称为零向量,长度为1的向量称为单位向量。
1.2 向量坐标与点坐标之间的关系
在平面直角坐标系中,设与x轴、y轴方向相同的两个单位向量分别为
i
⃗
\vec{i}
i,
j
⃗
\vec{j}
j,则对平面内任意一个向量,由平面向量基本定理可知,有且只有一对实数
x
x
x,
y
y
y,使得
a
⃗
=
x
i
⃗
+
y
j
⃗
\vec{a}=x\vec{i}+y\vec{j}
a=xi+yj
这样,平面内的任意向量
a
→
\overrightarrow{a}
a都可以用x,y唯一确定,我们把有序数对称为向量
a
⃗
\vec{a}
a的坐标,记为
a
⃗
=
(
x
,
y
)
\vec{a}=(x,y)
a=(x,y)
设
O
A
→
=
x
i
⃗
+
y
j
⃗
\overrightarrow{OA}=x\vec{i}+y\vec{j}
OA=xi+yj,其中O表示平面直角坐标系中的坐标原点,则向量
O
A
→
\overrightarrow{OA}
OA的坐标(x,y)就是终点A的坐标,反之,终点A的坐标就是向量
O
A
→
\overrightarrow{OA}
OA的坐标。这样就建立了向量坐标与点坐标之间的关系。
1.3 向量的模与方向
假设向量
a
⃗
T
=
(
x
,
y
)
\vec{a}^T=(x,y)
aT=(x,y),则向量
a
⃗
T
\vec{a}^T
aT的模为:
∣
∣
a
⃗
T
∣
∣
=
x
2
+
y
2
||\vec{a}^T||=\sqrt{x^2+y^2}
∣∣aT∣∣=x2+y2
a
⃗
T
\vec{a}^T
aT的方向为:
z
⃗
T
=
(
x
∣
∣
a
⃗
∣
∣
,
y
∣
∣
a
⃗
∣
∣
)
\vec{z}^T=(\frac{x}{||\vec{a}||},\frac{y}{||\vec{a}||})
zT=(∣∣a∣∣x,∣∣a∣∣y)
1.4 超平面定义
在几何数学中,超平面是指n维空间中一个n−1维的子空间。通常用如下方程表达:
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
+
b
=
w
⃗
T
x
⃗
+
b
=
0
w_1x_1 + w_2x_2 + \cdots + w_nx_n + b = \vec{w}^T\vec{x} + b = 0
w1x1+w2x2+⋯+wnxn+b=wTx+b=0
其中,
w
⃗
T
=
(
w
1
,
w
2
,
⋯
,
w
n
)
\vec{w}^T=(w_1,w_2,\cdots,w_n)
wT=(w1,w2,⋯,wn) 表示超平面的法向量,
b
b
b 表示超平面偏移量,
x
⃗
T
=
(
x
1
,
x
2
,
⋯
,
x
n
)
\vec{x}^T=(x_1,x_2,\cdots,x_n)
xT=(x1,x2,⋯,xn) 表示空间中的数据点。
1.5 点与超平面的关系
点与超平面的关系有三种:点在超平面上,点在超平面正侧和点在超平面负侧。点与超平面的关系可以通过计算将点带入平面方程来确定,该值的符号可以表示点相对超平面的位置。
- 点在超平面上:如果 w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b = 0 wTx+b=0,则点 x ⃗ \vec{x} x位于超平面上。
- 点在超平面正侧:如果 w ⃗ T x ⃗ + b > 0 \vec{w}^T\vec{x} + b > 0 wTx+b>0,则点 x ⃗ \vec{x} x位于超平面法向量 w ⃗ T \vec{w}^T wT指向的一侧。
- 点在超平面负侧:如果 w ⃗ T x ⃗ + b < 0 \vec{w}^T\vec{x} + b < 0 wTx+b<0,则点 x ⃗ \vec{x} x位于超平面法向量 w ⃗ T \vec{w}^T wT指向的反方向一侧。
例 1.1 在平面直角坐标系中,假定一个 w ⃗ T = ( 0.625 , 1 ) \vec{w}^T=(0.625,1) wT=(0.625,1) 和 b = − 8.25 b=-8.25 b=−8.25 的超平面,即 0.625 x + y − 8.25 = 0 0.625x + y - 8.25 = 0 0.625x+y−8.25=0 该超平面如图 1-1 所示。
图1-1 超平面分离数据
将点
(
2
,
7
)
(2,7)
(2,7)代入直线方程,可得
0.625
×
2
+
7
−
8.25
=
0
0.625 \times 2 + 7 - 8.25 = 0
0.625×2+7−8.25=0,因此点在直线上。
将点
(
7
,
9
)
(7,9)
(7,9)代入直线方程,可得
0.625
×
7
+
9
−
8.25
=
5.125
>
0
0.625 \times 7 + 9 - 8.25 = 5.125 > 0
0.625×7+9−8.25=5.125>0,因此点在直线正侧。
将点
(
3
,
3
)
(3,3)
(3,3)代入直线方程,可得
0.625
×
3
+
3
−
8.25
=
−
3.375
<
0
0.625 \times 3 + 3 - 8.25 = -3.375 < 0
0.625×3+3−8.25=−3.375<0,因此点在直线负侧。
2 最优化问题
2.1 凸集定义
如果
∀
x
1
,
x
2
∈
A
⊂
R
n
\forall{\pmb{x}_1,\pmb{x}_2} \in A \subset {\mathbb{R}^n}
∀x1,x2∈A⊂Rn,并对任意的
θ
∈
[
0
,
1
]
\theta \in [0,1]
θ∈[0,1],都有
θ
x
1
+
(
1
−
θ
)
x
2
∈
A
\theta{\pmb{x}_1} + (1-\theta)\pmb{x}_2 \in A
θx1+(1−θ)x2∈A
则称集合
A
A
A 是凸集。
2.2 凸函数定义
设一个
n
n
n 元实函数
f
(
x
)
f(\pmb{x})
f(x),
x
∈
A
⊂
R
n
\pmb{x}\in{A}\subset{\mathbb{R}^n}
x∈A⊂Rn,
A
A
A 是非空凸集,如果
∀
x
1
,
x
2
∈
A
\forall{\pmb{x}_1,\pmb{x}_2} \in A
∀x1,x2∈A,并对任意的
θ
∈
[
0
,
1
]
\theta \in [0,1]
θ∈[0,1],有
f
(
θ
x
1
+
(
1
−
θ
x
2
)
)
≤
θ
f
(
x
1
)
+
(
1
−
θ
)
f
(
x
2
)
f(\theta{\pmb{x}_1}+(1-\theta{\pmb{x}_2})) \leq \theta{f(\pmb{x}_1)} + (1-\theta){f(\pmb{x}_2)}
f(θx1+(1−θx2))≤θf(x1)+(1−θ)f(x2)
则称函数
f
(
x
)
f(x)
f(x) 是凸函数。若上式严格不等,则称函数
f
(
x
)
f(x)
f(x) 是严格凸函数。
2.3 无约束优化问题
求解最优化问题的第一个一般性的分析方法是Fermat提出的,他给出了无约束优化问题的极值点应满足的必要条件。
定理 2.1 (Fermat定理) 设
f
(
x
)
f(\pmb{x})
f(x) 为一个
n
n
n 元函数,
x
=
(
x
1
,
x
2
,
⋯
,
x
n
)
T
∈
A
⊆
R
n
\pmb{x}=(x_1,x_2,\cdots,x_n)^T \in A \subseteq{\mathbb{R}^n}
x=(x1,x2,⋯,xn)T∈A⊆Rn,如果
x
∗
\pmb{x}^*
x∗ 是函数
f
f
f 的一个极值点,且函数在
x
∗
\pmb{x}^*
x∗ 处连续可微,则在
x
∗
\pmb{x}^*
x∗ 上有
f
x
′
(
x
∗
)
=
0
(1-1)
f_{\pmb{x}}^{'}(\pmb{x}^*) = 0 \tag{1-1}
fx′(x∗)=0(1-1)
分析:该定理证明可以使用反证法,首先假设
x
∗
\pmb{x}^*
x∗ 是局部极小值,但梯度
f
x
′
(
x
∗
)
≠
0
f_{\pmb{x}}^{'}(\pmb{x}^*) \neq 0
fx′(x∗)=0,如果能找到一个方向
d
\pmb{d}
d,使得在这个方向上,函数值是下降。很显然,函数在负梯度方向是下降的,那么我们就证明了
x
∗
\pmb{x}^*
x∗ 不是局部极小值。
证明:
假定
f
x
′
(
x
∗
)
≠
0
f_{\pmb{x}}^{'}(\pmb{x}^*) \neq 0
fx′(x∗)=0,则
∃
d
∈
R
n
\exists{\pmb{d}} \in \R^n
∃d∈Rn,使得
d
T
f
x
′
(
x
∗
)
<
0
\pmb{d}^Tf_{\pmb{x}}^{'}(\pmb{x}^*) < 0
dTfx′(x∗)<0,例如,
d
=
−
f
x
′
(
x
∗
)
\pmb{d} = -f_{\pmb{x}}^{'}(\pmb{x}^*)
d=−fx′(x∗)。由
f
x
′
(
x
)
f_{\pmb{x}}^{'}(\pmb{x})
fx′(x)的连续性可知,
∃
δ
>
0
\exists{\delta > 0}
∃δ>0,使得
d
T
f
x
′
(
x
∗
+
α
d
)
<
0
,
α
∈
(
0
,
δ
]
\pmb{d}^Tf_{\pmb{x}}^{'}(\pmb{x^* + \alpha{\pmb{d}}}) < 0,\alpha \in (0,\delta]
dTfx′(x∗+αd)<0,α∈(0,δ]
由中值定理可知,对
∀
α
1
∈
(
0
,
δ
]
\forall \alpha_1 \in (0,\delta]
∀α1∈(0,δ],
∃
α
∈
(
0
,
α
1
)
\exists \alpha \in (0,\alpha_1)
∃α∈(0,α1),使
f
(
x
∗
+
α
1
d
)
=
f
(
x
∗
)
+
α
1
d
T
f
x
′
(
x
∗
+
α
d
)
f(\pmb{x}^* + \alpha_1\pmb{d}) = f(x^*) + \alpha_1\pmb{d}^Tf_{\pmb{x}}^{'}(\pmb{x^* + \alpha{\pmb{d}}})
f(x∗+α1d)=f(x∗)+α1dTfx′(x∗+αd)
因此,
f
(
x
∗
+
α
1
d
)
<
f
(
x
∗
)
f(\pmb{x}^* + \alpha_1\pmb{d}) < f(\pmb{x}^*)
f(x∗+α1d)<f(x∗),即
x
∗
\pmb{x}^*
x∗ 不是
f
(
x
)
f(\pmb{x})
f(x)的局部极小值点,与原命题矛盾。
这个定理给出了局部最优解的必要条件,运用这个定理须求解
n
n
n 个联立的方程:
∂
f
∂
x
i
=
0
,
i
=
1
,
2
,
…
,
n
\frac{\partial{f}}{\partial{x_i}} = 0,i=1,2,\dots,n
∂xi∂f=0,i=1,2,…,n
要求得全局最优解,应将所得的各极小值或极大值与函数奇异点及边界点的值进行比较,取其最小或最大值对应的
x
\pmb{x}
x 作为全局最优解。
定理 2.2 (Lagrange中值定理) 若函数
f
f
f 满足如下条件:
(i)
f
f
f 在闭区间
[
a
,
b
]
[a,b]
[a,b] 上连续;
(ii)
f
f
f 在开区间
(
a
,
b
)
(a,b)
(a,b) 上可导,
则在
(
a
,
b
)
(a,b)
(a,b) 上至少存在一点
ξ
\xi
ξ,使得
f
′
(
ξ
)
=
f
(
b
)
−
f
(
a
)
b
−
a
f^{'}(\xi) = \frac{f(b) - f(a)}{b - a}
f′(ξ)=b−af(b)−f(a)
2.4 等式约束优化问题
Lagrange 给出了在等式约束下求解函数极值点的分析方法原理,它利用数学上的概念与技巧,将等式约束下的条件极值问题转化为无约束的极值问题。条件极值问题可以描述为:
{
f
(
x
)
s
.
t
.
h
k
(
x
)
=
0
,
k
=
1
,
2
,
…
,
l
\begin{cases} f(\pmb{x}) \\ s.t.\quad h_k(\pmb{x}) = 0, \quad k=1,2,\dots,l \end{cases}
{f(x)s.t.hk(x)=0,k=1,2,…,l
上述条件极值问题可以归结为求下面的辅助函数的极值:
L
(
x
,
λ
0
,
λ
)
=
λ
0
f
(
x
)
+
∑
k
=
1
l
λ
k
h
k
(
x
)
(1-2)
L(\pmb{x}, \lambda_0, \pmb{\lambda}) = \lambda_0f(\pmb{x}) + \sum_{k=1}^l{\lambda_k}h_k(\pmb{x}) \tag{1-2}
L(x,λ0,λ)=λ0f(x)+k=1∑lλkhk(x)(1-2)
式中,
L
(
⋅
)
L(\cdot)
L(⋅) 称为 Lagrange 函数,
λ
i
(
i
=
0
,
1
,
⋯
,
l
)
\lambda_i(i=0,1,\cdots,l)
λi(i=0,1,⋯,l) 称为 Lagrange 乘子。
定理 2.3 (Lagrange定理) 对于上述优化问题 (1-2),令
x
=
(
x
1
,
x
2
,
⋯
,
x
n
)
T
∈
R
n
\pmb{x} = (x_1,x_2,\cdots,x_n)^T \in \mathbb{R}^n
x=(x1,x2,⋯,xn)T∈Rn,设函数
f
(
x
)
f(\pmb{x})
f(x),
h
k
(
x
)
(
k
=
1
,
⋯
,
l
)
h_k(\pmb{x})(k=1,\cdots,l)
hk(x)(k=1,⋯,l) 在点
x
∗
\pmb{x}^*
x∗ 处可微。若
x
∗
\pmb{x}^*
x∗ 是
f
(
x
)
f(\pmb{x})
f(x) 的一个条件极值点,则存在不全为零的 Lagrange 乘子
λ
0
\lambda_0
λ0 和
λ
∗
=
(
λ
1
∗
,
λ
2
∗
,
⋯
,
λ
l
∗
)
\pmb{\lambda^*}=(\lambda_1^*,\lambda_2^*,\cdots,\lambda_l^*)
λ∗=(λ1∗,λ2∗,⋯,λl∗),使得下列条件成立:
L
x
i
′
(
x
∗
,
λ
0
∗
,
λ
∗
)
=
0
,
i
=
1
,
2
,
⋯
,
n
(1-3)
L_{x_i}^{'}(\pmb{x}^*, \lambda_0^*, \pmb{\lambda}^*) = 0,i=1,2,\cdots,n \tag{1-3}
Lxi′(x∗,λ0∗,λ∗)=0,i=1,2,⋯,n(1-3)
L
λ
i
′
(
x
∗
,
λ
0
∗
,
λ
∗
)
=
0
,
i
=
1
,
2
,
⋯
,
l
(1-4)
L_{\lambda_i}^{'}(\pmb{x}^*, \lambda_0^*, \pmb{\lambda}^*) = 0,i=1,2,\cdots,l \tag{1-4}
Lλi′(x∗,λ0∗,λ∗)=0,i=1,2,⋯,l(1-4)
为了使
λ
0
≠
0
\lambda_0 \neq 0
λ0=0,充要条件是
l
l
l 个矢量
∂
h
1
x
,
∂
h
2
x
,
⋯
,
∂
h
l
x
\frac{\partial{h_1}}{\pmb{x}},\frac{\partial{h_2}}{\pmb{x}},\cdots,\frac{\partial{h_l}}{\pmb{x}}
x∂h1,x∂h2,⋯,x∂hl
在点
f
(
x
)
f(\pmb{x})
f(x) 上是线性无关的。
由式(1-3)可以产生
n
n
n 个新方程,式(1-4)可以产生
l
l
l 个方程,显然运用上述定理,需要求解含
n
+
l
+
1
n+l+1
n+l+1 个未知数的方程。
在
λ
0
≠
0
\lambda_0 \neq 0
λ0=0 下,不妨取
λ
0
=
1
\lambda_0 = 1
λ0=1,这相当于其余的Lagrange乘子都要乘以一个银子,这不影响问题的解,在这种情况下,问题变为求解下面
n
+
l
n + l
n+l 个方程的方程组。
例 2.2 假设有以下约束优化问题:
min
x
,
y
f
(
x
,
y
)
=
x
2
+
y
2
s
.
t
.
g
(
x
,
y
)
=
x
+
y
−
1
=
0
\min_{x, y}{f(x, y) = x^2 + y^2} \\ s.t.\quad g(x, y) = x + y -1 = 0
x,yminf(x,y)=x2+y2s.t.g(x,y)=x+y−1=0
图1-2 等式约束优化问题的几何表示
从图1-2可以看出,目标函数和条件等式约束在极值点处梯度共线,即
∇
f
(
x
)
=
λ
∇
g
(
x
)
\nabla{f(x)} = \lambda{\nabla{g(x)}}
∇f(x)=λ∇g(x)。
解:
目标函数梯度为:
∇
f
(
x
,
y
)
=
(
∂
f
∂
x
,
∂
f
∂
y
)
=
(
2
x
,
2
y
)
\nabla{f(x, y)} = (\frac{\partial{f}}{\partial{x}},\frac{\partial{f}}{\partial{y}}) = (2x,2y)
∇f(x,y)=(∂x∂f,∂y∂f)=(2x,2y)
约束条件梯度为:
∇
g
(
x
,
y
)
=
(
∂
g
∂
x
,
∂
g
∂
y
)
=
(
1
,
1
)
\nabla{g(x, y)} = (\frac{\partial{g}}{\partial{x}},\frac{\partial{g}}{\partial{y}}) = (1,1)
∇g(x,y)=(∂x∂g,∂y∂g)=(1,1)
由于目标函数梯度与约束条件梯度在极值点处共线,则
{
2
x
=
λ
2
y
=
λ
x
+
y
−
1
=
0
\begin{cases} 2x = \lambda \\ 2y = \lambda \\ x + y -1 = 0 \\ \end{cases}
⎩
⎨
⎧2x=λ2y=λx+y−1=0
通过代入法可得,该约束函数的极值点在(0.5,0.5)。
2.5 不等式约束优化问题
从下面的分离定理,我们可以得到Farkas引理;再由Farkas引理,我们便可以得到约束优化问题的一阶最优性条件。
引理 2.1 (分离定理) 设
C
C
C 是
m
m
m 个
n
n
n 维向量
a
1
,
⋯
,
a
m
a_1,\cdots,a_m
a1,⋯,am 生成的集合:
C
=
{
v
∣
v
=
∑
i
=
1
m
λ
i
a
i
,
λ
i
≥
0
,
i
=
1
,
⋯
,
m
}
C = \{v|v=\sum_{i=1}^m{\lambda_ia_i,\lambda_i \geq 0,i=1,\cdots,m}\}
C={v∣v=i=1∑mλiai,λi≥0,i=1,⋯,m}
如果
n
n
n 维向量
g
∉
C
g \notin C
g∈/C,则存在一个法向量
d
d
d 的超平面
Π
\Pi
Π 分离
g
g
g 与
C
C
C,使得
g
T
d
<
0
a
i
T
d
≥
0
,
i
=
1
,
⋯
,
m
.
g^Td < 0 \\ a_i^Td \geq 0,i=1,\cdots,m.
gTd<0aiTd≥0,i=1,⋯,m.
引理 2.2 ( Farkas引理) 给任意一个
n
n
n 维向量
a
1
,
⋯
,
a
m
a_1,\cdots,a_m
a1,⋯,am 和
g
g
g ,则集合
D
=
{
d
∣
g
T
d
<
0
,
a
i
T
d
≥
0
,
i
=
1
,
⋯
,
m
}
\mathcal{D} = \{d|g^Td < 0,a_i^Td \geq 0,i=1,\cdots,m\}
D={d∣gTd<0,aiTd≥0,i=1,⋯,m}
为空集的充分必要条件是,存在
λ
i
≥
0
(
i
=
1
,
⋯
,
m
)
\lambda_i \geq 0(i=1,\cdots,m)
λi≥0(i=1,⋯,m),使得
g
=
∑
i
=
1
m
λ
i
a
i
g = \sum_{i=1}^m \lambda_ia_i
g=i=1∑mλiai
例 2.3 如图1-3所示,考虑下述优化问题:
min
x
1
,
x
2
f
(
x
1
,
x
2
)
=
x
1
2
+
x
2
2
s
.
t
.
{
x
1
2
+
x
2
2
≤
5
x
1
+
2
x
2
≤
4
x
1
,
x
2
≥
0
\min_{x_1, x_2}{f(x_1, x_2) = x_1^2 + x_2^2} \\ s.t. \begin{cases} x_1^2 + x_2^2 \leq 5 \\ x_1 + 2x_2 \leq 4 \\ x_1,x_2 \geq 0 \end{cases}
x1,x2minf(x1,x2)=x12+x22s.t.⎩
⎨
⎧x12+x22≤5x1+2x2≤4x1,x2≥0
图1-3 不等式约束优化问题的几何表示
例 2.4 如图1-4所示,考虑下述优化问题:
min
x
1
,
x
2
f
(
x
1
,
x
2
)
=
x
2
s
.
t
.
{
−
x
1
−
x
2
2
≥
0
x
1
=
0
\min_{x_1, x_2}{f(x_1, x_2) = x_2} \\ s.t. \begin{cases} -x_1 - x_2^2 \geq 0 \\ x_1 = 0 \end{cases}
x1,x2minf(x1,x2)=x2s.t.{−x1−x22≥0x1=0
该问题的最优解为
x
∗
=
(
0
,
0
)
T
x^* = (0, 0)^T
x∗=(0,0)T。另外,目标函数和约束函数梯度为
g
∗
=
[
0
1
]
,
a
1
∗
=
[
−
1
0
]
,
a
2
∗
=
[
1
0
]
g^* = \begin{bmatrix} 0 \\ 1 \end{bmatrix}, a_1^* = \begin{bmatrix} -1 \\ 0 \end{bmatrix}, a_2^* = \begin{bmatrix} 1 \\ 0 \end{bmatrix}
g∗=[01],a1∗=[−10],a2∗=[10]
显然,在
x
∗
=
(
0
,
0
)
T
x^* = (0, 0)^T
x∗=(0,0)T,引理1.2不成立,具体如下图:
图1-4 不等式约束优化问题的几何表示
从图1-4可以看出,在最优解处,若要满足引理1.2,约束条件还需满足一些条件。我们称这些条件为约束规范条件或约束限制条件。
约束最优化问题最优性条件的核心就是下面要介绍的一阶必要条件,它是由Farkas引理的推论得到。
设一般约束优化问题为:
min
f
(
x
)
s
.
t
.
c
i
(
x
)
=
0
,
i
∈
ε
c
i
(
x
)
≤
0
,
i
∈
I
(1-5)
\min{f(\pmb{x})} \tag{1-5} \\ s.t. \quad c_i(x)=0,i \in \varepsilon \\ \quad\quad\quad c_i(x) \leq 0,i \in I
minf(x)s.t.ci(x)=0,i∈εci(x)≤0,i∈I(1-5)
其中
x
∈
R
n
x \in \mathbb{R}^n
x∈Rn,
f
(
x
)
∈
R
f(x) \in \mathbb{R}
f(x)∈R 为目标函数,
c
i
(
x
)
∈
R
c_i(x) \in \mathbb{R}
ci(x)∈R 为约束函数。
定理 2.4 (KKT) 若
x
∗
x^*
x∗ 为问题 (1-5) 的局部解,且在
x
∗
x^*
x∗ 处正在性假设成立,则存在Lagrange乘子
λ
∗
∈
R
m
\lambda^* \in \mathbb{R}^m
λ∗∈Rm,使得
x
∗
x^*
x∗ ,
λ
∗
\lambda^*
λ∗ 满足
∇
x
L
(
x
∗
,
λ
∗
)
=
0
λ
i
∗
≥
0
λ
i
∗
c
i
(
x
∗
)
=
0
\nabla_x{L(x^*,\lambda^*)} = 0 \\ \lambda_i^* \geq 0 \\ \lambda_i^*c_i(x^*) = 0
∇xL(x∗,λ∗)=0λi∗≥0λi∗ci(x∗)=0
其中
L
(
x
,
λ
)
=
f
(
x
)
−
∑
i
=
1
m
λ
i
c
i
(
x
)
L(x, \lambda) = f(x) - \sum_{i=1}^m\lambda_ic_i(x)
L(x,λ)=f(x)−i=1∑mλici(x)
为Lagrange函数。
注释
如果Lagrange乘子为零,则称该约束为无效约束,这是因为该约束并未对问题产生影响。目标函数的最小值点可能在可行区域内也可能在可行区域边界上。对于前一种情况,优化问题可以等价为无约束问题。如果最小值位于可行区域内部,那么当远离最小值运动时,目标函数势必会增加。因此,这一点也称为目标函数的稳定点。在这种情况下,约束是多余的,不会影响原问题的解。当目标函数的最优解位于可行区域外,约束优化问题的最优解位于可行区域边界上。这种情况下,将会有一个或多个约束是有效约束,其他约束为无效约束。
3 Gram矩阵
Gram矩阵(Gram matrix)是一个数学概念,广泛应用于线性代数、最优化、统计学、机器学习等领域。它是由向量内积构成的矩阵,能够反映这些向量之间的相似性或相关性。
定义 3.1 Gram矩阵定义
给定一组向量
x
⃗
1
,
x
⃗
2
,
⋯
,
x
⃗
m
∈
R
n
\vec{x}_1,\vec{x}_2,\cdots,\vec{x}_m \in \mathbb{R}^n
x1,x2,⋯,xm∈Rn,它们组成矩阵
X
X
X
X
=
[
x
⃗
1
,
x
⃗
2
,
⋯
,
x
⃗
m
]
X = [\vec{x}_1,\vec{x}_2,\cdots,\vec{x}_m]
X=[x1,x2,⋯,xm]
Gram矩阵是由这些向量之间的内积构成的堆成矩阵,定义如下:
G = X T X = [ x 1 ⃗ T x 1 ⃗ x 1 ⃗ T x 2 ⃗ ⋯ x 1 ⃗ T x m ⃗ x 2 ⃗ T x 1 ⃗ x 2 ⃗ T x 2 ⃗ ⋯ x 2 ⃗ T x m ⃗ ⋮ ⋮ ⋱ ⋮ x m ⃗ T x m ⃗ x m ⃗ T x 2 ⃗ ⋯ x m ⃗ T x m ⃗ ] G = X^TX= \begin{bmatrix} \vec{x_1}^T\vec{x_1} & \vec{x_1}^T\vec{x_2} & \cdots & \vec{x_1}^T\vec{x_m} \\ \vec{x_2}^T\vec{x_1} & \vec{x_2}^T\vec{x_2} & \cdots & \vec{x_2}^T\vec{x_m} \\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ \vec{x_m}^T\vec{x_m} & \vec{x_m}^T\vec{x_2} & \cdots & \vec{x_m}^T\vec{x_m} \end{bmatrix} G=XTX= x1Tx1x2Tx1⋮xmTxmx1Tx2x2Tx2⋮xmTx2⋯⋯⋱⋯x1Txmx2Txm⋮xmTxm
我们称矩阵
G
G
G 为Gram矩阵。
性质 1.1 Gram对称性
G
T
=
(
X
T
X
)
T
=
X
T
X
G^T = (X^TX)^T = X^TX
GT=(XTX)T=XTX
性质 1.2 Gram半正定性
设
a
⃗
∈
R
n
\vec{a} \in \mathbb{R}^n
a∈Rn,则
a
⃗
T
X
T
X
a
⃗
=
(
X
a
⃗
)
T
X
a
⃗
=
∣
∣
v
⃗
∣
∣
≥
0
\vec{a}^TX^TX\vec{a} = (X\vec{a})^TX\vec{a} = ||\vec{v}|| \geq 0
aTXTXa=(Xa)TXa=∣∣v∣∣≥0
其中,
v
⃗
=
X
a
⃗
=
[
x
⃗
1
x
⃗
2
⋯
x
⃗
m
]
[
a
1
a
2
⋮
a
m
]
=
[
a
1
a
2
⋯
a
m
]
[
x
⃗
1
x
⃗
2
⋮
x
⃗
m
]
\vec{v} = X\vec{a} = \begin{bmatrix} \vec{x}_1 & \vec{x}_2 & \cdots & \vec{x}_m \end{bmatrix} \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_m \end{bmatrix}= \begin{bmatrix} a_1 & a_2 & \cdots & a_m \end{bmatrix} \begin{bmatrix} \vec{x}_1 \\ \vec{x}_2 \\ \vdots \\ \vec{x}_m \end{bmatrix}
v=Xa=[x1x2⋯xm]
a1a2⋮am
=[a1a2⋯am]
x1x2⋮xm
4 模型构建
4.1 分类问题提出
在为完全确诊某些疾病的检查中,有些检查可能是十分昂贵的,或者是创伤性的。因此,利用一些有关的容易获得的临床指标进行辅助性的推断是一项有意义的工作。美国Cleveland Heart Disease Database提供的数据(Heart Disease数据集下载地址)可以用作对心脏病进行辅助性诊断的基础。该数据包括了303个病人信息。事实上,该数据不仅记录了这些病人的血压(低压)、胆固醇等13项与心脏病有关的指标,而且还记录了这些病人是否患有心脏病的确证结论,这里的确诊并非完全根据13项指标做出的,而是利用其他手段。现在的问题是如何根据这一数据对新来的病人只通过检测这13项指标,就推断该病人是否患有心脏病。;很显然,推断病人是否患有心脏病是分类问题,也称模式识别问题,在统计学习中,称为判别分析问题。
例 2.1.1 假定是否患有心脏病与病人血压和胆固醇水平密切相关,表2-1列出了10个病人的临床数据,其中x1表示病人血压水平,x2表示病人胆固醇水平,y表示病人所属类别标记:y=1表示病人有心脏病;y=-1表示病人无心脏病。
病人编号 | 血压 x1 | 胆固醇水平 x2 | 是否有心脏病 y |
---|---|---|---|
1 | 73 | 150 | -1 |
2 | 85 | 165 | -1 |
... | ... | ... | ... |
10 | 110 | 190 | 1 |
现在的问题是,对新来的病人,已测得他的血压x1和胆固醇水平x2,试推断他是否患有心脏病,即y=1或y=-1?
4.2 分类问题分析
要解决上一节的问题,需将表2-1的数据绘制在平面直角坐标系中,用直角坐标系的点来表示每个病人,点的位置由病人的两个指标来确定,病人是否患有心脏病由点的形状来确定,当y=1时,用"+"形点;当y=-1时,用"o"形点,具体如图2-1所示。
图2-1 心脏病辅助诊断数据坐标表示
针对上述问题,一个很自然的思路是建立
x
⃗
\vec{x}
x与y的关系。通过分析问题的值域,可以发现符号函数的值域与问题的值域相符。符号函数的表达式如下:
s
g
n
(
t
)
=
{
1
,
t
>
0
0
,
t
=
0
−
1
,
t
<
0
sgn(t)= \begin{cases} 1,&t>0 \\ 0,&t=0 \\ -1,&t<0 \\ \end{cases}
sgn(t)=⎩
⎨
⎧1,0,−1,t>0t=0t<0
显然,仅凭符号函数无法完全建立
x
⃗
\vec{x}
x与y的关系,因此还需要引入另外一种关系来共同构建
x
⃗
\vec{x}
x与y的关系。通过分析符号函数的定义域可以发现,若再引入点与超平面的关系就可以完全解决该类问题,具体表达式如下:
y
=
s
g
n
(
w
⃗
T
x
⃗
+
b
)
=
{
1
,
w
⃗
T
x
⃗
+
b
>
0
0
,
w
⃗
T
x
⃗
+
b
=
0
−
1
,
w
⃗
T
x
⃗
+
b
<
0
y=sgn(\vec{w}^T\vec{x}+b)= \begin{cases} 1,& \vec{w}^T\vec{x}+b > 0 \\ 0,& \vec{w}^T\vec{x}+b = 0 \\ -1,& \vec{w}^T\vec{x}+b < 0 \\ \end{cases}
y=sgn(wTx+b)=⎩
⎨
⎧1,0,−1,wTx+b>0wTx+b=0wTx+b<0
上面,我们讨论了如何找到一个可以对线性可分数据进行分类的超平面。在实际应用上,对于给定的训练数据,往往存在多个可以用来分类的超平面。因此,我们需要一个标准来选择这些超平面中最优的一个超平面。
由于最近点与超平面的距离和超平面是一一对应的,即一个超平面只有一个最近点,所以我们可以通过最近点到超平面的距离来给超平面排序。给定一个训练集
D
=
{
(
x
i
,
y
i
)
∣
x
i
∈
R
n
,
y
i
∈
{
−
1
,
1
}
}
\mathcal{D}=\{(x_i,y_i)|x_i \in \mathcal{R^n}, y_i \in \{-1,1\}\}
D={(xi,yi)∣xi∈Rn,yi∈{−1,1}},计算每个训练样本到超平面的距离
β
i
\beta_i
βi,定义
B
B
B 为这些距离中的最小值,即:
B
=
min
i
=
1
,
⋯
,
m
β
i
(1-1)
B=\min_{i=1, \cdots,m} \beta_i \tag{1-1}
B=i=1,⋯,mminβi(1-1)
假设有
k
k
k 个不同的超平面,我们希望选择一个最大的
B
B
B,即找到一个使得最小距离最大的超平面,具体表达式如下:
max
j
=
1
,
⋯
,
k
min
i
=
1
,
⋯
,
m
β
i
(1-2)
\max_{j=1,\cdots,k}\min_{i=1, \cdots,m} \beta_i \tag{1-2}
j=1,⋯,kmaxi=1,⋯,mminβi(1-2)
使用方程的返回值来定义点到超平面的距离有其局限性,特别是在返回值为负数的情况下。当超平面方程的返回值为负数时,选择最小值来表示最近点到划分超平面的距离会出现误差。例如,对于
β
=
−
5
\beta=-5
β=−5 和
β
=
−
1
\beta=-1
β=−1 的两个点,选择最小值
β
=
−
5
\beta=-5
β=−5 其实并不合适,因为
β
=
−
1
\beta=-1
β=−1 更接近超平面。为了修正这个问题,我们考虑取
β
\beta
β的绝对值,则表达式可表述为:
max
j
=
1
,
⋯
,
k
min
i
=
1
,
⋯
,
m
∣
β
i
∣
\max_{j=1,\cdots,k}\min_{i=1, \cdots,m} |\beta_i|
j=1,⋯,kmaxi=1,⋯,mmin∣βi∣
同样
B
B
B 的选择也有其局限性,具体情况如下图所示:
![]() | ![]() |
图 a 划分超平面1 | 图 b 划分超平面2 |
通过上图可以看出,这两个超平面的
B
B
B 值都是
2
2
2,现在的问题是我们不知道哪个超平面的划分结果是正确的。遇到这种情况,我们需要调整公式来选择最优的超平面。在训练数据
x
i
⃗
=
(
x
i
,
y
i
)
\vec{x_i}=(x_i,y_i)
xi=(xi,yi)中,我们没有使用
y
i
y_i
yi,如果我们用
β
i
\beta_i
βi 乘以
y
i
y_i
yi,则表达式如下:
γ
i
^
=
y
i
(
w
⃗
T
x
i
⃗
+
b
)
(1-3)
\hat{\gamma_i} = y_i(\vec{w}^T\vec{x_i} + b) \tag{1-3}
γi^=yi(wTxi+b)(1-3)
其中,
γ
i
^
\hat{\gamma_i}
γi^ 为函数间隔。
注意:对于线性可分训练集来说,函数间隔的值都是正值,这意味着点
x
i
⃗
\vec{x_i}
xi 被正确分类。
看起来这次我们找到了一个好的方法来比较两个超平面。然而,函数间隔存在一个很严重的问题:缺少比率不变性。例如,给定一个法向量
w
1
=
(
2
,
1
)
w_1=(2,1)
w1=(2,1) 和偏置
b
1
=
5
b_1=5
b1=5,如果我们用10乘以它们,则
w
1
=
(
2
,
1
)
w_1=(2,1)
w1=(2,1) 和偏置
b
1
=
5
b_1=5
b1=5。实际上这两个超平面是同一个超平面,因为它们的单位向量相同(超平面与向量
w
1
w_1
w1正交,不用关心它的长度,重要的是它的方法)。
解决上述问题,我们只需要做一个小小的调整,用单位向量代替向量
w
⃗
\vec{w}
w ,同时用
∣
∣
w
⃗
∣
∣
||\vec{w}||
∣∣w∣∣ 保持比率不变性,则表达式可写为:
γ
i
=
y
i
(
w
⃗
T
∣
∣
w
⃗
∣
∣
x
i
⃗
+
b
∣
∣
w
⃗
∣
∣
)
(1-4)
\gamma_i = y_i(\frac{\vec{w}^T}{||\vec{w}||}\vec{x_i} + \frac{b}{||\vec{w}||}) \tag{1-4}
γi=yi(∣∣w∣∣wTxi+∣∣w∣∣b)(1-4)
γ
i
\gamma_i
γi 的优点在于它能给我们一个相同的数,而不用考虑向量
w
⃗
\vec{w}
w 的取值,我们称
γ
i
\gamma_i
γi 为示例的几何间隔。
参考文献
[1] 高立. 数值最优化方法[M]. 北京: 清华大学出版社, 2014:153-181.
[2] Sergios Theodoridis,Konstantinos Koutroumbas. Pattern Recognition[M]. 北京: 电子工业出版社, 2009:640-645.