svm(support vector machine)之svr(support vector regression)学习笔记(?)

1.SVR和SVC的区分:
  SVR:构建函数拟合数据;SVC:二向数据点的划分(分类)
  注:SVR的是输入时给出的实际值 yi,SVC的 yi是输入时给出的类别,即+1,-1。
2.SVR的目的:
  找到一个函数f(x),使之与训练数据给出的实际目标yi 的偏差几乎不超过ε,同时尽可能平坦。
image
  如图,形成了ε不敏感区间。
3.间隔:
  分为软间隔和硬间隔。
  对于SVR来说,硬间隔是点全部落在ε不敏感区间;软间隔是允许少量点落在区间外,编号为i的点的误差ξi 定义式为:
  ξi{0yi[f(xi)ε,f(xi)+ε],f(xi)εyiyi(,f(xi)ε),yif(xi)εyi(f(xi)+ε,+).
  即点落在区间外面误差才有值。
  为了统一定义,咱们设两个误差变量ξi+ξi ,
  将定义改为:
ξi+{0yi(,f(xi)+ε],yif(xi)εyi(f(xi)+ε,+).

ξi{f(xi)εyiyi(,f(xi)ε),0yi[f(xi)ε,+).

4.逼近函数的表示方法:
  高维:
  image

  用核函数在低维空间表示内积:
  image

  注:<,>是求内积的符号;超平面的一般方程为:wTxi+b=0,其中wTxi都为向量,xi为输入的一个数据i的n个特征汇总成的n维特征向量。(后面的向量符号可能省略,但还是指同样的东西)
5.损失函数:ε不敏感损失函数
  image
  将我们定义的ξi+ξi代入,发现:
  L(yi)=ξi+/ξi
  将其引申,我们可以得出正则化风险的式子:
6.正则化风险最小化公式:
  image
  注:这里的ξiξi^对应的是ξiξi+
  第一项为结构风险(正则化风险),第二项为经验风险。
  数据点满足“落在包含误差的区间”。
  注:“|| ||”为向量的模
  理解:ε是纵坐标的宽度,即超平面上方ε的点到同一横坐标的点的距离,
  实际的垂直宽度d=|wTx+b|w=εw;
  SVR要在最大化宽度的同时最小化风险,故要最小化|w|2
   ξi+ξi是超出不敏感区域的大小,惩罚系数为C
7.核技巧:通过将低维线性不可分数据转换到高维空间,使之线性可分。
  imageimage
  imageimageimage
  image
8.核函数的作用:
  在希尔伯特空间中,核表示类似于内积,因此可以用低维的核函数表示高维空间的内积,
  即image
9.RBF/径向基函数/高斯核函数:
  image
  需要注意的是:按我的理解,对于每个xi都会与其他所有的x进行核函数的内积操作,使得第i个数据从 n个m维向量 变为 n×n个值
10.KKT/拉格朗日函数的构建:
  具体的条件和证明就不复述,之前写过KKT的学习笔记。
  引入拉格朗日乘子:μiαi,将不等式约束条件转化相加,得到:
  image
  注:这里的ξiξi^对应的是ξiξi+
  于是任务就变为:寻找合适的wb,使得式子的值最小。
  image
  P. max怎么插入的?:
  Q. +μig(x)μi0,g(x)0,故 原式=max [原式+μig(x)]。
  注:g(x)指不等式约束条件。
  然后,这里引入对偶的概念:
  对偶分为强对偶性和弱对偶性。
  弱对偶性是指:所有这样的式子都有的,对所有这样的式子的生效的,凤尾恒大于鸡头的性质。
  即:minmaxmaxmin
  而强对偶性是指:部分式子拥有的性质,即两边取等于号,可互相转换。
  此处式子有强对偶性。(具体为什么有去看别人的证明吧……)
  image
  i=1nαi=i=1nαi^
  C=μi+αi=μi^+αi^
  image

  其中第一个,第二个,第四个都为互补松弛性条件。
  第三个是分情况讨论得来的(后面有证)。
  至于约束条件就是约束的不等式,站点条件就是求偏导等于0,
  还需要满足对偶可行性条件:
  即:αi^0,αi0,μi^0,μi0
  image
  image
  最后将求得的等式反代回去:
  image
  这个问题需要SMO来解,可能会在SMO的学习笔记再写。
11.关于支持向量的判别:
  由于:
  image
  故αi^αi的对w有贡献,为支持向量。
  分类讨论:(不妨假设点一直在偏下方)
  (1)点在不敏感区域内:
   此时ξi=0,f(x)yiεξi=0,
   故αi=0
   同理:αi^=0
   αi^αi=0
(2)点在不敏感区域边界上:
   此时ξi=0,f(x)yiεξi=0,αi0
   ξi^=0,yif(x)εξi^<0,αi^=0
   αi^αi0
   同时:ξi=0,μi>0,0<αi=Cμi<C
(3)点在不敏感区域外:
   此时ξi0,f(x)yiεξi=0,αi0
   ξi^=0,yif(x)εξi^<0,αi^=0
   αi^αi0
   同时:ξi0,μi=0,αi=Cμi=C
  注:可以看出αiαi^=0,ξiξi^=0
  这体现了:问题的复杂性独立于输入空间的维度,而仅取决于支持向量的数量。
12.αi的取值:
  一般用SMO算法确定(SMO中说)。
13.b的取值:
  可以用:
image
  也可以:
image
  其中yrys是支持向量x,选择求取平均值。
  后者更具鲁棒性。
14.训练SVR模型时需要的三个参数:
  损失函数参数ε、惩罚项C和高斯核参数γ。
  C被称为正则化常数,它决定了经验风险和正则化项之间的权衡,增加C的值将导致经验风险的相对重要性增加。
  参数γ表示高斯核的方差,控制核函数的敏感性。可以理解为:γ越大,核函数值就越分立,差距越大,就会越倾向于凹凸不平,弯弯曲曲的分界线,对错误的容忍度更低;γ越小,核函数值就越接近,差距越小,就会越倾向于平坦,笔直的分界线,对错误的容忍度更高,甚至会出现分类错误的情况。
  只要误差小于损失函数参数ε,就不关心误差,但任何大于此的偏差都不会被接受。

posted @   lsoi_ljk123  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示