Perceptron, Support Vector Machine and Dual Optimization Problem (2)

Generalizing Linear Classification


image


假设我们有如上图的 training data,注意到此时 XR2


那么 decision boundary g


g(x)=w1x12+w2x22+w0


即,decision boundary 为某种椭圆,例如:半径为 r 的圆(w1=1,w2=1,w0=r2),如上图中的黑圈所示。我们会发现,此时 decision boundary not linear in x


但是,g(x)=w1x12+w2x22+w0 在某些空间里却是线性的:


g(x)=w1x12+w2x22+w0(non-linear in x1 and x2)=w1z1+w2z2+w0(linear in z1 and z2)


因此,如果我们对数据进行特征变换(feature transformation):


ϕ(x1,x2)(x12,x22)


那么 gϕ transformed feature space 中变为线性的。




Geometric view on feature transformation


image




Feature Transformation for Quadratic Boundaries


R2 case


generic quadratic boundary 如下:


g(x)=w1x12+w2x22+w3x1x2+w4x1+w5x2+w0=p+q2wp,qx1px2q


feature transformation 则为:


ϕ(x1,x2)(x12,x22,x1x2,x1,x2,1)




Rd case


generic quadratic boundary 如下:


g(x)=i,j=1dp+q2wi,jp,qxipxjq


feature transformation 则为:


ϕ(x1,,xd)(x12,x22,,xd2,x1x2,,xd1xd,x1,x2,,xd,1)


  • 注意,以上的 R2 以及下面会提到的 Rd 指的是数据的维度。



Theorem.


给定 n 个互不相同的数据点:X={x1,x2,,xn},总是存在一个 feature transformation ϕ,使得无论的 S=X×Y 的 label 如何,它在 transformed space 中总是线性可分的。




Proof.


给定 n 个数据点,考虑以下映射(映射至 Rn):


ϕ(xi)(00100)


即,映射为一个 one-hot 向量,除第 i 行处为 1,其它坐标处的值都为 0


那么,由 linear weighting w=(y1yn) 引出的 decision boundary 完美地分割了 input data。


  • 解释:

    证明的意思是,输入的数据有 n 个。对于每一个数据点,feature transform 到一个 one-hot vector,只有这条数据在输入的 n 个数据中排的位置所对应的坐标处取 1,其余全部取 0。假设输入三个数据:x1,x2,x3,则:


    ϕ(x1)=(100)ϕ(x2)=(010)ϕ(x3)=(001)




这样极端的操作有利有弊:


  • 优点:


    任意的问题都将变为 linear separable。


  • 缺点:


    1. 计算复杂度:


      generic kernel transform 的时间复杂度通常是 Ω(n),有些常用的 kernel transform 将 input space 映射到 infinite dimensional space 中。


    2. 模型复杂度:


      模型的概括能力(generalization performance)通常随模型复杂度的下降而下降。即,若向简化模型,通常需要以牺牲模型的表现作为代价。




  • 回顾时间复杂度 T(n)=Ω(f(n)) 的定义:


    c>0: n0N+: nn0: T(n)cf(n)


    那么 Ω(n) 满足:


    c>0: n0N+: nn0: T(n)cn


    也就是说时间复杂度最低也与 n 呈线性。




The Kernel Trick (to Deal with Computation)


如果直接暴露在 generic kernel space ϕ(xi) 中进行运算,需要时间复杂度 Ω(n)。但是相对而言地,kernel space 中的两个数据点的点积可以被更快地求出,即:


ϕ(xi)ϕ(xj)




Examples.


  • Rd 空间中的数据的 quadratic kernel transform:


    • Explicit transform:O(d2)

      x(x12,,xd2,2x1x2,,2xd1xd,2x1,,2xd,1)


    • Dot products:O(d)


      (1+xixj)2


  • 径向基函数(Radial Basis Function, i.e., RBF):


    • Explicit transform:infinite dimension!

      x((2π)d4e||xα||2)αRd


    • Dot products:O(d)

      e||xixj||2




Kernel 变换的诀窍在于,在实现分类算法的时候只通过 “点积” 的方式接触数据。




Examples.


The Kernel Perceptron(核感知机)


回忆感知机算法,更新权重向量的核心步骤为:


w(t)w(t1)+yx


等价地,算法可以写为:


w=k=1nαkykxk


其中,αk 为在 xk 上发生错误的次数。


因此,分类问题变为:


f(x)=sign(wx)=sign(xk=1nαkykxk)=sign(k=1nαjyk(xkx))


其中 x 输入函数 f 的新数据向量,注意与 xk 区分。


因此,在空间内的分类问题:


f(x)=sign(k=1nαjyk(xkx))


若在 tranformed kernel space 中处理,则:


f(ϕ(x))=sign(k=1nαkyk(ϕ(xk)ϕ(x)))


算法具体如下:


Initialize:α=0for t=1,2,3,,T:若存在(xi,y)S s.t. : sign(k=1nαkyk(ϕ(xk)ϕ(xi)))yi:αiαi+1


在最后注意到,k=1nαkyk(ϕ(xk)ϕ(x)) 中的点积 ϕ(xk)ϕ(x) 是相似度(similarity)的一种衡量方式,故自然能够被其它自定义的相似度衡量方式所替换。


所以,我们可以在任意自定义的非线性空间中,隐性地(implicitly)进行运算,而不需要承担可能的巨大计算量成本。

posted @   车天健  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示