最小二乘和SVM都是大家熟悉的算法,但是一般讲SVM或者最小二乘时都不会讲到它们之间的联系,但实际上SVM是可以从最小二乘中推导出来的。


  1. 关于最小二乘
    为了便于理解后面的SVM,这里还是先简单说一下最小二乘学习法。以最容易的ℓ2约束的最小二乘学习法为例:
    首先定义误差函数 JLS(θ)=12∑i=1n(fθ(xi)−yi)2
    其中“LS”是Least Square的首字母,我么需要得到的是:
    θ^LS=argminθJLS(θ)
    如果使用线性模型:
    fθ(x)=∑j=1bθiϕi(x)=θTϕ(X)
    训练样本的平方差JLS就可以表示为:
    JLS(θ)=12∥Φθ−y∥2
    这里y=(y1,…,yn)T是训练输出的n维向量,Φ是下式定义的n×b阶矩阵,也称设计矩阵
    Φ=⎛⎝⎜⎜ϕ1(x1)…⋮ϕ1(xn)…ϕb(x1):ϕb(xn)⎞⎠⎟⎟
    为了防止过拟合,我们通常对θ加以限制,这里用ℓ2约束:
    s.t.∥θ∥2≤R
    最小二乘暂时就介绍到这里,至于解法不是我们的重点所以略过。
  2. Hinge损失
    对于二分类问题,y∈{−1,1},我们得到θ^后,测试模式x所对应的类别y的预测值y^,是由学习后的输出结果符号决定的。
    y^=sign(fθˆ(x))
    那么定义0/1损失为:
    12(1−sign(fθ(x)y))
    这个式子等价于:
    δ(sign(fθ(x)≠y)={0(Sign(fθ(x))≠y)1(sign(fθ(x))=y)
    定义m=fθ(x)y,则Hinge损失定义为:
    max{0,1−m} ,是训练样本相关的Hinge损失达到最小,就是Hinge损失最小化学习。因为有y∈{−1,1},所以y2=1或1y=y,那么ℓ2损失就可以不使用残差r=fθ(x)−y,而使用间隔m=fθ(x)y来表示:
    r2=(y−fθ(x))2=y2(1−fθ(x)/y)2=(1−fθ(x)y)2=(1−m)2
    Hinge损失,当m≥1的时候,与0/1损失相同,其损失为0,另一方面当m≤1的时候,其损失为1−m>0,当其损失为正的时候,与m相关的函数有倾向于负的趋势。Hinge的字面意思是合页,如下图就是合叶,Hinge损失就像合叶打开了135o,因此而得来。

    将损失与m的关系绘制出来如下:

    接下来,Hinge最小化学习表示为:

minθ=∑i=1nmax{0,1−fθ(xi)yi}

  1. 接下来,对在核模型中引入截距γ的下式

fθ,γ(x)=∑j=1nθjK(x,xj)+γ

  1. 进行Hinge最小化学习,加入使用了核矩阵Ki,j=K(xi,xj)的一般化ℓ2的正则化项。

minθ,γ[C∑i=1nmax{0,1−fθ,γ(xi)yi}+12∑i,j=1nθiθjK(xi,xj)]

  1. 这里,为了与支持向量机分类器相对应,式中没有使用λ作为正则化参数,而是使用了其倒数C=1λ。
    我们引入虚拟变量ξ:

max{0,1−m}=minξξs.t.ξ≥1−m,ξ≥0

  1. 那么正则化Hinge损失最小化学习问题转换为:

minθ,γ[C∑i=1nξi+12∑i,j=1nθiθjK(xi,xj)]

  1. 约束条件为:

ξi≥1−fθ,γ(xi)yi,ξi≥0,∀i=1,…,n

  1. 我们再回忆一下标准的SVM式子:

minω,γ,ξ12∥ω∥2+C∑i=1nξi,s.tξi≥1−(ωTψ(xi)+γ)yi


ξi≥0,∀i=1,…,n

  1. 在上面的优化问题中,设ω=∑nj=1θjψ(xj),如果利用条件ψ(xi)Tψ(xj)=K(xi,xj)的话,就可以完成上面2个式子的转换了,也就是说支持向量机分类器可以用一般化ℓ2约束的Hinge损失最小化学习来解释。