算法工程师修仙之路:吴恩达机器学习(十五)

本文深入探讨了支持向量机(SVM)的工作原理,详细解释了大间隔分类器的数学基础,包括向量的内积、范数以及如何通过极小化参数向量的平方范数来寻找最佳决策边界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吴恩达机器学习笔记及作业代码实现中文版

第十章 支持向量机


大间隔分类器的数学原理

  • 假设我有两个二维向量uuuvvvuTvu^TvuTv也叫做向量uuuvvv之间的内积。

    • 向量uuu在横轴上取值为某个u1u_1u1,而在纵轴上,高度是某个u2u_2u2作为uuu的第二个分量。
    • ∥u∥∥u∥u表示uuu的范数,即uuu的长度,即向量uuu的欧几里得长度。∥u∥=u12+u22∥u∥=\sqrt{u_1^2+u_2^2}u=u12+u22,这是向量uuu的长度,它是一个实数。
    • 现在让我们回头来看向量vvvvvv是另一个向量,它的两个分量v1v_1v1v2v_2v2是已知的。
    • 我们将向量vvv做一个直角投影到向量uuu上,接下来度量投影的长度ppp,或
      者说是向量vvv投影到向量uuu上的量,因此可以将uTv=p∗∥u∥u^Tv=p*∥u∥uTv=pu
    • 另一个计算公式是:uTvu^TvuTv就是[u1,u2][u_1, u_2][u1,u2]这个一行两列的矩阵乘以vvv。因此可以得到u1∗v1+u2∗v2u_1*v_1+u_2*v_2u1v1+u2v2
    • uTv=vTuu^Tv=v^TuuTv=vTu,因此如果你将uuuvvv交换位置,将uuu投影到vvv上,而不是将vvv投影到uuu上,然后做同样地计算,事实上可以得到同样的结果。
    • ppp事实上是有符号的,即它可能是正值,也可能是负值。
    • 在内积计算中,如果uuuvvv之间的夹角小于 90 度,那么ppp是正值。然而如果这个夹角大于 90度,则ppp将会是负的,两个向量之间的内积也是负的。
      在这里插入图片描述
  • 支持向量机模型中的目标函数:
    在这里插入图片描述

    • 接下来忽略掉截距,令θ0=0\theta_0 = 0θ0=0,这样更容易画示意图。我将特征数n置为2,因此我们仅有两个特征x1,x2x_1, x_2x1,x2,当我们仅有两个特征时,这个式子可以写作:12(θ12+θ22)=12(θ12+θ22)2\frac{1}{2}(\theta_1^2+\theta_2^2)=\frac{1}{2}(\sqrt{\theta_1^2+\theta_2^2})^221(θ12+θ22)=21(θ12+θ22)2。括号里面的这一项是向量θ\thetaθ的范数,或者说是向量θ\thetaθ的长度。
    • 因此支持向量机做的全部事情,就是极小化参数向量θ\thetaθ范数的平方,或者说长度的平方。
      在这里插入图片描述
    • 我们考察一个单一的训练样本,我有用一个叉来表示一个正样本x(i)x^{(i)}x(i),意思是在水平轴上取值为x1(i)x_1^{(i)}x1(i),在竖直轴上取值为x2(i)x_2^{(i)}x2(i)
      在这里插入图片描述
    • 我们计算的方式就是将训练样本投影到参数向量θ\thetaθ,然后我来看一看这个线段的长度,我将它画成红色。我将它称为p(i)p^{(i)}p(i)用来表示这是第iii个训练样本在参数向量θ\thetaθ上的投影。
    • θTx(i)\theta^Tx^{(i)}θTx(i)将会等于ppp乘以向量θ\thetaθ的长度或范数,即θ1∗x1(i)+θ2∗x2(i)\theta_1*x_1^{(i)}+\theta_2*x_2^{(i)}θ1x1(i)+θ2x2(i)
    • 这里表达的意思是:θTx(i)&gt;=1\theta^Tx^{(i)}&gt;=1θTx(i)>=1或者θTx(i)&lt;1\theta^Tx^{(i)}&lt;1θTx(i)<1的约束是可以被p(i)x&gt;=1p^{(i)}x&gt;=1p(i)x>=1这个约束所代替的。因为θTx(i)=p(i)∥θ∥\theta^Tx^{(i)}=p^{(i)}∥\theta∥θTx(i)=p(i)θ,将其写入优化目标会得到没有了约束的p(i)∥θ∥p^{(i)}∥\theta∥p(i)θ
      在这里插入图片描述
    • 优化目标函数可以被写成12(θ12+θ22)=12(θ12+θ22)2=12∣∣θ∣∣2\frac{1}{2}(\theta_1^2+\theta_2^2)=\frac{1}{2}(\sqrt{\theta_1^2+\theta_2^2})^2=\frac{1}{2}||\theta||^221(θ12+θ22)=21(θ12+θ22)2=21θ2
    • 对于选择的参数θ\thetaθ,可以看到参数向量θ\thetaθ事实上是和决策界是90度正交的,θ0=0\theta_0 = 0θ0=0的简化仅仅意味着决策界必须通过原点(0, 0)。
    • 现在看一下这对于优化目标函数意味着什么:
      在这里插入图片描述
    • 比如第一个样本x(1)x^{(1)}x(1),这个样本到参数θ\thetaθ的投影是短的红线段,就等于p(1)p^{(1)}p(1),它非常短。类似地,第二个训练样本x(2)x^{(2)}x(2)θ\thetaθ的投影是短的粉色线段p(2)p^{(2)}p(2)。这个投影非常短,p(2)p^{(2)}p(2)事实上是一个负值。
    • 我们会发现这些p(i)p^{(i)}p(i)将会是非常小的数,因此当我们考察优化目标函数的时候,对于正样本而言,如果p(1)p^{(1)}p(1)在这里非常小,那就意味着我们需要θ\thetaθ的范数非常大。类似地,对于负样本而言,p(2)p^{(2)}p(2)是一个非常小的数,因此唯一的办法就是θ\thetaθ的范数变大。
    • 但是我们的目标函数是希望找到一个参数θ\thetaθ,它的范数是小的。因此,这看起来不像是一个好的参数向量θ\thetaθ的选择。
      在这里插入图片描述
    • 因此这意味着通过选择右边的决策界,而不是左边的那个,支持向量机可以使参数θ\thetaθ的范数变小很多。如果我们想令θ\thetaθ的范数变小,从而令θ\thetaθ范数的平方变小,就应该让支持向量机选择右边的决策界。这就是支持向量机如何能有效地产生大间距分类的原因。
    • 我们希望正样本和负样本投影到θ\thetaθ的值大。要做到这一点的唯一方式就是选择这条绿线做决策界。这是大间距决策界来区分开正样本和负样本这个间距的值。这个间距的值就是p(1),p(2),p(3)p^{(1)}, p^{(2)}, p^{(3)}p(1),p(2),p(3)等等的值。通过让间距变大,支持向量机最终可以找到一个较小的θ\thetaθ范数。这正是支持向量机中最小化目标函数的目的。
    • 以上就是为什么支持向量机最终会找到大间距分类器的原因。因为它试图极大化这些p(i)p^{(i)}p(i)的范数,它们是训练样本到决策边界的距离。
    • 最后一点,我们的推导自始至终使用了一个简化假设,就是参数θ0=0\theta_0=0θ0=0θ0=0\theta_0=0θ0=0的意思是我们让决策界通过原点。如果你令θ0̸=0\theta_0\not=0θ0̸=0的话,含义就是你希望决策界不通过原点。实际上,支持向量机产生大间距分类器的结论,会被证明同样成立,证明方式是非常类似的,是我们刚刚做的证明的推广。
  • 即便θ0\theta_0θ0不等于0,支持向量机要做的事情都是优化这个目标函数对应着CCC值非常大的情况,支持向量机仍然会找到正样本和负样本之间的大间距分隔。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值