有关SVM里面的低维映射到高维的一点思考

文章目录

前言

之前在学习SVM的时候,看到一个比较有意思的特性,特此记录一下;

一个例子

x = ( x 1 , x 2 ) , z = ( z 1 , z 2 ) x = ( x_{1},x_{2} ), z = ( z_{1},z_{2} ) x=(x1,x2),z=(z1,z2),X和Z都是低维度空间里的两个向量,下面做一些比较简单的运算:
x T z = ( x 1 z 1 + x 2 z 2 ) x^{T}z=(x_{1}z_{1}+x_{2}z_{2}) xTz=(x1z1+x2z2)
ϕ ( x ) = ( x 1 2 , x 2 2 , 2 x 1 x 2 ) \phi(x)=(x_{1}^{2},x_{2}^{2},\sqrt{2}x_{1}x_{2}) ϕ(x)=(x12,x22,2 x1x2), ϕ ( z ) = ( z 1 2 , z 2 2 , 2 z 1 z 2 ) \phi(z)=(z_{1}^{2},z_{2}^{2},\sqrt{2}z_{1}z_{2}) ϕ(z)=(z12,z22,2 z1z2)
ϕ ( x ) T ϕ ( z ) = ( x 1 2 z 1 2 , x 2 2 z 2 2 , 2 x 1 x 2 z 1 z 2 ) = ( x 1 z 1 + x 2 z 2 ) 2 = ( x T z ) 2 \phi(x)^{T}\phi(z)=(x_{1}^{2}z_{1}^{2},x_{2}^{2}z_{2}^{2},2x_{1}x_{2}z_{1}z_{2})=(x_{1}z_{1}+x_{2}z_{2})^{2}=(x^{T}z)^{2} ϕ(x)Tϕ(z)=(x12z12,x22z22,2x1x2z1z2)=(x1z1+x2z2)2=(xTz)2

这个过程由低维映射到了高维,同时我们发现在高维空间计算内积的时候并不依赖于高维空间,而是仅仅依赖于原来低维空间的内积 ( x T z ) (x^{T}z) (xTz) ;

下面这个式子是SVM里面推导出的dual formation(对偶式):
L = − 1 2 ∑ i = 1 n ∑ j = 1 n λ i λ j y i y j x i T x j + ∑ i = 1 n λ i L=-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}{\lambda_{i}\lambda_{j}y_{i}y_{j}x_{i}^{T}x_{j}} + \sum_{i = 1}^{n}{\lambda_{i}} L=21i=1nj=1nλiλjyiyjxiTxj+i=1nλi

我们发现里面有 x T z x^{T}z xTz的形式;上面这个式子里面,对于样本来说,我们所需要计算的就是 x i T x j x_i^Tx_j xiTxj这项;我们在计算的时候如果把它映射到高维空间里面,就变成了 ϕ ( x i ) T ϕ ( x j ) \phi(x_i)^{T}\phi(x_j) ϕ(xi)Tϕ(xj) ;此时原来空间里的内积就变成了现在的新的空间里的内积;如果能找到一个合适的函数 ϕ ( ? ) \phi(?) ϕ(?)使得原来空间里面的复杂度和新的空间里面的时间复杂度一样或者比原来复杂度低,这就叫kernel trick;
kernel trick不仅仅只用于SVM里面,只要目标函数里面有类似于 x T z x^{T}z xTz这样的项,并且依赖于这样的项,就可以使用kernel trick;
常见的核函数有线性核函数,多项式核函数以及高斯核函数(具体可以自行bing等工具搜索).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值