SVM的基本思想

一、SVM的基本思想

SVM的基本思想是在样本的向量空间中寻找一个超平面,使得两类样本被分割在平面的两端。这样的平面理论上有无穷多个,但SVM的目标是找到一个最优的超平面,即两侧距离超平面最近的样本点到超平面的距离被最大化的超平面。这个最优的超平面所对应的判别模型即为支持向量机。距离超平面最近的样本点被称为支持向量。

二、线性可分情况下的SVM求解

  1. 问题转化

    对于线性可分的情况,SVM的求解可以转化为一个凸优化问题。具体来说,就是找到一个超平面(wx+b=0),使得两类样本点分别位于该平面的两侧,并且距离该平面最近的样本点到平面的距离最大化。

  2. 函数间隔和几何间隔

    • 函数间隔:对于给定的超平面和样本点,样本点到超平面的函数间隔定义为y(wx+b)。但是,函数间隔存在一个问题,即当w和b成倍增加时,函数值也会成倍增加,而超平面并没有改变。因此,需要引入几何间隔。
    • 几何间隔:几何间隔是样本点到超平面的真正距离。它通过对w进行约束(通常假设w的模为1),然后计算样本点到超平面的垂直距离来得到。
  3. 优化问题

    SVM的目标是最大化几何间隔,这可以转化为一个优化问题。具体来说,就是最小化w的模的平方(即||w||^2/2),同时满足所有样本点到超平面的函数间隔大于等于1的约束条件。这个优化问题可以表示为:

其中,n是样本点的数量,x_i和y_i分别是第i个样本点的特征向量和标签。

  1. 拉格朗日乘子法和对偶问题

    为了求解上述优化问题,可以使用拉格朗日乘子法将其转化为一个无约束的优化问题。具体来说,就是引入拉格朗日乘子α_i(i=1,2,...,n),然后构造拉格朗日函数:

接着,对拉格朗日函数分别求w和b的偏导数,并令其等于0,可以得到w和b的表达式(这些表达式中包含了α_i)。然后,将w和b的表达式代入拉格朗日函数,得到一个新的函数(即拉格朗日对偶函数),该函数只包含α_i作为变量。最后,求解这个新的函数的最大值(即对偶问题的解),就可以得到原始优化问题的解。

  1. KKT条件和支持向量

    在求解对偶问题的过程中,需要满足KKT条件(Karush-Kuhn-Tucker条件)。这些条件包括:

    • α_i≥0
    • y_i(wx_i+b)-1≥0
    • α_i(y_i(wx_i+b)-1)=0

    其中,第三个条件表明,只有当样本点位于间隔边界上(即y_i(wx_i+b)=1)时,对应的α_i才可能不为0。这些位于间隔边界上的样本点就是支持向量。

  2. 求解α_i

    通过对偶问题,可以求解出α_i的值。然后,利用α_i和样本点的特征向量x_i,可以求解出w和b的值(通过w的表达式和任意一个支持向量)。

  3. 决策函数

    最后,可以得到SVM的决策函数:f(x)=sign(wx+b)。对于新的样本点x,将其代入决策函数,就可以得到其所属的类别。

三、线性不可分情况下的SVM求解

对于线性不可分的情况,SVM通过引入核函数将样本点映射到高维空间,使得在高维空间中样本点变得线性可分。然后,在高维空间中应用线性可分情况下的SVM求解方法。

  1. 核函数

    核函数的作用是将原始输入空间中的样本点映射到新的特征空间(通常是高维空间)。常用的核函数包括线性核、多项式核、径向基函数(RBF)核(也称为高斯核)等。选择合适的核函数对于SVM的性能至关重要。

  2. 映射后的优化问题

    在引入核函数后,原始的优化问题中的x_i和x_j(表示两个样本点的特征向量)需要被替换为φ(x_i)和φ(x_j)(表示映射后的特征向量)。然后,在新的特征空间中应用线性可分情况下的SVM求解方法。

  3. 软间隔和松弛变量

    对于线性不可分的情况,通常允许某些样本点被错误分类(即位于间隔边界以内或另一侧)。这可以通过引入软间隔和松弛变量来实现。具体来说,就是在优化问题中添加一个惩罚项(即松弛变量的平方和乘以一个正数C),以允许一定的分类错误。同时,约束条件也相应地进行调整(即允许函数间隔小于1)。

  4. 求解过程

    软间隔情况下的SVM求解过程与线性可分情况类似,但需要对拉格朗日函数、KKT条件等进行相应的调整。最终,可以求解出α_i、w和b的值,并得到决策函数。

相关推荐
NAGNIP11 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab13 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab13 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP16 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年16 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼17 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS17 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区18 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈18 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang18 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx