支持向量机

1 间隔

首先考虑逻辑回归模型hθ(x)=11+exp(θTx)h_{\theta}(x)=\frac{1}{1+exp(-\theta^Tx)},当hθ(x)0.5h_{\theta}(x)\ge0.5时我们预测的标签为1,此时的θTx0\theta^Tx\ge0,当θTx\theta^Tx越大时,hθ(x)h_{\theta}(x)越大,此时我们有更大的信心说预测的标签数据为1.因此当给定训练数据集时,如果我们能使得y(i)y^{(i)}标签为1时的θTx(i)0\theta^Tx^{(i)}\gg0,则代表训练得到的模型是比较好的,因为此时我们有更大的信心预测数据。
考虑如下图的一种情况,我们给定两个类别的数据集,并给出了划分数据集的超平面(θTx=0\theta^Tx=0),图中有3个点A、B和C,其中A远离超平面,因此我们可以很确定地将A点划分到某一类中,而C点很接近超平面,我们只要稍微地改变决策边界就可以获取改变C所属的类别,因此可以说比起C点,我们对A点的预测分类更有信心。因此,我们希望找到一个决策边界对于所有的训练数据都能给出有信心的预测。
CS229第五课——支持向量机

2 符号

为了方便我们讨论SVM算法,我们会对一些符号进行定义,首先我们设置标签y{1,1}y\in\{-1,1\},然后,我们定义模型的参数为w,bw,b,即hw,b(x)=g(wTx+b)h_{w,b}(x)=g(w^Tx+b),在这里如果z>0z>0g(z)=1g(z)=1,否则g(z)=1g(z)=-1。并且注意到此时模型直接输出预测结果,而不再是输出概率。

3 函数间隔与几何间隔

对于给定的训练样本x(i),y(i)x^{(i)},y^{(i)},我们定义函数间隔为γ^(i)=y(i)(wTx(i)+b)\hat{\gamma}^{(i)}=y^{(i)}(w^Tx^{(i)}+b),我们可以注意到,如果y(i)=1y^{(i)}=1,我们希望模型输出的wTx+b0w^Tx+b\gg0,而相反如果y(i)=1y^{(i)}=-1,我们希望模型输出的wTx+b0w^Tx+b\ll0,因此可以总结为我们希望函数间隔γ^(i)=y(i)(wTx(i)+b)\hat{\gamma}^{(i)}=y^{(i)}(w^Tx^{(i)}+b)远大于0.然而如果单纯使用函数间隔我们无法很好地选择参数,因为函数间隔可以等比例的扩大参数w,bw,b而不改变原始输出结果。因此,我们通过缩放wwbb可以使函数边界任意增大,而不会真正改变任何有意义的东西。因此我们可以通过增加一些标准化条件来改善这种情况,比如w2=1||w||_2=1
给定训练的数据集,{(x(i),y(i)),i=1,2,...,m}\{(x^{(i)},y^{(i)}),i=1,2,...,m\},我们可以定义函数间隔为
γ^=miniγ^(i)\hat{\gamma}=\min_i \hat{\gamma}^{(i)}
接下来让我们考虑几何间隔,如下图所属。ww是给定超平面的正交直线,点A(x(i),y(i))(x^{(i)},y^{(i)})是训练集中的一点,该点到决策边界的距离γ(i)\gamma^{(i)}为AB,我们需要计算γ(i)\gamma^{(i)}的值。w/ww/||w||ww方向的单位向量,A点的坐标为x(i)x^{(i)},因此B点的坐标为x(i)γ(i)w/wx^{(i)}-\gamma^{(i)}*w/||w||,因此点B在决策边界上,所以wT(x(i)γ(i)w/w)+b=0w^T(x^{(i)}-\gamma^{(i)}*w/||w||)+b=0,所以可以解得γ(i)=wTx(i)+bw=(ww)Tx(i)+bw\gamma^{(i)}=\frac{w^Tx^{(i)+b}}{||w||}=(\frac{w}{||w||})^Tx^{(i)}+\frac{b}{||w||},因此我们进一步定义某个训练样本(x(i),y(i))(x^{(i)},y^{(i)})的几何间隔为
γ(i)=y(i)((ww)Tx(i)+bw)\gamma^{(i)}=y^{(i)}((\frac{w}{||w||})^Tx^{(i)}+\frac{b}{||w||})
CS229第五课——支持向量机
根据几何间隔的定义,其避免了之前函数间隔的问题,即随着参数w,bw,b的缩放,几何间隔的值不会有变化。同理,对于整个数据集的几何间隔定义为
γ=miniγ(i)\gamma=\min_i \gamma^{(i)}

4 最优间隔分类器

给定一个数据集,根据我们上面的定义,我们需要找个一个决策边界能使得几何间隔的值最大。
现在,我们给定一个可以线性分割的数据集,我们需要根据以下的优化问题来决定最大化几何间隔的超平面
maxγ,w,b γs.t. y(i)(wTx+b)γw=1\begin{aligned} \max_{\gamma,w,b}\ &\gamma \\ s.t.\ &y^{(i)}(w^Tx+b)\ge \gamma\\ & ||w||=1 \end{aligned}
这个问题将导致(w;bw;b)相对于训练集具有可能最大的几何间隔。我们只要解决上述的优化问题就可以了,然而w=1||w||=1是一个非凸的约束,因此我们尝试着修改该优化问题。
maxγ,w,b γ^/ws.t. y(i)(wTx+b)γ^,i=1,2,...,m\begin{aligned} \max_{\gamma,w,b}\ &\hat{\gamma}/||w|| \\ s.t.\ &y^{(i)}(w^Tx+b)\ge \hat{\gamma},i=1,2,...,m \end{aligned}
最大化γ^/w\hat{\gamma}/||w||,因为γ=γ^/w\gamma=\hat{\gamma}/||w||,因此这样的修改训练得到的结果不会有变化,且不在需要w=1||w||=1这个约束。由于γ^/w\hat{\gamma}/||w||仍然不是一个凸优化问题,因此我们需要继续对其进行修改,因为在我们之前提到的内容中说到我们可以对参数w,bw,b进行一定的缩放,因此我们可以控制这两个参数使计算得到的函数间隔为1,即γ^=1\hat{\gamma}=1
因为将参数w,bw,b同时乘以一个常数相当于将函数间隔乘以该常数,因此我们可以通过缩放两个参数使得上面的约束条件满足,代入前面的优化问题可以得到
minγ,w,b 12w2s.t. y(i)(wTx+b)1,i=1,2,...,m\begin{aligned} \min_{\gamma,w,b}\ &\frac{1}{2}||w||^2 \\ s.t.\ &y^{(i)}(w^Tx+b)\ge 1,i=1,2,...,m \end{aligned}
我们现在已经把问题转化为可以有效解决的形式,这是一个只有线性约束的凸二次目标优化问题,我们可以使用商业二次规划来解决这个问题,这样就能获得最优的划分界面了。
我们接下来会介绍拉格朗日对偶性,这将使我们得到优化问题的对偶形式,它将在允许我们使用核函数来获得在非常高维空间中有效工作的最优边界分类器方面发挥关键作用,对偶形式还能使我们推导出一个有效的算法来解决上述优化问题。

相关文章: