【吴恩达机器学习笔记】第十二章 支持向量机

搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多人工智能、机器学习干货

csdn:https://blog.csdn.net/qq_36645271

github:https://github.com/aimi-cn/AILearners


第十二章 支持向量机

12.1 优化目标

12.1.1 逻辑回归回顾

为了描述支持向量机(support vector machine),我们先从逻辑回归开始,然后做一些小小的改动,来得到一个支持向量机。

  • 逻辑回归的假设函数:
    在这里插入图片描述

  • sigmoid激活函数图像:
    在这里插入图片描述

  • 逻辑回归的作用:

    • 如果样本中 y = 1 y=1 y=1,我们希望 h ( x ) ≈ 1 h(x)\approx1 h(x)1,那么 θ T x > > 0 \theta^Tx>>0 θTx>>0
    • 如果样本中 y = 0 y=0 y=0,我们希望 h ( x ) ≈ 0 h(x)\approx0 h(x)0,那么 θ T x &lt; &lt; 0 \theta^Tx&lt;&lt;0 θTx<<0
  • 逻辑回归的代价函数:
    在这里插入图片描述
    这里的代价函数没有求和,代表了每个单独训练样本对逻辑回归的总体目标函数所做的“贡献”。之后再将 h θ ( x ) h_\theta(x) hθ(x)带入得到下式:
    在这里插入图片描述
    现在让我们考虑两种情况—— y = 1 y=1 y=1 y = 0 y=0 y=0因为在这两种情况下代价函数只有一项有用。

  • 加入 y = 1 y=1 y=1(我们希望 θ T x &gt; &gt; 0 \theta^Tx&gt;&gt;0 θTx>>0),这时目标函数中只有第一项起作用:
    在这里插入图片描述
    在上图中,我们可以看到当 z z z很大时,也就是 θ T x \theta^Tx θTx很大时,函数所对应的值会变得很小,也就是它对代价函数的影响很小,这也解释了为什么逻辑回归在“看见” y = 1 y=1 y=1这样的样本时会将 θ T x \theta^Tx θTx设置成一个很大的值。

为了构建支持向量机,我们要从这个代价函数开始,然后进行小量修改:
在这里插入图片描述
新的代价函数从1开始,1的右侧是水平的,左侧是一条和逻辑回归幅度相似的直线(这条直线的斜率并不是很重要)。我们把这个新的代价函数命名为 c o s t 1 ( z ) cost_1(z) cost1(z)新的代价函数的作用于逻辑回归很相似,但支持向量机拥有计算上的优势,并且使得之后的优化问题变得更简单

  • 加入 y = 0 y=0 y=0(我们希望 θ T x &lt; &lt; 0 \theta^Tx&lt;&lt;0 θTx<<0),这时目标函数中只有第二项起作用:
    在这里插入图片描述
    y = 1 y=1 y=1时的情况相同,我们用一个新的代价函数来代替逻辑回归的代价函数,并将它命名为 c o s t 0 ( z ) cost_0(z) cost0(z)

12.1.2 支持向量机

让我们先来回顾一下逻辑回归的代价函数:
在这里插入图片描述
与之前不同的是,我们把min前面的符号放到了括号里。对于支持向量机而言,我们要做的实际上是把括号里的两个部分换成 c o s t 1 ( θ T x ( i ) ) cost_1(\theta^Tx^{(i)}) cost1(θTx(i)) c o s t 0 ( θ T x ( i ) ) cost_0(\theta^Tx^{(i)}) cost0(θTx(i))

除此之外,我们还要对支持向量机的的代价函数做一些改变:

  • 去除 1 m \frac{1}{m} m1这一项。这样同样能得到参数的最优值,因为 1 m \frac{1}{m} m1只是一个常数。
  • 在逻辑回归中,目标函数有两项——代价函数(A)和正则化项(B),我们要做的是平衡着两项。我们要做的不是计算 A + λ B A+\lambda B A+λB,而是通过设定不同的正则化参数以便能够权衡两项,即我们现在多大程度上去适应训练集,还是更多的去保持正则化参数足够小。在支持向量机中,我们会使用另一个参数C来权衡。

最后我们就得到了支持向量机的代价函数:
在这里插入图片描述
与逻辑回归不同的是,SVM并不会输出概率,相对的,支持向量机进行了一个直接的预测,预测 y = 1 y=1 y=1还是 y = 0 y=0 y=0
h θ ( x ) = { 1 if  θ T x ≥ 0 0 otherwise h_\theta(x)=\begin{cases} 1&amp; \text{if $\theta^Tx\geq0$}\\ 0&amp; \text{otherwise} \end{cases} hθ(x)={ 10if θTx0otherwise

12.2 大间距的直观理解

12.2.1 大间距分类器

有时候人们会把支持向量机叫做大间距分类器(large margin classifiers),下图是支持向量机的代价函数:
在这里插入图片描述
下图中左边我们画出关于 z z z的代价函数 c o s t 1 ( z ) cost_1(z) cost1(z),在右边画出关于 z z z的代价函数 c o s t 0 ( z ) cost_0(z) cost0(z)
在这里插入图片描述
现在我们要讨论的是如何使这些代价函数变得更小。

  • y = 1 y=1 y=1时,那么仅当 z ≥ 1 z\geq1 z1时,有 c o s t 1 ( z ) = 0 cost_1(z)=0 cost1(z)=0
  • y = 0 y=0 y=0时,那么仅当 z ≤ − 1 z\leq-1 z1时,有 c o s t 1 ( z ) = 0 cost_1(z)=0 cost1(z)=0

但是,支持向量机的要求更高,不仅仅要能正确分开输入的样本,即不仅仅要求 θ T x &gt; 0 \theta^Tx&gt;0 θTx>0,我们需要的是比0值大很多,比如大于等于1,我也想这个比0小很多,比如我希望它小于等于-1,这就相当于在支持向量机中嵌入了一个额外的安全因子,或者说安全的间距因子。

12.2.2 支持向量机的决策边界

在这里插入图片描述
如果在上图支持向量机的损失函数中,我们将C的值设置的非常大,那么最小化优化目标的时候,我们将迫切希望找到一个值,能让第一项等于0。

  • 无论何时 y ( i ) = 1 y^{(i)}=1 y(i)=1 θ T x ( i ) ≥ 1 \theta^Tx^{(i)}\geq1 θTx(i)1
  • 无论何时 y ( i ) = 0 y^{(i)}=0 y(i)=0 θ T x ( i ) ≤ − 1 \theta^Tx^{(i)}\leq-1 θTx(i)1

现在我们要把优化问题看作是通过参数选择来使第一项等于0,那么优化问题就会变成最小化:
C × 0 + 1 2 ∑ i = 1 n θ j 2 C\times0+\frac{1}{2}\sum_{i=1}^{n}\theta_j^2 C×0+21i=1nθj2
这个式子受以下条件限制:

  • θ T x ( i ) ≥ 1 \theta^Tx^{(i)}\geq1 θTx(i)1,如果 y ( i ) = 1 y^{(i)}=1 y(i)=1
  • θ T x ( i ) ≤ − 1 \theta^Tx^{(i)}\leq-1 θTx(i)1,如果 y ( i )
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值