1 前言
胡浩基老师的机器学习课程作业
与SVM推导类似,下面推导需要承认一个结论:
对于下述优化问题
ωminf(ω)
s.t
①gi(ω)⩽0(i=1,⋯,k)
②hi(ω)=0(i=1,⋯,l)
若f(ω)为凸函数,且gi(ω),hj(ω)是关于ω的线性函数(i=1,⋯,k;j=1,⋯,l),原问题与其对偶问题等价。
下面的博客可以帮助简单了解何为原问题,对偶问题,KKT条件。
拉格朗日对偶性(Lagrange duality)
看之前最好重温下数学分析中的隐函数存在定理与Lagrange乘子法。
下推导参考周志华老师的《机器学习》一书。
2 支持向量机回归
首先明确目标
输入:训练样本集X=(xi,yi)i=1∼N,yi∈R
欲得到形式为f(x)=ωTϕ(x)+b的回归模型
假设我们能容忍f(x)与真实标签值y之间最多有ϵ的偏差,即仅当f(x)与y之间的差别绝对值大于ϵ时才计算损失。
我把西瓜书的图放上来帮助理解
在特征只有一维的情况下,
- 图中的圆点代表训练样本,对每一个训练样本而言,作x轴垂线,垂线与红线相交点的y值即为模型对该样本标签的预测值。
- 对红线上的每一个点,分别上下平移ϵ所构成的两条虚线称为间隔带。
- 于是,所有f(x)与y之间的差别绝对值小于ϵ的点一定会落到图中长度为2ϵ的间隔带中,这部分点不需要计算误差。
- 要注意区分ϵ与SVM中的函数间隔,虚线与红线的距离大部分情形下并非ϵ。
于是SVR模型可以表述如下
(ω,b,ξ,ξi^)min21∥ω∥2+Ci=1∑N(ξi+ξi^)
s.t
①f(xi)−yi⩽ϵ+ξi
②yi−f(xi)⩽ϵ+ξi^
③ξi,ξi^⩾0
对于红线上方的训练样本xi,明显有ξi^=0,红线下方的训练样本xj,则有ξi=0
也许你会问为什么不利用一个松弛变量来描述上面的优化问题,比如下面这种样子
∣f(xi)−yi∣⩽ϵ+ξi
的确上下两种描述是等价的,但是后续中我们对该优化问题的求解思路与SVM是相同的,即将原问题转化为对偶问题(这样才能从形式看到核函数那个美丽的巧合),第二种形式的描述很明显与原问题的形式还是有一定的偏差的。
解释完了上面的符号含义问题,来说说让我理解过程中最为困惑的一件事,
我们来看目标函数的形式
(ω,b,ξ,ξi^)min21∥ω∥2+Ci=1∑N(ξi+ξi^)
这与SVM的软间隔形式几乎相同,但我们需要强调:原始的SVM是用来解决分类问题的,它的出发点是使支持向量到平面的间隔最大化,一步步推导出了形如
ωmin21∥ω∥2
的目标函数形式,可在回归问题中,我们还能从这个idea出发吗?
那是咋回事嘞,周大佬写错了??
说说我的理解
我们将SVR的优化目标
(ω,b,ξ,ξi^)min21∥ω∥2+Ci=1∑N(ξi+ξi^)
分两部分说明。
- 21∥ω∥2部分并非是推导而来的,我将它理解为是一个规范化惩罚,偏差方差分解告诉我们方差过大会导致泛化误差的增大,也就是常说的过拟合,∥ω∥过大会造成方差过大,这是我们不希望看到的。(这里跟Ridge和Lasso的出发点是一样的)
- C∑i=1N(ξi+ξi^)部分我认为是损失衡量的主体,这里蕴含的想法我认为是使预测值与真实值偏差较大(∣f(x)−y∣⩾ϵ)的那些训练样本的偏差尽可能小。(细品下和SVM的想法还是蛮接近的)
大概说清楚初始优化问题的来源后,下面的推导方法基本上和SVM类似了,虽然很麻烦,但还是写在这里,支持向量机最后的形式真的很漂亮。
(ω,b,ξ,ξi^)min21∥ω∥2+Ci=1∑N(ξi+ξi^)
s.t
①f(xi)−yi⩽ϵ+ξi
②yi−f(xi)⩽ϵ+ξi^
③ξi,ξi^⩾0
老规矩,目标函数是个凸函数(你要不信可以用凸函数定义去证明下,最后用下Cauchy不等式就完事了),优化目标是决策变量的一次式(线性),还记得一开始承认下的结论吗?先把Lagrange函数写出来。
L(ω,b,α,α^,μ,μ^)=21∥ω∥2+Ci=1∑N(ξi+ξi^)−i=1∑Nμiξi
−i=1∑Nμi^ξi^+i=1∑Nαi(ωTϕ(xi)+b−yi−1−ξi)
+i=1∑Nαi^(ωTϕ(xi)+b−yi−1−ξi^)
求下关于各向量的梯度
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∂ω∂L=0⇒ω=∑i=1N(αi^−αi)ϕ(xi)∂b∂L=0⇒∑i=1N(αi^−αi)=0∂ξi∂L=0⇒μi+αi=C∂ξi^∂L=0⇒μi^+αi^=C
这里用到了一些简单的矩阵求导公式:
- ∂ω∂∥ω∥2=ω
- ∂ω∂ωTx=x
把上面求出的L极小值点的必要条件带到L里面去,转化成对偶问题
α,α^maxΘ(α,α^)
s.t
①i=1∑N(αi^−αi)=0
②0⩽αi,αi^⩽C
Θ(α,α^)具体形式为
i=1∑N(αi^−αi)yi−ϵi=1∑N(αi^+αi)
−21i=1∑Nj=1∑N(αi^−αi)(αj^−αj)ϕ(xi)Tϕ(xj)
简单解释下优化条件
第一个优化条件是求导产生的约束,而第二个优化条件是考虑以下两点得到的
- 目标函数 Θ(α)不含μ,考虑用不含μ的约束表示原有的约束
- μi^+αi^=C与μi+αi=C综合μ⩾0(不等约束引入的Lagrange有不小于0的限制,仔细看上面附的超链接)
把Θ(α,α^)高维映射的内积部分换成核函数形式
Θ(α,α^)=i=1∑N(αi^−αi)yi−ϵi=1∑N(αi^+αi)
−21i=1∑Nj=1∑N(αi^−αi)(αj^−αj)κ(xixj)
需要说明的是,这还是一个关于(α,α^)的凸函数,用凸函数的求解方法求解出(α,α^)后,回带入
ω=i=1∑N(αi^−αi)ϕ(xi)
于是超平面方程形式为
f(x)=i=1∑N(αi^−αi)ϕ(xi)Tϕ(x)+b
高维空间内积更换为核函数
f(x)=i=1∑N(αi^−αi)κ(xi,x)+b
对于b的求解,需要用到KKT条件中的松弛互补条件
- (C−αi)ξi=0
- αi(ωTϕ(xi)+b−yi−1−ξi)=0
取一个计算出的0<αi<C,由第一个条件得ξi=0
带入第二式解得
b=yi+ϵ−j=1∑N(αj^−αj)ϕ(xj)Tϕ(xi)
=yi+ϵ−j=1∑N(αj^−αj)κ(xj,xi)