RKHS(再生核希尔伯特空间)中的流形约束函数估计
我们在 再生核希尔伯特空间 中已经较详细地讲过了 RKHS 中的函数估计,基于 RKHS 的流形约束函数估计是在其上的一个扩展。
基于 RKHS 的流形约束函数估计框架为
f∈HKminN1i=1∑Nl(yi,f(xi))+γA∥f∥HK2+N2γIfTLf,
或者采用另一组常见的超参数 C 和 μ,表示为
f∈HKminCi=1∑Nl(yi,f(xi))+21∥f∥HK2+21μfTLf,
其中 HK 是由一个 Mercer 核函数 K 诱导的 RKHS。
这两组超参数有互相对应关系,可以互相转换:
γAγI=2NC1=2CNμ.
可以证明(通过投影理论和核再生特性或 Riesz 表示定理来证明)上述的最优化问题的最优解 f 可以表示为
f(x)=i=1∑NαiK(xi,x),
这意味着 f 是中心点在所有训练样本点的核片段的线性组合。在后文中,我将用“新表示定理”表示这个结论。
通常我们还希望有一个偏置项 b。加入了偏置项 b 之后,最优的函数可以表示为
f∗(x)=i=1∑NαiK(xi,x)+b.
基于不同的损失函数 l,我们可以得到不同形式的函数。
ϵ-insensitive 损失
拉普拉斯支持向量回归 (LapSVR)
ϵ-insensitive 损失定义为
lϵ(e)={0,∣e∣−ϵ,∣e∣≤ϵ∣e∣>ϵ.
基于这个损失应用流形约束函数估计框架,我们可以得到优化问题
f∈HKminsubject toCi=1∑N(ξi+ξi∗)+21∥f∥HK2+2μfTLff(xi)+b−yi≤ϵ+ξiyi−f(xi)−b≤ϵ+ξi∗ξi≥0ξi∗≥0, i=1,2,…,N.
根据新表示定理,我们可以推得对偶问题
β,β∗∈Rnmaxsubject to−21(β∗−β)TQ(β∗−β)+(β∗−β)Ty−ϵ(β∗+β)T10≤β≤C10≤β∗≤C11T(β−β∗)=0,
其中
Q=K(I+μLK)−1
是新的核矩阵,同时我们可以基于 β 计算 α:
α=(I+μLK)−1(β∗−β).
我们可以基于 KKT 最优性条件(KKT optimality conditions)来计算偏置项 b。下面的等式基于 KKT 条件中的互补松弛(complementary slackness)条件:
(f(xi)+b−yi−(ϵ+ξi))βi(yi−f(xi)−b−(ϵ+ξi∗))βi∗(C−βi)ξi(C−βi∗)ξi∗=0=0=0=0.
因此, b 可以基于满足
0<βi<C.
的 βi(或 βi∗)求出。
在极端情形下,这样的 βi 或 βi∗ 不存在。不过这个时候我们仍然可以基于 KKT 条件得到 b 需要满足的几个不等式条件:
βi=0βi∗=0βi=Cβi∗=C⇒ξi=0⇒b≤ϵ+yi−f(xi)⇒ξi∗=0⇒b≥yi−f(xi)−ϵ⇒ξi≥0⇒b≥ϵ+yi−f(xi)⇒ξi∗≥0⇒b≤yi−f(xi)−ϵ.
这种情况下,b 会有很多的可行解,都对应多个最优的 f∗,它们有相同的最优化问题取值。仔细想一下,这是可以预见的,因为 ϵ-insensitive 损失在 0 附近是平的(取值全为 0)。
当 μ=0(或 γI=0),这个模型将会退化成支持向量回归(SVR)。
在文献中一般把 ϵ-不敏感损失得到的模型称作 LapSVR。
解的稀疏性
在 SVR 中,得到的 α 是稀疏的。然而,对于 LapSVR α 却不再稀疏。不过,基于 KKT 最优化条件,β∗−β 仍然是稀疏的。
不稀疏的 α 会降低模型的可解释性。后文中将的 LapESVR 将会解决这个问题。
使用 sklearn
的 SVR
API 来求解上面的优化问题
虽然上述的对偶问题可以使用二次规划(QP)求解器来求解,在求解的时候我们很容易会陷入数值问题,同时启动一个 QP 求解器的求解流程是非常耗时的。另外一方面来说,SMO(Sequential Minimal Optimization)是一个可以高效解决 SVR 的对偶问题的优化算法,在 SMO 的每一个最优迭代步骤中,都通过闭式解来解决自问题,因此 SMO 不容易陷入数值问题;此外,SMO 的速度也非常快。我们能否将 SMO 算法应用到前面最优化问题的求解中呢?
我们可以观察到,前面得到的对偶问题和 SVR 的对偶问题有着相同的形式以及相同的 KKT 条件。它们只有一点不同,即核矩阵的不同,
K~=K(I+μLK)−1.
同时,我们也可以检验互补松弛条件是仍然满足的:
f=K(I+μLK)−1(β∗−β)=K~(β∗−β).
因此,这个对偶问题是可以通过 SMO 算法来求解的。SMO 算法在 LIBSVM 库中实现,而 sklearn
对 SVR 的实现也是用了这个库。我们可以调用 sklearn
的 SVR
接口来实现 SMO 算法的调用。具体地,在生成 SVR
类的实例时,我们传入 kernel='precomputed'
参数,然后把新的核矩阵 K~ 喂给这个实例的 fit
方法,然后我们就可以使用 SMO 算法来求解这个问题了。
LIBSVM 和 sklearn
的 SVR
在训练完毕后都会给出 β∗−β 和 b。对于 SVR
,这两个变量保存在 dual_coef_
and intercept_
属性里。可以证明,SMO 得到的 b 恰恰是我们 LapSVR 的主问题中的 b。得到 β∗−β 和 b 之后,我们可以基于同样的方式来计算 α,然后得到训练好的模型。
嵌入图拉普拉斯矩阵的支持向量回归(LapESVR)
和 LapSVR 不同,LapESVR(Laplacian Embedded Support Vector Regression)得到的 α 是稀疏的。这要归功于 LapESVR 在流形约束函数估计的最优化问题中引入了新的项。新的最优化问题为
b∈R,α,ξ,ξ∗,g∈Rl+uminsubject toC1T(ξ+ξ∗)+21(g−y)TΛ(g−y)+21αTKα+2μgTLgKα+b1−g≤ϵ1+ξg−Kα−b1≤ϵ1+ξ∗ξ,ξ∗≥0.
基于新表示定理,这样的主问题可以转化为对偶形式,
β,β∗∈Rl+umaxsubject to−21(β∗−β)TQ(β∗−β)+(β∗−β)Ty~−ϵ(β∗−β)T10≤β,β∗≤C1T(β−β∗)=0,
附带一些等式:
αg=β∗−β=(Λ+μL)−1(Λy−(β∗−β)),
其中
Qy~=K+(Λ+μL)−1=(Λ+μL)−1Λy.
此时,α=β∗−β,因此 α 将会继承 β∗−β 的稀疏性。
为了高效地计算新的核矩阵 Q,我们可以把流形嵌入的思想应用到这个模型上面来。我们知道,在 拉普拉斯特征映射(LE) 中,我们对 L 做了一个特征值分解,然后就可以得到最能保持图(流形)结构的低维嵌入。 假设 Φ∈R(u+l)×nev 的各列分别对应最小的 nev 个特征值,我们可以约束 g=Φζ,即 g 在由拉普拉斯特征映射的嵌入向量所张成的一个空间内。那么,原问题就可以表示成
b∈R,α,ξ,ξ∗∈Rl+u,ζ∈Rnevminsubject toC1T(ξ+ξ∗)+21(Φζ−y)TΛ(Φζ−y)+21αTKα+2μζTΦTLΦζKα+b1−Φζ≤ϵ1+ξΦζ−Kα−b1≤ϵ1+ξ∗ξ,ξ∗≥0.
以及它的对偶问题
β,β∗∈Rl+umaxsubject to−21(β∗−β)TQ(β∗−β)+(β∗−β)Ty~−ϵ(β∗−β)T10≤β,β∗≤C1T(β−β∗)=0,
和一些等式
αζ=β∗−β=S−1[ΦTΛy−ΦT(β∗−β)],
其中
SΣLQy~=ΦTΛΦ+μΣL=ΦTLΦ=K+ΦS−1ΦT=ΦS−1ΦTΛy.
LapESVR 的对偶问题和 SVR 同样具有相同的形式。因此,参考 前文,β∗,β 和 b 都可以通过 sklearn
的 SVR
API 来求得。