人工智能主要包括监督学习和非监督学习、强化学习,监督学习分为回归、分类;非监督学习分为聚类、降维。Svm(支持向量机)属于分类的范畴,核心是找到一个超平面,使得两类数据分到超平面两侧,主要任务是使得超平面距离两边数据最远。现在我们假设该超平面的方程为Wx+b=0
则过支持向量的超平面方程可设为:Wx + b = C,给方程两边同时除以C,变为。(ps:两个方程表示同一个平面,至于为什么选择1,主要是方便后面计算,因为W、C同比例放缩,故一定存在右边等于1的情况)图中的L为两条直线的间隔,间隔为2C。
Svm常常被用作是二分类,我们设在(正超平面)上侧样本属于正类样本,记(表示标签值),在(负超平面)下侧的属于负样本。同时我们设 ,理解为输入离超平面的距离。由上述可知,我们设置C=1(即方便后续计算),因此 ,故可以用来界定是否分类正确。
上文已阐述svm主要任务是使得超平面距离两边数据最远,因此使得L最大即可。那么怎么使距离最大化呢?首先我们先求出L的表达式,
下面写种求L解析式的解法:
①利用数学归纳法,由特殊到一般,面到面的距离公式(考虑三维场景下)
因为上文我们说过C=1,故最终表达式为:
②如下图,我们考虑在二维平面上,设置正负超平面各
有一点,分别为,则点满足表达式;。将上式进行相减,得到
设向量与夹角为,则,因为,故
综上所述,可知
下面我们继续深入,我们的目标是最大化,也就是最小化,即
因此我们得出目标函数:
假设有n个样本;
上面得到的是svm目标函数是硬间隔下的表达形式(所谓的硬间隔表示所有的样本点严格满足),但是现实生活中有噪音干扰、客观误差等的存在,如果采用硬间隔可能造成目标函数过拟合,精度降低。
因此我们顺势引入软间隔。
我们将硬间隔中的约束条件改为,这样一来可以允许少量点在间隔内,但是我们应严格控制的大小,应尽量使其小,故我们可以得出软间隔下的svm表达式:
假设有n个样本;
,其中c为惩罚系数,可以理解为因为总体要最小,如果c越大,则必须越小,即对样本越严格,反之亦然。
综上所述我们得出了软硬间隔下的svm表达式。下面我们进行求解,我们可以看到软硬间隔下的svm表达式,是一个约束最优化问题。在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转为对偶问题,通过解决对偶问题而得到原始问题的解。下面我们先回忆一下拉格朗日乘子算法求解的原理以及大名鼎鼎的KKT条件,请看svm保姆级教程---(二)拉格朗日乘子算法求解的原理以及KKT条件。