【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机

Lecture 12 支持向量机 Support Vector Machines

12.1 优化目标 Optimization Objective

支持向量机(Support Vector Machine) 是一个更加强大的算法,广泛应用于工业界和学术界。与逻辑回归和神经网络相比, SVM在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。我们通过回顾逻辑回归,一步步将其修改为SVM。

首先回顾一下逻辑回归:

其 cost function 公式如下(这里稍微有点变化,将负号移到了括号内):

现在只考虑一个训练数据 x ,把 hθ(x)=1/(1+e-θTx) 带入公式,得到下面的式子:

下一步, 使用 z 标示其中的 θTx, 则之前的目标变为:

If y = 1, we want hθ(x) ≈ 1, z>>0;
If y = 0, we want hθ(x) ≈ 0, z<<0; 

当 y = 1 或 y = 0 时, 上面逻辑回归的 cost function 分别只剩下一项, 对应下面两张图中的灰色曲线:

      当 y=1 时,随着 z 增大,h(x)=1/(1+e-z)逼近1,cost逐渐减小。     当 y=0 时,随着 z 减小,h(x)=1/(1+e-z)逼近0,cost逐渐减小。

现在我们用新的 cost function 来代替逻辑回归中的cost function,即上图中玫瑰色的曲线,它分为直线和斜线两部分。左边的函数称为cost1(z),右边函数称为 cost0(z)。

在之后的优化问题中,这种形式的 cost function 会为 SVM 带来计算上的优势。

现在开始构建SVM

逻辑回归的 cost function 分为A、B 两个部分。 我们做下面的操作:

1) 使用之前定义的 cost1() 和 cost0() 替换公式中对应的项。
(2) 根据 SVM 的习惯,除去 1/m 这个系数
因为1/m 仅是个常量,去掉它也会得出同样的 θ 最优值。
(3)同样根据 SVM 的习惯,做一点变动
对于逻辑回归, cost function 为 A + λ × B ,通过设置不同的 λ 达到优化目的。
对于SVM, 我们删掉 λ,引入常数 C, 将 cost function 改为 C × A + B, 通过设置不同的 C 达到优化目的。 (在优化过程中,其意义和逻辑回归是一样的。可以理解为 C = 1 / λ)

最终得到了 SVM 的代价函数:

逻辑回归中假设是输出一个概率值。  而 SVM 直接预测 y = 1,还是y = 0。

当θTx ≥ 0 时,SVM 会预测结果为1,其他情况下,预测结果为0。

12.2 最大边界的直观理解 Large Margin Intuition

猜你喜欢

转载自www.cnblogs.com/maxiaodoubao/p/10213597.html