再谈SVM

来源:互联网 发布:淘宝中差评修改 编辑:程序博客网 时间:2024/06/16 20:43
首先,是由逻辑回归引到SVM当中。先回顾一下逻辑回归的知识。其实主要是sigmoid的函数不要搞错。

OK,既然是由逻辑回归引出来的,那么先列出逻辑回归的成本函数方程。然后对y为0和1分别进行画图讨论,形象化的图片如下。所以说,线性svm只是逻辑回归当中,h(x)是sigmoid的一种特例,这个不过分吧。因为它就是逻辑回归啊。只是h(x)变了下。

根据上文的画图后的代表,成本函数就转变成如下的形式。

貌似下面就能直接写出SVM的成本方程了。下面只是对前面的系数进行的一些简单的变化。

所以,以上就是得到的SVM成本函数的公式,而且是由逻辑回归转变而来的。其实就是想将那两个不同情况的成本图融合到成本公式中来。然后转变下系数,把之前逻辑回归的&\lambda&转变成现在的C。


上图,由我们之前所得到的SVM的成本函数还有两不同类型的cost的图进行分析,可以知道,SVM希望$\theta^Tx$能够不仅仅只是大于等于0,而且希望它能够大于等于正负1,这样就能够营造出一个安全的距离。


同样差不多的转换。上图中如果设置的C非常的大,也就是约束项不起什么作用。那么$theta^T*X$就会肆无忌惮的满足如果标签为1那么大于1,如果标签为0那么小于-1。

(确定这样能训练好吗?)


所以,绿线和粉线其实已经能够分出圈圈和叉叉了,但是SVM结果却是需要的是黑线,因为黑线有着最大的间隔,因此svm为何被称为最大间隔分类器是有原因的。前文来看,svm的间隔就是$theta^T*X$的严格要求自己(正标签不仅要大于等于0还要求大于等于1)造成的。


好,接下来来看这个系数C,C太大的话。原来好好的黑线就会特别的去满足训练的样本,所以就会成为粉线。这样是不好的。所以约束项是有多重要。

做人也一样,不要为了几个傻逼(奇异点)改变自己的价值观。


接下来是向量相乘,两个概念,一是一个向量投影到另外一个上面,然后二者相乘,还有一个是横纵坐标分别相乘相加什么u1v1+u2v2。两个一样的。简单的数学概念。


上张图中有两点,其一是。最终SVM的成本函数是最小化$1/2||theta||^2$.然后$theta^T*X$可以从之前一张向量乘积的角度去理解(两个角度)。


首先,如果有一条绿色的分界线,那么它的参数theta就是垂直于它的。那么theta*x,向量相乘,之前的知识,就是把x投影到theta上面。就是P,可以发现,P好短哦~根据s.t.中的p*||theta||大于等于1可得。P好短,那么我的theta就应该很大。可是呢,主函数需要theta很小啊~因此。SVM既然希望theta很小,那么根据约束。P尽可能的大。P是啥,就是x投影在theta中的长度。直观来看,SVM就是希望X点投影到一条直线上使得分界面尽可能的长。

还有一个小tips。theta0=0,意味着决策面是经过零点的。


上文的这个就叫做高斯核函数,其实核函数就是取特征。比如原来只是可能是直线距离的,现在取个exp之后直接成指数特征了。


因此,如果原来的x距离l(1)比较远的话,那么特征就接近于0,而如果原来的X距离l(1)比较近的话,那么这个特征就会接近于1。


所以,特征大小直观图片是这样的。然后呢,theta啊什么的都能改变,因此图片的样子也会跟着改变。距离中心点距离大小然后高度也变化啥的。直观的显示如上。当然喽,上面描述的大小也仅仅是特征的大小啊。仅仅是描述到点[3,5]距离而转变的特征量而已。


这个就是非常形象的描述了一个具体的例子,可以看出,刚才仔细描述的也仅仅是f1而已。然后也是根据很多训练样本训练出的theta跟我这个点的各种特征的有机组合成最后的识别结果。


对吧。这个描述的就是x的特征向量。


其一,f替换了之前的x。特征。求theta的时候,核函数有M。因此在大数据的时候会求解的非常的迅速。不过这里没有细说。只是说是一个计算的技巧,而且仅仅适用于SVM,不适用于逻辑回归,因此,逻辑回归如果带核的话那么就会计算的非常的慢。看来theta怎么求的也应该要掌握以下。


这是SVM参数对结果的影响。比如C太大的话,低偏差,高方差,易过拟合,C太小的话,高偏差,低方差,欠拟合。然后,参数theta也会对结果产生各种影响,比如太大的话,变化缓慢,高偏差,低方差,欠拟合。如果太小的话,变化太快,低偏差,高方差,过拟合。


这里要讲的就是对于特征要进行归一化,比如房子的大小一个特征,房间的数量也是一个特征。这两个就要进行归一化。


逻辑回归和线性SVM效果差不多。

样本数很小,特征维度很大的时候,用逻辑函数或者线性SVM,不然过拟合

特征数相对较小,样本数量相对较大的话用高斯核函数SVM

如果特征维数很小,样本数量很多的话,手工增加特征,然后用逻辑回归和线性SVM,因为高斯核函数运算太慢了。

不用神经网络的原因,也是神经网络可能太慢。


0 0