当前位置: 首页 > news >正文

机器学习(四):支持向量机

支持向量机

\hspace{1.68em}SVM 作为一种目标中就考虑到泛化能力的模型,在很多分类场景中并不亚于后面说到的 RF,XGBoost。提出用超平面将不同的分类进行分隔,在超平面一边的样本的标签为 1,另一边样本的标签为 -1,用超平面两侧的支持向量到超平面的距离之和来表示当前模型对样本分类的 “分隔程度”,距离越大,间隔越大,分隔程度越好。

算法过程

线性可分情况

\hspace{1.68em}在这一节中介绍一个超平面进行二分类的场景。给定训练集 D={(x1,y1),(x2,y2),…,(xn,yn)}D = \{(\textbf{x}_1, y_1), (\textbf{x}_2, y_2), \dots, (\textbf{x}_n, y_n)\}D={(x1,y1),(x2,y2),,(xn,yn)},其中 xi∈Rd\textbf{x}_i \in \mathbb{R}^dxiRdyi∈{−1,+1}y_i \in \{-1, +1\}yi{1,+1}。 假设存在超平面 wTx+b=0w^T x + b = 0wTx+b=0 能完全正确分类所有样本,即:
{wTxi+b≥+1,若 yi=+1,wTxi+b≤−1,若 yi=−1. \begin{cases} \textbf{w}^T \textbf{x}_i + b \geq +1, & \text{若 } y_i = +1, \\ \textbf{w}^T \textbf{x}_i + b \leq -1, & \text{若 } y_i = -1. \end{cases} {wTxi+b+1,wTxi+b1, yi=+1, yi=1.
\hspace{1.68em}可以用一个不等式就描述模型中超平面和不同分类样本的标签之间的关系:
yi(wTxi+b)≥1,∀i=1,2,…,n.y_i (\textbf{w}^T \textbf{x}_i + b) \geq 1, \quad \forall i=1,2,\dots,n.yi(wTxi+b)1,i=1,2,,n.
\hspace{1.68em}值得注意的是:那些穿过样本中点的决策边界总满足:wTxi+b=1\textbf{w}^T \textbf{x}_i + b =1wTxi+b=1wTxi+b=−1\textbf{w}^T \textbf{x}_i + b =-1wTxi+b=1

分隔程度

\hspace{1.68em}在文章的一开始就提到:SVM 用超平面两侧的支持向量到超平面的距离之和来表示当前模型对样本分类的 “分隔程度”,距离越大,间隔越大,分隔程度越好。 这种间隔可以通过两种方式求出来。


方式一:
\hspace{1.68em}点到平面的距离公式:向量 x\textbf{x}x 到超平面 wTx+b=0\textbf{w}^T \textbf{x} + b = 0wTx+b=0 的几何距离为: ∣wTx+b∣∥w∥.\frac{|\textbf{w}^T \textbf{x} + b|}{\|w\|}.wwTx+b. 那么不同分类的支持向量到超平面的距离之和为:∣wTxl+  b∣∥w∥+∣wTxr+  b∣∥w∥=2∥w∥\frac{|\textbf{w}^T \textbf{x}_l +\;b|}{\|w\|} + \frac{|\textbf{w}^T \textbf{x}_r + \;b|}{\|\textbf{w}\|}=\frac{2}{\|\textbf{w}\|}wwTxl+b+wwTxr+b=w2


方式二:
\hspace{1.68em}向量投影定理:一个向量 a\textbf{a}a 在另一个向量 b\textbf{b}b 方向上的投影长度 d 为:|a⋅b∥b∥|.\textbf{|}\textbf{a}\cdot\frac{\textbf{b}}{\|\textbf{b}\|}\textbf{|}.|abb|.
那么不同分类的支持向量到超平面的距离之和为:(xl−xr)⋅w∥w∥=|wTxl+  b  −  wTxr+  b∥w∥|=2∥w∥(\textbf{x}_l-\textbf{x}_r)\cdot\frac{\textbf{\textbf{w}}}{\|\textbf{\textbf{w}}\|}=\textbf{|}\frac{\textbf{w}^T \textbf{x}_l +\;b\;-\;\textbf{w}^T \textbf{x}_r +\;b}{\|\textbf{\textbf{w}}\|}\textbf{|}=\frac{2}{\|w\|}(xlxr)ww=|wwTxl+bwTxr+b|=w2


最大化分隔程度

\hspace{1.68em}SVM 的目标是找到超平面 (w,b)(w, b)(w,b),使得 几何间隔 最大,即: max⁡w,b2∥w∥subject toyi(wTxi+b)≥1, ∀i.\max_{\textbf{w}, b} \frac{2}{\|\textbf{w}\|} \quad \text{subject to} \quad y_i (\textbf{w}^T x_i + b) \geq 1, \, \forall i.w,bmaxw2subject toyi(wTxi+b)1,i.

等价于:min⁡w,b12∥w∥2subject toyi(wTxi+b)≥1, ∀i.\min_{\textbf{w}, b} \frac{1}{2}\|\textbf{w}\|^2 \quad \text{subject to} \quad y_i (\textbf{w}^T x_i + b) \geq 1, \, \forall i.minw,b21w2subject toyi(wTxi+b)1,i.

引入拉格朗日乘子
构造拉格朗日函数:
L(w,b,α)=12∥w∥2−∑i=1nαi[yi(wTxi+b)−1], \mathcal{L}(w, b, \alpha) = \frac{1}{2}\|w\|^2 - \sum_{i=1}^n \alpha_i \left[ y_i (w^T x_i + b) - 1 \right], L(w,b,α)=21w2i=1nαi[yi(wTxi+b)1],
其中 αi≥0\alpha_i \geq 0αi0 是拉格朗日乘子。
对偶问题推导

  1. 求极小值(对 wwwbbb)
    分别对 wwwbbb 求偏导并令其为 0:
    ∂L∂w=w−∑i=1nαiyixi=0⇒w=∑i=1nαiyixi. \frac{\partial \mathcal{L}}{\partial w} = w - \sum_{i=1}^n \alpha_i y_i x_i = 0 \quad \Rightarrow \quad w = \sum_{i=1}^n \alpha_i y_i x_i. wL=wi=1nαiyixi=0w=i=1nαiyixi.∂L∂b=−∑i=1nαiyi=0⇒∑i=1nαiyi=0. \frac{\partial \mathcal{L}}{\partial b} = -\sum_{i=1}^n \alpha_i y_i = 0 \quad \Rightarrow \quad \sum_{i=1}^n \alpha_i y_i = 0. bL=i=1nαiyi=0i=1nαiyi=0.

  2. 代入拉格朗日函数
    w=∑i=1nαiyixiw = \sum_{i=1}^n \alpha_i y_i x_iw=i=1nαiyixi 代入 L\mathcal{L}L,化简后得到对偶问题:
    max⁡α∑i=1nαi−12∑i=1n∑j=1nαiαjyiyjxiTxj \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j x_i^T x_j αmaxi=1nαi21i=1nj=1nαiαjyiyjxiTxj
    subject to∑i=1nαiyi=0andαi≥0, ∀i. \text{subject to} \quad \sum_{i=1}^n \alpha_i y_i = 0 \quad \text{and} \quad \alpha_i \geq 0, \, \forall i. subject toi=1nαiyi=0andαi0,i.
    对偶问题
    SVM 的目标函数(对偶形式)为:
    min⁡α12∑i=1n∑j=1nαiαjyiyj⟨xi,xj⟩−∑i=1nαisubject to∑i=1nαiyi=0,αi≥0,∀i=1,2,…,n. \begin{aligned} \min_{\alpha} \quad & \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j \langle x_i, x_j \rangle - \sum_{i=1}^n \alpha_i \\ \text{subject to} \quad & \sum_{i=1}^n \alpha_i y_i = 0, \\ & \alpha_i \geq 0, \quad \forall i=1,2,\dots,n. \end{aligned} αminsubject to21i=1nj=1nαiαjyiyjxi,xji=1nαii=1nαiyi=0,αi0,i=1,2,,n.
    其中 ⟨xi,xj⟩\langle x_i, x_j \ranglexi,xj 表示内积 xiTxjx_i^T x_jxiTxj
    求解该优化问题后,最终的分类超平面为:
    f(x)=sign(∑i=1nαi∗yi⟨xi,x⟩+b∗), f(x) = \text{sign} \left( \sum_{i=1}^n \alpha_i^* y_i \langle x_i, x \rangle + b^* \right), f(x)=sign(i=1nαiyixi,x+b),
    其中 αi∗\alpha_i^*αi 是最优解,b∗b^*b 通过支持向量计算得到。

线性不可分情况

软间隔

\hspace{1.68em}在给定标签的训练集中,可能会出现线性不可分的情况,此时就需要引入软间隔这个概念,此时容忍小部分训练误差,通过罚函数法将松弛变量罚到目标函数中,下面引入的 C 实际上是一个超参数,C∑i=1nξiC \sum_{i=1}^n \xi_iCi=1nξi 也可称为正则化项。目标函数变为:
min⁡w,b,ξ12∥w∥2+C∑i=1nξisubject toyi(wTxi+b)≥1−ξi, ξi≥0. \min_{w, b, \xi} \frac{1}{2}\|w\|^2 + C \sum_{i=1}^n \xi_i \quad \text{subject to} \quad y_i (w^T x_i + b) \geq 1 - \xi_i, \, \xi_i \geq 0. w,b,ξmin21w2+Ci=1nξisubject toyi(wTxi+b)1ξi,ξi0.

核函数扩展

核函数(处理非线性问题)
将内积 ⟨xi,xj⟩\langle x_i, x_j \ranglexi,xj 替换为核函数 K(xi,xj)K(x_i, x_j)K(xi,xj),目标函数变为:
min⁡α12∑i=1n∑j=1nαiαjyiyjK(xi,xj)−∑i=1nαi. \min_{\alpha} \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j K(x_i, x_j) - \sum_{i=1}^n \alpha_i. αmin21i=1nj=1nαiαjyiyjK(xi,xj)i=1nαi.

通过上述步骤,SVM 从最大化几何间隔出发,推导出最终的凸二次规划问题,确保全局最优解的存在性。


文章转载自:

http://W5PblHvQ.Lsqxh.cn
http://EHMWNHQ1.Lsqxh.cn
http://2gauv8dY.Lsqxh.cn
http://GQPgdzrP.Lsqxh.cn
http://3jR2CKOG.Lsqxh.cn
http://OOcVXSxD.Lsqxh.cn
http://BfAX02o5.Lsqxh.cn
http://dKX7tUrl.Lsqxh.cn
http://l8fAWhNV.Lsqxh.cn
http://cv4keOWr.Lsqxh.cn
http://wGExor65.Lsqxh.cn
http://6YYU6wRW.Lsqxh.cn
http://sJbSDeAu.Lsqxh.cn
http://M6pbYeNA.Lsqxh.cn
http://emd1B3kc.Lsqxh.cn
http://I2v95FWN.Lsqxh.cn
http://9S8OqzSS.Lsqxh.cn
http://LssmO9ZY.Lsqxh.cn
http://Xq80zRwS.Lsqxh.cn
http://kdLlbnl9.Lsqxh.cn
http://EzWSQAK3.Lsqxh.cn
http://BP96Chvu.Lsqxh.cn
http://kfoNP5Zj.Lsqxh.cn
http://NVYos5Fg.Lsqxh.cn
http://9LK0CJXF.Lsqxh.cn
http://WwC68vIp.Lsqxh.cn
http://pGCYpvIE.Lsqxh.cn
http://c84Q2okO.Lsqxh.cn
http://4PFuqujk.Lsqxh.cn
http://czKtNPfA.Lsqxh.cn
http://www.dtcms.com/a/383519.html

相关文章:

  • 给定一个有序的正数数组arr和一个正数range,如果可以自由选择arr中的数字,想累加得 到 1~range 范围上所有的数,返回arr最少还缺几个数。
  • 《C++ 容器适配器:stack、queue 与 priority_queue 的设计》
  • Java 黑马程序员学习笔记(进阶篇8)
  • 无需标注的视觉模型 dinov3 自监督学习ssl
  • 多语言编码Agent解决方案(2)-后端服务实现
  • STM32F103C8T6通过SPI协议驱动74HC595数码管完全指南:从硬件原理到级联实现
  • 【系列文章】Linux中的并发与竞争[05]-互斥量
  • 海岛奇兵声纳活动的数学解答
  • 大模型入门实践指南
  • CSS 编码规范
  • Redis框架详解
  • Redis----缓存策略和注意事项
  • Redis的大key问题
  • 微服务学习笔记25版
  • 地址映射表
  • AI Agent 软件工程关键技术综述
  • 命令行工具篇 | grep, findstr
  • 6【鸿蒙/OpenHarmony/NDK】多线程调用 JS 总崩溃?用 napi_create_threadsafe_function 搞定线程安全交互
  • OpenTenBase分布式HTAP实战:从Oracle迁移到云原生数据库的完整指南
  • LabVIEW信号监测与分析
  • 【大模型算法工程师面试题】大模型领域新兴的主流库有哪些?
  • Java队列(从内容结构到经典练习一步到位)
  • Cherno OpenGL 教程
  • RT-DETRv2 中的坐标回归机制深度解析:为什么用 `sigmoid(inv_sigmoid(ref) + delta)` 而不是除以图像尺寸?
  • OpenCV入门教程
  • 深度学习-计算机视觉-目标检测三大算法-R-CNN、SSD、YOLO
  • 冰火两重天:AI重构下的IT就业图景
  • 从ENIAC到Linux:计算机技术与商业模式的协同演进——云原生重塑闭源主机,eBPF+WebAssembly 双引擎的“Linux 内核即服务”实践
  • 从 MySQL 迁移到 GoldenDB,上来就踩了一个坑。
  • qt界面开发入门以及计算器制作