提交 ebc8fb32 编写于 作者: W wizardforcel

ch5 pic

上级 8f0596da
......@@ -216,7 +216,7 @@ svm_poly_reg.fit(X, y)
线性 SVM 分类器通过简单地计算决策函数 $w \cdot x+b = w_1 x_1 + ... + w_n x_n + b$ 来预测新样本的类别:如果结果是正的,预测类别`ŷ`是正类,为 1,否则他就是负类,为 0。见公式 5-2
![](../images/chapter_5/eq-5-2.jpg)
![](../images/chapter_5/eq-5-2.gif)
图 5-12 显示了和图 5-4 右边图模型相对应的决策函数:因为这个数据集有两个特征(花瓣的宽度和花瓣的长度),所以是个二维的平面。决策边界是决策函数等于 0 的点的集合,图中两个平面的交叉处,即一条直线(图中的实线)
......@@ -235,7 +235,7 @@ svm_poly_reg.fit(X, y)
因此,我们可以将硬间隔线性 SVM 分类器表示为公式 5-3 中的约束优化问题
![](../images/chapter_5/eq-5-3.jpg)
![](../images/chapter_5/eq-5-3.gif)
> 注
>
......@@ -243,14 +243,14 @@ svm_poly_reg.fit(X, y)
为了获得软间隔的目标,我们需要对每个样本应用一个松弛变量(slack variable)$\zeta^{(i)} \ge 0$。$\zeta^{(i)}$ 表示了第`i`个样本允许违规间隔的程度。我们现在有两个不一致的目标:一个是使松弛变量尽可能的小,从而减小间隔违规,另一个是使`1/2 w·w`尽量小,从而增大间隔。这时`C`超参数发挥作用:它允许我们在两个目标之间权衡。我们得到了公式 5-4 的约束优化问题。
![](../images/chapter_5/eq-5-4.jpg)
![](../images/chapter_5/eq-5-4.gif)
## 二次规划
硬间隔和软间隔都是线性约束的凸二次规划优化问题。这些问题被称之为二次规划(QP)问题。现在有许多解决方案可以使用各种技术来处理 QP 问题,但这超出了本书的范围。一般问题的公式在公式 5-5 给出。
![](../images/chapter_5/eq-5-5.jpg)
![](../images/chapter_5/eq-5-5.gif)
注意到表达式`Ap ≤ b`实际上定义了 $n_c$ 约束: $p^T a^{(i)} \le b^{(i)}, for i = 1, 2, ..., n$,$a^{(i)}$ 是个包含了`A`的第`i`行元素的向量,$b^{(i)}$是`b`的第`i`个元素。
......@@ -272,11 +272,11 @@ svm_poly_reg.fit(X, y)
给出一个约束优化问题,即原始问题(primal problem),它可能表示不同但是和另一个问题紧密相连,称为对偶问题(Dual Problem)。对偶问题的解通常是对原始问题的解给出一个下界约束,但在某些条件下,它们可以获得相同解。幸运的是,SVM 问题恰好满足这些条件,所以你可以选择解决原始问题或者对偶问题,两者将会有相同解。公式 5-6 表示了线性 SVM 的对偶形式(如果你对怎么从原始问题获得对偶问题感兴趣,可以看下附录 C)
![](../images/chapter_5/eq-5-6.jpg)
![](../images/chapter_5/eq-5-6.gif)
一旦你找到最小化公式的向量`α`(使用 QP 解决方案),你可以通过使用公式 5-7 的方法计算`w``b`,从而使原始问题最小化。
![](../images/chapter_5/eq-5-7.jpg)
![](../images/chapter_5/eq-5-7.gif)
当训练样本的数量比特征数量小的时候,对偶问题比原始问题要快得多。更重要的是,它让核技巧成为可能,而原始问题则不然。那么这个核技巧是怎么样的呢?
......@@ -285,11 +285,11 @@ svm_poly_reg.fit(X, y)
假设你想把一个 2 次多项式变换应用到二维空间的训练集(例如卫星数据集),然后在变换后的训练集上训练一个线性SVM分类器。公式 5-8 显示了你想应用的 2 次多项式映射函数`ϕ`
![](../images/chapter_5/eq-5-8.jpg)
![](../images/chapter_5/eq-5-8.gif)
注意到转换后的向量是 3 维的而不是 2 维。如果我们应用这个 2 次多项式映射,然后计算转换后向量的点积(见公式 5-9),让我们看下两个 2 维向量`a``b`会发生什么。
![](../images/chapter_5/eq-5-9.jpg)
![](../images/chapter_5/eq-5-9.gif)
转换后向量的点积等于原始向量点积的平方:$\phi(a)^T \phi(b) = (a^T b)^2$
......@@ -297,7 +297,7 @@ svm_poly_reg.fit(X, y)
函数 $K(a, b) = (aT b)^2$ 被称为二次多项式核(polynomial kernel)。在机器学习,核函数是一个能计算点积的函数,并只基于原始向量`a``b`,不需要计算(甚至知道)转换`ϕ`。公式 5-10 列举了一些最常用的核函数。
![](../images/chapter_5/eq-5-10.jpg)
![](../images/chapter_5/eq-5-10.gif)
> Mercer 定理
>
......@@ -307,11 +307,11 @@ svm_poly_reg.fit(X, y)
我们还有一个问题要解决。公式 5-7 展示了线性 SVM 分类器如何从对偶解到原始解,如果你应用了核技巧那么得到的公式会包含 $\phi(x^{(i)})$。事实上,`w`必须和 $\phi(x^{(i)})$ 有同样的维度,可能是巨大的维度或者无限的维度,所以你很难计算它。但怎么在不知道`w`的情况下做出预测?好消息是你可以将公式 5-7 的`w`代入到新的样本 $x^{(n)}$ 的决策函数中,你会得到一个在输入向量之间只有点积的方程式。这时,核技巧将派上用场,见公式 5-11
![](../images/chapter_5/eq-5-11.jpg)
![](../images/chapter_5/eq-5-11.gif)
注意到支持向量才满足`α(i)≠0`,做出预测只涉及计算为支持向量部分的输入样本 $x^{(n)}$ 的点积,而不是全部的训练样本。当然,你同样也需要使用同样的技巧来计算偏置项`b`,见公式 5-12
![](../images/chapter_5/eq-5-12.jpg)
![](../images/chapter_5/eq-5-12.gif)
如果你开始感到头痛,这很正常:因为这是核技巧一个不幸的副作用
......@@ -320,7 +320,7 @@ svm_poly_reg.fit(X, y)
在结束这一章之前,我们快速地了解一下在线 SVM 分类器(回想一下,在线学习意味着增量地学习,不断有新实例)。对于线性SVM分类器,一种方式是使用梯度下降(例如使用`SGDClassifire`)最小化代价函数,如从原始问题推导出的公式 5-13。不幸的是,它比基于 QP 方式收敛慢得多。
![](../images/chapter_5/eq-5-13.jpg)
![](../images/chapter_5/eq-5-13.gif)
代价函数第一个和会使模型有一个小的权重向量`w`,从而获得一个更大的间隔。第二个和计算所有间隔违规的总数。如果样本位于“街道”上和正确的一边,或它与“街道”正确一边的距离成比例,则间隔违规等于 0。最小化保证了模型的间隔违规尽可能小并且少。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册