机器学习—支持向量机理论详细推导(含例题讲解)(四)

本文探讨了非线性支持向量机通过核函数将非线性问题转化为线性问题的方法,重点介绍了核函数的作用、如何找到正定核,以及常见核函数如多项式和高斯核的应用。通过实例解析映射过程,揭示了如何在新空间中利用线性分类解决非线性问题。
摘要由CSDN通过智能技术生成

12.非线性支持向量机与核函数

线性可分:用一个分离超平面 ω ⋅ x + b \omega\cdot x+b ωx+b将数据集完全分开;

非线性可分:用一个超曲面分开数据集。

非线性问题往往不好求解,所以希望能用解线性分类间题的方法解决这个问题。

采取的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。

即:怎么将原空间上的点映射到新空间上的点!

13.核函数有什么用?

原空间:输入空间 min ⁡    ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t .    ∑ i = 1 N α i y i = 0    ,    α i ≥ 0    ,    i = 1 , 2 , ⋯   , N \begin{split} &\min\;\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_i\\ &s.t.\;\sum_{i=1}^{N}\alpha_iy_i=0\;,\;\alpha_i\geq0\;,\;i=1,2,\cdots,N \end{split} mini=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.i=1Nαiyi=0,αi0,i=1,2,,N

在上式中 x i ⋅ x j x_i\cdot x_j xixj是内积,新空间中可能变为 z z z,对应希尔伯特空间,要能计算 z i ⋅ z j z_i\cdot z_j zizj

希望找到一个映射 ϕ ( x ) : χ → \phi(x):\chi\rightarrow ϕ(x):χ H H H z i = ϕ ( x i )    ,    z j = ϕ ( x j ) z i ⋅ z j = ϕ ( x i ) ⋅ ϕ ( x j ) = K ( x i , x j ) \begin{split} &z_i=\phi(x_i)\;,\;z_j=\phi(x_j)\\ &z_i\cdot z_j=\phi(x_i)\cdot \phi(x_j)=K(x_i,x_j) \end{split} zi=ϕ(xi),zj=ϕ(xj)zizj=ϕ(xi)ϕ(xj)=K(xi,xj)

如果可以实现,非线性支持向量机变为:
min ⁡    ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i \min\;\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^{N}\alpha_i mini=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi

接下来我们看一个例子:

K ( x , z ) = ( x ⋅ z ) 2    ,    x    z ∈ R 2 K(x,z)=(x\cdot z)^2\;,\;x\;z\in R^2 K(x,z)=(xz)2,xzR2

请问: ϕ → H \phi\rightarrow H ϕH?

解: x = ( x ( 1 ) , x ( 2 ) ) T    ,    z = ( z ( 1 ) , z ( 2 ) ) T x=(x^{(1)},x^{(2)})^T\;,\;z=(z^{(1)},z^{(2)})^T x=(x(1),x(2))T,z=(z(1),z(2))T
K ( x , z ) = ( x ( 1 ) z ( 1 ) + x ( 2 ) z ( 2 ) ) 2 = ( x ( 1 ) z ( 1 ) ) 2 + 2 x ( 1 ) x ( 2 ) z ( 1 ) z ( 2 ) + ( x ( 2 ) z ( 2 ) ) 2 \begin{split} K(x,z)&=(x^{(1)}z^{(1)}+x^{(2)}z^{(2)})^2\\ &=(x^{(1)}z^{(1)})^2+2x^{(1)}x^{(2)}z^{(1)}z^{(2)}+(x^{(2)}z^{(2)})^2 \end{split} K(x,z)=(x(1)z(1)+x(2)z(2))2=(x(1)z(1))2+2x(1)x(2)z(1)z(2)+(x(2)z(2))2

我们尝试 H = R 3 H=R^3 H=R3
ϕ ( x ) = ( ( x ( 1 ) ) 2 , 2 x ( 1 ) x ( 2 ) , ( x ( 2 ) ) 2 ) T \phi(x)=((x^{(1)})^2,\sqrt{2}x^{(1)}x^{(2)},(x^{(2)})^2)^T ϕ(x)=((x(1))2,2 x(1)x(2),(x(2))2)T

1) ϕ : R 2 → R 3 \phi:R^2\rightarrow R^3 ϕ:R2R3
ϕ ( x ) ⋅ ϕ ( z ) = ( x ( 1 ) z ( 1 ) ) 2 + 2 x ( 1 ) x ( 2 ) z ( 1 ) z ( 2 ) + ( x ( 2 ) z ( 2 ) ) 2 = K ( x , z ) \phi(x)\cdot \phi(z)=(x^{(1)}z^{(1)})^2+2x^{(1)}x^{(2)}z^{(1)}z^{(2)}+(x^{(2)}z^{(2)})^2=K(x,z) ϕ(x)ϕ(z)=(x(1)z(1))2+2x(1)x(2)z(1)z(2)+(x(2)z(2))2=K(x,z)

2) ϕ ( x ) = 1 2 ( ( x ( 1 ) ) 2 − ( x ( 2 ) ) 2    ,    2 x ( 1 ) x ( 2 )    ,    ( x ( 1 ) ) 2 + ( x ( 2 ) ) 2 ) T ϕ ( x ) ⋅ ϕ ( z ) = K ( x , z ) \begin{split} &\phi(x)=\frac{1}{\sqrt{2}}((x^{(1)})^2-(x^{(2)})^2\;,\;2x^{(1)}x^{(2)}\;,\;(x^{(1)})^2+(x^{(2)})^2)^T\\ &\phi(x)\cdot \phi(z)=K(x,z) \end{split} ϕ(x)=2 1((x(1))2(x(2))2,2x(1)x(2),(x(1))2+(x(2))2)Tϕ(x)ϕ(z)=K(x,z)

对于同一个核函数,有多个不同的映射!

我们总结一下:

原空间: χ ∈ R 2    ,    x = ( x ( 1 ) , x ( 2 ) ) T ∈ χ \chi\in R^2\;,\;x=(x^{(1)},x^{(2)})^T\in \chi χR2,x=(x(1),x(2))Tχ

新空间: Z ∈ R 2    ,    z = ( z ( 1 ) , z ( 2 ) ) T ∈ Z z = ϕ ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) T ⇒ ω 1 ( x ( 1 ) ) 2 + ω 2 ( x ( 2 ) ) 2 + b = 0 ⇒ ω 1 z ( 1 ) + ω 2 z ( 2 ) + b = 0 \begin{split} &Z\in R^2\;,\;z=(z^{(1)},z^{(2)})^T\in Z\\ &z=\phi(x)=((x^{(1)})^2,(x^{(2)})^2)^T\\ \Rightarrow &\omega_1(x^{(1)})^2+\omega_2(x^{(2)})^2+b=0\\ \Rightarrow &\omega_1z^{(1)}+\omega_2z^{(2)}+b=0 \end{split} ZR2,z=(z(1),z(2))TZz=ϕ(x)=((x(1))2,(x(2))2)Tω1(x(1))2+ω2(x(2))2+b=0ω1z(1)+ω2z(2)+b=0

用线性分类方法求解非线性分类问题分为两步:

首先使用一个变换将原空间的数据映射到新空间;

然后在新空间里用线性分类学习方法从训练数据中学习分类模型。

核技巧就属于这样的方法。

核技巧应用到支持向量机,其基本想法:

通过一个非线性变换将输入空间(欧氏空间R”或离散集合)对应于一个特征空间(希尔伯特空间),使得在输入空间中的超曲面模型对应于特征空间中的超平面模型(支持向量机)。分类问题的学习任务通过在特征空间中求解线性支
持向量机就可以完成.

14.如何找正定核

原: x i ⋅ x j x_i\cdot x_j xixj

新: ϕ ( x i ) ⋅ ϕ ( x j ) = K ( x i , x j ) \phi(x_i)\cdot \phi(x_j)=K(x_i,x_j) ϕ(xi)ϕ(xj)=K(xi,xj)核函数

我们要替换原来的内积定义,同一个向量它的内积一定大于等于0,所以找正定核是最合适不过的。

解: 第一步:我们希望找到对称函数 K ( x , z ) K(x,z) K(x,z)

x , z ∈ χ x,z\in\chi x,zχ,为输入空间。

需要对 ∀ x 1 , x 2 , ⋯   , x m ∈ χ \forall x_1,x_2,\cdots,x_m\in\chi x1,x2,,xmχ K ( x , z ) K(x,z) K(x,z)对应的 G r a m Gram Gram矩阵半正定。

为什么要任意选取呢?因为训练数据集不确定。

我们的 G r a m Gram Gram矩阵为:

原来的: [ x 1 ⋅ x 1 x 1 ⋅ x 2 ⋯ x 1 ⋅ x m x 2 ⋅ x 1 x 2 ⋅ x 2 ⋯ x 2 ⋅ x m ⋯ ⋯ ⋯ ⋯ x m ⋅ x 1 x m ⋅ x 2 ⋯ x m ⋅ x m ] \begin{bmatrix} x_1\cdot x_1 & x_1\cdot x_2 & \cdots & x_1\cdot x_m \\ x_2\cdot x_1 & x_2\cdot x_2 & \cdots & x_2\cdot x_m \\ \cdots & \cdots & \cdots & \cdots \\ x_m\cdot x_1 & x_m\cdot x_2 &\cdots &x_m\cdot x_m \end{bmatrix} x1x1x2x1xmx1x1x2x2x2xmx2x1xmx2xmxmxm

新的: [ K ( x 1 ⋅ x 1 ) K ( x 1 ⋅ x 2 ) ⋯ K ( x 1 ⋅ x m ) K ( x 2 ⋅ x 1 ) K ( x 2 ⋅ x 2 ) ⋯ K ( x 2 ⋅ x m ) ⋯ ⋯ ⋯ ⋯ K ( x m ⋅ x 1 ) K ( x m ⋅ x 2 ) ⋯ K ( x m ⋅ x m ) ] \begin{bmatrix} K(x_1\cdot x_1) & K(x_1\cdot x_2) & \cdots & K(x_1\cdot x_m) \\ K(x_2\cdot x_1) & K(x_2\cdot x_2) & \cdots & K(x_2\cdot x_m) \\ \cdots & \cdots & \cdots & \cdots \\ K(x_m\cdot x_1) & K(x_m\cdot x_2) &\cdots & K(x_m\cdot x_m) \end{bmatrix} K(x1x1)K(x2x1)K(xmx1)K(x1x2)K(x2x2)K(xmx2)K(x1xm)K(x2xm)K(xmxm)

我们的新矩阵需要满足半正定。

半正定的定义:关于矩阵 A A A,对 ∀ x \forall x x(非零)存在, x T A x ≥ 0 x^TAx\geq0 xTAx0,则称矩阵 A A A是半正定。

半负定的定义: x T A x ≤ 0 x^TAx\leq0 xTAx0

正定的定义: x T A x > 0 x^TAx>0 xTAx>0

负定的定义: x T A x < 0 x^TAx<0 xTAx<0

我们的判定方法如下:

第一种方法: x T A x = y T D y ≥ 0 x^TAx=y^TDy\geq0 xTAx=yTDy0

其中 D D D为对角矩阵,所有元素均大于等于0。

A A A的特征根,全部都是大于等于0

第二种方法:

所有主子行列式大于等于0

15.映射下的新空间

我们回顾之前学习的欧式空间的定义:

我们最初的空间叫做向量空间或者线性空间,这个空间的特点是加法运算(+)和数乘运算( × \times ×)是封闭的。

我们在此基础上定义内积定义,使得加法运算(+)、数乘运算( × \times ×)和内积运算( ⋅ \cdot )是封闭的。形成内积空间。

如果我们想知道向量的长度,我们引入范数的定义,形成赋范线性空间。

上面的向量空间、内积空间、赋范线性空间构成我们常见的欧式空间。

进一步,想要研究收敛性和极限,所有点都在空间内,叫做 B a n a c h Banach Banach空间。

如果不是在我们熟知的欧氏空间中研究上面的内容,我们换了一个空间,定义了新的内积及范数,并且空间是完备的,称为希尔伯特空间。

具体的实现步骤:

解: 1):

构成向量空间(找到向量空间)

ϕ \phi ϕ表示为: x → K ( ⋅ , x ) x\rightarrow K(\cdot,x) xK(,x)

对于 ∀ x i ∈ χ    ,    α i ∈ R    ,    i = 1 , 2 , ⋯   , m \forall x_i\in\chi\;,\;\alpha_i\in R\;,\;i=1,2,\cdots,m xiχ,αiR,i=1,2,,m

定义: f ( ⋅ ) = ∑ i = 1 m α i K ( ⋅ , x i ) f(\cdot)=\sum_{i=1}^{m}\alpha_iK(\cdot,x_i) f()=i=1mαiK(,xi)

f f f构成集合 S S S S S S变成一个向量空间。

验证: 从 S S S ∀ f , g \forall f,g f,g,有: f = ∑ i = 1 m α i K ( ⋅ , x i ) g = ∑ j = 1 v β j K ( ⋅ , z j ) \begin{split} &f=\sum_{i=1}^{m}\alpha_iK(\cdot,x_i)\\ &g=\sum_{j=1}^{v}\beta_jK(\cdot,z_j)\\ \end{split} f=i=1mαiK(,xi)g=j=1vβjK(,zj) f + g = ∑ i = 1 m α i K ( ⋅ , x i ) + ∑ j = 1 v β j K ( ⋅ , z j ) = ∑ i = 1 m + l a i K ( ⋅ , μ i ) ∈ S a f = ∑ i = 1 m a α i K ( ⋅ , x i )    ,    a α i ∈ R \begin{split} f+g&=\sum_{i=1}^{m}\alpha_iK(\cdot,x_i)+\sum_{j=1}^{v}\beta_jK(\cdot,z_j)\\ &=\sum_{i=1}^{m+l}a_iK(\cdot,\mu_i)\in S\\ af&=\sum_{i=1}^{m}a\alpha_iK(\cdot,x_i)\;,\;a\alpha_i\in R \end{split} f+gaf=i=1mαiK(,xi)+j=1vβjK(,zj)=i=1m+laiK(,μi)S=i=1maαiK(,xi),aαiR

综上所述, S S S对加法运算和数乘运算是封闭的。

2)在集合 S S S上定义内积(内积空间)

定义 ∗ * ,对 ∀ f , g ∈ S \forall f,g\in S f,gS,我们定义:
f ∗ g = ∑ i = 1 m ∑ j = 1 l α i β j K ( x i , z j ) f*g=\sum_{i=1}^{m}\sum_{j=1}^{l}\alpha_i\beta_jK(x_i,z_j) fg=i=1mj=1lαiβjK(xi,zj)

内积必须满足四个条件: { ( 1 ) : ( c f ) ∗ g = c ( f ∗ g )    ,    c ∈ R ( 2 ) : ( f + g ) ∗ h = f ∗ h + g ∗ h    ,    h ∈ S ( 3 ) : f ∗ g = g ∗ f ( 4 ) : f ∗ f ≥ 0 ; f ∗ f = 0 ⇒ f = 0 \left\{ \begin{split} &(1):(cf)*g=c(f*g)\;,\;c\in R\\ &(2):(f+g)*h=f*h+g*h\;,\;h\in S\\ &(3):f*g=g*f\\ &(4):f*f\geq0\quad \quad ;f*f=0\Rightarrow f=0 \end{split} \right. (1):(cf)g=c(fg),cR(2):(f+g)h=fh+gh,hS(3):fg=gf(4):ff0;ff=0f=0

我们接下来验证是否满足四个条件:

首先是第一个: l e f t    :    c f = c ∑ i = 1 m α i K ( ⋅ , x i ) = ∑ i = 1 m c α i K ( ⋅ , x i ) ( c f ) ∗ g = ∑ i = 1 m ∑ j = 1 l ( c α i ) β j K ( x i , z j ) = c ∑ i = 1 m ∑ j = 1 l α i β j K ( x i , z j ) = c ( f ∗ g ) = r i g h t \begin{split} left\;:\;&cf=c\sum_{i=1}^{m}\alpha_iK(\cdot,x_i)=\sum_{i=1}^{m}c\alpha_iK(\cdot,x_i)\\ (cf)*g&=\sum_{i=1}^{m}\sum_{j=1}^{l}(c\alpha_i)\beta_jK(x_i,z_j)\\ &=c\sum_{i=1}^{m}\sum_{j=1}^{l}\alpha_i\beta_jK(x_i,z_j)\\ &=c(f*g)=right \end{split} left:(cf)gcf=ci=1mαiK(,xi)=i=1mcαiK(,xi)=i=1mj=1l(cαi)βjK(xi,zj)=ci=1mj=1lαiβjK(xi,zj)=c(fg)=right

接着是第二个:

首先我们定义: h = ∑ q = 1 t b q K ( ⋅ , v q ) h=\sum_{q=1}^{t}b_qK(\cdot,v_q) h=q=1tbqK(,vq)

a i    ,    i = 1 , 2 , ⋯   , m + l a_i\;,\;i=1,2,\cdots,m+l ai,i=1,2,,m+l代替 α 1 , α 2 , ⋯   , α m , β 1 , β 2 , ⋯   , β l \alpha_1,\alpha_2,\cdots,\alpha_m,\beta_1,\beta_2,\cdots,\beta_l α1,α2,,αm,β1,β2,,βl

μ i    ,    i = 1 , 2 , ⋯   , m + l \mu_i\;,\;i=1,2,\cdots,m+l μi,i=1,2,,m+l代替 x 1 , x 2 , ⋯   , x m , z 1 , z 2 , ⋯   , z l x_1,x_2,\cdots,x_m,z_1,z_2,\cdots,z_l x1,x2,,xm,z1,z2,,zl
l e f t    :    ( f + g ) ∗ h = ∑ i = 1 m + l ∑ q = 1 t a i b q K ( μ i , v q ) r i g h t    :    ∑ i = 1 m ∑ q = 1 t α i b q K ( α i , v q ) + ∑ j = 1 l ∑ q = 1 t β j b q K ( z j , v q ) ⇒ l e f t = r i g h t \begin{split} &left\;:\;(f+g)*h=\sum_{i=1}^{m+l}\sum_{q=1}^{t}a_ib_qK(\mu_i,v_q)\\ &right\;:\;\sum_{i=1}^{m}\sum_{q=1}^{t}\alpha_ib_qK(\alpha_i,v_q)+\sum_{j=1}^{l}\sum_{q=1}^{t}\beta_jb_qK(z_j,v_q)\\ \Rightarrow &left=right \end{split} left:(f+g)h=i=1m+lq=1taibqK(μi,vq)right:i=1mq=1tαibqK(αi,vq)+j=1lq=1tβjbqK(zj,vq)left=right

我们看第三个:很明显已经成立,因为 α i \alpha_i αi β j \beta_j βj可以交换, K ( x i , z j ) K(x_i,z_j) K(xi,zj)是对称的,也可以换位置。

最后来看第四个:

我们首先来看第一个部分: f ∗ f ≥ 0 f*f\geq0 ff0
f ∗ f = ∑ i = 1 m ∑ j = 1 m α i α j K ( x i , x j ) f*f=\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jK(x_i,x_j) ff=i=1mj=1mαiαjK(xi,xj)

因为 K ( x i , z j ) K(x_i,z_j) K(xi,zj)是对称的,所以 G r a m Gram Gram矩阵是半正定的,有 x T A x ≥ 0 x^TAx\geq0 xTAx0

所以有 f ∗ f ≥ 0 f*f\geq0 ff0

接下来我们看第二部分:

首先看充分性,即如果有 f = 0 f=0 f=0 f = ∑ i = 1 m α i K ( ⋅ , x i ) → α i = 0 ⇒ f ∗ f = ∑ i = 1 m ∑ j = 1 m α i α j K ( x i , x j ) = 0 \begin{split} &f=\sum_{i=1}^{m}\alpha_iK(\cdot,x_i)\rightarrow \alpha_i=0\\ \Rightarrow &f*f=\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jK(x_i,x_j)=0 \end{split} f=i=1mαiK(,xi)αi=0ff=i=1mj=1mαiαjK(xi,xj)=0

充分性得证!

在证明必要性之前,我们先证明接下来一个:

问题: ∀ f    ,    g ∈ S    ,    ( f ∗ g ) 2 ≤ ( f ∗ f ) ( g ∗ g ) \forall f\;,\;g\in S\;,\;(f*g)^2\leq(f*f)(g*g) f,gS,(fg)2(ff)(gg)

解: 取 λ ∈ R \lambda\in R λR f + λ g ∈ S ⇒ ( f + λ g ) ∗ ( f + λ g ) ≥ 0 ⇒ f ∗ f + 2 λ ( f ∗ g ) + λ 2 ( g ∗ g ) ≥ 0 \begin{split} f+\lambda g\in S&\Rightarrow (f+\lambda g)*(f+\lambda g)\geq0\\ &\Rightarrow f*f+2\lambda(f*g)+\lambda^2(g*g)\geq0\\ \end{split} f+λgS(f+λg)(f+λg)0ff+2λ(fg)+λ2(gg)0

我们不妨换一下: ( g ∗ g ) λ 2 + 2 ( f ∗ g ) λ + f ∗ f ≥ 0 (g*g)\lambda^2+2(f*g)\lambda+f*f\geq0 (gg)λ2+2(fg)λ+ff0

我们上式是不是很贴近二次函数的问题,要想恒大于0,只需要让判别式 Δ \Delta Δ的值小于等于0即可。

即我们得知: 4 ( f ∗ g ) 2 − 4 ( g ∗ g ) ( f ∗ f ) ≤ 0 ⇒ ( f ∗ g ) 2 ≤ ( f ∗ f ) ( g ∗ g ) \begin{split} &4(f*g)^2-4(g*g)(f*f)\leq0\\ \Rightarrow &(f*g)^2\leq (f*f)(g*g) \end{split} 4(fg)24(gg)(ff)0(fg)2(ff)(gg)

至此,我们的结论得证。接下来,我们回到原问题。
f = ∑ i = 1 m α i K ( ⋅ , x i ) f=\sum_{i=1}^{m}\alpha_iK(\cdot,x_i) f=i=1mαiK(,xi)

因为 f    ,    g f\;,\;g f,g是任意取,不妨取特别的 g g g,令 g = K ( ⋅ , x ) g=K(\cdot,x) g=K(,x) f ∗ g = ∑ i = 1 m α i K ( x , x i ) ( f ∗ g ) 2 = ∑ i = 1 m ∑ j = 1 m α i α j K ( x , x i ) K ( x , x j ) f ∗ f = ∑ i = 1 m ∑ j = 1 m α i α j K ( x i , x j ) g ∗ g = K ( x , x ) ( f ∗ f ) ( g ∗ g ) = ∑ i = 1 m ∑ j = 1 m α i α j K ( x i , x j ) K ( x , x ) ( f ∗ g ) 2 ≤ ( f ∗ f ) ( g ∗ g ) = 0 \begin{split} &f*g=\sum_{i=1}^{m}\alpha_iK(x,x_i)\\ &(f*g)^2=\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jK(x,x_i)K(x,x_j)\\ &f*f=\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jK(x_i,x_j)\\ &g*g=K(x,x)\\ &(f*f)(g*g)=\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jK(x_i,x_j)K(x,x)\\ &(f*g)^2\leq (f*f)(g*g)=0 \end{split} fg=i=1mαiK(x,xi)(fg)2=i=1mj=1mαiαjK(x,xi)K(x,xj)ff=i=1mj=1mαiαjK(xi,xj)gg=K(x,x)(ff)(gg)=i=1mj=1mαiαjK(xi,xj)K(x,x)(fg)2(ff)(gg)=0

因为平方 ( f ∗ g ) 2 ≥ 0 (f*g)^2\geq0 (fg)20,所以我们可以得到: ( f ∗ g ) 2 = 0 ⇒ f ∗ g = 0 ⇒ ∑ i = 1 m α i K ( x , x i ) = 0 ⇒ α i = 0 ⇒ f = 0 \begin{split} &(f*g)^2=0\\ \Rightarrow &f*g=0\Rightarrow \sum_{i=1}^{m}\alpha_iK(x,x_i)=0\Rightarrow \alpha_i=0\Rightarrow f=0 \end{split} (fg)2=0fg=0i=1mαiK(x,xi)=0αi=0f=0

综上所述, ∗ * 代表内积运算。此时我们的向量空间变为内积空间。

我们定义 f f f g g g的内积为:
f ⋅ g = ∑ i = 1 m ∑ j = 1 l α i β j K ( x i , z j ) f\cdot g=\sum_{i=1}^{m}\sum_{j=1}^{l}\alpha_i\beta_jK(x_i,z_j) fg=i=1mj=1lαiβjK(xi,zj)

3)在集合S上定义范数,升级希尔伯特空间

定义: ∣ ∣ f ∣ ∣ = f ⋅ f ||f||=\sqrt{f\cdot f} ∣∣f∣∣=ff

此时空间转换为赋范线性空间。

新空间中K的特点:再生性!如: f ( ⋅ ) = ∑ i = 1 m α i K ( ⋅ , x i ) K ( ⋅ , x ) ⋅ f = ∑ i = 1 m α i K ( x , x i ) = f ( x ) \begin{split} &f(\cdot)=\sum_{i=1}^{m}\alpha_iK(\cdot,x_i)\\ &K(\cdot,x)\cdot f=\sum_{i=1}^{m}\alpha_iK(x,x_i)=f(x) \end{split} f()=i=1mαiK(,xi)K(,x)f=i=1mαiK(x,xi)=f(x)

再比如: K ( ⋅ , x ) ⋅ K ( ⋅ , z ) = K ( x , z ) K(\cdot,x)\cdot K(\cdot,z)=K(x,z) K(,x)K(,z)=K(x,z)

总结:我们此处做的是如何从原始空间中找到一个希尔伯特空间!

16.正定核函数的充要条件

K : χ × χ → R K:\chi\times \chi\rightarrow R K:χ×χR是对称函数,则 K ( x , z ) K(x,z) K(x,z)为正定核的充要条件是 ∀ x i ∈ χ    ,    i = 1 , 2 , ⋯   , m \forall x_i\in\chi\;,\;i=1,2,\cdots,m xiχ,i=1,2,,m K ( x , z ) K(x,z) K(x,z)对应的 G r a m Gram Gram矩阵 K = [ K ( x i , x j ) ] m × m K=[K(x_i,x_j)]_{m\times m} K=[K(xi,xj)]m×m是半正定矩阵。

接下来我们证明一下这个结论:

首先看一下充分性:

K K K是半正定矩阵,我们的映射为: ϕ    :    x → K ( ⋅ , x ) χ → H \begin{split} \phi\;:\;&x\rightarrow K(\cdot,x)\\ &\chi\rightarrow H \end{split} ϕ:xK(,x)χH

K ( ⋅ , x ) ⋅ K ( ⋅ , z ) = K ( x , z ) K(\cdot,x)\cdot K(\cdot,z)=K(x,z) K(,x)K(,z)=K(x,z)说明具有再生性,所以此时 K ( x , z ) K(x,z) K(x,z)为正定核。

必要性:

K ( x , z ) K(x,z) K(x,z)为正定核,所以存在下面的映射: χ → H x → ϕ ( x )    ,    z → ϕ ( z ) \begin{split} &\chi\rightarrow H\\ &x\rightarrow \phi(x)\;,\;z\rightarrow \phi(z) \end{split} χHxϕ(x),zϕ(z)

我们有: K ( ⋅ , x ) ⋅ K ( ⋅ , z ) = K ( x , z ) K(\cdot,x)\cdot K(\cdot,z)=K(x,z) K(,x)K(,z)=K(x,z)

怎么判断矩阵为半正定矩阵呢? ∀ x 1 , x 2 , ⋯   , x m ∈ χ ∀ c 1 , c 2 , ⋯   , c m ∈ R c = ( c 1 , c 2 , ⋯   , c m ) T \begin{split} &\forall x_1,x_2,\cdots,x_m\in \chi\\ &\forall c_1,c_2,\cdots,c_m\in R\\ &c=(c_1,c_2,\cdots,c_m)^T \end{split} x1,x2,,xmχc1,c2,,cmRc=(c1,c2,,cm)T

K = [ K ( x 1 , x 1 ) K ( x 1 , x 2 ) ⋯ K ( x 1 , x m ) K ( x 2 , x 1 ) K ( x 2 , x 2 ) ⋯ K ( x 2 , x m ) ⋯ ⋯ ⋯ ⋯ K ( x m , x 1 ) K ( x m , x 2 ) ⋯ K ( x m , x m ) ] K=\begin{bmatrix} K(x_1,x_1) & K(x_1,x_2) & \cdots & K(x_1,x_m) \\ K(x_2,x_1) & K(x_2,x_2) & \cdots & K(x_2,x_m) \\ \cdots &\cdots & \cdots &\cdots\\ K(x_m,x_1) & K(x_m,x_2) & \cdots & K(x_m,x_m) \end{bmatrix} K= K(x1,x1)K(x2,x1)K(xm,x1)K(x1,x2)K(x2,x2)K(xm,x2)K(x1,xm)K(x2,xm)K(xm,xm)

如果有: c T K c ≥ 0 c^TKc\geq0 cTKc0 则表示 K K K是半正定的矩阵。此时有:
c T K c = ( c 1 , c 2 , ⋯   , c m ) [ K ( x 1 , x 1 ) K ( x 1 , x 2 ) ⋯ K ( x 1 , x m ) K ( x 2 , x 1 ) K ( x 2 , x 2 ) ⋯ K ( x 2 , x m ) ⋯ ⋯ ⋯ ⋯ K ( x m , x 1 ) K ( x m , x 2 ) ⋯ K ( x m , x m ) ] [ c 1 c 2 ⋯ c m ] c^TKc=(c_1,c_2,\cdots,c_m) \begin{bmatrix} K(x_1,x_1) & K(x_1,x_2) & \cdots & K(x_1,x_m) \\ K(x_2,x_1) & K(x_2,x_2) & \cdots & K(x_2,x_m) \\ \cdots &\cdots & \cdots &\cdots\\ K(x_m,x_1) & K(x_m,x_2) & \cdots & K(x_m,x_m) \end{bmatrix} \begin{bmatrix} c_1\\ c_2\\ \cdots\\ c_m \end{bmatrix} cTKc=(c1,c2,,cm) K(x1,x1)K(x2,x1)K(xm,x1)K(x1,x2)K(x2,x2)K(xm,x2)K(x1,xm)K(x2,xm)K(xm,xm) c1c2cm

方法一:我们通过内积运算   ( c 1 , c 2 , ⋯   , c m ) [ ϕ ( x 1 ) ⋅ ϕ ( x 1 ) ϕ ( x 1 ) ⋅ ϕ ( x 2 ) ⋯ ϕ ( x 1 ) ⋅ ϕ ( x m ) ϕ ( x 2 ) ⋅ ϕ ( x 1 ) ϕ ( x 2 ) ⋅ ϕ ( x 2 ) ⋯ ϕ ( x 2 ) ⋅ ϕ ( x m ) ⋯ ⋯ ⋯ ⋯ ϕ ( x m ) ⋅ ϕ ( x 1 ) ϕ ( x m ) ⋅ ϕ ( x 2 ) ⋯ ϕ ( x m ) ⋅ ϕ ( x m ) ] [ c 1 c 2 ⋯ c m ] \ (c_1,c_2,\cdots,c_m) \begin{bmatrix} \phi(x_1)\cdot \phi(x_1) & \phi(x_1)\cdot \phi(x_2) & \cdots & \phi(x_1)\cdot \phi(x_m) \\ \phi(x_2)\cdot \phi(x_1) & \phi(x_2)\cdot \phi(x_2) & \cdots & \phi(x_2)\cdot \phi(x_m) \\ \cdots &\cdots & \cdots &\cdots\\ \phi(x_m)\cdot \phi(x_1) & \phi(x_m)\cdot \phi(x_2) & \cdots & \phi(x_m)\cdot \phi(x_m) \end{bmatrix} \begin{bmatrix} c_1\\ c_2\\ \cdots\\ c_m \end{bmatrix}  (c1,c2,,cm) ϕ(x1)ϕ(x1)ϕ(x2)ϕ(x1)ϕ(xm)ϕ(x1)ϕ(x1)ϕ(x2)ϕ(x2)ϕ(x2)ϕ(xm)ϕ(x2)ϕ(x1)ϕ(xm)ϕ(x2)ϕ(xm)ϕ(xm)ϕ(xm) c1c2cm = ( c 1 , c 2 , ⋯   , c m ) [ ϕ ( x 1 ) ϕ ( x 2 ) ⋯ ϕ ( x m ) ] [ ϕ ( x 1 ) , ϕ ( x 2 ) , ⋯   , ϕ ( x m ) ] [ c 1 c 2 ⋯ c m ] = ∣ ∣ ∑ i = 1 m c i ϕ ( x i ) ∣ ∣ 2 ≥ 0 =(c_1,c_2,\cdots,c_m) \begin{bmatrix} \phi(x_1)\\ \phi(x_2)\\ \cdots\\ \phi(x_m) \end{bmatrix} [\phi(x_1),\phi(x_2),\cdots,\phi(x_m)] \begin{bmatrix} c_1\\ c_2\\ \cdots\\ c_m \end{bmatrix} =||\sum_{i=1}^{m}c_i\phi(x_i)||^2\geq0 =(c1,c2,,cm) ϕ(x1)ϕ(x2)ϕ(xm) [ϕ(x1),ϕ(x2),,ϕ(xm)] c1c2cm =∣∣i=1mciϕ(xi)20

方法二:直接表示二次型 ∑ i , j = 1 m c i c j K ( x i , x j ) = ∑ i , j = 1 m c i c j ϕ ( x i ) ⋅ ϕ ( x j ) = ∑ i = 1 m ∑ j = 1 m [ c i ϕ ( x i ) ] ⋅ [ c j ϕ ( x j ) ] = [ c 1 ϕ ( x 1 ) + c 2 ϕ ( x 2 ) + ⋯ + c m ϕ ( x m ) ] ⋅ [ c 1 ϕ ( x 1 ) + c 2 ϕ ( x 2 ) + ⋯ + c m ϕ ( x m ) ] = ∣ ∣ ∑ i = 1 m c i ϕ ( x i ) ∣ ∣ 2 2 \begin{split} \sum_{i,j=1}^{m}c_ic_jK(x_i,x_j)&=\sum_{i,j=1}^{m}c_ic_j\phi(x_i)\cdot \phi(x_j)\\ &=\sum_{i=1}^{m}\sum_{j=1}^{m}[c_i\phi(x_i)]\cdot [c_j\phi(x_j)]\\ &=[c_1\phi(x_1)+c_2\phi(x_2)+\cdots+c_m\phi(x_m)]\cdot [c_1\phi(x_1)+c_2\phi(x_2)+\cdots+c_m\phi(x_m)]\\ &=||\sum_{i=1}^{m}c_i\phi(x_i)||_2^2 \end{split} i,j=1mcicjK(xi,xj)=i,j=1mcicjϕ(xi)ϕ(xj)=i=1mj=1m[ciϕ(xi)][cjϕ(xj)]=[c1ϕ(x1)+c2ϕ(x2)++cmϕ(xm)][c1ϕ(x1)+c2ϕ(x2)++cmϕ(xm)]=∣∣i=1mciϕ(xi)22

正定核的等价定义:

χ ∈ R n    ,    K ( x , z ) \chi\in R^n\;,\;K(x,z) χRn,K(x,z)是定义在 χ × χ \chi\times\chi χ×χ上的对称函数,如果对 ∀ x i ∈ χ    ,    i = 1 , 2 , ⋯   , m \forall x_i\in\chi\;,\;i=1,2,\cdots,m xiχ,i=1,2,,m K ( x , z ) K(x,z) K(x,z)对应的 G r a m Gram Gram矩阵 K = [ K ( x i , x j ) ] m × m K=[K(x_i,x_j)]_{m\times m} K=[K(xi,xj)]m×m是半正定矩阵,则称 K ( x , z ) K(x,z) K(x,z)是正定核。

17.常用核函数

:定义在欧式空间上

1)多项式核函数 K ( x , z ) = ( x ⋅ z + 1 ) p K(x,z)=(x\cdot z+1)^{p} K(x,z)=(xz+1)p

它的一般形式为: ( x ⋅ z + c ) p (x\cdot z+c)^{p} (xz+c)p 其中 c c c是常量。

决策函数:
f ( x ) = s i g n ( ∑ i = 1 N a i ∗ y i ⋅ ( x i ⋅ x + 1 ) p + b ∗ ) f(x)=sign(\sum_{i=1}^{N}a_i^{*}y_i\cdot(x_i\cdot x+1)^{p}+b^{*}) f(x)=sign(i=1Naiyi(xix+1)p+b)

2)高斯核函数 K ( x , z ) = e x p ( − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 ) K(x,z)=exp(-\frac{||x-z||^2}{2\sigma^2}) K(x,z)=exp(2σ2∣∣xz2)

决策函数:
f ( x ) = s i g n ( ∑ i = 1 N a i ∗ y i e x p ( − ∣ ∣ x − x i ∣ ∣ 2 2 σ 2 ) + b ∗ ) f(x)=sign(\sum_{i=1}^{N}a_i^{*}y_i{exp}(-\frac{||x-x_i||^2}{2\sigma^2})+b^{*}) f(x)=sign(i=1Naiyiexp(2σ2∣∣xxi2)+b)
:定义在离散数据集合上

字符串对应的空间映射到高维空间:
[ ϕ n ( s ) ] μ = ∑ i , s ( i ) = μ λ ( i ) [\phi_n(s)]_{\mu}=\sum_{i,s(i)=\mu}\lambda^{(i)} [ϕn(s)]μ=i,s(i)=μλ(i)

n n n表示字符串长度, s s s是字符串, l ( i ) l(i) l(i)表示小的字符串对应的长度。

例子:一个文本[’big’,’pig’,’bag’]

长度为2的子字符串为[’bi’,’bg’,’ig’,’pi’,’pg’,’ba’,’ag’]

投影的特征空间取 R 7 R^7 R7,计算长度:(最后一个元素位置)-(最前一个位置)+1

    bi            bg            ig            pi            pg            ba            ag

big λ 2 \lambda^2 λ2 λ 3 \lambda^3 λ3 λ 2 \lambda^2 λ2 0 0 0 0
pig 0 0 λ 2 \lambda^2 λ2 λ 2 \lambda^2 λ2 λ 3 \lambda^3 λ3 0 0
bag 0 λ 3 \lambda^3 λ3 0 0 0 λ 2 \lambda^2 λ2 λ 2 \lambda^2 λ2

我们得出结果: K ( b i g    ,    p i g ) = λ 4    ,    K ( b i g    ,    b a g ) = λ 6 K(big\;,\;pig)=\lambda^4\;,\;K(big\;,\;bag)=\lambda^6 K(big,pig)=λ4,K(big,bag)=λ6

度量两个字符串之间的相似度的方法可以使用—余弦相似度:
cos ⁡ θ = x ⋅ y ∣ ∣ x ∣ ∣ ∣ ∣ y ∣ ∣ \cos\theta=\frac{x\cdot y}{||x||||y||} cosθ=∣∣x∣∣∣∣y∣∣xy

比较两个文本之间的相似度,如: K ( b i g , p i g ) ∣ ∣ K ( b i g , b i g ) ∣ ∣ ∣ ∣ K ( p i g , p i g ) ∣ ∣ = λ 4 λ 6 + 2 λ 4 λ 6 + 2 λ 4 = λ 4 λ 6 + 2 λ 4 = 1 2 + λ 2 \begin{split} &\frac{K(big,pig)}{||K(big,big)||||K(pig,pig)||}\\ =&\frac{\lambda^4}{\sqrt{\lambda^6+2\lambda^4}\sqrt{\lambda^6+2\lambda^4}}\\ =&\frac{\lambda^4}{\lambda^6+2\lambda^4}=\frac{1}{2+\lambda^2} \end{split} ==∣∣K(big,big)∣∣∣∣K(pig,pig)∣∣K(big,pig)λ6+2λ4 λ6+2λ4 λ4λ6+2λ4λ4=2+λ21

2)字符串核函数 [ ϕ n ( s ) ] μ = ∑ i , s ( i ) = μ λ ( i ) [\phi_n(s)]_{\mu}=\sum_{i,s(i)=\mu}\lambda^{(i)} [ϕn(s)]μ=i,s(i)=μλ(i)

18.总结

线性支持向量机

[线性支持向量机]{}

输入:训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)},其中, x i ∈ χ ∈ R n    ,    y i ∈ { − 1 , + 1 } x_i\in\chi\in R^n\;,\;y_i\in\{-1,+1\} xiχRn,yi{1,+1}

输出:分离超平面与分类决策函数

算法:

给定惩罚系数 c ≥ 0 c\geq0 c0,构造优化问题 min ⁡ α    1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i s . t .    ∑ i = 1 N α i y i = 0    ,    0 ≤ α i ≤ c    ,    i = 1 , 2 , ⋯   , N \begin{split} &\min_{\alpha}\;\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\sum_{i=1}^{N}\alpha_i\\ &s.t.\;\sum_{i=1}^{N}\alpha_iy_i=0\;,\;0\leq\alpha_i\leq c\;,\;i=1,2,\cdots,N \end{split} αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.i=1Nαiyi=0,0αic,i=1,2,,N

求解最优化问题,得到最优解
α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^{*}=(\alpha_1^{*},\alpha_2^{*},\cdots,\alpha_N^{*})^T α=(α1,α2,,αN)T

根据 α ∗ \alpha^{*} α求解 ω ∗ = ∑ i = 1 N α i ∗ y i x i \omega^{*}=\sum_{i=1}^{N}\alpha_i^{*}y_ix_i ω=i=1Nαiyixi

挑出符合 0 < α i ∗ < c 0<\alpha_i^{*}<c 0<αi<c的点 ( x j , y j ) (x_j,y_j) (xj,yj)计算:
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^{*}=y_j-\sum_{i=1}^{N}\alpha_i^{*}y_i(x_i\cdot x_j) b=yji=1Nαiyi(xixj)

分离超平面为: ω ∗ ⋅ x + b ∗ = 0 \omega^{*}\cdot x+b^{*}=0 ωx+b=0

决策函数为: f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^{*}\cdot x+b^{*}) f(x)=sign(ωx+b)

非线性支持向量机

[非线性支持向量机]

算法:

给定惩罚系数 c ≥ 0 c\geq0 c0,构造优化问题 min ⁡ α    1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s . t .    ∑ i = 1 N α i y i = 0    ,    0 ≤ α i ≤ c    ,    i = 1 , 2 , ⋯   , N \begin{split} &\min_{\alpha}\;\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^{N}\alpha_i\\ &s.t.\;\sum_{i=1}^{N}\alpha_iy_i=0\;,\;0\leq\alpha_i\leq c\;,\;i=1,2,\cdots,N \end{split} αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.i=1Nαiyi=0,0αic,i=1,2,,N

求解最优化问题,得到最优解
α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^{*}=(\alpha_1^{*},\alpha_2^{*},\cdots,\alpha_N^{*})^T α=(α1,α2,,αN)T

根据 α ∗ \alpha^{*} α求解
ω ∗ = ∑ i = 1 N α i ∗ y i K ( ⋅ , x i ) \omega^{*}=\sum_{i=1}^{N}\alpha_i^{*}y_iK(\cdot,x_i) ω=i=1NαiyiK(,xi)

挑出符合 0 < α i ∗ < c 0<\alpha_i^{*}<c 0<αi<c的点 ( x j , y j ) (x_j,y_j) (xj,yj)计算:
b ∗ = y j − ∑ i = 1 N α i ∗ y i K ( x i , x j ) b^{*}=y_j-\sum_{i=1}^{N}\alpha_i^{*}y_iK(x_i,x_j) b=yji=1NαiyiK(xi,xj)

决策函数: f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x , x i ) + b ∗ ) f(x)=sign(\sum_{i=1}^{N}\alpha_i^{*}y_iK(x,x_i)+b^{*}) f(x)=sign(i=1NαiyiK(x,xi)+b)

其中 x x x为新的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旅途中的宽~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值