这一节主要探讨kernel的方法,以及SVM如何做到some error tolerate—— soft margin。
-
我们将拉格朗日函数表达成在z空间的形式, 我们需要解决的问题是, 当在z空间优化拉格朗日函数的时候, 我们在计算w, 计算b的时候是否也是方便, 更好的话是它就是kernel的形式。 答案是肯定的。predict的时候是计算g(x), 从w的形式化表达并且代入我们得知无论计算g(x) 还是b, 都是计算x与支持向量之间的kernel而已。
form -
下面以一个例子来说明kernel确实是在做inner product。以二维空间为例子, 我们形式化的将z表达出来, 然后做inner product,到最后我们发现这种效果与直接做K(x, x') = (1 + xTx')2的效果是等价的。
generalized
trick -
以上的例子其实是polynomial kernel, 下面是其更加一般化的表达。
polynomial -
那么遇到一个新的kernel, 我们如何确认它就是对的, 是在做inner product呢? 可以在一维空间展开。 如下是rbf kernel, 我们对其做泰勒展开, 发现有x, x'的点乘项, 我们有理由相信它就是在做点乘。
rbf -
final。最后我们得到了g(x)关于kernel的表达。
final -
但是如何知道Z空间存在呢?一个是认为构建, 另外一个是Mercer‘s condition, 第三是这似乎是不重要的。保证kernel(x, y) = kernel(y, x), 保证kernel矩阵是半正定。
Z
condition -
接下来是soft margin分类器。 数据不一定是能对分的, 左边的是有少数的点混入到别的类之中, 右边的是它在线性空间完全无法分, 必须要做非线性转换。
non-separable -
还记得我们一开始做的归一化|w^Tx + b | = 1 吧, 这是对所有支持向量的约束, 现在放宽这个约束,支持向量到超平面的距离可以有一点点vary, 或者理解成允许犯一点点错误\xi,然后统计\xi的总和。
measure -
问题重新表达如下。最小化的问题要加上Error measure, 拉格朗日的方程要加上两个松弛变量的约束。 可以看到, 对w, b的导数仍然不变, 而对\xi求导令其为0, 看到C-\alpha-beta = 0, 若将其代回去拉格朗日方程, 关于\xi的项消失了。
optimization
Lagrange -
solution。solution的形式与hard margin的形式基本一直, 只是多了一个约束\alpha ≤ C。
solution -
前面我们知道若\alpha > 0, 它就是一个support vector, 它们都在margin上面, 这是对hard margin而言。 对soft margin需要分两类, 一类仍然是margin上面的支持向量, 他们的\xi就是0; 另外一类是margin之间的支持向量, \alpha = C, 这意味着\beta = 0,根据互补松弛条件(不知道对不对), \xi 就不等于0了, 有Error了, 这就是margin之间的支持向量了。
support
网友评论