(1)优化目标
与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。
逻辑回归要做的事情:如果有样本y=1,则希望h(x)趋近1,;相反,有样本y=0,则希望h(x)=0。
新的代价函数将会水平的从这里到右边(图外),然后我再画一条同逻辑回归非常相似的直线,但是,在这里是一条直线,也就是我用紫红色画的曲线,就是这条紫红色的折线。
左边的函数,我称之为cos𝑡1(𝑧),同时,右边函数我称它为cos𝑡0(𝑧)。这里的下标是指在代价函数中,对应的 𝑦 = 1 和 𝑦 = 0 的情况,拥有了这些定义后,现在,我们就开始构建支持向量机。
对于逻辑回归,在目标函数中,我们有两项:第一个是训练样本的代价,第二个是我们的正则化项,我们不得不去用这一项来平衡。如上图𝐴 + 𝜆 × B。给定一个很大的 𝜆,意味着B的权重更大。
但对于向量机来说,改为优化目标𝐶 × 𝐴 + B,此时给定一个较小的C,也以为着B的权重大(C=1/𝜆?理解)。因此,可以得到相同的最优值的𝜃。所以,这就得到了在支持向量机中我们的整个优化目标函数。然后最小化这个目标函数,得到 SVM 学习到的参数𝐶。
最后有别于逻辑回归输出的概率。在这里,我们的代价函数,当最小化代价函数,获得参数𝜃时,支持向量机所做的是它来直接预测𝑦的值等于 1,还是等于 0。因此,这个假设函数会预测 1。当𝜃𝑇𝑥大于或者等于 0 时,或者等于 0 时,所以学习参数𝜃就是支持向量机假设函数的形式。那么,这就是支持向量机数学上的定义。
(2)大边界的直观理解
支持向量机将会选择这个黑色的决策边界,黑线看起来是更稳健的决策界。在分离正样本和负样本上它显得的更好。数学上来讲,这个距离叫做间距(margin)。
黑色的决策界和训练样本之间有更大的最短距离,这个距离叫做支持向量机的间距,且具有健壮性。因此,支持向量机有时也被称为大间距分类器。
事实上,支持向量机现在要比这个大间距分类器所体现得更成熟,尤其是当你使用大间距分类器的时候,你的学习算法会受异常点(outlier) 的影响。比如我们加入一个额外的正样本。
如果你将 C 设置的不要太大,则你最终会得到这条黑线,当然数据如果不是线性可分的,如果你在这里有一些正样本或者你在这里有一些负样本,则支持向量机也会将它们恰当分开。因此,大间距分类器的描述,仅仅是从直观上给出了正则化参数𝐶非常大的情形。
同时,要提醒你𝐶的作用类似于1/𝜆,𝜆是我们之前使用过的正则化参数。这只是𝐶非常大的情形,或者等价地 𝜆 非常小的情形。你最终会得到类似粉线这样的决策界,但是实际上应用支持向量机的时候,当𝐶不是非常非常大的时候,它可以忽略掉一些异常点的影响,得到更好的决策界。甚至当你的数据不是线性可分的时候,支持向量机也可以给出好的结果。
回顾 𝐶 = 1/𝜆,因此:
𝐶 较大时,相当于 𝜆 较小,可能会导致过拟合,高方差。
𝐶 较小时,相当于 𝜆 较大,可能会导致低拟合,高偏差。
(3)大边界的数学原理
前提:了解向量内积等
右图绿色的决策界有一个垂直于它的向量𝜃(平行于x轴的蓝线)。通过选择右边的决策界,而不是左边的那个,支持向量机可以使参数𝜃的范数变小很多,因为由·∥𝜃∥>=1可知,左图的p(i)很小,只能让∥𝜃∥很大;对于<=-1原理类似。所以,对于右图的绿色决策边界来讲,p(i)相对左图较大,∥𝜃∥相对左图较小,这就达到了我们的目的。因此,如果我们想令𝜃的范数变小,从而令𝜃范数的平方变小,就能让支持向量机选择右边的决策界。这就是支持向量机如何能有效地产生大间距分类的原因。
(4)核函数(Kernels)
之前讨论过可以使用高级数的多项式模型来解决无法用直线进行分隔的分类问题:
现在令:𝑓1 = 𝑥1, 𝑓2 = 𝑥2, 𝑓3 =𝑥1𝑥2, 𝑓4 = 𝑥12, 𝑓5 = 𝑥22。得到ℎ𝜃(𝑥) = 𝜃1𝑓1 + 𝜃2𝑓2+. . . +𝜃𝑛𝑓n。除了对原有特征进行组合外,我们可以利用核函数来计算出新的特征
给定一个训练实例,利用x的各个特征与我们预先选定的地标(如上图的三个l)的近似度来选取新的特征𝑓1, 𝑓2, 𝑓3。
地标的作用:若一个训练实例x与地标L之间的距离近似为0,则新特征f近似于𝑒−0 = 1;若x与L距离较远,则𝑓近似于𝑒−(一个较大的数) = 0
假设我们的训练实例含有两个特征[𝑥1 𝑥2],给定地标𝑙(1)与不同的𝜎值,见下图:
由图可见,只有当𝑥与𝑙(1)重合时𝑓才具有最大值。随着𝑥的改变𝑓值改变的速率受到𝜎2的控制。
在下图中,当实例处于洋红色的点位置处,因为其离𝑙(1)更近,但是离𝑙(2)和𝑙(3)较远,因
此𝑓1接近 1,而𝑓2,𝑓3接近 0。因此ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑓1 + 𝜃2𝑓2 + 𝜃1𝑓3 > 0,因此预测𝑦 = 1。同理可以求出,对于离𝑙(2)较近的绿色点,也预测𝑦 = 1,但是对于蓝绿色的点,因为其离三个地标都较远,预测𝑦 = 0。
红色的封闭曲线所表示的范围,便是我们依据一个单一的训练实例和我们选取的地标所得出的判定边界,在预测时,我们采用的特征不是训练实例本身的特征,而是通过核函数计算出的新特征𝑓1, 𝑓2, 𝑓3。
(5)核函数ll
选择地标:训练集有m个实例,则选取m个地标,如下𝑙(1) = 𝑥(1), 𝑙(2) = 𝑥(2), . . . . . , 𝑙(𝑚) = 𝑥(𝑚)
好处:得到的新特征是建立在原有特征与训练集中所有其他特征之间距离的基础上的。
们将核函数运用到支持向量机中,修改我们的支持向量机假设为:
如果在逻辑回归中使用核函数,上面使用M来简化计算的方法将非常耗费时间。
另外,如果支持向量机不使用核函数的话又称为线性核函数(linear kernel)。当我们不采用非常复杂的函数,或者我们的训练集特征非常多而实例非常少的时候,可以采用这种不带核函数的支持向量机。
支持向量机受𝐶和𝜎的影响:
𝐶 = 1/𝜆
𝐶 较大时,相当于𝜆较小,可能会导致过拟合,高方差;
𝐶 较小时,相当于𝜆较大,可能会导致低拟合,高偏差;
𝜎较大时,可能会导致低方差,高偏差;
𝜎较小时,可能会导致低偏差,高方差。
(6)使用SVM
普遍使用的准则:
(1)如果相较于𝑚而言,𝑛要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型,我们选用逻辑回归模型或者不带核函数的支持向量机。
(2)如果𝑛较小,而且𝑚大小中等,例如𝑛在 1-1000 之间,而𝑚在 10-10000 之间,使用高斯核函数的支持向量机。
(3)如果𝑛较小,而𝑚较大,例如𝑛在 1-1000 之间,而𝑚大于 50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征,然后使用逻辑回归或不带核函数的支持向量机。