机器学习学习笔记(六)--支持向量机

本文深入探讨支持向量机(SVM)的数学原理和工程实现,包括其物理含义、数学推导、支持向量概念、拉格朗日乘子法、核函数的作用以及软间隔与正则化的意义。通过对SVM的学习,理解其如何在机器学习中解决非线性分类问题并提升模型的泛化能力。

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

专业词汇

Large Margin
超平面 (hyperplane)
鲁棒性(Robustness)
支持向量机(Support Vector Machine)
"间隔" (margin)
最大|间隔 (maximum margin)
个凸二次规划(convex quadratic programming) 问题
"对偶问题" (dual problem)
KKT (Karush-Kuhn-Tucker)
SMO (Sequential Minimal Optimization) 
"核函数" (kernel function)
"核技巧" (kernel trick).
"支持向量展式"(support vector expansion)
"再生核希尔伯特空 间" (Reproducing Kernel Hilbert Space,简称 RKHS)
"软间隔" (soft margin)
"硬间隔" (hard margin

内容概括

经典二分类问题,决策边界泛化能力大(鲁棒性)

物理含义

选出距离雷区最远的分类超平面(雷区:分类边界上的点)
该超平面对训练样本局部扰动的容忍性最好,鲁棒性

数学原理推导

下面推到过程中可能会有在x的位置写成x的函数的情况,全部当x就好,具体用途见后面的板块

由法向量w和位置b决定超平面方程:
在这里插入图片描述

点x超平面的距离

在这里插入图片描述

在这里插入图片描述

支持向量机间隔

当面对确定的样本集时,SVM间隔只与超平面的法向量有关
在这里插入图片描述
对于确定的样本集,法向量w的转置确定以后---->雷区边界确定------>超平面确定(两雷区中间线)
雷区边界方程: wx+b=±c (因为超平面定义在两雷区边界中点)
该超平面的方程:wx+b=0 (w有转置符号)
c是一个确定的数值,我们为了推导方便,令c=1
在这里插入图片描述

支持向量

雷区边界上的点为–支持向量–,支持向量最少有两个
是否为支持向量:在确定w下,在用拉格朗日乘子法的过程中拉格朗日乘子是否为0可以来反应某样本点是否为支持向量

目标函数

点超平面的距离L为: -------------以yi来代替原有的绝对值。
在这里插入图片描述
min用来找支持向量
max是代表找最大SVM间隔
在这里插入图片描述

最终代入这个公式的是雷区边界上的两个支持向量,所以min后面那一坨等于常数,前面我们已经把他定位 1 了,所以目标只与w有关

目标:距离L最大化

在这里插入图片描述

目标函数求解

拉格朗日乘子法:核心目的:把带约束条件的原函数转换为了不带约束条件的拉格朗日函数进行求解

用拉格朗日乘子法,求中间参数的解,再找出该中间参数和w的关系
由于约束条件是所有样本点都在参与,所以有m个约束条件(m个样本点)

  • 带约束的原函数转化为不带约束的拉格朗日函数

在这里插入图片描述

在这里插入图片描述
此时的----L----需要先在Alpha的主导下得到最大值,这样对偶函数才能等于原目标函数
对于支持向量:Alpha 不为0,但后面括号内为0
非支持向量:Alpha 为0

  • 拉式函数—>拉式对偶函数
    由于拉格朗日方程需要先搞定Alpha才能去求w和b,所以在此变换为对偶方程

在这里插入图片描述

  • 此时L有三个变量,求极值的常用方法就是偏导等0,用其对偶问题的对偶性质先对wb偏导等0
    在这里插入图片描述
    在这里插入图片描述

  • 最终解
    在这里插入图片描述
    只剩一个变量,只要注意解要满足约束条件就行,代入关系求出w,b即可
    w可由乘子代入"偏导为0"的关系中求出,"偏导为0"并没有b的关系,所以利用"支持向量在雷区边界"这以关系求的
    在这里插入图片描述
    为了b值更好的鲁棒性,使用所有支持向量求解的平均值
    在这里插入图片描述

关于对偶函数中拉格朗日乘子的解释
  • 每一个乘子对应一个样本(xi,yi),乘子需要满足KKT条件

KKT条件是为了是使对偶函数求出的最值等于原目标函数
与约束有关

在这里插入图片描述

  • 乘子的存在为了解决掉对偶函数的附加项

在这里插入图片描述
1,当"(wxi+b)yi"不等于1时,该样本不是雷区边界上的点,乘子必须是0,
2,当"(wxi+b)yi"等于1时,样本是雷区边界上的点,即支持向量

  • 乘子反映了:大部分的训练样本都不需保留,最终模型仅与支持向量有关

工程层面实现算法

如果某非线性规划的目标函数为自变量的二次函数,约束条件全是线性函数,就称这种规划为二次规划

"数学原理推倒"中的"最终解"属于二次规划问题,工程的规模正比于样本数,会造成很大开销,为了避开这个障碍,通过利用问题本身的特性,有很多高效算法

SMO
  • 基本思路
    是先固定向之外的所有参数,然后求向上的极值.由于 存在约束艺汇1 叫ντ 工 0,若固定向之外的其他变量?则 αz 可由其他变量导出. 于是, SMO 每次选择两个变量问和町,并固定其他参数,在参数初始化(所有的 α 都要初始化) 后, SMO 不断执行如下两个步骤直至收敛:
    1·选取一对需更新的变量向 αi 和 αj
    2·固定向 αi 和 αj 以外的参数,求 “最终解” 获得更新后的 αi 和 αj
  • 参数 α 的选取顺序

只要选取的 αi 和 αj 中有一个不满足 KKT 条件,目标函数就会在选代后减小,KKT 条件违背的程度越大?则 变量更新后可能导致的目标函数值减幅越大

理论SMO应该先选取违背KKT条件程度最大的变量,但由于比较各变量所对应的目标函数值减幅的复杂度过高,不能按理论来比较
所以SMO采用了一 个启发式:
使选取的两变量所对应样本之间的问隔最大. (直观的解释是,这样的两个变量有很大的差别,与对两个相似的变量进行更新相比,对它们进行更新会带给目标函数值更大的变化)
这样仅优化两个参数的过程非常高效

核函数

核函数的引入

前面所有的推导都是在训练样本线性可分的情况下,只有线性可分才会存在这个超平面,但对于有些问题线性不可分,不存在能分开两类样本的超平面,例如:
在这里插入图片描述
对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个高维的特征空间内线性可分
在这里插入图片描述

令 cþ(x) 表示将 x 映射后的特征向量,最终解就变成:
在这里插入图片描述

由于映射的特征维数可能很高甚至是无穷维,式中有一步是非常难的,
在这里插入图片描述
内积几乎是不可能直接计算的,为了避开计算内积,改为核函数来计算(等效于内积):
在这里插入图片描述

核函数是否存在以及常用的和核函数

见于"西瓜书"P128

软间隔与正则化

软间隔&硬间隔区别

硬间隔:前面介绍的支持向量机形式是要求所有样本均满足约束,即所有样本都必须划分准确
软间隔:允许某些样本不满足 "yi(ωTXi + b) > 1"的约束

软间隔存在的原因

在现实任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;退一步说,即使恰好找到了某个核函数使训练集在特征空间中线性可分?也很难断定这个貌似线性可分的结果不是由于过拟合所造成的,缓解该问题的一个办法是允许支持向量机在一些样本上出错.
在这里插入图片描述

软间隔&硬间隔在目标函数层面上的表达
  • 样本中的各点在雷区分界线上还是在线内线外取决于"(wxi+b)"和1的关系(“等于1:在线上”------“大于1:在线内”------“小于1:在线外”)
  • "(wxi+b)>1"在线内的就是异常的点,所以,此时引入一个松弛变量(ξ>0),使得函数加上松弛变量大于等于1:yi(wxi+b)≥1−ξi(变相地符合原约束条件)
    目标函数变为:
    在这里插入图片描述
    其中C>0称为惩罚参数,一般由应用问题决定,C越大时对误分类的惩罚越大

原目标函数只有左半部分,是为了求最小值,得到最大间隔
而新的目标函数前半部分是为了最大间隔,后半部分使误分类点的个数尽量小
C是为了在目标函数中调节两个目标的参数

因为新的目标函数有两种约束,其拉格朗日函数为
在这里插入图片描述

对偶函数为:
在这里插入图片描述
新的KKT条件
在这里插入图片描述

软间隔下拉格朗日乘子的解释

对于任意训练样本(xi,yi),总有αi=0或gi(w,b)=0
1,由拉格朗日乘子判断样本位置

  • 若αi=0,ξi<0,该样本点则不会对决策平面产生任何影响
  • 若0<αi<C,则同时必有gi(w,b)=0即yi(wTxi+b)=1−ξi,且ri>0,有ξi=0,所以该样本恰在最大边界上,即支持向量
  • 若αi=C,则必有ri=0,进而有ξi>0,该样本为异常样本

2,异常样本可能判断错误或正确

  • 若0<ξi≤1,则该样本点落在超平面和雷区边界之间
  • 若ξi>1,则样本点被错误分类

支持向量回归

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值