内容来自coursera 的machine learning课程:https://www.coursera.org/course/ml,对其中的讲解进行了一些梳理和小结,包含了其中optional的large margin classification的总结以及C值取值的分析。
1.假设 hypothesis:
2.代价函数 cost function :
与logistic regression不太一样,由下图中曲线所代表的logistic regression的cost function可以看出,无论是任何情况下,代价始终存在而非0。
在svm中,当y=1时,我们希望theta^T*x(其中theta^T表示theta的转置)远远大于0,故可使用cost1(Z)作为代价函数,当Z>=1时,cost1(Z)=0;
当y=0时,我们希望theta^T*x远远小于0,故可使用cost0(Z)作为代价函数,当Z<=-1时,cost0(Z)=0;
svm的代价函数与logistic regression中的相比,去掉了对结果无影响的m,并用C取代了λ,相当于整个式子除以了λ,C=1/λ;
3.Large margin classification:
与logistic regression相比,svm能够发现与样本有最大间距的判定边界,如下图所示,绿色和洋红色的线更接近于logistic regression得到的判定边界,黑线则更接近于svm。
当C非常非常大时,我们会特别的希望参数theta可以使代价函数中的第一项为0,此时优化问题就等价于:
C同时也扮演了类似于1/λ的角色,C对svm的影响如下图所示,其中左下角的红色样本看起来更像是异常值。
没有左下角的点时,不管C值如何结果均如黑线所示。
加上左下角的点后,当C较大时,如洋红色的线所示,对异常值较为敏感,高拟合,低偏差。当C较小时,如黑线所示,对异常值不敏感,低拟合,高偏差;
当C较小,且异常值不能用线性方法分类时,svm仍可做出正确的判断:
4.(optional)svm为什么是Large margin classifier?
由于标准内积的代数定义与几何定义等价,如下面两式所示:
所以,可以将theta与x的标准内积可以看成x在theta上的投影p与theta长度的乘积:
当C非常大时,svm的优化问题为:
下面说明为什么svm难以得到下图中绿色的判定边界。假设svm得到判定边界如绿色的线所示,由theta与判定边界垂直,则各样本在在theta上的投影p值都较小,为了使p||theta||>=1或者<=-1,theta值就要很大。而梯度下降的目的正是为了减小代价函数的值,因此梯度下降的过程中会减小||theta||,与theta值很大形成矛盾。
为了简便起见,将theta0设为0。(theta0不为零时分析方法类似,判定边界不过原点。)
正是这个原因,svm会更趋向于形成下图这样的large margin。
5.核函数(kernels)
可解决无法用直线分隔的分类问题:
采用新特征f代替x,
f可以根据需要自己确定。常用的高斯核函数(Gaussian Kernel)f由x和l的近似程度确定,其中l为预先选定的地标(landmarks)(如何选l?):
f1表示的x到l1的近似程度,其中similarity即为核函数:
,其中:
跟高斯函数类似,x与l越接近,f的值越接近于1,;x与l越远,f越接近于0;
σ值影响如下:
预测的例子,theta值如图中右下角所示,由下图公式可知洋红色点和绿色点的点预测值为1,青色点预测值为0:
l值的选择如下图所示。假设有m个训练样本,选择m个l值,每个l值对应一个x值。对于每个xi,并用核函数计算出与所有l值分别对应的值,构造出fi矩阵,由于xi=li,每个fi矩阵中第i项均为1。
6.C, delta参数的选择
可以分别从一组数据,如0.01, 0.03, 0.1,0.3, 1, 3, 10, 30中选取C和delta的值,并用交叉验证集找出预测成功率最大时对应的C和delta值。
7.逻辑回归,svm,神经网络的比较:
本文详细介绍了机器学习中逻辑回归、支持向量机(SVM)和神经网络的区别与联系,通过Coursera课程内容进行梳理与小结,深入探讨了SVM的大间隔分类、C参数的影响、核函数的应用,以及与逻辑回归、神经网络的比较分析。

被折叠的 条评论
为什么被折叠?



