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

使用cvx工具箱求解svm的原问题及其对偶问题

要使用CVX工具箱求解支持向量机(SVM)的原问题和对偶问题,需分别构建优化模型并求解


1. SVM原问题(硬间隔)

优化目标
min⁡w,b12∥w∥2\min_{w,b} \frac{1}{2} \|w\|^2w,bmin21w2
约束条件
yi(wTxi+b)≥1∀iy_i (w^T x_i + b) \geq 1 \quad \forall iyi(wTxi+b)1i

% 生成线性可分数据(示例)
rng(1);
X = [randn(20,2) + 2; randn(20,2) - 2];  % 两类数据
y = [ones(20,1); -ones(20,1)];           % 标签 [1, -1]% 使用CVX求解原问题
cvx_beginvariables w(2) b;        % 优化变量:权重w和偏置bminimize(0.5 * sum(w.^2)); % 目标函数subject toy .* (X * w + b) >= 1; % 线性约束
cvx_end% 可视化结果
scatter(X(:,1), X(:,2), [], y, 'filled');
hold on;
x1 = min(X(:,1)):0.1:max(X(:,1));
x2 = (-w(1)*x1 - b) / w(2);  % 决策边界 w1*x1 + w2*x2 + b = 0
plot(x1, x2, 'k-', 'LineWidth', 2);
title('SVM Primal Solution');
legend('Class 1', 'Class -1', 'Decision Boundary');

2. SVM对偶问题(硬间隔)

优化目标
max⁡α∑i=1mαi−12∑i,jαiαjyiyjxiTxj\max_{\alpha} \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i,j} \alpha_i \alpha_j y_i y_j x_i^T x_jαmaxi=1mαi21i,jαiαjyiyjxiTxj
约束条件
αi≥0∀i,∑i=1mαiyi=0\alpha_i \geq 0 \quad \forall i, \quad \sum_{i=1}^m \alpha_i y_i = 0αi0i,i=1mαiyi=0

% 计算核矩阵(线性核)
m = size(X,1);
K = X * X';        % 线性核矩阵
H = (y * y') .* K; % 对偶问题中的Hessian矩阵% 使用CVX求解对偶问题
cvx_beginvariable alpha(m);       % 优化变量:拉格朗日乘子maximize(sum(alpha) - 0.5 * quad_form(alpha, H)); % 目标函数subject toalpha >= 0;         % 不等式约束y' * alpha == 0;    % 等式约束
cvx_end% 从alpha恢复原始参数w和b
w_dual = (alpha .* y)' * X; % w = Σ(α_i y_i x_i)
idx = find(alpha > 1e-4);   % 找到支持向量(α>0)
b_dual = mean(y(idx) - X(idx,:) * w_dual'); % 计算偏置b% 可视化对偶问题结果
scatter(X(:,1), X(:,2), [], y, 'filled');
hold on;
x2_dual = (-w_dual(1)*x1 - b_dual) / w_dual(2);
plot(x1, x2_dual, 'r--', 'LineWidth', 2);
title('SVM Dual Solution');
legend('Class 1', 'Class -1', 'Decision Boundary (Dual)');

说明

  1. 原问题与对偶问题等价性
    在硬间隔线性可分情况下,两者解应一致(决策边界重合)。若有轻微差异,可能因数值精度或支持向量选择阈值(1e-4)导致。

  2. 支持向量识别
    对偶问题中,非零 αi\alpha_iαi 对应支持向量,位于边界 yi(wTxi+b)=1y_i(w^T x_i + b) = 1yi(wTxi+b)=1 上。

  3. 软间隔扩展
    若数据非线性可分,引入松弛变量 ξi\xi_iξi 和惩罚参数 CCC

    • 原问题
      min⁡w,b,ξ12∥w∥2+C∑iξi\min_{w,b,\xi} \frac{1}{2} \|w\|^2 + C \sum_i \xi_iw,b,ξmin21w2+Ciξi
      yi(wTxi+b)≥1−ξi,ξi≥0y_i (w^T x_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0yi(wTxi+b)1ξi,ξi0
    • 对偶问题
      约束改为 0≤αi≤C0 \leq \alpha_i \leq C0αiC,其余不变。
  4. 非线性SVM
    使用核技巧时,将对偶问题中的内积 xiTxjx_i^T x_jxiTxj 替换为核函数 K(xi,xj)K(x_i,x_j)K(xi,xj)(如高斯核)。

参考 使用cvx工具箱求解svm的原问题及其对偶问题 youwenfan.com/contentcsk/66111.html


结果

  • 比较 w(原问题)和 w_dual(对偶问题),应接近。
  • 决策边界应正确分离两类数据。
  • 支持向量位于边界上(对偶问题中 αi>0\alpha_i > 0αi>0 的点)。
http://www.dtcms.com/a/553874.html

相关文章:

  • 国内免费无版权视频素材网站泉州做网站设计公司
  • CVPR-2025 | 端到端导航智能体的推理能力探究:动态系统学习、规划能力与记忆使用
  • 百度网盘下载怎么免费提速?2025最新教程分享
  • 一个交易网站开发的成本是多少钱上海市中学生典型事例网站
  • 网站 验证码错误本地南京网站建设
  • 如何通过右键实现音视频/PDF/Office 一键格式转换?
  • 深入理解 Python 的 __init_subclass__ 方法:自定义类行为的新方式 (Effective Python 第48条)
  • 用遗传算法求解“旅行商问题(TSP)”
  • 蜜桃汇免费的wordpress账号网站文章来源seo
  • 嘉立创EDA四层板PCB学习记录(44小点)
  • 使用yolov8训练自己的数据集
  • 中高端社交网站建设服务商织梦个人网站模板
  • 走进Linux的世界:冯诺依曼体系结构
  • 免费外贸网站在线今天重大新闻摘抄
  • IT运维的365天--035 Ubuntu密码忘了没?
  • 在Ubuntu20.04下安装iperf3
  • 网站上的图是怎么做的外包工是临时工吗
  • 《Python 中的陷阱与真相:深入理解 `is` 与 `==` 的区别及实战 Bug 解析》
  • 网站建设是必须的吗东莞高端网站建设收费标准
  • AWS + Discuz!:社区站架构的现代化玩法
  • Linux命令之mtr命令
  • 网站优化待遇河南seo网站多少钱
  • Spring Boot常见问题
  • dw做网站实例沈阳建站费用
  • 09-MySQL内外连接
  • 【Linux】自动化构建工具make和Makefile和第一个系统程序—进度条
  • YOLO python 实现多种物体识别(时钟,水杯,小熊,路人,车辆)
  • wordpress如何自动采集网站图片建模培训
  • 建设银行网站会员怎么用装修设计公司快餐店
  • 华宇亮相2025丽泽法务论坛,共探法治前沿与法商融合新路径