【数据挖掘】6. 核函数

  • 目前为止我们还没有考虑不可分的数据集

    本节目的:使用核函数(将数据集映射到另一个更高维的空间)来解决不可分的数据集,来保证线性可分性

  • 动机

    • 某些线性不可分的数据集,可以用圆形来划分
    • 在二维平面内不可分的数据集,扩展到三维后可以划分
  • 提高维度可以保证线性可分性

    • 对于一维空间的一系列点,如图中 p 1 , p 2 , p 3 , p 4 , p 5 p_1, p_2,p_3,p_4,p_5 p1,p2,p3,p4,p5 (此时先考虑点的数量是奇数),总能在二维空间找到一条曲线,将其根据标签划分开

      【数据挖掘】6. 核函数_第1张图片

    • 通过在每对不同标签的点之间随机选择一个点 q q q ,定义一个多项式函数:
      f ( x ) = − ( x − q 1 ) ( x − q 2 ) ( x − q 3 ) ( x − q 4 ) f(x) = -(x-q_1)(x-q_2)(x-q_3)(x-q_4) f(x)=(xq1)(xq2)(xq3)(xq4)
      如下图,对于空心点,其函数值都小于 0,对于实心点,其函数值都大于 0

      【数据挖掘】6. 核函数_第2张图片

    • f ( x ) f(x) f(x) 可以展开成如下形式:
      f ( x ) = c 0 + c 1 x + c 2 x 2 + ⋯ + c n − 1 x n − 1 f(x) = c_0+c_1x+c_2x^2+\cdots+c_{n-1}x^{n-1} f(x)=c0+c1x+c2x2++cn1xn1
      所以,如果将每一个点 x ∈ P x\in P xP 转换成 n n n 维空间上的点 ( 1 , x , x 2 , … , x n − 1 ) (1,x,x^2,\dots,x^{n-1}) (1,x,x2,,xn1) ,那么其一定可以被 n n n 维空间中过原点的一个平面划分

  • 提高维度解决可分性带来的效率问题

    • 当转换的维度过高时,每一个点的维度转换计算消耗都会很高
    • 核函数就是解决这个问题
  • 核函数

    一个核函数 K K K 是从 R d × R d \mathbb{R}^d\times\mathbb{R}^d Rd×Rd R \mathbb{R} R 的一个函数,它存在以下属性:

    存在一个映射 ϕ : R d → R d ′ \phi: \mathbb{R}^d \rightarrow \mathbb{R}^{d^\prime} ϕ:RdRd , 使得对于任意两个给定的点 p , q ∈ R d p,q\in\mathbb{R}^d p,qRd K ( p , q ) K(\boldsymbol{p},\boldsymbol{q}) K(p,q) 等于 ϕ ( p ) \phi(p) ϕ(p) ϕ ( q ) \phi(q) ϕ(q) 的点乘, R d ′ \mathbb{R}^{d^\prime} Rd 被称作核空间

    • 多项式核
      K ( p , q ) = ( p ⋅ q + 1 ) c K(\boldsymbol{p},\boldsymbol{q}) = (\boldsymbol{p}\cdot \boldsymbol{q}+1)^c K(p,q)=(pq+1)c
      c c c 是大于等于 1 的整数

      • 示例

        考虑 d = 2 d=2 d=2 c = 2 c=2 c=2 K ( p , q ) K(p,q) K(p,q) 就可以展开成如下形式:
        K ( p , q ) = ( p ⋅ q + 1 ) 2 = ( p [ 1 ] q [ 1 ] + p [ 2 ] q [ 2 ] + 1 ) 2 = 1 + ( p [ 1 ] ) 2 ( q [ 1 ] ) 2 + ( p [ 2 ] ) 2 ( q [ 2 ] ) 2 + 2 ( p [ 1 ] p [ 2 ] ) ( q [ 1 ] q [ 2 ] ) + 2 p [ 1 ] q [ 1 ] + 2 p [ 2 ] q [ 2 ] \begin{aligned} K(\boldsymbol{p}, \boldsymbol{q})=&(\boldsymbol{p} \cdot \boldsymbol{q}+1)^2=(p[1] q[1]+p[2] q[2]+1)^2 \\ =& 1+(p[1])^2(q[1])^2+(p[2])^2(q[2])^2+\\ & 2(p[1] p[2])(q[1] q[2])+2 p[1] q[1]+2 p[2] q[2] \end{aligned} K(p,q)==(pq+1)2=(p[1]q[1]+p[2]q[2]+1)21+(p[1])2(q[1])2+(p[2])2(q[2])2+2(p[1]p[2])(q[1]q[2])+2p[1]q[1]+2p[2]q[2]

        按照向量点乘的形式从 K ( p , q ) K(\boldsymbol{p},\boldsymbol{q}) K(p,q) 中拆分出两个向量,两个向量都会有如下的映射关系:
        ϕ ( p ) = ( 1 , p [ 1 ] 2 , p [ 2 ] 2 , 2 p [ 1 ] p [ 2 ] , 2 p [ 1 ] , 2 p [ 2 ] ) \phi(p)=\left(1, p[1]^2, p[2]^2, \sqrt{2} p[1] p[2], \sqrt{2} p[1], \sqrt{2} p[2]\right) ϕ(p)=(1,p[1]2,p[2]2,2 p[1]p[2],2 p[1],2 p[2])
        核空间的维度为 C 4 2 = 6 C^2_4=6 C42=6

    • 高斯核
      K ( p , q ) = exp ⁡ ( − dist ⁡ ( p , q ) 2 2 σ 2 ) K(\boldsymbol{p}, \boldsymbol{q})=\exp \left(-\frac{\operatorname{dist}(\boldsymbol{p}, \boldsymbol{q})^2}{2 \sigma^2}\right) K(p,q)=exp(2σ2dist(p,q)2)

      • σ > 0 \sigma>0 σ>0 称作带宽, dist ⁡ ( p , q ) \operatorname{dist}(\boldsymbol{p}, \boldsymbol{q}) dist(p,q) p , q p,q p,q 之间的欧氏距离,高斯核将 d d d 维空间的点映射到了无限维的空间
      • d = 1 d=1 d=1 时,根据 e e e 的泰勒展开式,高斯核的展开形式如下:

      exp ⁡ ( − dist ⁡ ( p , q ) 2 2 σ 2 ) = exp ⁡ ( − p 2 − 2 p q + q 2 2 σ 2 ) = exp ⁡ ( − p 2 + q 2 2 σ 2 ) exp ⁡ ( p q σ 2 ) = 1 e p 2 2 σ 2 1 e q 2 2 σ 2 exp ⁡ ( p q σ 2 ) = 1 e p 2 2 σ 2 1 e q 2 2 σ 2 ( 1 + p q σ 2 + ( p / σ ) 2 ( q / σ ) 2 2 ! + ( p / σ ) 3 ( q / σ ) 3 3 ! + … ) \begin{aligned} &\exp \left(-\frac{\operatorname{dist}(p, q)^2}{2 \sigma^2}\right)=\exp \left(-\frac{p^2-2 p q+q^2}{2 \sigma^2}\right)=\\ &\exp \left(-\frac{p^2+q^2}{2 \sigma^2}\right) \exp \left(\frac{p q}{\sigma^2}\right)=\frac{1}{e^{\frac{p^2}{2 \sigma^2}}} \frac{1}{e^{\frac{q^2}{2 \sigma^2}}} \exp \left(\frac{p q}{\sigma^2}\right)\\ &=\frac{1}{e^{\frac{p^2}{2 \sigma^2}}} \frac{1}{e^{\frac{q^2}{2 \sigma^2}}}\left(1+\frac{p q}{\sigma^2}+\frac{(p / \sigma)^2(q / \sigma)^2}{2 !}+\frac{(p / \sigma)^3(q / \sigma)^3}{3 !}+\ldots\right) \end{aligned} exp(2σ2dist(p,q)2)=exp(2σ2p22pq+q2)=exp(2σ2p2+q2)exp(σ2pq)=e2σ2p21e2σ2q21exp(σ2pq)=e2σ2p21e2σ2q21(1+σ2pq+2!(p/σ)2(q/σ)2+3!(p/σ)3(q/σ)3+)

      • 所以可以得到如下映射关系:
        ϕ ( p ) = ( 1 e p 2 2 σ 2 , p / σ e p 2 2 σ 2 , ( p / σ ) 2 2 ! ⋅ e p 2 2 σ 2 , ( p / σ ) 3 3 ! ⋅ e p 2 2 σ 2 , … ) \phi(p) = \left(\frac{1}{e^{\frac{p^2}{2 \sigma^2}}}, \frac{p / \sigma}{e^{\frac{p^2}{2 \sigma^2}}}, \frac{(p / \sigma)^2}{\sqrt{2 !} \cdot e^{\frac{p^2}{2 \sigma^2}}}, \frac{(p / \sigma)^3}{\sqrt{3 !} \cdot e^{\frac{p^2}{2 \sigma^2}}}, \ldots\right) ϕ(p)=(e2σ2p21,e2σ2p2p/σ,2! e2σ2p2(p/σ)2,3! e2σ2p2(p/σ)3,)

      • 定理:对于任意 σ \sigma σ ,高斯核都能划分有线数量的点集合

  • 在转换后的空间内寻找划分平面

    我们不想在转换后的核空间内重新具体的考虑映射关系 ϕ \phi ϕ 中的具体内容(在多项式核中维度过高,在高斯核中维度无限,不可能实现),使用感知器(Perceptron)可以不在核空间内运算

    • 在感知器中:

      如果 violation point p p p 存在,对 w \boldsymbol{w} w 进行如下优化:

      • 如果 p 的标签是 1 1 1 ,那么 w ← w + p \boldsymbol{w}\larr \boldsymbol{w}+p ww+p
      • 如果 p 的标签是 − 1 -1 1 ,那么 w ← w − p \boldsymbol{w}\larr \boldsymbol{w}-p wwp
    • 在核空间 R d ′ \mathbb{R}^{d^\prime} Rd 中,感知器的形式变为:

      如果 violation point ϕ ( p ) \phi(p) ϕ(p) 存在,对 w \boldsymbol{w} w 进行如下优化:

      • 如果 ϕ ( p ) \phi(p) ϕ(p) 的标签是 1 1 1 ,那么 w ← w + ϕ ( p ) \boldsymbol{w}\larr \boldsymbol{w}+\phi(p) ww+ϕ(p)
      • 如果 ϕ ( p ) \phi(p) ϕ(p) 的标签是 − 1 -1 1 ,那么 w ← w − ϕ ( p ) \boldsymbol{w}\larr \boldsymbol{w}-\phi(p) wwϕ(p)
    • 对于 violation point p ∈ P p\in P pP p p p 被用来调整 w \boldsymbol{w} w 的次数记作 t p t_p tp P 1 P_1 P1 P P P 中标签为 1 1 1 的点, P − 1 P_{-1} P1 P P P 中标签为 − 1 -1 1 的点,那么经过调整后的 w \boldsymbol{w} w 可以表示为:
      w = ∑ p ∈ P 1 t p ϕ ( p ) − ∑ p ∈ P − 1 t p ϕ ( p ) \boldsymbol{w}=\sum_{p \in P_1} t_p \phi(p)-\sum_{p \in P_{-1}} t_p \phi(p) w=pP1tpϕ(p)pP1tpϕ(p)

    • 如果我们给上边的公式左右两边同时点乘任意一个在核空间的点 ϕ ( q ) \phi(q) ϕ(q),可以得到:
      w ⋅ ϕ ( q ) = ( ∑ p ∈ P 1 t p ϕ ( p ) − ∑ p ∈ P − 1 t p ϕ ( p ) ) ϕ ( q ) = ( ∑ p ∈ P 1 t p ( ϕ ( p ) ⋅ ϕ ( q ) ) ) − ( ∑ p ∈ P − 1 t p ( ϕ ( p ) ⋅ ϕ ( q ) ) ) = ∑ p ∈ P 1 t p ⋅ K ( p , q ) − ∑ p ∈ P − 1 t p ⋅ K ( p , q ) \begin{aligned} \boldsymbol{w} \cdot \phi(q) &=\left(\sum_{p \in P_1} t_p \phi(p)-\sum_{p \in P_{-1}} t_p \phi(p)\right) \phi(q) \\ &=\left(\sum_{p \in P_1} t_p(\phi(p) \cdot \phi(q))\right)-\left(\sum_{p \in P_{-1}} t_p(\phi(p) \cdot \phi(q))\right) \\ &=\sum_{p \in P_1} t_p \cdot K(p, q)-\sum_{p \in P_{-1}} t_p \cdot K(p, q) \end{aligned} wϕ(q)= pP1tpϕ(p)pP1tpϕ(p) ϕ(q)= pP1tp(ϕ(p)ϕ(q)) pP1tp(ϕ(p)ϕ(q)) =pP1tpK(p,q)pP1tpK(p,q)

    • 因此,只要对每一个 violation point 维护一个 t p t_p tp ,我们就不需要在核空间内计算点乘

  • 如何在核空间中的点集合上应用基于Margin的泛化定理?

  • 如何证明定理:对于任意 σ \sigma σ ,高斯核都能划分有线数量的点集合?

你可能感兴趣的:(数据挖掘,数据挖掘,算法,线性代数)