有人可以解释一下如何设计SVM决策功能吗?或指向我讨论具体示例的资源。
编辑
对于下面的示例,我可以看到等式分离了具有最大边距的类。但是,如何以以下形式调整权重并编写超平面方程式。
在考虑更高的维度之前,我试图在二维空间中正确理解基础理论(因为它更易于可视化)。
我已经为此解决方案,可以请有人确认这是否正确吗?
权重向量是(0,-2)并且W_0是3
有人可以解释一下如何设计SVM决策功能吗?或指向我讨论具体示例的资源。
编辑
对于下面的示例,我可以看到等式分离了具有最大边距的类。但是,如何以以下形式调整权重并编写超平面方程式。
在考虑更高的维度之前,我试图在二维空间中正确理解基础理论(因为它更易于可视化)。
我已经为此解决方案,可以请有人确认这是否正确吗?
权重向量是(0,-2)并且W_0是3
Answers:
激励SVM至少有两种方法,但是我将在这里采用更简单的方法。
现在,暂时忘记有关SVM的所有知识,而只关注当前的问题。给您一组点以及来自一些标签()。现在,我们试图找到2D线,使所有带有标签点都落在该线的一侧,而所有带有标签点都落在另一侧。
首先,认识到是2D线,并且表示该线的“一侧”,而表示该线的“另一侧”。线。
从上面可以得出结论,我们想要一些矢量使得 所有点与和对于 [1]的所有点,。瓦特0 + 瓦特1 X 我1 + 瓦特2 X 我2 ≥ 0 X 我Ŷ 我 = 1 瓦特0 + 瓦特1 X 我1 + 瓦特2 X 我2 < 0 X 我y i = − 1
让我们假设这样的行确实存在,那么我可以通过以下方式定义分类器:
我在上面使用了一个任意的目标函数,我们暂时不在乎使用哪个目标函数。我们只想要一个满足我们的约束。由于我们假设存在一条线,这样我们就可以用该线将两个类分开,因此我们将找到上述优化问题的解决方案。
上面不是SVM,但是它将为您提供分类器:-)。但是,此分类器可能不是很好。但是,您如何定义一个好的分类器?好的分类器通常是在测试集上表现良好的分类器。理想情况下,您将遍历所有可能将训练数据分开的,并查看其中哪个在测试数据上表现良好。但是,有无限个,所以这是完全没有希望的。相反,我们将考虑一些启发式方法来定义一个好的分类器。一种试探法是,将数据分开的线与所有点都应足够远(即,在点和线之间始终存在间隙或边距)。其中最好的分类器是利润最大的分类器。这就是在SVM中使用的东西。
代替的坚持所有点与和对于所有点与,如果我们坚持所有点与和所有点与,那么我们实际上是在坚持点离线很远。与此要求相对应的几何余量为。
因此,我们得到以下优化问题, 稍微简洁写本的形式是, 这基本上是SVM的基本公式。为了简洁起见,我跳过了很多讨论。希望我仍然能理解大部分想法。
CVX脚本解决示例问题:
A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end
附录-几何边距
上面我们已经请求我们寻找使得或通常是。您在此处看到的LHS称为功能裕度,因此我们在此处要求的功能裕度为。现在,我们将根据给定的功能裕度要求尝试计算几何裕度。
什么是几何余量?几何裕量是正例中点与负例中点之间的最短距离。现在,上面要求的距离最短的点的功能边距可以大于1。但是,让我们考虑极端情况,即当它们最靠近超平面时,最短点的功能边距完全相等。到1。令是正例上的点是的点,是负例上的点是。现在,当时,和之间的距离将是最短的 垂直于超平面。
现在,利用以上所有信息,我们将尝试找到,这是几何余量。
[1]选择和哪一方实际上并不重要。您只需要与选择的内容保持一致即可。