支持向量回归(Support Vector Regression)
支持向量回归(Support Vector Regression)
文章目录
- 支持向量回归(Support Vector Regression)
- 带松弛变量的SVR
- 带松弛变量的SVR目标函数的优化
- SVM回归模型的支持向量
- SVR的算法过程
- 带松弛变量的SVR的一种解释:ε\varepsilonε不敏感损失+L2正则
- ε\varepsilonε不敏感损失(ε\varepsilonε-insensitive loss)
- 带松弛变量的SVR的一种解释
- 总结
支持向量机除了能够分类,还可以用于回归。
回归的目的是得到一个能够尽量拟合训练集样本的模型f(x)f(\mathbf{x})f(x),通常用的方法是构建一个样本标签与模型预测值的损失函数,使损失函数最小化从而确定模型f(x)f(\mathbf{x})f(x)。
例如,在线性回归模型中,损失函数(L2损失,L1损失,huber损失)由模型输出f(x)f(\mathbf{x})f(x)与真实输出yyy之间的差别来计算,通过最小化损失函数来确定模型f(x)f(\mathbf{x})f(x),当且仅当f(x)f(\mathbf{x})f(x)与yyy完全相等时,损失才为0。
那支持向量机是如何用于回归的呢?
支持向量机的精髓在于间隔最大化。
- 在分类任务中,使靠超平面最近的样本点之间的间隔最大;
- 而在回归任务中,同样也是间隔最大,不同的是它使靠超平面最远的样本点之间的间隔最大。
如果使靠超平面最远的样本点之间的间隔最大,那么上图样本点的回归超平面结果就应该变成下左图那样。
显然,我们希望回归能达到右图的效果,于是SVR对间隔加了限制,对所有的样本点,回归模型f(x)f(\mathbf{x})f(x)与yyy的偏差必须≤ε\le \varepsilon≤ε。我们把这个偏差范围称作ε\varepsilonε管道。
依据以上的思路,SVR的优化问题可以用数学式表示为
minw,b12∣∣w∣∣22s.t.∣yi−(wTxi+b)∣≤ε,i=1,2,⋯,N\begin{aligned} &\min_{\mathbf{w},b} \frac{1}{2} ||\mathbf{w}||_2^2 \\ s.t. \quad |y_i - (\mathbf{w}^T &\mathbf{x}_i + b)| \le \varepsilon, \quad i = 1,2,\cdots,N \end{aligned} s.t.∣yi−(wTw,bmin21∣∣w∣∣22xi+b)∣≤ε,i=1,2,⋯,N
SVR的目的是:保证所有样本点在ε\varepsilonε管道内的前提下,回归超平面f(x)f(\mathbf{x})f(x)尽可能地平。
在ε\varepsilonε不变的前提下,回归超平面f(x)f(\mathbf{x})f(x)尽可能平和间隔尽可能大是等效的。
带松弛变量的SVR
实际应用中,ε\varepsilonε设置太小无法保证所有样本点都在ε\varepsilonε管道内,ε\varepsilonε太大回归超平面会被一些异常点带偏。
和软间隔SVM模型类似,SVR允许每个样本(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)添加松弛变量ξi≥0\xi_i \ge 0ξi≥0,用来描述样本点偏离ε\varepsilonε管道的程度。
如何添加松弛变量?
如果直接在约束条件中加上松弛变量,变成∣yi−(wTxi+b)∣≤ε+ξi|y_i - (\mathbf{w}^T \mathbf{x}_i + b)| \le \varepsilon + \xi_i∣yi−(wTxi+b)∣≤ε+ξi,即
{yi−(wTxi+b)≤ε+ξi上界约束(wTxi+b)−yi≤ε+ξi下界约束\left\{ \begin{aligned} y_i - (\mathbf{w}^T \mathbf{x}_i + b) &\le \varepsilon + \xi_i \quad 上界约束 \\ (\mathbf{w}^T \mathbf{x}_i + b) - y_i &\le \varepsilon + \xi_i \quad 下界约束 \end{aligned} \right. {yi−(wTxi+b)(wTxi+b)−yi≤ε+ξi上界约束≤ε+ξi下界约束
显然,超出间隔上界的样本点影响到了下界面的约束。
那么是否可以对超出不同界面的样本点分开添加松弛变量?
比如:样本点超出间隔上界,我们令
{yi−(wTxi+b)≤ε+ξi上界约束(wTxi+b)−yi≤ε下界约束\left\{ \begin{aligned} y_i - (\mathbf{w}^T \mathbf{x}_i + b) &\le \varepsilon + \xi_i \quad 上界约束 \\ (\mathbf{w}^T \mathbf{x}_i + b) - y_i &\le \varepsilon \quad 下界约束 \end{aligned} \right. {yi−(wTxi+b)(wTxi+b)−yi≤ε+ξi上界约束≤ε下界约束
超出间隔下界,令
{yi−(wTxi+b)≤ε上界约束(wTxi+b)−yi≤ε+ξi下界约束\left\{ \begin{aligned} y_i - (\mathbf{w}^T \mathbf{x}_i + b) &\le \varepsilon \quad 上界约束 \\ (\mathbf{w}^T \mathbf{x}_i + b) - y_i &\le \varepsilon + \xi_i \quad 下界约束 \end{aligned} \right. {yi−(wTxi+b)(wTxi+b)−yi≤ε上界约束≤ε+ξi下界约束
但是事先不知道样本点超出的是上界还是下界,因此也不可行,而且超出上界和超出下界的约束条件形式还不相同。
其实,上下界的松弛变量可以用不同符号来表示:ξi⋀≥0,ξi⋁≥0\xi_i^{\bigwedge} \ge 0,\xi_i^{\bigvee} \ge 0ξi⋀≥0,ξi⋁≥0,约束条件变成
{yi−(wTxi+b)≤ε+ξi⋀上界约束(wTxi+b)−yi≤ε+ξi⋁下界约束\left\{ \begin{aligned} y_i - (\mathbf{w}^T \mathbf{x}_i + b) &\le \varepsilon + \xi_i^{\bigwedge} \quad 上界约束 \\ (\mathbf{w}^T \mathbf{x}_i + b) - y_i &\le \varepsilon + \xi_i^{\bigvee} \quad 下界约束 \end{aligned} \right. ⎩⎨⎧yi−(wTxi+b)(wTxi+b)−yi≤ε+ξi⋀上界约束≤ε+ξi⋁下界约束
当ξi⋀≠0,ξi⋁=0\xi_i^{\bigwedge} \ne 0,\xi_i^{\bigvee} = 0ξi⋀=0,ξi⋁=0时,样本点超出上界;
当ξi⋀=0,ξi⋁≠0\xi_i^{\bigwedge} = 0,\xi_i^{\bigvee} \ne 0ξi⋀=0,ξi⋁=0时,样本点超出下界;
当ξi⋀=0,ξi⋁=0\xi_i^{\bigwedge} = 0,\xi_i^{\bigvee} = 0ξi⋀=0,ξi⋁=0时,样本点在ε\varepsilonε通道内。
ξi⋀≠0,ξi⋁≠0\xi_i^{\bigwedge} \ne 0, \xi_i^{\bigvee} \ne 0ξi⋀=0,ξi⋁=0这种情况不可能出现,因为这表示样本点既超出上界又超出下界,明显不可能发生。
引入松弛变量,SVR的优化问题形式为
minw,b12∣∣w∣∣22+C∑i=1N(ξi⋁+ξi⋀)s.t.−ε−ξi⋁≤yi−(wTxi+b)≤ε+ξi⋀,i=1,2,⋯,Nξi⋁≥0,ξi⋀≥0,i=1,2,⋯,N\begin{aligned} &\min_{\mathbf{w},b} \frac{1}{2} ||\mathbf{w}||_2^2 + C \sum_{i=1}^N (\xi_i^{\bigvee} + \xi_i^{\bigwedge}) \\ s.t. \quad - \varepsilon - \xi_i^{\bigvee}& \le y_i - (\mathbf{w}^T \mathbf{x}_i + b) \le \varepsilon + \xi_i^{\bigwedge}, \quad i = 1,2,\cdots,N \\ &\xi_i^{\bigvee} \ge 0, \xi_i^{\bigwedge} \ge 0, \quad i = 1,2,\cdots,N \end{aligned} s.t.−ε−ξi⋁w,bmin21∣∣w∣∣22+Ci=1∑N(ξi⋁+ξi⋀)≤yi−(wTxi+b)≤ε+ξi⋀,i=1,2,⋯,Nξi⋁≥0,ξi⋀≥0,i=1,2,⋯,N
带松弛变量的SVR目标函数的优化
依然与SVM分类模型类似,先用拉格朗日乘子法,将目标函数变成:
L(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)=12∣∣w∣∣22+C∑i=1N(ξi⋁+ξi⋀)+∑i=1Nαi⋁[−ε−ξi⋁−yi+(wTxi+b)]+∑i=1Nαi⋀[yi−(wTxi+b)−ε−ξi⋀]−∑i=1Nμi⋁ξi⋁−∑i=1Nμi⋀ξi⋀\begin{aligned} &L(\mathbf{w},b,\boldsymbol{\alpha}^{\bigvee},\boldsymbol{\alpha}^{\bigwedge},\boldsymbol{\xi}^{\bigvee},\boldsymbol{\xi}^{\bigwedge},\boldsymbol{\mu}^{\bigvee},\boldsymbol{\mu}^{\bigwedge}) \\ = &\frac{1}{2} ||\mathbf{w}||_2^2 + C \sum_{i=1}^N (\xi_i^{\bigvee} + \xi_i^{\bigwedge}) + \sum_{i=1}^N \alpha_i^{\bigvee} [- \varepsilon - \xi_i^{\bigvee} - y_i + (\mathbf{w}^T \mathbf{x}_i + b)] \\ &+ \sum_{i=1}^N \alpha_i^{\bigwedge} [y_i - (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigwedge}] - \sum_{i=1}^N \mu_i^{\bigvee} \xi_i^{\bigvee} - \sum_{i=1}^N \mu_i^{\bigwedge} \xi_i^{\bigwedge} \end{aligned} =L(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)21∣∣w∣∣22+Ci=1∑N(ξi⋁+ξi⋀)+i=1∑Nαi⋁[−ε−ξi⋁−yi+(wTxi+b)]+i=1∑Nαi⋀[yi−(wTxi+b)−ε−ξi⋀]−i=1∑Nμi⋁ξi⋁−i=1∑Nμi⋀ξi⋀
其中,αi⋁≥0,αi⋀≥0,μi⋁≥0,μi⋀≥0\alpha_i^{\bigvee} \ge 0, \alpha_i^{\bigwedge} \ge 0, \mu_i^{\bigvee} \ge 0, \mu_i^{\bigwedge} \ge 0αi⋁≥0,αi⋀≥0,μi⋁≥0,μi⋀≥0都是拉格朗日系数。
那么优化问题变为
minw,b,ξ⋁,ξ⋀maxα⋁,α⋀,μ⋁,μ⋀L(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)s.t.ξi⋁≥0,i=1,2,⋯,Nξi⋀≥0,i=1,2,⋯,Nαi⋁≥0,i=1,2,⋯,Nαi⋀≥0,i=1,2,⋯,Nμi⋁≥0,i=1,2,⋯,Nμi⋀≥0,i=1,2,⋯,N\begin{aligned} \min_{\mathbf{w}, b, \boldsymbol{\xi}^{\bigvee}, \boldsymbol{\xi}^{\bigwedge}} \, \max_{\boldsymbol{\alpha}^{\bigvee}, \boldsymbol{\alpha}^{\bigwedge}, \boldsymbol{\mu}^{\bigvee}, \boldsymbol{\mu}^{\bigwedge}} \, L(&\mathbf{w},b,\boldsymbol{\alpha}^{\bigvee},\boldsymbol{\alpha}^{\bigwedge},\boldsymbol{\xi}^{\bigvee},\boldsymbol{\xi}^{\bigwedge},\boldsymbol{\mu}^{\bigvee},\boldsymbol{\mu}^{\bigwedge}) \\ s.t. \quad \xi_i^{\bigvee} \ge 0,& \quad i = 1,2,\cdots,N \\ \xi_i^{\bigwedge} \ge 0,& \quad i = 1,2,\cdots,N \\ \quad \alpha_i^{\bigvee} \ge 0,& \quad i=1,2,\cdots,N \\ \alpha_i^{\bigwedge} \ge 0,& \quad i=1,2,\cdots,N \\ \mu_i^{\bigvee} \ge 0,& \quad i=1,2,\cdots,N \\ \mu_i^{\bigwedge} \ge 0,& \quad i=1,2,\cdots,N \end{aligned} w,b,ξ⋁,ξ⋀minα⋁,α⋀,μ⋁,μ⋀maxL(s.t.ξi⋁≥0,ξi⋀≥0,αi⋁≥0,αi⋀≥0,μi⋁≥0,μi⋀≥0,w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)i=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,N
优化问题满足KKT条件,可以等价为对偶问题
maxα⋁,α⋀,μ⋁,μ⋀minw,b,ξ⋁,ξ⋀L(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)s.t.ξi⋁≥0,i=1,2,⋯,Nξi⋀≥0,i=1,2,⋯,Nαi⋁≥0,i=1,2,⋯,Nαi⋀≥0,i=1,2,⋯,Nμi⋁≥0,i=1,2,⋯,Nμi⋀≥0,i=1,2,⋯,N\begin{aligned} \max_{\boldsymbol{\alpha}^{\bigvee}, \boldsymbol{\alpha}^{\bigwedge}, \boldsymbol{\mu}^{\bigvee}, \boldsymbol{\mu}^{\bigwedge}} \, \min_{\mathbf{w}, b, \boldsymbol{\xi}^{\bigvee}, \boldsymbol{\xi}^{\bigwedge}} \, L(&\mathbf{w},b,\boldsymbol{\alpha}^{\bigvee},\boldsymbol{\alpha}^{\bigwedge},\boldsymbol{\xi}^{\bigvee},\boldsymbol{\xi}^{\bigwedge},\boldsymbol{\mu}^{\bigvee},\boldsymbol{\mu}^{\bigwedge}) \\ s.t. \quad \xi_i^{\bigvee} \ge 0,& \quad i = 1,2,\cdots,N \\ \xi_i^{\bigwedge} \ge 0,& \quad i = 1,2,\cdots,N \\ \quad \alpha_i^{\bigvee} \ge 0,& \quad i=1,2,\cdots,N \\ \alpha_i^{\bigwedge} \ge 0,& \quad i=1,2,\cdots,N \\ \mu_i^{\bigvee} \ge 0,& \quad i=1,2,\cdots,N \\ \mu_i^{\bigwedge} \ge 0,& \quad i=1,2,\cdots,N \end{aligned} α⋁,α⋀,μ⋁,μ⋀maxw,b,ξ⋁,ξ⋀minL(s.t.ξi⋁≥0,ξi⋀≥0,αi⋁≥0,αi⋀≥0,μi⋁≥0,μi⋀≥0,w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)i=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,N
先求目标函数的最小化问题
minw,b,ξ⋁,ξ⋀L(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)\min_{\mathbf{w},b,\boldsymbol{\xi}^{\bigvee},\boldsymbol{\xi}^{\bigwedge}} L(\mathbf{w},b,\boldsymbol{\alpha}^{\bigvee},\boldsymbol{\alpha}^{\bigwedge},\boldsymbol{\xi}^{\bigvee},\boldsymbol{\xi}^{\bigwedge},\boldsymbol{\mu}^{\bigvee},\boldsymbol{\mu}^{\bigwedge}) w,b,ξ⋁,ξ⋀minL(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)
对参数求偏导得:
{∂L∂w=0⇒w=∑i=1N(αi⋀−αi⋁)xi∂L∂b=0⇒∑i=1N(αi⋀−αi⋁)=0∂L∂ξi⋁=0⇒C−αi⋁−μi⋁=0∂L∂ξi⋀=0⇒C−αi⋀−μi⋀=0\left\{ \begin{aligned} &\frac{\partial L}{\partial \mathbf{w}} = 0 \Rightarrow \mathbf{w} = \sum_{i=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) \mathbf{x}_i \\ &\frac{\partial L}{\partial b} = 0 \Rightarrow \sum_{i=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) = 0 \\ &\frac{\partial L}{\partial \xi_i^{\bigvee}} = 0 \Rightarrow C - \alpha_i^{\bigvee} - \mu_i^{\bigvee} = 0 \\ &\frac{\partial L}{\partial \xi_i^{\bigwedge}} = 0 \Rightarrow C - \alpha_i^{\bigwedge} - \mu_i^{\bigwedge} = 0 \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∂w∂L=0⇒w=i=1∑N(αi⋀−αi⋁)xi∂b∂L=0⇒i=1∑N(αi⋀−αi⋁)=0∂ξi⋁∂L=0⇒C−αi⋁−μi⋁=0∂ξi⋀∂L=0⇒C−αi⋀−μi⋀=0
令
ψ(α⋁,α⋀,μ⋁,μ⋀)=minw,b,ξ⋁,ξ⋀L(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)\psi(\boldsymbol{\alpha}^{\bigvee},\boldsymbol{\alpha}^{\bigwedge},\boldsymbol{\mu}^{\bigvee},\boldsymbol{\mu}^{\bigwedge}) = \min_{\mathbf{w}, b, \boldsymbol{\xi}^{\bigvee},\boldsymbol{\xi}^{\bigwedge}} L(\mathbf{w},b,\boldsymbol{\alpha}^{\bigvee},\boldsymbol{\alpha}^{\bigwedge},\boldsymbol{\xi}^{\bigvee},\boldsymbol{\xi}^{\bigwedge},\boldsymbol{\mu}^{\bigvee},\boldsymbol{\mu}^{\bigwedge}) ψ(α⋁,α⋀,μ⋁,μ⋀)=w,b,ξ⋁,ξ⋀minL(w,b,α⋁,α⋀,ξ⋁,ξ⋀,μ⋁,μ⋀)
把以上偏导结果代入目标函数得到
ψ(α⋁,α⋀,μ⋁,μ⋀)=12∣∣w∣∣22+C∑i=1N(ξi⋁+ξi⋀)+∑i=1Nαi⋁[−ε−ξi⋁−yi+(wTxi+b)]+∑i=1Nαi⋀[yi−(wTxi+b)−ε−ξi⋀]−∑i=1Nμi⋁ξi⋁−∑i=1Nμi⋀ξi⋀=12∣∣w∣∣22+∑i=1N[(C−αi⋁−μi⋁)ξi⋁+(C−αi⋀−μi⋀)ξi⋀]+∑i=1Nαi⋁[−ε−yi+(wTxi+b)]+∑i=1Nαi⋀[yi−(wTxi+b)−ε]=12∣∣w∣∣22+∑i=1Nαi⋁[−ε−yi+(wTxi+b)]+∑i=1Nαi⋀[yi−(wTxi+b)−ε]=12wTw−wT∑i=1N(αi⋀−αi⋁)xi+b∑i=1N(αi⋁−αi⋀)−∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]=12wT∑i=1N(αi⋀−αi⋁)xi−wT∑i=1N(αi⋀−αi⋁)xi−∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]=−12wT∑i=1N(αi⋀−αi⋁)xi−∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]=−12[∑j=1N(αj⋀−αj⋁)xj]T∑i=1N(αi⋀−αi⋁)xi−∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]=−12∑i=1N∑j=1N(αi⋀−αi⋁)(αj⋀−αj⋁)xjTxi−∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]=−12∑i=1N∑j=1N(αi⋀−αi⋁)(αj⋀−αj⋁)xiTxj−∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]\begin{aligned} &\psi(\boldsymbol{\alpha}^{\bigvee},\boldsymbol{\alpha}^{\bigwedge},\boldsymbol{\mu}^{\bigvee},\boldsymbol{\mu}^{\bigwedge}) \\ = &\frac{1}{2} ||\mathbf{w}||_2^2 + C \sum_{i=1}^N (\xi_i^{\bigvee} + \xi_i^{\bigwedge}) + \sum_{i=1}^N \alpha_i^{\bigvee} [- \varepsilon - \xi_i^{\bigvee} - y_i + (\mathbf{w}^T \mathbf{x}_i + b)] \\ &+ \sum_{i=1}^N \alpha_i^{\bigwedge} [y_i - (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigwedge}] - \sum_{i=1}^N \mu_i^{\bigvee} \xi_i^{\bigvee} - \sum_{i=1}^N \mu_i^{\bigwedge} \xi_i^{\bigwedge} \\ = &\frac{1}{2} ||\mathbf{w}||_2^2 + \sum_{i=1}^N [(C-\alpha_i^{\bigvee}-\mu_i^{\bigvee})\xi_i^{\bigvee} + (C-\alpha_i^{\bigwedge}-\mu_i^{\bigwedge}) \xi_i^{\bigwedge}] \\ &+ \sum_{i=1}^N \alpha_i^{\bigvee} [- \varepsilon - y_i + (\mathbf{w}^T \mathbf{x}_i + b)] + \sum_{i=1}^N \alpha_i^{\bigwedge} [y_i - (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon] \\ = &\frac{1}{2} ||\mathbf{w}||_2^2 + \sum_{i=1}^N \alpha_i^{\bigvee} [- \varepsilon - y_i + (\mathbf{w}^T \mathbf{x}_i + b)] + \sum_{i=1}^N \alpha_i^{\bigwedge} [y_i - (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon] \\ = &\frac{1}{2} \mathbf{w}^T \mathbf{w} - \mathbf{w}^T \sum_{i=1}^N ( \alpha_i^{\bigwedge} - \alpha_i^{\bigvee} ) \mathbf{x}_i + b \sum_{i=1}^N (\alpha_i^{\bigvee} - \alpha_i^{\bigwedge}) - \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ = &\frac{1}{2} \mathbf{w}^T \sum_{i=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) \mathbf{x}_i - \mathbf{w}^T \sum_{i=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) \mathbf{x}_i - \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ = & - \frac{1}{2} \mathbf{w}^T \sum_{i=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) \mathbf{x}_i - \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ = & - \frac{1}{2} [ \sum_{j=1}^N (\alpha_j^{\bigwedge} - \alpha_j^{\bigvee}) \mathbf{x}_j ]^T \sum_{i=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) \mathbf{x}_i - \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ = & - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) (\alpha_j^{\bigwedge} - \alpha_j^{\bigvee}) \mathbf{x}_j^T\mathbf{x}_i - \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ = & - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N (\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) (\alpha_j^{\bigwedge} - \alpha_j^{\bigvee}) \mathbf{x}_i^T\mathbf{x}_j - \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \end{aligned} =========ψ(α⋁,α⋀,μ⋁,μ⋀)21∣∣w∣∣22+Ci=1∑N(ξi⋁+ξi⋀)+i=1∑Nαi⋁[−ε−ξi⋁−yi+(wTxi+b)]+i=1∑Nαi⋀[yi−(wTxi+b)−ε−ξi⋀]−i=1∑Nμi⋁ξi⋁−i=1∑Nμi⋀ξi⋀21∣∣w∣∣22+i=1∑N[(C−αi⋁−μi⋁)ξi⋁+(C−αi⋀−μi⋀)ξi⋀]+i=1∑Nαi⋁[−ε−yi+(wTxi+b)]+i=1∑Nαi⋀[yi−(wTxi+b)−ε]21∣∣w∣∣22+i=1∑Nαi⋁[−ε−yi+(wTxi+b)]+i=1∑Nαi⋀[yi−(wTxi+b)−ε]21wTw−wTi=1∑N(αi⋀−αi⋁)xi+bi=1∑N(αi⋁−αi⋀)−i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]21wTi=1∑N(αi⋀−αi⋁)xi−wTi=1∑N(αi⋀−αi⋁)xi−i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]−21wTi=1∑N(αi⋀−αi⋁)xi−i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]−21[j=1∑N(αj⋀−αj⋁)xj]Ti=1∑N(αi⋀−αi⋁)xi−i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]−21i=1∑Nj=1∑N(αi⋀−αi⋁)(αj⋀−αj⋁)xjTxi−i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]−21i=1∑Nj=1∑N(αi⋀−αi⋁)(αj⋀−αj⋁)xiTxj−i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]
因为目标函数已经消去了参数ξ⋁\boldsymbol{\xi}^{\bigvee}ξ⋁和ξ⋀\boldsymbol{\xi}^{\bigwedge}ξ⋀,所以相应的约束条件也可以去掉。
剩下约束条件
αi⋁≥0,i=1,2,⋯,Nαi⋀≥0,i=1,2,⋯,Nμi⋁≥0,i=1,2,⋯,Nμi⋀≥0,i=1,2,⋯,N\begin{aligned} \alpha_i^{\bigvee} \ge 0,& \quad i = 1,2,\cdots,N \\ \alpha_i^{\bigwedge} \ge 0,& \quad i = 1,2,\cdots,N \\ \mu_i^{\bigvee} \ge 0,& \quad i = 1,2,\cdots,N \\ \mu_i^{\bigwedge} \ge 0,& \quad i = 1,2,\cdots,N \end{aligned} αi⋁≥0,αi⋀≥0,μi⋁≥0,μi⋀≥0,i=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,N
联合等式
C−αi⋁−μi⋁=0,i=1,2,⋯,NC−αi⋀−μi⋀=0,i=1,2,⋯,N\begin{aligned} C - \alpha_i^{\bigvee} - \mu_i^{\bigvee} = 0,& \quad i = 1,2,\cdots,N \\ C - \alpha_i^{\bigwedge} - \mu_i^{\bigwedge} = 0,& \quad i = 1,2,\cdots,N \end{aligned} C−αi⋁−μi⋁=0,C−αi⋀−μi⋀=0,i=1,2,⋯,Ni=1,2,⋯,N
可以去掉μi⋁,μi⋀\mu_i^{\bigvee}, \mu_i^{\bigwedge}μi⋁,μi⋀,等效为
0≤αi⋁≤C,i=1,2,⋯,N0≤αi⋀≤C,i=1,2,⋯,N\begin{aligned} 0 \le \alpha_i^{\bigvee} \le C,& \quad i = 1,2,\cdots,N \\ 0 \le \alpha_i^{\bigwedge} \le C,& \quad i = 1,2,\cdots,N \end{aligned} 0≤αi⋁≤C,0≤αi⋀≤C,i=1,2,⋯,Ni=1,2,⋯,N
去掉包含参数μi⋁,μi⋀\mu_i^{\bigvee}, \mu_i^{\bigwedge}μi⋁,μi⋀的约束条件的原因和软间隔SVM分类模型的类似,是为了让整个优化问题涉及的参数尽量少,方便优化问题的求解。
综上,优化问题的数学形式表示为:
maxα⋁,α⋀−12∑i=1N∑j=1N(αi⋀−αi⋁)(αj⋀−αj⋁)xiTxj−∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]s.t.∑i=1N(αi⋀−αi⋁)=00≤αi⋁≤C,i=1,2,⋯,N0≤αi⋀≤C,i=1,2,⋯,N\begin{aligned} \max_{\boldsymbol{\alpha}^{\bigvee}, \boldsymbol{\alpha}^{\bigwedge}} \, - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N (\alpha_i^{\bigwedge} - &\alpha_i^{\bigvee}) (\alpha_j^{\bigwedge} - \alpha_j^{\bigvee}) \mathbf{x}_i^T \mathbf{x}_j - \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ s.t. \quad &\sum_{i=1}^N(\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) = 0 \\ &0 \le \alpha_i^{\bigvee} \le C, \quad i=1,2,\cdots,N \\ &0 \le \alpha_i^{\bigwedge} \le C, \quad i=1,2,\cdots,N \end{aligned} α⋁,α⋀max−21i=1∑Nj=1∑N(αi⋀−s.t.αi⋁)(αj⋀−αj⋁)xiTxj−i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]i=1∑N(αi⋀−αi⋁)=00≤αi⋁≤C,i=1,2,⋯,N0≤αi⋀≤C,i=1,2,⋯,N
目标函数去掉负号,将上述的最大化问题变成最小化问题,得到等价问题:
minα⋁,α⋀12∑i=1N∑j=1N(αi⋀−αi⋁)(αj⋀−αj⋁)xiTxj+∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]s.t.∑i=1N(αi⋀−αi⋁)=00≤αi⋁≤C,i=1,2,⋯,N0≤αi⋀≤C,i=1,2,⋯,N\begin{aligned} \min_{\boldsymbol{\alpha}^{\bigvee}, \boldsymbol{\alpha}^{\bigwedge}} \, \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N (\alpha_i^{\bigwedge} - &\alpha_i^{\bigvee}) (\alpha_j^{\bigwedge} - \alpha_j^{\bigvee}) \mathbf{x}_i^T\mathbf{x}_j + \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ s.t. \quad &\sum_{i=1}^N(\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) = 0 \\&0 \le \alpha_i^{\bigvee} \le C, \quad i=1,2,\cdots,N \\&0 \le \alpha_i^{\bigwedge} \le C, \quad i=1,2,\cdots,N \end{aligned} α⋁,α⋀min21i=1∑Nj=1∑N(αi⋀−s.t.αi⋁)(αj⋀−αj⋁)xiTxj+i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]i=1∑N(αi⋀−αi⋁)=00≤αi⋁≤C,i=1,2,⋯,N0≤αi⋀≤C,i=1,2,⋯,N
通过SMO算法可以求得最优参数α⋁∗{\boldsymbol{\alpha}^{\bigvee}}^*α⋁∗和α⋀∗{\boldsymbol{\alpha}^{\bigwedge}}^*α⋀∗,然后计算
w∗=∑i=1N(αi⋀∗−αi⋁∗)xi\mathbf{w}^* = \sum_{i=1}^N ({\alpha_i^{\bigwedge}}^* - {\alpha_i^{\bigvee}}^*) \mathbf{x}_i w∗=i=1∑N(αi⋀∗−αi⋁∗)xi
与软间隔SVM分类模型类似,SVR的支持向量并不都在最大间隔边界上,而且SVR上下界的数学表达式还不相同,为方便处理,我们只选用下界的支持向量(当然,你也可以选用上界的支持向量)。
对任一下界的支持向量(xk,yk)(\mathbf{x}_k,y_k)(xk,yk),有
b∗=yk+ϵ−w∗Txkb^* = y_k +\epsilon - {\mathbf{w}^*}^T \mathbf{x}_k b∗=yk+ϵ−w∗Txk
实践中常采用一种求b∗b^*b∗的更鲁棒(robust)的方法:选取多个(或所有)下界(或上界)的支持向量求解b后再取平均。
SVM回归模型的支持向量
已知KKT条件(部分,不是全部):
C−αi⋁−μi⋁=0,i=1,2,⋯,NC−αi⋀−μi⋀=0,i=1,2,⋯,Nαi⋁[ε+ξi⋁+yi−(wTxi+b)]=0,i=1,2,⋯,Nαi⋀[ε+ξi⋀−yi+(wTxi+b)]=0,i=1,2,⋯,Nμi⋁ξi⋁=0,i=1,2,⋯,Nμi⋀ξi⋀=0,i=1,2,⋯,Nyi≥(wTxi+b)−ε−ξi⋁,i=1,2,⋯,Nyi≤(wTxi+b)+ε+ξi⋀,i=1,2,⋯,Nξi⋁≥0,i=1,2,⋯,Nξi⋀≥0,i=1,2,⋯,Nαi⋁≥0,i=1,2,⋯,Nαi⋀≥0,i=1,2,⋯,Nμi⋁≥0,i=1,2,⋯,Nμi⋀≥0,i=1,2,⋯,N\begin{aligned} C - \alpha_i^{\bigvee} - \mu_i^{\bigvee} = 0,& \quad i = 1,2,\cdots,N \\ C - \alpha_i^{\bigwedge} - \mu_i^{\bigwedge} = 0,& \quad i = 1,2,\cdots,N \\ \alpha_i^{\bigvee} [ \varepsilon + \xi_i^{\bigvee} + y_i - (\mathbf{w}^T \mathbf{x}_i + b)] = 0,& \quad i = 1,2,\cdots,N \\ \alpha_i^{\bigwedge} [ \varepsilon + \xi_i^{\bigwedge} - y_i + (\mathbf{w}^T \mathbf{x}_i + b) ] = 0,& \quad i = 1,2,\cdots,N \\ \mu_i^{\bigvee} \xi_i^{\bigvee} = 0,& \quad i = 1,2,\cdots,N \\ \mu_i^{\bigwedge} \xi_i^{\bigwedge} = 0,& \quad i = 1,2,\cdots,N \\ y_i \ge (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigvee},& \quad i = 1,2,\cdots,N \\ y_i \le (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon + \xi_i^{\bigwedge},& \quad i = 1,2,\cdots,N \\ \xi_i^{\bigvee} \ge 0,& \quad i = 1,2,\cdots,N \\ \xi_i^{\bigwedge} \ge 0,& \quad i = 1,2,\cdots,N \\ \alpha_i^{\bigvee} \ge 0,& \quad i = 1,2,\cdots,N \\ \alpha_i^{\bigwedge} \ge 0,& \quad i = 1,2,\cdots,N \\ \mu_i^{\bigvee} \ge 0,& \quad i = 1,2,\cdots,N \\ \mu_i^{\bigwedge} \ge 0,& \quad i = 1,2,\cdots,N \end{aligned} C−αi⋁−μi⋁=0,C−αi⋀−μi⋀=0,αi⋁[ε+ξi⋁+yi−(wTxi+b)]=0,αi⋀[ε+ξi⋀−yi+(wTxi+b)]=0,μi⋁ξi⋁=0,μi⋀ξi⋀=0,yi≥(wTxi+b)−ε−ξi⋁,yi≤(wTxi+b)+ε+ξi⋀,ξi⋁≥0,ξi⋀≥0,αi⋁≥0,αi⋀≥0,μi⋁≥0,μi⋀≥0,i=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,Ni=1,2,⋯,N
我们有以下推论:
如果αi⋁≠0\alpha_i^{\bigvee} \ne 0αi⋁=0且αi⋀≠0\alpha_i^{\bigwedge} \ne 0αi⋀=0,那么根据
{αi⋁[ε+ξi⋁+yi−(wTxi+b)]=0αi⋀[ε+ξi⋀−yi+(wTxi+b)]=0\left\{ \begin{aligned} \alpha_i^{\bigvee} [ \varepsilon + \xi_i^{\bigvee} + y_i - (\mathbf{w}^T \mathbf{x}_i + b)] &= 0 \\ \alpha_i^{\bigwedge} [ \varepsilon + \xi_i^{\bigwedge} - y_i + (\mathbf{w}^T \mathbf{x}_i + b) ] &= 0 \end{aligned} \right. ⎩⎨⎧αi⋁[ε+ξi⋁+yi−(wTxi+b)]αi⋀[ε+ξi⋀−yi+(wTxi+b)]=0=0
样本点(xi,yi)(\mathbf{x}_i, y_i)(xi,yi)就必须满足
{ε+ξi⋁+yi−(wTxi+b)=0ε+ξi⋀−yi+(wTxi+b)=0\left\{ \begin{aligned} \varepsilon + \xi_i^{\bigvee} + y_i - (\mathbf{w}^T \mathbf{x}_i + b) &= 0 \\ \varepsilon + \xi_i^{\bigwedge} - y_i + (\mathbf{w}^T \mathbf{x}_i + b) &= 0 \end{aligned} \right. ⎩⎨⎧ε+ξi⋁+yi−(wTxi+b)ε+ξi⋀−yi+(wTxi+b)=0=0
即
{yi=(wTxi+b)−ε−ξi⋁yi=(wTxi+b)+ε+ξi⋀\left\{ \begin{aligned} y_i = (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigvee} \\ y_i = (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon + \xi_i^{\bigwedge} \end{aligned} \right. ⎩⎨⎧yi=(wTxi+b)−ε−ξi⋁yi=(wTxi+b)+ε+ξi⋀
因为
{ξi⋁≥0ξi⋀≥0\left\{ \begin{aligned} \xi_i^{\bigvee} \ge 0 \\ \xi_i^{\bigwedge} \ge 0 \end{aligned} \right. ⎩⎨⎧ξi⋁≥0ξi⋀≥0所以样本点(xi,yi)(\mathbf{x}_i, y_i)(xi,yi)同时在上界外和下界外,显然是不可能的。
- 如果αi⋁=0\alpha_i^{\bigvee}=0αi⋁=0且αi⋀=0\alpha_i^{\bigwedge}=0αi⋀=0,根据
{C−αi⋁−μi⋁=0C−αi⋀−μi⋀=0\left\{ \begin{aligned} C - \alpha_i^{\bigvee} - \mu_i^{\bigvee} &= 0 \\ C - \alpha_i^{\bigwedge} - \mu_i^{\bigwedge} &= 0 \end{aligned} \right. ⎩⎨⎧C−αi⋁−μi⋁C−αi⋀−μi⋀=0=0
有
{μi⋁=Cμi⋀=C\left\{ \begin{aligned} \mu_i^{\bigvee} &= C \\ \mu_i^{\bigwedge} &= C \end{aligned} \right. ⎩⎨⎧μi⋁μi⋀=C=C
再根据
{μi⋁ξi⋁=0μi⋀ξi⋀=0\left\{ \begin{aligned} \mu_i^{\bigvee} \xi_i^{\bigvee} &= 0 \\ \mu_i^{\bigwedge} \xi_i^{\bigwedge} &= 0 \end{aligned} \right. ⎩⎨⎧μi⋁ξi⋁μi⋀ξi⋀=0=0
有
{ξi⋁=0ξi⋀=0\left\{ \begin{aligned} \xi_i^{\bigvee} &= 0 \\ \xi_i^{\bigwedge} &= 0 \end{aligned} \right. ⎩⎨⎧ξi⋁ξi⋀=0=0
所以
{yi≥(wTxi+b)−εyi≤(wTxi+b)+ε\left\{ \begin{aligned} y_i &\ge (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon \\ y_i &\le (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon \end{aligned} \right. {yiyi≥(wTxi+b)−ε≤(wTxi+b)+ε
样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)在ε\varepsilonε通道内,不是支持向量;
上面两种情况的讨论可以总结出
αi⋁≠0⇒yi=(wTxi+b)−ε−ξi⋁αi⋀≠0⇒yi=(wTxi+b)+ε+ξi⋀αi⋁=0⇒yi≥(wTxi+b)−εαi⋀=0⇒yi≤(wTxi+b)+ε\begin{aligned} \alpha_i^{\bigvee} \ne 0 \quad&\Rightarrow \quad y_i = (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigvee} \\ \alpha_i^{\bigwedge} \ne 0 \quad&\Rightarrow \quad y_i = (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon + \xi_i^{\bigwedge} \\ \alpha_i^{\bigvee}=0 \quad&\Rightarrow \quad y_i \ge (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon \\ \alpha_i^{\bigwedge}=0 \quad&\Rightarrow \quad y_i \le (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon \end{aligned} αi⋁=0αi⋀=0αi⋁=0αi⋀=0⇒yi=(wTxi+b)−ε−ξi⋁⇒yi=(wTxi+b)+ε+ξi⋀⇒yi≥(wTxi+b)−ε⇒yi≤(wTxi+b)+ε
- 如果αi⋁≠0\alpha_i^{\bigvee} \ne 0αi⋁=0且αi⋀=0\alpha_i^{\bigwedge} = 0αi⋀=0,有
{yi=(wTxi+b)−ε−ξi⋁yi≤(wTxi+b)+ε⇒yi=(wTxi+b)−ε−ξi⋁\left\{ \begin{aligned} y_i &= (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigvee} \\ y_i &\le (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon \end{aligned} \right. \quad \Rightarrow \quad y_i = (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigvee} {yiyi=(wTxi+b)−ε−ξi⋁≤(wTxi+b)+ε⇒yi=(wTxi+b)−ε−ξi⋁
说明样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)在最大间隔的下界外,是支持向量。
可以更进一步讨论:
如果0<αi⋁<C0 \lt \alpha_i^{\bigvee} \lt C0<αi⋁<C,根据
C−αi⋁−μi⋁=0C - \alpha_i^{\bigvee} - \mu_i^{\bigvee} = 0 C−αi⋁−μi⋁=0
可知
μi⋁>0\mu_i^{\bigvee} \gt 0 μi⋁>0
由
μi⋁ξi⋁=0\mu_i^{\bigvee} \xi_i^{\bigvee} = 0 μi⋁ξi⋁=0
得出
ξi⋁=0\xi_i^{\bigvee} = 0 ξi⋁=0
因此
yi=(wTxi+b)−εy_i = (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon yi=(wTxi+b)−ε
说明样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)恰好落在最大间隔的下界;如果αi⋁=C\alpha_i^{\bigvee} = Cαi⋁=C,根据
C−αi⋁−μi⋁=0C - \alpha_i^{\bigvee} - \mu_i^{\bigvee} = 0 C−αi⋁−μi⋁=0
可知
μi⋁=0\mu_i^{\bigvee} = 0 μi⋁=0
由
μi⋁ξi⋁=0\mu_i^{\bigvee} \xi_i^{\bigvee} = 0 μi⋁ξi⋁=0
得出
ξi⋁≥0\xi_i^{\bigvee} \ge 0 ξi⋁≥0
由于样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)满足
yi=(wTxi+b)−ε−ξi⋁y_i = (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon - \xi_i^{\bigvee} yi=(wTxi+b)−ε−ξi⋁
说明样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)不高于最大间隔的下界;同理,如果αi⋁=0\alpha_i^{\bigvee} = 0αi⋁=0且αi⋀≠0\alpha_i^{\bigwedge} \ne 0αi⋀=0,那么有
{yi=(wTxi+b)+ε+ξi⋀yi≥(wTxi+b)−ε⇒yi=(wTxi+b)+ε+ξi⋀\left\{ \begin{aligned} y_i &= (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon + \xi_i^{\bigwedge} \\ y_i &\ge (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilon \end{aligned} \quad \Rightarrow \quad y_i = (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon + \xi_i^{\bigwedge} \right. {yiyi=(wTxi+b)+ε+ξi⋀≥(wTxi+b)−ε⇒yi=(wTxi+b)+ε+ξi⋀
说明样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)在最大间隔的上界外,是支持向量。
如果0<αi⋀<C0 \lt \alpha_i^{\bigwedge} \lt C0<αi⋀<C,根据
C−αi⋀−μi⋀=0C - \alpha_i^{\bigwedge} - \mu_i^{\bigwedge} = 0 C−αi⋀−μi⋀=0
可知
μi⋀>0\mu_i^{\bigwedge} \gt 0 μi⋀>0
由
μi⋀ξi⋀=0\mu_i^{\bigwedge} \xi_i^{\bigwedge} = 0 μi⋀ξi⋀=0
得出
ξi⋀=0\xi_i^{\bigwedge} = 0 ξi⋀=0
因此
yi=(wTxi+b)+εy_i = (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon yi=(wTxi+b)+ε
样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)恰好落在最大间隔的上界;如果αi⋀=C\alpha_i^{\bigwedge} = Cαi⋀=C,根据
C−αi⋀−μi⋀=0C - \alpha_i^{\bigwedge} - \mu_i^{\bigwedge} = 0 C−αi⋀−μi⋀=0
可知
μi⋀=0\mu_i^{\bigwedge} = 0 μi⋀=0
由
μi⋀ξi⋀=0\mu_i^{\bigwedge} \xi_i^{\bigwedge} = 0 μi⋀ξi⋀=0
得出
ξi⋀≥0\xi_i^{\bigwedge} \ge 0 ξi⋀≥0
由于样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)满足
yi=(wTxi+b)+ε+ξi⋀y_i = (\mathbf{w}^T \mathbf{x}_i + b) + \varepsilon + \xi_i^{\bigwedge} yi=(wTxi+b)+ε+ξi⋀
说明样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi)不低于最大间隔的上界;
所以,当0<αi⋁<C0 \lt \alpha_i^{\bigvee} \lt C0<αi⋁<C时,样本点是落在最大间隔下界的支持向量。
如果你要找落在最大间隔上界的支持向量,应该要找0<αi⋀<C0 \lt \alpha_i^{\bigwedge} \lt C0<αi⋀<C的样本点。
SVR的算法过程
输入:训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)}T=\{(\mathbf{x}_1,y_1), (\mathbf{x}_2,y_2), \cdots, (\mathbf{x}_N,y_N)\}T={(x1,y1),(x2,y2),⋯,(xN,yN)}。
输出:分离超平面和分类决策函数。
算法步骤:
选择一个惩罚系数C>0C \gt 0C>0,构造约束优化问题
minα⋁,α⋀12∑i=1N∑j=1N(αi⋀−αi⋁)(αj⋀−αj⋁)xiTxj+∑i=1N[(ε−yi)αi⋀+(ε+yi)αi⋁]s.t.∑i=1N(αi⋀−αi⋁)=00≤αi⋁≤C,i=1,2,⋯,N0≤αi⋀≤C,i=1,2,⋯,N\begin{aligned} \min_{\boldsymbol{\alpha}^{\bigvee}, \boldsymbol{\alpha}^{\bigwedge}} \, \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N (\alpha_i^{\bigwedge} - &\alpha_i^{\bigvee}) (\alpha_j^{\bigwedge} - \alpha_j^{\bigvee}) \mathbf{x}_i^T\mathbf{x}_j + \sum_{i=1}^N [ ( \varepsilon - y_i ) \alpha_i^{\bigwedge} + (\varepsilon + y_i) \alpha_i^{\bigvee} ] \\ s.t. \quad &\sum_{i=1}^N(\alpha_i^{\bigwedge} - \alpha_i^{\bigvee}) = 0 \\&0 \le \alpha_i^{\bigvee} \le C, \quad i=1,2,\cdots,N \\&0 \le \alpha_i^{\bigwedge} \le C, \quad i=1,2,\cdots,N \end{aligned} α⋁,α⋀min21i=1∑Nj=1∑N(αi⋀−s.t.αi⋁)(αj⋀−αj⋁)xiTxj+i=1∑N[(ε−yi)αi⋀+(ε+yi)αi⋁]i=1∑N(αi⋀−αi⋁)=00≤αi⋁≤C,i=1,2,⋯,N0≤αi⋀≤C,i=1,2,⋯,N用SMO算法求出最优参数α⋁∗{\boldsymbol{\alpha}^{\bigvee}}^*α⋁∗和α⋀∗{\boldsymbol{\alpha}^{\bigwedge}}^*α⋀∗。
计算w∗=∑i=1N(αi⋀∗−αi⋁∗)xi\mathbf{w}^* = \sum_{i=1}^N ({\alpha_i^{\bigwedge}}^* - {\alpha_i^{\bigvee}}^*) \mathbf{x}_iw∗=∑i=1N(αi⋀∗−αi⋁∗)xi。
寻找一个满足0<αi⋁∗<C0 \lt {\alpha_i^{\bigvee}}^* \lt C0<αi⋁∗<C的样本点(xk,yk)(\mathbf{x}_k,y_k)(xk,yk),计算b∗=yk+ϵ−w∗Txkb^* = y_k +\epsilon - {\mathbf{w}^*}^T \mathbf{x}_kb∗=yk+ϵ−w∗Txk。
构建最终的回归超平面w∗Tx+b∗=0{\mathbf{w}^*}^T \mathbf{x} + b^*=0w∗Tx+b∗=0和预测函数f(x)=sgn(w∗Tx+b∗)f(x) = \text{sgn}({\mathbf{w}^*}^T \mathbf{x} + b^*)f(x)=sgn(w∗Tx+b∗)。
与SVM类似,非线性情况下SVR也可以使用核方法,算法流程只要将内积xiTxj\mathbf{x}_i^T \mathbf{x}_jxiTxj都替换成核函数κ(xi,xj)\kappa(\mathbf{x}_i, \mathbf{x}_j)κ(xi,xj)即可。
带松弛变量的SVR的一种解释:ε\varepsilonε不敏感损失+L2正则
ε\varepsilonε不敏感损失(ε\varepsilonε-insensitive loss)
ε\varepsilonε不敏感损失表达式
Lε(x)={0,∣x∣≤ε∣x∣−ε,∣x∣>εL_{\varepsilon}(x)= \left\{ \begin{aligned} 0, \quad |x| \le \varepsilon \\ |x| - \varepsilon, \quad |x| \gt \varepsilon \end{aligned} \right. Lε(x)={0,∣x∣≤ε∣x∣−ε,∣x∣>ε
带松弛变量的SVR的一种解释
带松弛变量的SVR的优化函数:L(w,b)=12∣∣w∣∣22+C∑i=1N(ξi⋁+ξi⋀)L(\mathbf{w}, b) = \frac{1}{2}||\mathbf{w}||_2^2 + C \sum_{i=1}^N (\xi_i^{\bigvee} + \xi_i^{\bigwedge})L(w,b)=21∣∣w∣∣22+C∑i=1N(ξi⋁+ξi⋀)
根据之前对支持向量的讨论,有下列结论:
对于在ε\varepsilonε管道内的样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi),即∣yi−(wTxi+b)∣≤ε|y_i - (\mathbf{w}^T \mathbf{x}_i + b)| \le \varepsilon∣yi−(wTxi+b)∣≤ε
ξi⋁=0\xi_i^{\bigvee} = 0ξi⋁=0,ξi⋀=0\xi_i^{\bigwedge} = 0ξi⋀=0,所以ξi⋁+ξi⋀=0\xi_i^{\bigvee} + \xi_i^{\bigwedge} = 0ξi⋁+ξi⋀=0。
对于在ε\varepsilonε管道外的样本点(xi,yi)(\mathbf{x}_i,y_i)(xi,yi),即∣yi−(wTxi+b)∣≥ε|y_i - (\mathbf{w}^T \mathbf{x}_i + b)| \ge \varepsilon∣yi−(wTxi+b)∣≥ε
如果不低于间隔上界
有ξi⋁=0\xi_i^{\bigvee} = 0ξi⋁=0,yi−(wTxi+b)=ε+ξi⋀y_i - (\mathbf{w}^T \mathbf{x}_i + b) = \varepsilon + \xi_i^{\bigwedge}yi−(wTxi+b)=ε+ξi⋀,即ξi⋀=yi−(wTxi+b)−ε\xi_i^{\bigwedge} = y_i - (\mathbf{w}^T \mathbf{x}_i + b) - \varepsilonξi⋀=yi−(wTxi+b)−ε。
所以ξi⋁+ξi⋀=∣yi−(wTxi+b)∣−ε\xi_i^{\bigvee} + \xi_i^{\bigwedge} = |y_i - (\mathbf{w}^T \mathbf{x}_i + b)| - \varepsilonξi⋁+ξi⋀=∣yi−(wTxi+b)∣−ε。
如果不高于间隔下界
有ξi⋀=0\xi_i^{\bigwedge} = 0ξi⋀=0,(wTxi+b)−yi=ε+ξi⋁(\mathbf{w}^T \mathbf{x}_i + b) - y_i = \varepsilon + \xi_i^{\bigvee}(wTxi+b)−yi=ε+ξi⋁,即ξi⋁=(wTxi+b)−yi−ε\xi_i^{\bigvee} = (\mathbf{w}^T \mathbf{x}_i + b) - y_i - \varepsilonξi⋁=(wTxi+b)−yi−ε。
所以ξi⋁+ξi⋀=∣yi−(wTxi+b)∣−ε\xi_i^{\bigvee} + \xi_i^{\bigwedge} = |y_i - (\mathbf{w}^T \mathbf{x}_i + b)| - \varepsilonξi⋁+ξi⋀=∣yi−(wTxi+b)∣−ε。
因此,所有样本的ξi⋁+ξi⋀\xi_i^{\bigvee} + \xi_i^{\bigwedge}ξi⋁+ξi⋀都可以用$ \varepsilon$不敏感损失表示
ξi⋁+ξi⋀=Lε(yi−(wTxi+b))={0,∣yi−(wTxi+b)∣≤ε∣yi−(wTxi+b)∣−ε,∣yi−(wTxi+b)∣>ε\begin{aligned} \xi_i^{\bigvee} + \xi_i^{\bigwedge} =& L_{\varepsilon}(y_i - (\mathbf{w}^T \mathbf{x}_i + b)) \\ =&\left\{ \begin{aligned} 0, \quad |y_i - (\mathbf{w}^T \mathbf{x}_i + b)| \le \varepsilon \\ |y_i - (\mathbf{w}^T \mathbf{x}_i + b)| - \varepsilon, \quad |y_i - (\mathbf{w}^T \mathbf{x}_i + b)| \gt \varepsilon \end{aligned} \right. \end{aligned} ξi⋁+ξi⋀==Lε(yi−(wTxi+b)){0,∣yi−(wTxi+b)∣≤ε∣yi−(wTxi+b)∣−ε,∣yi−(wTxi+b)∣>ε
这里ε\varepsilonε不敏感损失要传达的意思是:如果样本点在ε\varepsilonε管道内,损失为0;否则损失是样本点在yyy方向上到ε\varepsilonε管道的距离。
也就是,样本点在ε\varepsilonε管道内认为无损失,在ε\varepsilonε管道外才计算损失。
带松弛变量的SVR的目标函数可以写成
L(w,b)=C∑i=1NLε(yi−(wTxi+b))+12∣∣w∣∣22L(\mathbf{w}, b) = C \sum_{i=1}^N L_{\varepsilon}(y_i - (\mathbf{w}^T \mathbf{x}_i + b)) + \frac{1}{2}||\mathbf{w}||_2^2 L(w,b)=Ci=1∑NLε(yi−(wTxi+b))+21∣∣w∣∣22
这个数学形式表明带松弛变量的SVR可以解释为ε\boldsymbol{\varepsilon}ε不敏感损失+L2正则的机器学习模型。
总结
SVM是非常经典的机器学习算法,在集成学习和神经网络的算法流行之前,SVM在分类领域占据着统治地位。在大数据时代,SVM由于在大样本数据集上的计算量太大,所以热度有所下降,但不失为一个常用的机器学习算法。
SVM算法的优点:
- 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然能保持良好的效果;
- 仅仅依靠支持向量来决定超平面,无需依赖全部数据;
- 有大量核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题;
- 样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的缺点:
- 如果特征维度远远大于样本点,则SVM表现一般;
- SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用;
- 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数;
- SVM对缺失数据敏感。
支持向量回归(Support Vector Regression)相关推荐
- 学习SVM(四) 理解SVM中的支持向量(Support Vector)
学习SVM(四) 理解SVM中的支持向量(Support Vector) 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/chaipp0607/articl ...
- 支持向量机 (三): 优化方法与支持向量回归
拉格朗日乘子法 - KKT条件 - 对偶问题 支持向量机 (一): 线性可分类 svm 支持向量机 (二): 软间隔 svm 与 核函数 支持向量机 (三): 优化方法与支持向量回归 优化方法 一.S ...
- 【机器学习】支持向量回归
有任何的书写错误.排版错误.概念错误等,希望大家包含指正. 在阅读本篇之前建议先学习: [机器学习]支持向量机[上]硬间隔 [机器学习]支持向量机[下]软间隔与核函数 支持向量回归 支持向量回归(su ...
- 支持向量机与支持向量回归(support vector machine and support vector regression)
支持向量机和支持向量回归是目前机器学习领域用得较多的方法,不管是人脸识别,字符识别,行为识别,姿态识别等,都可以看到它们的影子.在我的工作中,经常用到支持向量机和支持向量回归,然而,作为基本的理论,却 ...
- 迈向数据科学的第一步:在Python中支持向量回归
什么是支持向量回归? (What is Support Vector Regression?) Support vector regression is a special kind of regre ...
- 【机器学习基础】支持向量回归
引言 这一小节介绍一下支持向量回归,我们在之前介绍的核逻辑回归使用表示定理(Representer Theorem),将逻辑回归编程Kernel的形式,这一节我们沿着这个思路出发,看看如何将回归问题和 ...
- 支持向量机(SVM)、支持向量回归(SVR)
论文完成也有一段时间了,用到了支持向量机(Support Vector Machine或SVM)方面的知识,感觉泛化能力比较好,一开始的时候,用了一些神经网络的模型,泛化能力都不是很满意,立即转到支持 ...
- 支持向量回归_浙江大学王慧芳等:用于电网节点重要度评估的一种基于网络嵌入和支持向量回归的人工智能方法...
内容介绍 中文摘要: 重要节点识别对电网安全意义重大.但电网在规模.结构等方面差异较大,评价指标难以涵盖电网不同状态下所有信息,因此基于指标构建的传统评估方法,其效果视情况而定,通用性不足.由此,本文 ...
- 基于DDTBOX,使用线性支持向量回归(SVR)从ERP数据中解码连续变量
导读 事件相关电位(ERP)数据的多变量分类分析是预测认知变量的强大工具.然而,分类通常仅限于分类变量,并未充分利用连续数据,如反应时间.反应力或主观评分.另一种方法是支持向量回归(SVR),它使用单 ...
- 采用支持向量回归(SVR)和随机森林回归预测两种机器学习方法对房价进行预测(附完整代码)
大家好,我是带我去滑雪,每天教你一个小技巧! 本文分别采用支持向量回归(SVR)和随机森林回归预测两种机器学习方法对房价进行预测.随机将数据分为训练集和测试集,比例为8:2,数据和代码均在文末. 1. ...
最新文章
- 【暴走漫画起源考】Part2:姚明脸
- Kali Linux修改桌面默认图标
- 离线轻量级大数据平台Spark之MLib机器学习库线性回归实例
- javascript——原型与原型链
- 交换机网络嗅探方法之用ARP欺骗辅助嗅探
- pyinotify结合ftplib自动上传新建的文件
- Django之URLconf路由
- STM32 (零)--------STM32介绍
- java虚拟机之一内存运行时数据区域解释
- 【Elasticsearch】ES内存满问题排查思路
- 进程线程(java.lang.Thread)详解
- 开发imageJ插件失败经验
- 极限思想之阿基里斯和乌龟赛跑
- 346雷达有多少tr组件_S波段+C波段,我军346舰载雷达独具匠心,堪称神来之笔!...
- HTML5期末大作业:旅游网站设计——中国风的旅游网站(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码...
- 电子与计算机工程导论,BGPLUS科研荟萃 | 杜克大学 | 电子工程、计算机工程:电子与计算机工程导论...
- 怎么读取照片内的文字
- 戴尔笔记本怎么安装统信uos系统?戴尔笔记本安装统信uos+win双系统
- linux变量符号生效规则,shell的变量功能
- 神经网络参数个数计算,神经网络的参数设置