【机器学习】支持向量回归
有任何的书写错误、排版错误、概念错误等,希望大家包含指正。
在阅读本篇之前建议先学习:
【机器学习】支持向量机【上】硬间隔
【机器学习】支持向量机【下】软间隔与核函数
支持向量回归
支持向量回归(support vector regression,SVR)是指,将支持向量机的思想推广到回归问题中。与传统回归模型类似,支持向量回归以 www 和 bbb 为待确定的模型参数,希望模型输出 f(x)f(x)f(x) 与真实输出 yyy 之间的差值对应的损失尽可能小;不过,在传统回归模型中,当且仅当 f(x)f(x)f(x) 与 yyy 完全相同时,损失才为零,与此不同,支持向量回归假设我们容忍 f(x)f(x)f(x) 与 yyy 之间最多有 ϵ\epsilonϵ 的偏差,即仅当 f(x)f(x)f(x) 与 yyy 之间的差别绝对值大于 ϵ\epsilonϵ 时才计算损失。如图 111 所示,这相当于以 f(x)f(x)f(x) 为中心,构建了一个上边界和下边界分别为 f(x)+ϵf(x) +\epsilonf(x)+ϵ 和 f(x)−ϵf(x)-\epsilonf(x)−ϵ 的“管道”,ϵ\epsilonϵ 为人为固定值且 ϵ>0\epsilon>0ϵ>0,若训练样本落入此管道内,则认为被预测正确。
图 1 支持向量回归示意图
注意观察和理解图 111 与参考 [3] 中图 111 的区别。
- 本图中样本用同样的圆形表示,而它图中分别用 +++ 和 −-− 表示正、负两种样本,这体现了回归问题与分类问题的本质区别;
- 本图中横轴表示样本特征,纵轴表示样本对应的预测值,描述的样本是一维的,而它图中横、纵坐标分别表示不同的特征,描述的样本是二维的。
支持向量回归也大致可以分为,硬间隔 SVR、软间隔 SVR 和核函数 SVR。
硬间隔 SVR 适合样本全部落在管道内;软间隔 SVR 适合少量样本落在管道外;核函数 SVR 适合非线性分布的样本。
重点讲解软间隔 SVR,另外两个相对简单。
软间隔支持向量回归
对于软间隔支持向量回归而言,我们不要求样本分布得非常贴近一条线,允许少量样本出现偏差,即噪声,而大部分点可以落在管道内。与软间隔支持向量机类似,软间隔支持向量回归也引入松弛变量。每个样本 (xi,yi)(x_i,y_i)(xi,yi) 对应两个松弛变量 ξ^i\hat\xi_iξ^i 和 ξi\xi_iξi,分别表示向上松弛量和向下松弛量。当样本 (xi,yi)(x_i,y_i)(xi,yi) 位于上边界上方(above),那么该样本将贡献损失,即 yi−(f(xi)+ϵ)y_i - \big(f(x_i)+\epsilon\big)yi−(f(xi)+ϵ),超出上边界的(纵轴方向)距离也就是 ξ^i\hat \xi_iξ^i,故对于落在上边界上方的样本有 yi−(f(xi)+ϵ)=ξ^iy_i - \big( f(x_i) + \epsilon \big)=\hat \xi_iyi−(f(xi)+ϵ)=ξ^i,而且直观上,此时不可能存在向下的松弛,所以 ξi=0\xi_i=0ξi=0;类似地,对于落在下边界下方的样本有 (f(xi)+ϵ)−yi=ξi\big( f(x_i) + \epsilon \big) - y_i=\xi_i(f(xi)+ϵ)−yi=ξi 且 ξ^i=0\hat \xi_i = 0ξ^i=0;对于落在管道内的样本,显然不存在向上或向下的松弛,所以 ξ^i=ξi=0\hat \xi_i = \xi_i = 0ξ^i=ξi=0,同时这些样本不贡献损失。不难总结,每个样本带来的损失可以统一表示为 ξ^i+ξi\hat \xi_i + \xi_iξ^i+ξi,因此全部样本贡献的损失为 ∑i=1nξ^i+ξi\sum_{i=1}^n \hat \xi_i + \xi_i∑i=1nξ^i+ξi。
观察图 111 发现,上、下边界的欧式距离可以表示为 2ϵ/∥w∥2+12\epsilon/\sqrt{\Vert w \Vert^2 + 1}2ϵ/∥w∥2+1,当 ∥w∥\Vert w\Vert∥w∥ 越小时,划分超平面倾斜程度越小,上下边界的欧式距离越大,当 ∣∣w∣∣=0||w||=0∣∣w∣∣=0 时距离取到最大值 2ϵ2\epsilon2ϵ。直观上,距离越大,划分超平面越倾斜程度越小,管道覆盖面越大,所能容纳的样本越多,管道外的样本越少,带来的损失也可能减少。这与支持向量机中“最大间隔”的思想一致。
当然,严谨来说,“划分超平面越倾斜程度越小容纳的样本越多”的说法是不准确的,比如图 222 所示情况。对于同样的六个样本点,倾斜程度大的管道(左)反而损失值为零。
图 2 大倾斜程度管道(左)和小倾斜程度管道(右)
基于上面的松弛思想和最大间隔思想,目标函数为
12∥w∥2+C∑i=1n(ξ^i+ξi)\frac{1}{2} \Vert w\Vert^2 + C\sum_{i=1}^n (\hat \xi_i + \xi_i) 21∥w∥2+Ci=1∑n(ξ^i+ξi)
其中,C>0C>0C>0 称为惩罚(超)参数,一般根据应用问题人为决定,CCC 值越大对管道外样本的惩罚越大。
定义原始问题
minw,b,ξ^i,ξi12∥w∥2+C∑i=1n(ξ^i+ξi)\min_{w,b,\hat \xi_i,\xi_i}\frac{1}{2} \Vert w\Vert^2 + C\sum_{i=1}^n (\hat \xi_i + \xi_i) \\ w,b,ξ^i,ξimin21∥w∥2+Ci=1∑n(ξ^i+ξi)
s.t.yi−f(xi)≤ϵ+ξ^if(xi)−yi≤ϵ+ξiξ^i≥0,ξi≥0,i=1,2,…,n\begin{matrix} s.t. & y_i - f(x_i)\le \epsilon + \hat \xi_i\\ & f(x_i) - y_i \le \epsilon + \xi_i \\ & \hat \xi_i\ge 0,\space\space\space\space\xi_i\ge 0,\space\space\space\space i = 1,2,\dots,n \end{matrix} s.t.yi−f(xi)≤ϵ+ξ^if(xi)−yi≤ϵ+ξiξ^i≥0, ξi≥0, i=1,2,…,n
构建广义拉格朗日函数
L(w,b,α^,α,ξ^i,ξi,μ^i,μi)=12∣∣w∣∣2+C∑i=1n(ξ^i+ξi)−∑i=1nμ^iξ^i−∑i=1nμiξi+∑i=1nα^i(yi−f(xi)−ϵ−ξ^i)+∑i=1nαi(f(xi)−yi−ϵ−ξi)\begin{aligned} &L(w, b,\hat \alpha,\alpha,\hat \xi_i,\xi_i,\hat \mu_i, \mu_i) \\ &= \frac{1}{2} ||w||^2 + C\sum_{i=1}^n (\hat \xi_i + \xi_i) - \sum_{i=1}^n\hat \mu_i\hat \xi_i - \sum_{i=1}^n\mu_i\xi_i +\sum_{i=1}^n\hat \alpha_i (y_i - f(x_i)-\epsilon-\hat \xi_i) + \sum_{i=1}^n \alpha_i(f(x_i)-y_i-\epsilon - \xi_i) \end{aligned} L(w,b,α^,α,ξ^i,ξi,μ^i,μi)=21∣∣w∣∣2+Ci=1∑n(ξ^i+ξi)−i=1∑nμ^iξ^i−i=1∑nμiξi+i=1∑nα^i(yi−f(xi)−ϵ−ξ^i)+i=1∑nαi(f(xi)−yi−ϵ−ξi)
将 f(xi)=wTxi+bf(x_i) = w^Tx_i+bf(xi)=wTxi+b 代入,再令 L(w,b,α^,α,ξ^i,ξi,μ^i,μi)L(w, b,\hat \alpha,\alpha,\hat \xi_i,\xi_i,\hat \mu_i, \mu_i)L(w,b,α^,α,ξ^i,ξi,μ^i,μi) 对 www,bbb,ξ^i\hat \xi_iξ^i 和 ξi\xi_iξi 的偏导为零可得
w=∑i=1n(α^i−αi)xi(1-1)w = \sum_{i=1}^n(\hat \alpha_i - \alpha_i)x_i \tag{1-1} w=i=1∑n(α^i−αi)xi(1-1)
0=∑i=1n(α^i−αi)(1-2)0 = \sum_{i=1}^n (\hat \alpha_i - \alpha_i) \tag{1-2} 0=i=1∑n(α^i−αi)(1-2)
C=α^i+μ^i(1-3)C = \hat \alpha_i + \hat \mu_i\tag{1-3} C=α^i+μ^i(1-3)
C=αi+μi(1-4)C = \alpha_i + \mu_i\tag{1-4} C=αi+μi(1-4)
将式 (1~1)∼(1~4)(1\text{\textasciitilde}1)\sim (1\text{\textasciitilde}4)(1~1)∼(1~4) 代入拉格朗日函数
L(w,b,α^,α,ξ^i,ξi,μ^i,μi)=(12∣∣w∣∣2+∑i=1nα^i(yi−f(xi)−ϵ)+∑i=1nαi(f(xi)−yi−ϵ))+(C∑i=1n(ξ^i+ξi)−∑i=1nμ^iξ^i−∑i=1nμiξi−∑i=1α^iξ^i−∑i=1αiξi)=(12∣∣w∣∣2+∑i=1nα^i(yi−f(xi))+∑i=1nαi(f(xi)−yi)−ϵ∑i=1n(α^i+αi))+(C∑i=1n(ξ^i+ξi)−(∑i=1nμ^iξ^i+∑i=1α^iξ^i)−(∑i=1nμiξi+∑i=1αiξi))=(12∣∣w∣∣2+∑i=1nyi(α^i−αi)−∑i=1n(α^i−αi)(wTxi+b)−ϵ∑i=1n(α^i+αi))+(C∑i=1n(ξ^i+ξi)−C∑i=1ξ^i−C∑i=1nξi)=(12∣∣w∣∣2+∑i=1nyi(α^i−αi)−(wT∑i=1n(α^i−αi)xi+b∑i=1m(α^i−αi))−ϵ∑i=1n(α^i+αi))+0=12wTw+∑i=1nyi(α^i−αi)−(wTw+0)−ϵ∑i=1n(α^i+αi)=∑i=1nyi(α^i−αi)−ϵ∑i=1n(α^i+αi)−12wTw=∑i=1nyi(α^i−αi)−ϵ∑i=1n(α^i+αi)−12∑i=1n∑i=1n(α^i−αi)(α^j−αj)(xiTxj)\begin{aligned} &L(w, b,\hat \alpha,\alpha,\hat \xi_i,\xi_i,\hat \mu_i, \mu_i) \\ &= \Big(\frac{1}{2} ||w||^2 +\sum_{i=1}^n\hat \alpha_i (y_i - f(x_i)-\epsilon) + \sum_{i=1}^n \alpha_i(f(x_i)-y_i-\epsilon) \Big) + \Big( C\sum_{i=1}^n (\hat \xi_i + \xi_i) - \sum_{i=1}^n\hat \mu_i\hat \xi_i - \sum_{i=1}^n\mu_i\xi_i -\sum_{i=1}\hat \alpha_i\hat\xi_i-\sum_{i=1} \alpha_i\xi_i \Big) \\ %%%% &=\Big(\frac{1}{2} ||w||^2 +\sum_{i=1}^n\hat \alpha_i (y_i - f(x_i)) + \sum_{i=1}^n \alpha_i(f(x_i)-y_i) - \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) \Big) + \Big( C\sum_{i=1}^n (\hat \xi_i + \xi_i) - \big(\sum_{i=1}^n\hat \mu_i\hat \xi_i +\sum_{i=1}\hat \alpha_i\hat\xi_i\big) - \big(\sum_{i=1}^n\mu_i\xi_i +\sum_{i=1} \alpha_i\xi_i\big) \Big) \\ %%%% &=\Big(\frac{1}{2} ||w||^2 +\sum_{i=1}^n y_i(\hat \alpha_i - \alpha_i) - \sum_{i=1}^n (\hat \alpha_i-\alpha_i)(w^Tx_i+b) - \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) \Big) + \Big( C\sum_{i=1}^n (\hat \xi_i + \xi_i) - C\sum_{i=1}\hat\xi_i - C\sum_{i=1}^n\xi_i \Big) \\ %%%% &=\Big(\frac{1}{2} ||w||^2 +\sum_{i=1}^n y_i(\hat \alpha_i - \alpha_i) -\big(w^T\sum_{i=1}^n (\hat \alpha_i-\alpha_i)x_i +b\sum_{i=1}^m (\hat \alpha_i - \alpha_i)\big) - \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) \Big) + 0 \\ %%%% &=\frac{1}{2} w^Tw +\sum_{i=1}^n y_i(\hat \alpha_i - \alpha_i) - \big(w^Tw +0\big) - \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) \\ %%%% &=\sum_{i=1}^n y_i(\hat \alpha_i - \alpha_i)- \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) - \frac{1}{2} w^Tw \\ %%%% &=\sum_{i=1}^n y_i(\hat \alpha_i - \alpha_i)- \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) - \frac{1}{2} \sum_{i=1}^n \sum_{i=1}^n (\hat \alpha_i- \alpha_i)(\hat \alpha_j - \alpha_j)(x_i^Tx_j) \\ \end{aligned} L(w,b,α^,α,ξ^i,ξi,μ^i,μi)=(21∣∣w∣∣2+i=1∑nα^i(yi−f(xi)−ϵ)+i=1∑nαi(f(xi)−yi−ϵ))+(Ci=1∑n(ξ^i+ξi)−i=1∑nμ^iξ^i−i=1∑nμiξi−i=1∑α^iξ^i−i=1∑αiξi)=(21∣∣w∣∣2+i=1∑nα^i(yi−f(xi))+i=1∑nαi(f(xi)−yi)−ϵi=1∑n(α^i+αi))+(Ci=1∑n(ξ^i+ξi)−(i=1∑nμ^iξ^i+i=1∑α^iξ^i)−(i=1∑nμiξi+i=1∑αiξi))=(21∣∣w∣∣2+i=1∑nyi(α^i−αi)−i=1∑n(α^i−αi)(wTxi+b)−ϵi=1∑n(α^i+αi))+(Ci=1∑n(ξ^i+ξi)−Ci=1∑ξ^i−Ci=1∑nξi)=(21∣∣w∣∣2+i=1∑nyi(α^i−αi)−(wTi=1∑n(α^i−αi)xi+bi=1∑m(α^i−αi))−ϵi=1∑n(α^i+αi))+0=21wTw+i=1∑nyi(α^i−αi)−(wTw+0)−ϵi=1∑n(α^i+αi)=i=1∑nyi(α^i−αi)−ϵi=1∑n(α^i+αi)−21wTw=i=1∑nyi(α^i−αi)−ϵi=1∑n(α^i+αi)−21i=1∑ni=1∑n(α^i−αi)(α^j−αj)(xiTxj)
拉格朗日函数为
L(w,b,α^,α,ξ^i,ξi,μ^i,μi)=∑i=1nyi(α^i−αi)−ϵ∑i=1n(α^i+αi)−12∑i=1n∑i=1n(α^i−αi)(α^j−αj)(xiTxj)L(w, b,\hat \alpha,\alpha,\hat \xi_i,\xi_i,\hat \mu_i, \mu_i)=\sum_{i=1}^n y_i(\hat \alpha_i - \alpha_i)- \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) - \frac{1}{2} \sum_{i=1}^n \sum_{i=1}^n (\hat \alpha_i- \alpha_i)(\hat \alpha_j - \alpha_j)(x_i^Tx_j) \\ L(w,b,α^,α,ξ^i,ξi,μ^i,μi)=i=1∑nyi(α^i−αi)−ϵi=1∑n(α^i+αi)−21i=1∑ni=1∑n(α^i−αi)(α^j−αj)(xiTxj)
可得到 SVR 的对偶问题
maxα^,α∑i=1nyi(α^i−αi)−ϵ∑i=1n(α^i+αi)−12∑i=1n∑i=1n(α^i−αi)(α^j−αj)(xiTxj)\max_{\hat \alpha,\alpha} \sum_{i=1}^n y_i(\hat \alpha_i - \alpha_i)- \epsilon\sum_{i=1}^n(\hat \alpha_i + \alpha_i) - \frac{1}{2} \sum_{i=1}^n \sum_{i=1}^n (\hat \alpha_i- \alpha_i)(\hat \alpha_j - \alpha_j)(x_i^Tx_j) α^,αmaxi=1∑nyi(α^i−αi)−ϵi=1∑n(α^i+αi)−21i=1∑ni=1∑n(α^i−αi)(α^j−αj)(xiTxj)
s.t.∑i=1n(α^i−αi)=00≤α^i,αi≤C\begin{matrix} s.t. &\sum_{i=1}^n (\hat \alpha_i - \alpha_i) = 0\\ & 0\le \hat \alpha_i,\alpha_i \le C \end{matrix} s.t.∑i=1n(α^i−αi)=00≤α^i,αi≤C
满足的部分 KKT 条件为
α^i(yi−f(xi)−ϵ−ξ^i)=0(2-1)\hat \alpha_i (y_i - f(x_i) - \epsilon - \hat \xi_i)=0\tag{2-1} α^i(yi−f(xi)−ϵ−ξ^i)=0(2-1)
αi(f(xi)−yi−ϵ−ξi)=0(2-2)\alpha_i (f(x_i) - y_i - \epsilon - \xi_i)=0\tag{2-2} αi(f(xi)−yi−ϵ−ξi)=0(2-2)
(C−α^i)ξ^i=0(2-3)(C-\hat\alpha_i)\hat\xi_i = 0 \tag{2-3} (C−α^i)ξ^i=0(2-3)
(C−αi)ξi=0(2-4)(C-\alpha_i)\xi_i = 0\tag{2-4} (C−αi)ξi=0(2-4)
式 (2~1)∼(2~4)(2\text{\textasciitilde}1)\sim(2\text{\textasciitilde}4)(2~1)∼(2~4) 为互补松弛条件。其中,(2~3)(2\text{\textasciitilde}3)(2~3) 和 (2~4)(2\text{\textasciitilde}4)(2~4) 分别运用了式 (1~3)(1\text{\textasciitilde}3)(1~3) 和 (1~4)(1\text{\textasciitilde}4)(1~4)。
这里四个等式带来的信息量非常大。根据式 (2~1)(2\text{\textasciitilde}1)(2~1) 可知,当 α^i≠0\hat \alpha_i\ne0α^i=0 时,yi−f(xi)−ϵ−ξ^i=0y_i - f(x_i) - \epsilon - \hat \xi_i=0yi−f(xi)−ϵ−ξ^i=0,样本 (xi,yi)(x_i,y_i)(xi,yi) 要么在管道的上边界上(lie on),对应 ξ^i=0\hat \xi_i=0ξ^i=0,要么在管道的上边界上方(above),对应 ξ^i>0\hat \xi_i>0ξ^i>0;当 αi≠0\alpha_i\ne 0αi=0 时,根据式 (2~2)(2\text{\textasciitilde}2)(2~2) 可以推出类似的结果。但是 α^i\hat\alpha_iα^i 和 αi\alpha_iαi 不能同时非零,即满足 α^iαi=0\hat \alpha_i\alpha_i =0α^iαi=0,这是因为两个限制 yi−f(xi)−ϵ−ξ^i=0y_i - f(x_i) - \epsilon - \hat \xi_i = 0yi−f(xi)−ϵ−ξ^i=0 和 f(xi)−yi−ϵ−ξi=0f(x_i) - y_i - \epsilon - \xi_i=0f(xi)−yi−ϵ−ξi=0 是不兼容的。可以这样证明:将两个式子相加得到等式 2ϵ+ξi+ξ^i=02\epsilon+\xi_i+\hat\xi_i=02ϵ+ξi+ξ^i=0,由于 ϵ>0\epsilon>0ϵ>0,ξi≥0\xi_i\ge 0ξi≥0,ξ^i≥0\hat \xi_i\ge0ξ^i≥0,所以等式不成立,究其原因为两个限制不兼容。
⽀持向量是对于目标函数有贡献的样本,换句话说,就是那些使得 α^i≠0\hat\alpha_i\ne0α^i=0 或 αi≠0\alpha_i\ne0αi=0 成立的样本,也就是 (α^i−αi)≠0(\hat \alpha_i - \alpha_i) \ne 0(α^i−αi)=0 的样本。根据上面的讨论,我们可以知道 SVR 中的支持向量是位于管道上或者管道外的样本。
另外,可以根据式 (2~3)(2\text{\textasciitilde}3)(2~3) 和 (2~4)(2\text{\textasciitilde}4)(2~4) 可以讨论三种情况:① 当 αi=0\alpha_i=0αi=0 且 α^i≠0\hat \alpha_i\ne 0α^i=0 时,由 αi=0\alpha_i=0αi=0 可得 ξi=0\xi_i=0ξi=0,由 α^i≠0\hat \alpha_i\ne0α^i=0 可得 ξ^i≥0\hat \xi_i\ge0ξ^i≥0;② 当 αi≠0\alpha_i\ne0αi=0 且 α^i=0\hat \alpha_i= 0α^i=0 时,由 αi≠0\alpha_i\ne0αi=0 可得 ξi≥0\xi_i\ge0ξi≥0,由 α^i=0\hat \alpha_i=0α^i=0 可得 ξ^i=0\hat \xi_i=0ξ^i=0;③ 当 αi=α^i=0\alpha_i = \hat \alpha_i = 0αi=α^i=0 时,ξi=ξ^i=0\xi_i = \hat \xi_i = 0ξi=ξ^i=0。这三种情况可以统一表示为 ξ^iξi=0\hat \xi_i\xi_i = 0ξ^iξi=0。巧妙的是,这四个等式带来的信息与我们本小节对松弛变量的直观理解不谋而合。
参数 bbb 可以这样得到:考虑一个满足 0<αj<C0 < \alpha_j < C0<αj<C 的样本。根据式 (2~4)(2\text{\textasciitilde}4)(2~4) 可知 ξj=0\xi_j = 0ξj=0,再根据式 (2~2)(2\text{\textasciitilde}2)(2~2) 可知一定有 f(xj)−yj−ϵ=0f(x_j)-y_j-\epsilon=0f(xj)−yj−ϵ=0。将 f(xj)=wTxj+bf(x_j) = w^Tx_j+bf(xj)=wTxj+b 代入求解 bbb,同时将式 (1~1)(1\text{\textasciitilde}1)(1~1) 代入,得
b=yj+ϵ−wTxj=yj+ϵ−∑i=1n(α^i−αi)(xiTxj)(3)\begin{aligned} b &= y_j + \epsilon - w^Tx_j \\ &=y_j + \epsilon - \sum_{i=1}^n(\hat \alpha_i - \alpha_i)(x_i^Tx_j) \\ \end{aligned}\tag{3} b=yj+ϵ−wTxj=yj+ϵ−i=1∑n(α^i−αi)(xiTxj)(3)
当然,也可以通过考虑一个满足 0<α^j<C0 < \hat\alpha_j < C0<α^j<C 的样本,得到类似的结果。在实际应用中,更好的做法是对所有的这些 bbb 的估计进⾏平均。
使用训练好的模型进行预测也非常简单,根据式 (1~1)(1\text{\textasciitilde}1)(1~1) 计算出最优解 w∗w^*w∗,根据式 (3)(3)(3) 计算出最优解 b∗b^*b∗。预测函数为
f(x)=w∗Tx+b∗=∑i=1n(α^i−αi)(xiTx)+b∗(4)\begin{aligned} f(x) &= {w^*}^Tx + b^* \\ &= \sum_{i=1}^n (\hat \alpha_i - \alpha_i) (x_i^T x) + b^* \end{aligned} \tag{4} f(x)=w∗Tx+b∗=i=1∑n(α^i−αi)(xiTx)+b∗(4)
另外,我们也可以从正则化的角度理解原始问题的目标函数,将 ∣∣w∣∣2||w||^2∣∣w∣∣2 视为正则化项,另一部分视为未引入正则化项的损失函数,这与软间隔支持向量机类似。
硬间隔与核函数支持向量回归
硬间隔认为全部的样本点都可以被容纳在 ϵ~\epsilon\text{\textasciitilde}ϵ~管道中,也就不存在松弛变量及其对应约束。求解过程与软间隔类似,甚至可以认为硬间隔是软间隔的一种特殊情况。
使用核函数的方法与支持向量机中使用核函数的方法一致,目的都是实现划分超平面非线性化,如图 333 所示。
图 3 核函数支持向量回归
若考虑特征映射式 (1~1)(1\text{\textasciitilde}1)(1~1) 对应
w∗=∑i=1n(α^i−αi)ϕ(xi)w^* = \sum_{i=1}^n (\hat \alpha_i - \alpha_i)\phi(x_i) w∗=i=1∑n(α^i−αi)ϕ(xi)
式 (3)(3)(3) 对应
b∗=yj+ϵ−∑i=1n(α^i−αi)K(xi,xj)b^* =y_j + \epsilon - \sum_{i=1}^n(\hat \alpha_i - \alpha_i)K(x_i,x_j) b∗=yj+ϵ−i=1∑n(α^i−αi)K(xi,xj)
式 (4)(4)(4) 对应
f(x)=∑i=1n(α^i−αi)K(xi,x)+b∗f(x) = \sum_{i=1}^n (\hat \alpha_i - \alpha_i) K(x_i, x) + b^* f(x)=i=1∑n(α^i−αi)K(xi,x)+b∗
REF
[1]《Pattern Recognition and Machine Learning》
[2]《机器学习》周志华著
[3] 【机器学习】支持向量机【上】硬间隔_不牌不改的博客 - CSDN
[4] 【机器学习】支持向量机【下】软间隔与核函数 - CSDN
[5] 支持向量回归(Support Vector Regression) - CSDN
[6] 如何通俗易懂地解释支持向量回归(support vector regression)? - 知乎
相关文章:
docker常用基本命令
把jar包和 dockerfile文件放到同一目录下#构建Docker镜像 注意后面的 . 不能省略 docker build -t your-image-name .#运行并创建一个容器 docker run -d -p 8080:8080 --name container_name your-image-name# 停止容器 767fce4cb990 容器ID (容器名也可以) docker stop 767f…...
处理报错 ResizeObserver loop completed with undelivered notifications.
// 处理报错 ResizeObserver loop completed with undelivered notifications. export const handlerResizeObserverError = () => {const debounce = (callback: (...args: any[]) => void, delay: number) => {let tid: any;return function (...args: any[]) {cons…...
C# GetField 方法应用实例
目录 关于 C# Type 类 GetField 方法应用 应用举例 心理CT设计题 类设计 DPCT类实现代码 小结 关于 C# Type 类 Type表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。调用 t…...
使用 k8s 快速部署应用服务
以下是一个完整的例子,展示了如何使用Kubernetes部署一个简单的Web应用程序。这个例子包括一个Deployment和一个Service。首先,创建一个名为webapp-deployment.yaml的Deployment配置文件:apiVersion: apps/v1 kind: Deployment metadata:name: webapp-deployment spec:repli…...
图文结合手把手教你创建SpringCloud项目
前言 什么是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务注册、服务发现、网关、路由、链路追踪等。Spring Cloud 并不是重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了…...
联合省选2024 做题总结
D1T1 季风 心梗题。 设 \(sx_i=\sum\limits_{j\le i} x_j\),\(sy_i\) 同理。枚举 \(r=m\bmod n\),设 \(m=p\cdot n+r\),那么当 \(|x-(p\cdot sx_n+sx_r)|+|y-(p\cdot sy_n+sy_r)|\) 不超过 \((p\cdot n+r)k\),一定存在合法的方案,即解关于 \(p\) 的绝对值不等式: \[|x-(p…...
【机器学习】支持向量回归
有任何的书写错误、排版错误、概念错误等,希望大家包含指正。 在阅读本篇之前建议先学习: 【机器学习】支持向量机【上】硬间隔 【机器学习】支持向量机【下】软间隔与核函数 支持向量回归 支持向量回归(support vector regression…...
Linux安装mysql
1、 查看是否已经安装 Mysql rpm -qa | grep mysql 如果你查看出来有东西,可以使用下面命令将其删除 rpm -e 文件名 2 、下载官方 Mysql 包 wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 如果安装有提示:Cannot…...
JeecgBoot搭建(低代码)
环境安装 后端:JDK: 1.8 (小于11)、Maven: 3.5、MySql: 5.7、Redis: 3.2 前端:Node Js: 14.18 / 16、Npm: 5.6.0、Yarn: 1.21.1 、Pnpm 工具: IDEA、Navicat、Git、TortoiseGit拉取代码 后端:git clone https://gitee.com/jeecg/…...
【java】3-获取线程引用与线程的属性
1.获取线程的引用 在创建一个线程之后,我们很有必要去获取当前线程实例的引用,以便能够观察到线程的一些属性,或是对于当前线程进行一系列的操作 调用Thread类的静态方法currentThread,我们便能拿到当前线程的引用 Thread.curr…...
2022-12-04一周学习
这周基本上还是在对前端学习的更多一点,主要是之前没有重视vue3的学习,现在在补上来,学习了vue3的一些知识,前端的权限管理,设置路由守卫,pinia,还学习了redis的一些基本操作,之前只是照搬了别人…...
CG-34 浊度传感器 简单说明
产品概述 浊度传感器是一种智能监测水中悬浮物对光线透过时所发生的阻碍程度的仪器。允许在水中的测量点进行无人值守的操作。采用自清洗设计,可清除水中附着物以及气泡聚集而影响测量结果。具有优异的抗污染能力,即使恶劣的环境长期在线监测,…...
跟着实例学Go语言(二)
本教程全面涵盖了Go语言基础的各个方面。一共80个例子,每个例子对应一个语言特性点,非常适合新人快速上手。 教程代码示例来自go by example,文字部分来自本人自己的理解。 本文是教程系列的第二部分,共计20个例子、约1.2万字。 …...
linux+window+macos下的JDK安装
1. Linux中安装JDK (1)下载Linux版本的jdk压缩包 (2)解压 tar -zxvf 压缩包名 例如: tar -zxvf jdk-8u251-linux-x64.tar.gz(3)在系统配置文件配置java 编辑profile配置文件 vim /etc/prof…...
DiffuSEEG:一种基于stable diffusion 的SEEG数据补全方法
目录一. 立体脑电图(SEEG)1.1 SEEG概念1.2 SEEG作用1.3 SEEG的适用场景1.4 操作方法一. 立体脑电图(SEEG) 1.1 SEEG概念 立体脑电图(SEEG):是一种借助外科微创的方法将电极植入到大脑不同的部…...
kubernetes—Service介绍
Service介绍 在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题,kubernetes提供了Service资…...
AlphaFold2源码解析(7)--模型之Evoformer
AlphaFold2源码解析(7)–模型之Evoformer 这篇文章我们主要药讲解AlphaFold2的Evoformer的代码细节。 Evoformer Stack 该网络有一个双塔结构,在MSA堆栈中具有轴向的自我注意;在Pair堆栈中具有三角形的乘法更新和三角形的自我注意;以及外积…...
docker 安装 redis 6.0.8 cluster 实战 (3主3从) 动态扩容
这里将上篇博客搭建的3主3从 扩容为 4主4从 1. 新建两个node节点 docker run -d \ --net host \ --privileged \ --name redis-node-7 \ --log-opt max-size100m \ --log-opt max-file3 \ -v /root/docker/redis-node-7/data:/data \ redis:6.0.8 \ --cluster-enabled yes \ -…...
20221204
You are so much more than how you look. 你比你的外表更有魅力 Never give up until the fight is over. 永远不要放弃,要一直战斗到最后一秒。 whats done cannot be undone 覆水难收 If I was going somewhere, I was running。 如果我要去哪儿ÿ…...
CN_数据链路层流量控制@可靠的传输机制@ARP协议
文章目录流量控制技术(协议)停止-等待流量控制滑动窗口流量控制发送窗口接收窗口基本原理可靠的传输机制确认机制ACK超时重传机制RTOARQ处理差错自动重传请求ARQ协议🎈ARQ具体协议单帧ARQ协议停止-等待协议SW-ARQ例连续ARQ协议后退N帧协议(GBN)GBN多帧滑动窗口累计确…...
程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未…...
安装ubuntu20.04, CUDA11.4, cnDNN, tensorflow, pytorch
ubuntu22.04默认python为3.11 ubuntu20.04默认python为3.8 第一步,分区安装系统 efi引导区, 逻辑分区,512M root: 主分区,512M swap: 逻辑分区,64G home:逻辑分区,320G /:逻辑分区, 130G, CUDA是安装…...
shell脚本受限执行
shell 中运行的脚本或脚本的个代码断会禁用一些正常 shell 中可以执行的命令.这是限制脚本用户的权限和最小化运行脚本导致的破坏的安全措施.受限的内容包括:使用 cd 命令更改工作目录. 更改环境变量$PATH, $SHELL, $BASH_ENV,或$ENV 的值. 读或更改 shell 环境选项…...
HTTP 速查手册
一、通用身份验证 # 服务端返回401,并告知验证类型为Basic GET 401 Unauthorized WWW-Authenticate: Basic realm"description"# 浏览器输入验证信息后,请求头中携带验证信息 Authorization: Basic xxxxxxxxxx二、Cookie # 服务端返回set-co…...
【计算机视觉】 摄像机标定
摄像机标定 齐次坐标 齐次坐标,将欧氏空间的无穷远点,与投影空间中有实际意义的消失点,建立起映射关系。 把齐次坐标转化为笛卡尔坐标的方法:是前面n-1个坐标分量分别除以最后一个分量即可 一些解释和性质: 比较好的…...
【Redis】Redis安装步骤和特性以及支持的10种数据类型(Redis专栏启动)
📫作者简介:小明java问道之路,专注于研究 Java/ Liunx内核/ C及汇编/计算机底层原理/源码,就职于大型金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 …...
DHTMLX Diagram JavaScript/HTML5 Pro Library:5.0
Diagram — JavaScript/HTML5 Diagram Library Ω578867473 破解版DHTMLX Diagram comprises a set of interactive HTML5 UI components such as organization charts, flowcharts, decision trees, block diagrams, mind maps, etc. Consisting of nodes and connectors, di…...
GPS卫星位置解算
本文介绍了基于C语言的GPS卫星位置解算原理与程序设计。针对每个原理、公式、代码设计进行了详细讲解,希望能够给测绘学子们带来帮助。 参考书籍: 李征航 黄劲松:GPS测量与数据处理(第三版) 目录 基础原理 1…...
大数据:Sqoop 简介与安装
一、Sqoop 简介 Sqoop 是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从 MySQL,Oracle 等关系型数据库中导入数据到 HDFS、Hive、HBase 等分布式文件存储系统中; 导出数据&am…...
[附源码]计算机毕业设计文曦家教预约系统Springboot程序
项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…...
HK1 BOX刷入 Armbian系统作为服务器
HK1 BOX刷入 Armbian系统作为服务器 1 安装Armbian到EMMC 硬件 HK1 BOX s905 x3 固件版本选择 Armbian_23.02.0_Aml_s905x3_bullseye_5.15.80_server_2022.12.01用usb启动,tf/sd有的设备不行,有干扰,有可能从TF卡无法启动系统。 用usb启…...
CEC2015:动态多目标野狗优化算法求解CEC2015(提供完整MATLAB代码,含GD、IGD、HV和SP评价指标)
一、动态多目标优化问题简介 现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objective optimization p…...
【蓝桥杯选拔赛真题31】python三位数组合个数 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
目录 python三位数组合个数 一、题目要求 1、编程实现 2、输入输出...
SpringBoot项目--如何不停服更新应用?
原文网址:SpringBoot项目--如何不停服更新应用?_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Java后端项目如何不停机更新服务。 在生产环境中,一般都会每个服务部署多个实例。只要多于1个实例,就可以不停服更新应用。 不停服…...
MVVM与Vue响应式原理
Vue的响应式实现原理 MVVM M:模型 》data中的数据 V:视图 》模板 VM:视图模型 》Vue实例对象 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EWNM16D-1670161519474)(C:\Users\lucas\Desktop\学习\图片\mode…...
vue和react的生命周期
vue和react的生命周期 一、Vue的生命周期二、React的生命周期2.1.类组件2.2.函数式组件一、Vue的生命周期 初始化阶段(组件创建、数据初始化)、挂载、更新、销毁 父子组件生命周期执行顺序 初次加载组件时:父beforeCreate – 父created – 父beforeMount – 子beforeCreate …...
浏览器高度兼容性
浏览器的卷去高度 1.标准模式 document.documentElement.scrollTop 2.非标准模式 document.body.scrollTop 浏览器高度兼容性 1.标准模式下 浏览器的实际高度: document.body.clientHeight 浏览器的可视高度:document.documentElement.clientHeight 2.非…...
关于天干地支及其计算
以天干地支计算日期是我国悠良的传统文化,最近在看如何计算人的生辰八字,写了个程序,但是只能算年的干支,月、日的干支计算方法太复杂了,望之只能却步,还是乖乖去查万年历比较好。这里记下关于干支的一些东…...
数据结构和算法之如何建立图
小白BG.1 邻接矩阵表示的图结点的结构 typedef struct GNode *PtrToGNode;//PtrToGNode是指向GNode的一个指针 struct GNode{ int Nv;//顶点数 int Ne;//边数 WeightType G[MaxVertexNum][MaxVertexNum]; DataType Data[MaxVertexNum];//存顶点的数据 }; typedef PtrToGNode MG…...
计算机毕业设计Java大众采编本微资讯发布平台(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java大众采编本微资讯发布平台(源码系统mysql数据库lw文档) 计算机毕业设计Java大众采编本微资讯发布平台(源码系统mysql数据库lw文档)本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse…...
web前端-javascript-立即执行函数(说明、例子)
立即执行函数 /* (function(){alert("我是一个匿名函数~~~"); })(); */(function (a, b) {console.log("a " a);console.log("b " b); })(123, 456);1. 说明 函数定义完,立即被调用,这种函数叫做立即执行函数立即执…...
【计算机视觉】图像形成与颜色
图像形成与颜色 光照及阴影 辐射度学 颜色 颜色信息反映了入射光的能量分布与波长,可见光的波长在400nm到760nm之间。 RGB RGB分别代表三个基色(R-红色、G-绿色、B-蓝色),如(0,0,0)表示黑色、(255, 255, 255)表示白色。其中2…...
Musical Christmas Lights——一个圣诞树灯光✨随音乐节奏改变的前端开源项目
文章目录前言视频介绍项目截图项目地址项目源码以上就是本篇文章的全部内容,将你编写好的项目分享给你的朋友们或者那个TA吧!制作不易,求个三连!❤️ 💬 ⭐️前言 今天博主在刷短视频时😐,朋友推…...
[附源码]Python计算机毕业设计SSM进出口食品安全信息管理系统(程序+LW)
项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…...
电平触发的触发器
普通的SR锁存器没有任何抗干扰能力 我们要加控制信号,来抵抗干扰 比如说我们不把信号直接加在门上,我们可以再加一级门电路,让这个输出和输入不在同一个门上,我们希望加入一个控制信号,来控制电路工作的时刻 对电路结…...
php后端+JQuery+Ajax简单表单提交
通过ajax,如果从后端直接想前端返回数组,那前端收到的是一个‘Array’的字符串。所以,我比较习惯的是用json对象的格式。由后端通过json_encode()函数,把数组封装成对象,传递到前端;前端也以json的格式接收。这里用提交表单来举例说明。 页面显示如下: JQueryAjax.…...
论文投稿指南——中文核心期刊推荐(计算机技术2)
>>>深度学习Tricks,第一时间送达<<< 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊。下面,简单介绍下什么是中文核心期刊要目总览: 《中文核心期刊要目总…...
集合java
java集合 集合、数组都是对多个数据进行存储操作的结构,简称Java容器 此时的存储,主要是指内存层面的存储,不涉及持久化的存储(txt,jpg,avi) Java集合可分为Collection 和 Map 两种体系 1. Collection接口࿱…...
spring boot 应用mybatis
Mybatis入门: Mybatis入门_做测试的喵酱的博客-CSDN博客 目录 一、spring boot 应用mybatis 核心 二、举例: 2.1 背景 2.2 项目结构: 2.3 依赖包 pom 2.4 项目配置文件application.yml 2.5 实例层entity 2.6 mybatis的mapper层 2.7 spring boot…...
Java项目:ssm图书馆管理系统
作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 功能介绍 基于ssm的图书馆管理系统.主要功能包括:图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还日志记录等。 用户分为…...
详解设计模式:命令模式
命令模式(Command Pattern)也被称为行动模式(Action Pattern)、事物模式(Transaction Pattern),是在 GoF 23 种设计模式中定义了的行为型模式。 命令模式 是一种数据驱动的设计模式。请求以命令…...
家庭用户无线上网案例(AC通过三层口对AP进行管理)
组网需求 为一个家庭用户使用的网络架构。该家庭消费用户的上网流量大多是低速流量,例如浏览网页、玩游戏、看视频等。家庭成员使用的无线终端主要为手机、PC、电视机等。终端接入的数量正常情况下在10个以内,偶尔有家庭聚会等特殊情况,终端接…...
Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源
在我们实际工作中,总会遇到这样需求,在项目启动的时候需要做一些初始化的操作,比如初始化线程池,提前加载好加密证书等。今天就给大家介绍一个 Spring Boot 神器,专门帮助大家解决项目启动初始化资源操作。 这个神器就是 CommandLineRunner,CommandLineRunner 接口的 Co…...
用Hopper修改代理软件端口
背景 用代理软件可以访问google,但是端口经常不固定,从缺省1080变成了随机。 前几天其实已经用Hopper 3.0看了一次,但是好像不支持go,所以没反编译成功,这次换了4.0,支持了go。 Hopper与逆向 逆向的目的…...
PKI等介绍
PKI 1、概述 KPI名称:Public Key Infrastructure 公钥基础设施 KPI作用:通过加密技术和数字签名保证信息的安全 KPI组成:公钥加密技术、数字证书、CA、RA 2、信息安全三要素 机密型、完整型、身份验证、操作的不可否认性 3、哪些领域…...
《模拟电子技术》半导体原理部分笔记
《模拟电子技术》笔记绪论第一章 常用半导体器件第二章 基本放大电路绪论 有的人把三极管的出现作为电子技术工业革命的开始标志学习架构:半导体器件(二极管、三极管、场效应晶体管)、基于上述管的放大电路、集成运算放大器、放大电路的频率…...
智慧化转型赋能园区创新:科技创新引领产业智慧化,打造高效发展新格局
在全球化和信息化浪潮的推动下,园区作为区域经济发展的重要引擎,正面临着前所未有的机遇与挑战。为应对这些挑战并把握机遇,园区需积极拥抱智慧化转型,通过科技创新引领产业智慧化,打造高效发展的新格局。本文将深入探…...
云原生Kubernetes: K8S 1.29版本 部署Kuboard
目录 一、实验 1.环境 2.K8S 1.29版本 部署Kuboard (第一种方式) 3.K8S 1.29版本 部署Kuboard (第二种方式) 4.K8S 1.29版本 使用Kuboard 二、问题 1.docker如何在node节点间移动镜像 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注ma…...
iOS 内存泄漏问题总结
参考文章1:xcode8 使用Instruments检测定位并解决iOS内存泄露 参考文章2:iOS 出现内存泄漏的几种原因...
mysql 5.7分组报错问题 Expression #1 of ORDER BY clause is not in GROUP BY clause
解决方案: select version(), sql_mode;SET sql_mode(SELECT REPLACE(sql_mode,ONLY_FULL_GROUP_BY,)); 完美的解决方案是: 1 show variables like "sql_mode"; 2 3 set sql_mode; 4 set sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABL…...
stable diffusion本地部署@win10
一键无脑安装stable-diffusion-webui stable diffusion是当前非常出色的文生图模型,要优于以前gan文生图模型。现在有了stable-diffusion-webui软件,可以一键安装,大大简化了操作难度。本文档就是stable-diffusion-webui在windows 10上的安装…...
Cargo 使用教程
什么是 Cargo? Cargo 是 Rust 的构建系统和包管理器,它提供了创建项目、编译代码、管理依赖和发布包等功能。使用 Cargo,你可以轻松地构建 Rust 程序,而不必深入了解底层的构建细节。 安装 Cargo 在开始之前,确保你…...