system: [SYSTEM]

user: 2. 理论教学中的几个关键细节理解 在上面描述的支持向量机理论过程中，有很多关键细节，在教学过程中，理解起来非常有难度，我们给出详细的解释。 理解1：“函数间隔”与“几何间隔”，以及SVM最大化的Margin究竟是什么？ 解释：将图4进一步细化，把其中的直线方程补充上，如下图7。 图7. 二分类中三条直线及Margin等情况 在上面线性分类器模型的推导过程中，图7中的z2和z3线就分别是两类样本点的边界，最大化两类样本的分类边界间的间隔，这个间隔，比较难理解，模型的推导过程，目标函数是怎么从最大化ρ， 到了最大化 1 2 W T W 的？ 事实上，z2和z3线之间的“函数间隔”就是这两条平行线的表达式做差的绝对值，就是ρ，所以得到式(1)的模型；而它们之间的“几何间隔”就是其中一条线上的点到另一条线的距离，比如z2上的点 X = ( x 1 ， x 2 ) ，首先满足方程 w 1 ⋅ x 1 + w 2 ⋅ x 2 + b = − ρ / 2 ，然后到z3 ( w 1 ⋅ x 1 + w 2 ⋅ x 2 + b − ρ / 2 = 0 )距离为 r = | w 1 ⋅ x 1 + w 2 ⋅ x 2 + b − ρ / 2 | w 1 2 + w 2 2 = | − ρ / 2 − ρ / 2 | w 1 2 + w 2 2 = ρ w 1 2 + w 2 2 = ρ ‖ W ‖ ， 所以，得到式(2)的模型。这样，最大化的“Margin”从代数上讲是ρ，从几何上讲是 ρ ‖ W ‖ 。那么，最大化哪一个更好呢？ 实际上，要讲“几何间隔”最大，而不讲“函数间隔”最大。因为同一条直线的方程，将其各个项都乘以同一个倍数，它还是这条直线，但两条平行直线之间的“函数间隔”就变了，因为各自的常数项被乘以了倍数，做的差也比原来多了个倍数！比如，z2和z3线都变成： z 2 : 2 w 1 ⋅ x 1 + 2 w 2 ⋅ x 2 + 2 b + ρ = 0 z 3 : 2 w 1 ⋅ x 1 + 2 w 2 ⋅ x 2 + 2 b − ρ = 0 那么，“函数间隔”就变成2ρ。而“几何间隔” ρ ‖ W ‖ 没变，因为求距离式子的分子分母都增大了同一个倍数， r = | 2 w 1 ⋅ x 1 + 2 w 2 ⋅ x 2 + 2 b − ρ | ( 2 w 1 ) 2 + ( 2 w 2 ) 2 = | − ρ − ρ | ( 2 w 1 ) 2 + ( 2 w 2 ) 2 = 2 ρ ( 2 w 1 ) 2 + ( 2 w 2 ) 2 = ρ ‖ W ‖ 所以要讲“几何间隔” ρ ‖ W ‖ 最大。当然，在下面一条理解里，当把图7中的三条直线一起重新量化后，发现要最大化的Margin实际上是量化后的 2 ‖ W ‖ 。解释完毕！ 理解2：线性分类器模型中的目标函数如何由 ρ ‖ W ‖ 变成 1 2 W T W 的？约束条件又如何从 y i ( W T x i + b ) ≥ ρ / 2 变成 y i ( W T x i + b ) ≥ 1 的？ 解释：如果把图7中的三条直线的方程分别都除以ρ/2，以改变比例、重新量化，得到 z 3 : w 1 / ( ρ / 2 ) ⋅ x 1 + w 2 / ( ρ / 2 ) ⋅ x 2 + b / ( ρ / 2 ) = 1 z 1 : w 1 / ( ρ / 2 ) ⋅ x 1 + w 2 / ( ρ / 2 ) ⋅ x 2 + b / ( ρ / 2 ) = 0 z 2 : w 1 / ( ρ / 2 ) ⋅ x 1 + w 2 / ( ρ / 2 ) ⋅ x 2 + b / ( ρ / 2 ) = − 1 或者，写成 z 3 : w ¯ 1 ⋅ x 1 + w ¯ 2 ⋅ x 2 + b ¯ = 1 z 1 : w ¯ 1 ⋅ x 1 + w ¯ 2 ⋅ x 2 + b ¯ = 0 z 2 : w ¯ 1 ⋅ x 1 + w ¯ 2 ⋅ x 2 + b ¯ = − 1 或者，再写成 z 3 : w 1 ⋅ x 1 + w 2 ⋅ x 2 + b = 1 z 1 : w 1 ⋅ x 1 + w 2 ⋅ x 2 + b = 0 z 2 : w 1 ⋅ x 1 + w 2 ⋅ x 2 + b = − 1 (5) 则，一个支持向量到分类线的距离就变成 r = 1 ‖ W ‖ ，那么分类线两侧的距离之和，也就是z2和z3线之间的距离就是 2 ‖ W ‖ ，于是，应该追求 2 ‖ W ‖ 的最大化，即这就是支持向量机最终要最大化的Margin。同时，为了求解的方便，也相当于追求 1 2 ‖ W ‖ 2 的最小化，或者追求 1 2 W T W 的最小化。 另外，根据(5)式，z2和z3线两边的数据点必须满足约束条件 y i ( W T X i + b ) ≥ 1 。于是，最终的线性分类器模型就是： min 1 2 W T W s .t .     y i ( W T X i + b ) ≥ 1 ，     i = 1 ， 2 ， ⋯ ， n . 解释完毕！ 理解3：把线性分类器模型转换成对偶问题求解以后，得到的 α ^ = ( α ^ 1 ， ⋯ ， α ^ n ) T ，为什么其中 α ^ i > 0 对应的样本i就是支持向量 [ 11 ] ？ 解释：在下面式子中 L P ( W ， b ， α i ) = min w ， b max α i ≥ 0 { 1 2 W T W − ∑ i = 1 n α i ( y i ( W T X i + b ) − 1 ) } ， 关于 α i 求最大时(把W和b当常数看)，得到 max α i ≥ 0 L P ( W ， b ， α ) = max α i ≥ 0 1 2 W T W − ∑ i = 1 n α i ( y i ( W T X i + b ) − 1 )     ， (6) 如果 X i 是支持向量，那么就有 y i ( W T X i + b ) − 1 = 0 ，即 y i ( W T X i + b ) = 1 ，则(6)式的最大化就只由 1 2 W T W 决定，而 α i 取任何值都对目标函数的最大化没有影响，其中就可以取大于0的值；而对于非支持向量，则有 y i ( W T X i + b ) − 1 > 0 ，即 y i ( W T X i + b ) > 1 ，而 α i ≥ 0 ，则有 ∑ i = 1 n α i ( y i ( W T X i + b ) − 1 ) ≥ 0 ，为了满足最大化的要求，必须 α i = 0 ，才能使得 ∑ i = 1 n α i ( y i ( W T X i + b ) − 1 ) = 0 ，从而使得(3)式最大化。这样一来，只有对应支持向量的 α i 有可能大于0，而非支持向量对应的 α i 一定等于0；当然， α i 等于0的不一定是非支持向量。综上， α i > 0 对应的数据点 X i 就一定是支持向量。解释完毕！ 理解4：对于同一个训练集，得到的分类超平面，唯一吗？ 解释：分类超平面，在二维平面里，就是分类直线。从下面图8中的三个图来看，图(1)中实线是分类线，在保持两条虚线之间距离不变的同时(即保持Margin不变)，三条线一起做适当的旋转，得到图(2)中的三条粗一点的线，此时，图(1)中的支持向量和图(2)中的支持向量稍微有些变化。旋转以后形成的支 图8. 支持向量机分类直线的不唯一情况 持向量机分类情况如图(3)。由此可以看出，从理论上讲，对于同一个训练集，得到分类直线可以不唯一，或者得到的分类超平面可以不唯一，但从实验出发，很多数据点都只能算出来一个分类超平面，而不是恰好能有两个分类超平面的情况，实验方面还需要恰好能产生这样的数据点来进行实践。 解释完毕！