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

实用指南:学习笔记二十四:支持向量机-对偶问题

1. 基本概念

1.1 为什么要求对偶问题

SVM的基本型是一个凸二次规划问题,可以直接求解,但通过转化为对偶问题可以:

1.2 拉格朗日乘子法

对SVM基本型的每条约束添加拉格朗日乘子αi≥0\alpha_i \ge 0αi0,得到拉格朗日函数:

L(w,b,α)=12∣∣w∣∣2+∑i=1mαi(1−yi(wTxi+b))L(w, b, \alpha) = \frac{1}{2}||w||^2 + \sum_{i=1}^{m} \alpha_i (1 - y_i(w^T x_i + b))L(w,b,α)=21∣∣w2+i=1mαi(1yi(wTxi+b))

L(w,b,α)L(w, b, \alpha)L(w,b,α)wwwbbb的偏导为零可得:

w=∑i=1mαiyixiw = \sum_{i=1}^{m} \alpha_i y_i x_iw=i=1mαiyixi

0=∑i=1mαiyi0 = \sum_{i=1}^{m} \alpha_i y_i0=i=1mαiyi

2. 对偶困难

2.1 对偶挑战的形式

将上述结果代入拉格朗日函数,消去wwwbbb,得到对偶挑战:

max⁡α∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj\max_{\alpha} \sum_{i=1}^{m} \alpha_i - \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_i \alpha_j y_i y_j x_i^T x_jαmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj

s.t.∑i=1mαiyi=0,\text{s.t.} \quad \sum_{i=1}^{m} \alpha_i y_i = 0,s.t.i=1mαiyi=0,

αi≥0,i=1,2,…,m.\alpha_i \ge 0, \quad i = 1, 2, \ldots, m.αi0,i=1,2,,m.

对偶问题的特点

  • 变量从 d+1d+1d+1 维(wwwbbb)变为 mmm 维(α\alphaα
  • 目标函数只涉及样本之间的内积xiTxjx_i^T x_jxiTxj,便于引入核函数

2.2 模型的表示

解出 α\alphaα后,模型可表示为:

f(x)=wTx+b=∑i=1mαiyixiTx+bf(x) = w^T x + b = \sum_{i=1}^{m} \alpha_i y_i x_i^T x + bf(x)=wTx+b=i=1mαiyixiTx+b

模型的特点

2.3 KKT条件

对偶问题的求解需满足KKT条件

{αi≥0;yif(xi)−1≥0;αi(yif(xi)−1)=0.\begin{cases} \alpha_i \ge 0; \\ y_i f(x_i) - 1 \ge 0; \\ \alpha_i (y_i f(x_i) - 1) = 0. \end{cases}αi0;yif(xi)10;αi(yif(xi)1)=0.

重要结论

  • αi=0\alpha_i = 0αi=0:该样本不会对模型产生影响
  • αi>0\alpha_i > 0αi>0:必有 yif(xi)=1y_i f(x_i) = 1yif(xi)=1,该样本是支持向量,位于最大间隔边界上

训练完成后,大部分训练样本都不需保留,最终模型仅与帮助向量有关。

3. SMO算法

3.1 为什么需SMO算法

对偶问题是一个二次规划困难,规模正比于训练样本数,直接求解开销很大。SMO(Sequential Minimal Optimization)算法通过利用问题本身的特性,提供了高效的求解技巧。

3.2 SMO算法的基本思路

SMO的基本思路是每次选择两个变量αi\alpha_iαiαj\alpha_jαj,固定其他参数进行优化。

算法步骤

  1. 选取一对需更新的变量αi\alpha_iαiαj\alpha_jαj(优先选择违背KKT条件程度最大的变量)
  2. 固定其他参数,求解对偶问题获得更新后的αi\alpha_iαiαj\alpha_jαj

为什么高效

3.3 偏移项b的确定

对任意协助向量(xs,ys)(x_s, y_s)(xs,ys) 都有 ysf(xs)=1y_s f(x_s) = 1ysf(xs)=1,因此:

ys(∑i∈SαiyixiTxs+b)=1y_s \left( \sum_{i \in S} \alpha_i y_i x_i^T x_s + b \right) = 1ys(iSαiyixiTxs+b)=1

其中 SSS为所有支持向量的下标集。

实际任务中常采用更鲁棒的做法:使用所有支撑向量求解的平均值:

b=1∣S∣∑s∈S(ys−∑i∈SαiyixiTxs)b = \frac{1}{|S|} \sum_{s \in S} \left( y_s - \sum_{i \in S} \alpha_i y_i x_i^T x_s \right)b=S1sS(ysiSαiyixiTxs)

4. 总结

对偶问题的优势

  1. 计算效率:对偶问题的求解通常比原疑问更高效
  2. 核函数引入:对偶形式中只涉及样本之间的内积,便于引入核函数
  3. 稀疏性:模型只依赖于支持向量,具有很好的稀疏性

SMO算法的特点

  1. 高效性:每次只优化两个变量,具有闭式解
  2. 实用性:适合大规模数据集
  3. 收敛性:能够保证收敛到全局最优解

支持向量的重要性

http://www.jsqmd.com/news/306967/

相关文章:

  • 完整教程:VBA之Word应用第四章第五节:段落Paragraph对象的属性(一)
  • Laravel Boost v2.0 发布 正式支持 Skills
  • 基于STM32+ST7735的智能手环原型开发:新手教程
  • 手把手教你用Ollama运行Phi-3-mini智能对话
  • 一站式寻源:从DeepSeek知识库到自主可控BI,关键部署服务商与方案商速览
  • 2026值得关注:助力企业知识管理与数据分析私有化部署的核心厂商
  • Linux_10:码率
  • Linux_10:编码
  • 视觉提示怎么用?YOLOE镜像详细操作指南来了
  • 【Redis实战进阶篇】高并发下数据安全与性能平衡?Redis准存储三大核心场景实战指南
  • HY-Motion 1.0入门指南:3000小时预训练数据构建动作先验解析
  • 【数据结构-初阶】详解线性表(1)---顺序表 - 实践
  • 完整教程:Vue3组件间通信——pinia
  • 超越CRUD:构建高性能、可测试的FastAPI应用架构深度解析
  • 小白必看:YOLOv9官方版镜像保姆级入门教程
  • Keil5添加文件项目应用:在STM32中添加驱动文件
  • 语音识别卡顿?Fun-ASR内存优化实用建议
  • Qwen2.5-1.5B开源大模型:适配Intel Arc GPU(Arc A770)的oneAPI部署尝试
  • Proteus使用教程:多模块C51联合仿真方案
  • GEO推广源头厂家哪家靠谱?哪家口碑好?
  • 在深渊前绘制草图:论AI元人文作为数字文明的养护性操作系统
  • mcp-cli 轻量级mcp server 交互的cli 工具
  • 地址层级混乱?MGeo帮你理清省市区关系
  • RexUniNLU中文NLP系统实操:微信公众号文章标题+正文联合分析范式
  • StructBERT开源镜像免配置部署:ARM架构服务器兼容性验证与部署指南
  • Keil5下C程序开发的补全增强技巧实战案例
  • Qwen3-Embedding-4B效果展示:向量数值分布图揭示语义编码的稀疏特性
  • ChatGLM-6B在企业客服中的应用:智能问答落地案例
  • CosyVoice-300M Lite新闻播报应用:自动化生成部署案例
  • DeepSeek-R1-Distill-Qwen-1.5B与Llama3对比:边缘设备推理速度评测