机器学习面试必知:SVM回归的泛化

从 机器学习面试必知:SVM和LR的关系 一文中,我们可以看到SVM相比于LR的优势在于能产生稀疏解。现在把SVM应用到回归问题中,同时保持它的稀疏性。在简单的线性回归模型中,我们最小化一个正则化的误差函数 1 2 ∑ n = 1 N ( y n − t n ) 2 + λ 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}\sum_{n=1}^{N}(y_{n}-t_{n})^{2}+\frac{\lambda}{2}||w||^{2} 21n=1N(yntn)2+2λw2为了得到稀疏解,二次误差函数被替换成一个 ϵ \epsilon ϵ不敏感误差函数。如果预测 y ( x ) y(x) y(x)与目标 t t t之间的差的绝对值小于 ϵ \epsilon ϵ,那么这个误差函数给出的误差为0。 E ϵ ( y ( x ) − t ) = { 0 , i f    ∣ y ( x ) − t ∣ < ϵ ∣ y ( x ) − t ∣ − ϵ ,   o t h e r w i s e E_{\epsilon }(y(x)-t)= \left\{\begin{matrix} 0,\quad \quad if \ \ |y(x)-t|<\epsilon\\ |y(x)-t|-\epsilon,\ otherwise \end{matrix}\right. Eϵ(y(x)t)={0,if  y(x)t<ϵy(x)tϵ, otherwise于是我们最小正则化的误差函数 C ∑ n = 1 N E ϵ ( y ( x n ) − t n ) + 1 2 ∣ ∣ w ∣ ∣ 2 C\sum_{n=1}^{N} E_{\epsilon }(y(x_{n})-t_{n})+\frac{1}{2}||w||^{2} Cn=1NEϵ(y(xn)tn)+21w2为了有更好的泛化能力,我们引入松弛变量 ξ n ≥ 0 \xi_{n}\geq0 ξn0 ξ n ~ ≥ 0 \widetilde{\xi_{n}}\geq0 ξn 0分别代表上界和下界。
机器学习面试必知:SVM回归的泛化_第1张图片
从图中可以看到, ξ n > 0 \xi_{n}>0 ξn>0对应的是 t n > y ( x n ) + ϵ t_{n}>y(x_{n})+\epsilon tn>y(xn)+ϵ数据点, ξ n ~ > 0 \widetilde{\xi_{n}}>0 ξn >0对应的是 t n < y ( x n ) − ϵ t_{n}<y(x_{n})-\epsilon tn<y(xn)ϵ数据点,而位于管道内的点 y n − ϵ ≤ t n ≤ y n + ϵ y_{n}-\epsilon\leq t_{n}\leq y_{n}+\epsilon ynϵtnyn+ϵ所以 t n ≤ y ( x n ) + ϵ + ξ n t_{n}\leq y(x_{n})+\epsilon+\xi_{n} tny(xn)+ϵ+ξn t n ≥ y ( x n ) − ϵ − ξ n ~ t_{n}\geq y(x_{n})-\epsilon-\widetilde{\xi_{n}} tny(xn)ϵξn 相应地支持向量回归的误差函数可以写成 C ∑ n = 1 N ( ξ n + ξ n ~ ) + 1 2 ∣ ∣ w ∣ ∣ 2 C\sum_{n=1}^{N}(\xi_{n}+\widetilde{\xi_{n}})+\frac{1}{2}||w||^{2} Cn=1N(ξn+ξn )+21w2我们引入拉格朗日乘数 a n ≥ 0 a_{n}\geq0 an0 a n ~ ≥ 0 \widetilde{a_{n}}\geq0 an 0 u n ≥ 0 u_{n}\geq0 un0 u n ~ ≥ 0 \widetilde{u_{n}}\geq0 un 0,然后最优化拉格朗日函数 L = C ∑ n = 1 N ( ξ n + ξ n ~ ) + 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ n = 1 N u n ξ n − ∑ n = 1 N u n ~ ξ n ~ − ∑ n = 1 N a n ( y ( x n ) + ϵ + ξ n − t n ) − ∑ n = 1 N a n ~ ( − y ( x n ) + ϵ + ξ n ~ + t n ) L=C\sum_{n=1}^{N}(\xi_{n}+\widetilde{\xi_{n}})+\frac{1}{2}||w||^{2}-\sum_{n=1}^{N}u_{n}\xi_{n}-\sum_{n=1}^{N}\widetilde{u_{n}}\widetilde{\xi_{n}}-\sum_{n=1}^{N}a_{n}(y(x_{n})+\epsilon+\xi_{n}-t_{n})-\sum_{n=1}^{N}\widetilde{a_{n}}(-y(x_{n})+\epsilon+\widetilde{\xi_{n}}+t_{n}) L=Cn=1N(ξn+ξn )+21w2n=1Nunξnn=1Nun ξn n=1Nan(y(xn)+ϵ+ξntn)n=1Nan (y(xn)+ϵ+ξn +tn) ∂ L ∂ w = 0 ⇒ w = ∑ n = 1 N ( a n − a n ~ ) ϕ ( x n ) \frac{\partial L}{\partial w}=0\Rightarrow w=\sum_{n=1}^{N}(a_{n}-\widetilde{a_{n}})\phi(x_{n}) wL=0w=n=1N(anan )ϕ(xn) ∂ L ∂ b = 0 ⇒ 0 = ∑ n = 1 N ( a n − a n ~ ) \frac{\partial L}{\partial b}=0\Rightarrow 0=\sum_{n=1}^{N}(a_{n}-\widetilde{a_{n}}) bL=00=n=1N(anan ) ∂ L ∂ ξ n = 0 ⇒ a n + u n = C \frac{\partial L}{\partial \xi_{n}}=0\Rightarrow a_{n}+u_{n}=C ξnL=0an+un=C ∂ L ∂ ξ n ~ = 0 ⇒ a n ~ + u n ~ = C \frac{\partial L}{\partial \widetilde{\xi_{n}}}=0\Rightarrow \widetilde{a_{n}}+\widetilde{u_{n}}=C ξn L=0an +un =C把这些结果代入到L中得到 L ~ ( a , a ~ ) = − 1 2 ∑ n = 1 N ∑ m = 1 N ( a n − a n ~ ) ( a m − a m ~ ) K ( x n , x m ) − ϵ ∑ n = 1 N ( a n + a n ~ ) + ∑ n = 1 N ( a n − a n ~ ) t n \widetilde{L}(a,\widetilde{a})=-\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{N}(a_{n}-\widetilde{a_{n}})(a_{m}-\widetilde{a_{m}})K(x_{n},x_{m})-\epsilon\sum_{n=1}^{N}(a_{n}+\widetilde{a_{n}})+\sum_{n=1}^{N}(a_{n}-\widetilde{a_{n}})t_{n} L (a,a )=21n=1Nm=1N(anan )(amam )K(xn,xm)ϵn=1N(an+an )+n=1N(anan )tn同样地我们得到了限制条件 0 ≤ a n ≤ C 0\leq a_{n}\leq C 0anC 0 ≤ a n ~ ≤ C 0\leq \widetilde{a_{n}}\leq C 0an C对应的KKT条件等于零的情况如下 a n ( y ( x n ) + ϵ + ξ n − t n ) = 0 a_{n}(y(x_{n})+\epsilon+\xi_{n}-t_{n})=0 an(y(xn)+ϵ+ξntn)=0 a n ~ ( − y ( x n ) + ϵ + ξ n ~ + t n ) = 0 \widetilde{a_{n}}(-y(x_{n})+\epsilon+\widetilde{\xi_{n}}+t_{n})=0 an (y(xn)+ϵ+ξn +tn)=0 ( C − a n ) ξ n = 0 (C-a_{n})\xi_{n}=0 (Can)ξn=0 ( C − a n ~ ) ξ n ~ = 0 (C-\widetilde{a_{n}})\widetilde{\xi_{n}}=0 (Can )ξn =0分析上述的等式我们可以得到些有用的结果。如果 y ( x n ) + ϵ + ξ n − t n = 0 y(x_{n})+\epsilon+\xi_{n}-t_{n}=0 y(xn)+ϵ+ξntn=0,那么 a n ≠ 0 a_{n}\neq0 an̸=0,进一步的,如果 a n = C a_{n}=C an=C也就是 ξ n > 0 \xi_{n}>0 ξn>0此时数据点位于上边界的上方,如果 ξ n = 0 \xi_{n}=0 ξn=0那么数据点位于管道的上边界上。同理可以分析 − y ( x n ) + ϵ + ξ n ~ + t n = 0 -y(x_{n})+\epsilon+\widetilde{\xi_{n}}+t_{n}=0 y(xn)+ϵ+ξn +tn=0
我们已经得到了 y ( x ) = ∑ n = 1 N ( a n − a n ~ ) K ( x n , x ) + b y(x)=\sum_{n=1}^{N}(a_{n}-\widetilde{a_{n}})K(x_{n},x)+b y(x)=n=1N(anan )K(xn,x)+b现在寻找支持向量也就是有贡献的数据点即 a n ≠ 0 a_{n}\neq0 an̸=0或者 a n ~ ≠ 0 \widetilde{a_{n}}\neq0 an ̸=0的点。这些数据点位于管道边界上或者管道外部,管道内部的点有 a n = a n ~ = 0 a_{n}=\widetilde{a_{n}}=0 an=an =0。更一般地,我们使用前文的分析用满足 0 < a n < C 0<a_{n}<C 0<an<C,此时 ξ n = 0 \xi_{n}=0 ξn=0, y ( x n ) + b + ϵ + ξ n − t n = 0 y(x_{n})+b+\epsilon+\xi_{n}-t_{n}=0 y(xn)+b+ϵ+ξntn=0,那么 b = − w T ϕ ( x n ) − ϵ + t n b=-w^{T}\phi(x_{n})-\epsilon+t_{n} b=wTϕ(xn)ϵ+tn或者用 0 < a n ~ < C 0<\widetilde{a_{n}}<C 0<an <C的数据点去求解b。当然更好的方法对所有符合条件的情况取平均。

你可能感兴趣的:(机器学习,面试,统计学习,回归)