Processing math: 100%

[ML Notes] SVM:核函数

1. 一个例子

  假设 ϕ(x) 是二阶多项式映射,将二维的样本空间映射到三维的特征空间,即

ϕ(x)=ϕ([x1x2])=[x212x1x2x22]

计算特征空间中两个向量的内积为

ϕ(a)Tϕ(b)=[a212a1a2a22]T[b212b1b2b22]=a21b21+2a1a2b1b2+a22b22=(a1b1+a2b2)2=([a1a2]T[b1b2])2=(aTb)2

上式表明,可以通过原始样本空间二维向量的内积 aTb,来得到特征空间三维向量的内积 ϕ(a)Tϕ(b),由此得到二阶多项式的核函数为

K(xi,xj)=(xTixj)2

  通过核函数,可以使用原始空间的内积来得到特征空间的内积,降低直接计算特征空间内积的计算量,甚至不需要知道特征空间 ϕ(x) 的具体变换。

2. 核函数

  向上面的例子那样,如果已经知道了 ϕ(x) 的具体形式,则可以得到核函数 K(,)。但在实际场景中通常不会知道 ϕ(x) 的具体形式,为了直接寻找合适的核函数,有如下定理。

  核函数 令 X 为输入空间,K(,) 是定义在 X×X 上的对称函数,则 K 是核函数当且仅当对于任意数据 D={x1,x2,,xm},核矩阵(kernel matrix) K 总是半正定的

K=[K(x1,x1)K(x1,xj)K(x1,xm)K(xi,x1)K(xi,xj)K(xi,xm)K(xm,x1)K(xm,xj)K(xm,xm)]

  对于一个半正定矩阵,总能找到一个与之对应的映射 ϕ,即任何一个核函数都隐式定义了一个称为“再生核希尔伯特空间”(Reproducing Kernel Hilbert Space,RKHS)的特征空间。选择不同的核函数,就意味着选择了不同的特征空间。

3. 常用核函数

  常用的核函数有

  • 线性核
    • 表达式:K(xi,xj)=xTixj
  • 多项式核
    • 表达式:K(xi,xj)=(xTixj)d
    • 参数:d1 为多项式次数
  • 高斯核
    • 表达式:K(xi,xj)=exp(||xixj||22σ2)
    • 参数:σ0 为高斯核的带宽
  • 拉普拉斯核:
    • 表达式:K(xi,xj)=exp(||xixj||σ)
    • 参数:σ0
  • Sigmoid 核
    • 表达式:K(xi,xj)=tanh(βxTixj+θ)
    • 参数:β>0θ<0

  通过对核函数进行适当的组合,也可以得到核函数,例如 若 K1K2 为核函数,则

  • 对于任意正数 γ1γ2,其线性组合 γ1K1+γ2K2 也是核函数。
  • 核函数的直积 K1K2(x,z)=K1(x,z)K2(x,z) 也是核函数。
  • 对于任意函数 g(x)K(x,z)=g(x)K1(x,z)g(z) 也是核函数。