(LXTML笔记)关于支持向量机[四]
Soft-Margin Support Vector Machine
用hard-margin分类效果较差的主要原因有两点,分别是变换过于powerful以及坚持要求严格分开,不容得一点错误。
既然如此不妨像pocket那样,容许一定的错误,让犯错最小即可,不必完全正确
由于内的量并不是一个线性量,这样的话就不能将其转换为一个QP问题,设置不好解,所以我们建立一个新的模型如下
用类似的方法考虑其对偶问题
对求偏导数并等于0,最终可以整理的到
这是满足QP条件的,分别是N个变量,2N+1个线性条件。当我们将解出来后,很容易,依旧是,而参数的话由complementary slackness(右边的黄色框条件),我们引入比之前更强的对于支持向量的描述,即需要,此时可以解出
关于的意义
Kernel Logistic Regression
换个角度来看上图左上角的黄色框所示的最优化问题,如果我们令的话,那么由中间绿框的分析我们知道我们实际上可以去掉subject to条件(必然满足限制条件),如果我们将这一部分看做是一种error的话,
那么实际上我们前面的最优化项反倒是可以看成是正则项!我们对0-1error、SVM-error(即此处的max)以及logistic回归的error进行比较有
惊人的事情出现了,实际上SVM-error(即此处的max)和logistic回归的error是非常接近的!所以我们甚至可以将soft-margin-SVM看作是L2-logistic regression!
为了将两者结合起来,下面这里有两种基本思想
1.直接对数据经行SVM,然后求出来的和直接给logReg使用
2.SVM得到的和作为起始点
不过对于第二种思想,由于问题是凸的,最优点唯一,用任何起始点没有区别,甚至这样的SVM可能会带来更多的计算量;而对于这两种思想,可以用一个二元的变量参数来乱搞
训练的话用GD或者SGD什么的都可以,毕竟只有两个变量。
Kernel work的关键
实际上,回顾我们所学过的SVM中的kernel技巧,核技巧的变化在于,若能表示为的线性组合的话,那么kernel就会奏效,而是KKT条件的一个
下面给出一个很强的结果,称为representer theorem,表达如下
所有形如上图绿框形式的最优问题(线性问题的L2正则),必然有最优解能被线性表出,这里的线性问题指的是评分函数是,证明如图所示。
所以由representer theorem,我们直接对L2的logReg代入的线性展开,有
然后用GD,SGD等方法即可
Support Vector Regression
将误差项改为平方误差,我们来看一下这样的线性回归问题(岭回归)
对全局关于β求导,并令其为0可以直接解出β
对比普通的岭回归和核岭回归有如下
下面我们来对比一下刚才这个核岭回归(使用了平方误差的SVM)和一般的soft-margin gaussian SVM
可以发现由于核岭回归中,所以几乎不为0,从上图右子图就可以看到,它几乎都是支持向量,那如何做才能将变得稀疏呢?在SVM变成soft-margin SVM 时候采用的办法是让自己不那么严格,容许一定的错误。此时我们也可以类似的换一种误差
同样是希望将max转换为线性的,可供二次规划的程序来求解,所以
求解的话和上面的程序是一样的,