Kernel Trick

什么是kernel trick

在机器学习当中,我们有时需要将n维数据投影到更高维的空间然后做内积,传统思想是先用空间转换函数将数据投影到高维空间,然后再对数据做内积。例如,有两个向量

x=\begin{bmatrix} x_1\\ x_2 \end{bmatrix}^T,z=\begin{bmatrix} z_1\\ z_2 \end{bmatrix}^T

我们要利用转换函数

\phi(x)=\begin{bmatrix} x_1\\ x_2 \end{bmatrix}^TA = \begin{bmatrix} x_1& x_2 \end{bmatrix} \begin{bmatrix} a_{11} &a_{12} &a_{13} \\a_{21} & a_{22} & a_{23} \end{bmatrix} =\begin{bmatrix} x_1^2& \sqrt{2}x_1x_2& x_2^2 \end{bmatrix}

将x和z做转换然后再内积,过程如下

\phi(x)*\phi(z)^T=\begin{bmatrix} x_1^2\\ \sqrt{2}x_1x_2\\ x_2^2 \end{bmatrix} \begin{bmatrix} z_1^2& \sqrt{2}z_1z_2& z_2^2 \end{bmatrix}\\ =x_1^2z_1^2+2x_1x_2z_1z_2+x_2^2z_2^2\\ =(x_1z_1+x_2z_2)^2 =(\begin{bmatrix} x_1& x_2 \end{bmatrix} \begin{bmatrix} z_1\\ z_2 \end{bmatrix})^2\\ =(x*z^T)^2\\ =K(x,z)

可以看到,将x和z通过函数转换再做内积的步骤,可以替换成x和z的内积再取平方,后者就是用了kernel trick。当数据需要投影到更高维时,计算\phi(x)的代价将会很高,如下图所示

这时使用kernel trick,先计算x和z的内积再取平方,可以减少计算代价,节省时间。

kernel trick的判断与构造

Mercer 定理:任何半正定的函数都可以作为核函数。

未完待续。。。

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值