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。