假设数据 中总计有 N 个训练样本,每个 训练样本 i 可以被表示为(xi,yi)( i=1,2,.... N ),其中 xi 是( x1i,x2i ... xni )T 这样的一个特征向量,每个 样本总 共含有 n 个特征。二分类标签 yi 的取值是{-1,1}。如果 n 等于 2,则有 i =(x1i,x2i,yi)T,分别 由特征向量 和 标签组成。此时 可以在 二维平面上,以 x2 为 横坐标,x1 为纵坐标,y 为颜色,来 可视化所有的 N 个 样本。( 紫色点的标签为 1,红色点的 标签为 -1)
在 二维平面上,决策边界(超平面)就是 一条直线。二维平面上的 任意一条线 可以被表示为:
变换可得:
其中[a,-1]就是参数向量 w,x 就是 特征向量,b 是 截距。
在一组数据下,给定固定的 w 和 b,这个式子 就可以是 一条固定直线,在 w 和 b 不确定的状况下,这个表达式 wT x+b=0 就可以 代表平面上的 任意一条直线。如果在 w 和 b 固定时,给定一个唯一的 x 的取值,这个 表达式就 可以表示固定的 一个点。在 SVM 中,就 使用这个表达式 来表示 ++决策边界++。
我们 目标是求解能够让边际最大化的 决策边界,所以要求解参数向量 w 和 截距 b。
如果在决策边界上 任意取两个点 xa、xb,并带入决策边界的表达式,则有:
两式相减得:
两个向量的点击为 0 表示 两个向量的方向 式互相垂直的。xa-xb 的方向是 平行于他们 所在的直线(决策边界)。而 w 与 xa-xb 相互垂直,所以 参数向量 w 的方向必然是 垂直于决策边界。
这样任意一个紫色的点 xp,就可以被表示为:
紫色点所代表的标签 y 是 1,所以规定 p > 0。同样 对于 任意一个 红色的点 xr 而言,可以 将它表示为:
红色点所表示的标签 y 是 -1,所以规定 r < 0。由此,如果 有新的测试数据 xt,则的 xt 标签就可以 根据以下式子 来判定:
损失函数是 二次的(quadratic),并且 损失函数中的 约束条件在参数 w 和 b 下是 线性的,求解这样的 损失函数被称为 "凸优化问题"(comvex optimiztion problem) 。拉格明日乘数法正好可以用来 解决凸优化问题,解决 带 约束条件,尤其是带有 不等式的 约束条件的函数的 数学方法。
首先需要使用 拉格朗日乘数来将损失函数 改写为 考虑了约束条件的 形式:
此时要求解的 就不只有参数向量 w 和 截距 b 了,也 要求解 拉格朗日乘数 a。而 xi 和 yi 都是已知的 特征矩阵 和 标签。
对参数求导后让一阶导数等于 0 得:
由于两个求 偏导结果中都带有 未知的拉格朗日乘数 ai,因此 还是无法求解出 w 和 b 。这里 拉格朗日函数 还可以被转换成一种 只带有 ai,而不带有 w 和 b 的形式,这种 形式被称为 拉格朗日对偶函数。在对偶函数下,就可以 求解出拉格朗日乘数 ai,然后 带入到上面 推导出的(1)和(2)式中来求解 w 和 b 。