SMO算法 公式推导

min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i ⋅ x j ) − ∑ i = 1 N α i s.t.  ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N (9-69) \begin{aligned} & \min_{\alpha} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j K(x_i \cdot x_j) - \sum_{i=1}^{N} \alpha_i \\ & \text { s.t. } \quad \sum_{i=1}^{N} \alpha_i y_i = 0 \\ & \quad 0 \leq \alpha_i \leq C, \quad i = 1, 2, \cdots, N \tag{9-69} \end{aligned} αmin21i=1Nj=1NαiαjyiyjK(xixj)i=1Nαi s.t. i=1Nαiyi=00αiC,i=1,2,,N(9-69)

9.4.2 SMO 算法

SMO 算法主要用来求解式(9-69)的凸二次规划问题,在该问题中,变量是拉格朗日乘子 α i \alpha_i αi,一个 α i \alpha_i αi 对应一个样本点 ( x i , y i ) (x_i, y_i) (xi,yi),所以变量总数就是样本量 N N N。SMO 算法是一种针对非线性支持向量机凸优化问题快速求解的优化算法,其基本想法是:不断地将原二次规划问题分解为只有两个变量的子二次规划问题,并对该子问题进行解析和求解,直到所有变量都满足 KKT 条件为止。

假设选择的两个变量为 α 1 \alpha_1 α1 α 2 \alpha_2 α2 α 3 , α 4 , ⋯ , α N \alpha_3, \alpha_4, \cdots, \alpha_N α3,α4,,αN 固定,那么式(9-69)的子问题可以表示为:

min ⁡ α 1 , α 2 S ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 N y i α i K i 1 + y 2 α 2 ∑ i = 3 N y i α i K i 2 s.t. α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = γ 0 ≤ α i ≤ C , i = 1 , 2 (9-72) \begin{split} \min_{\alpha_1, \alpha_2} & \quad S(\alpha_1, \alpha_2) = \frac{1}{2} K_{11} \alpha_1^2 + \frac{1}{2} K_{22} \alpha_2^2 + y_1 y_2 K_{12} \alpha_1 \alpha_2 - (\alpha_1 + \alpha_2) + \\ & \quad y_1 \alpha_1 \sum_{i=3}^N y_i \alpha_i K_{i1} + y_2 \alpha_2 \sum_{i=3}^N y_i \alpha_i K_{i2} \\ \text{s.t.} & \quad \alpha_1 y_1 + \alpha_2 y_2 = -\sum_{i=3}^N y_i \alpha_i = \gamma \\ & \quad 0 \leq \alpha_i \leq C, \quad i = 1, 2 \tag{9-72} \end{split} α1,α2mins.t.S(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2α1y1+α2y2=i=3Nyiαi=γ0αiC,i=1,2(9-72)

其中 K i j = K ( x i , x j ) K_{ij} = K(x_i, x_j) Kij=K(xi,xj)

式(9-72)即为两个变量的二次规划问题,先分析约束条件来考虑 α 2 \alpha_2 α2 的上下界问题。 α 1 \alpha_1 α1 α 2 \alpha_2 α2 都在 [ 0 , C ] [0, C] [0,C] 范围内,由式(9-72)的第一个约束条件可知, ( α 1 , α 2 ) (\alpha_1, \alpha_2) (α1,α2) 在平行于 [ 0 , C ] × [ 0 , C ] [0, C] \times [0, C] [0,C]×[0,C] 的对角线的直线上,如图 9-10 所示。

图 9-10 两个变量优化问题

由图 9-10 可得 α 2 \alpha_2 α2 的上下界描述如下:当 y 1 ≠ y 2 y_1 \neq y_2 y1=y2 时,下界 L = max ⁡ ( 0 , α 2 − α 1 ) L = \max(0, \alpha_2 - \alpha_1) L=max(0,α2α1),上界 H = min ⁡ ( C , C + α 2 − α 1 ) H = \min(C, C + \alpha_2 - \alpha_1) H=min(C,C+α2α1);当 y 1 = y 2 y_1 = y_2 y1=y2 时,下界 L = max ⁡ ( 0 , α 2 + α 1 − C ) L = \max(0, \alpha_2 + \alpha_1 - C) L=max(0,α2+α1C),上界 H = min ⁡ ( C , α 2 + α 1 ) H = \min(C, \alpha_2 + \alpha_1) H=min(C,α2+α1)

下面对 α 1 \alpha_1 α1 α 2 \alpha_2 α2 求解进行简单推导。假设子问题式(9-72)的初始可行解为 α 1 old \alpha_1^\text{old} α1old α 2 old \alpha_2^\text{old} α2old,最优解为 α 1 new \alpha_1^\text{new} α1new α 2 new \alpha_2^\text{new} α2new,沿着约束方向上未经截断的 α 2 \alpha_2 α2 的最优解为 α 2 new, unc \alpha_2^\text{new, unc} α2new, unc。一般情况下,我们尝试首先沿着约束方向求未经截断即不考虑式(9-72)的第二个约束条件的最优解 α 2 new, unc \alpha_2^\text{new, unc} α2new, unc,然后再求截断后的最优解 α 2 new \alpha_2^\text{new} α2new

令:
g ( x ) = ∑ i = 1 N α i y i K ( x i , x ) + b (9-73) g(x) = \sum_{i=1}^N \alpha_i y_i K(x_i, x) + b \tag{9-73} g(x)=i=1NαiyiK(xi,x)+b(9-73)

E i = g ( x i ) − y i = ( ∑ j = 1 N α j y j K ( x j , x i ) + b ) − y i (9-74) E_i = g(x_i) - y_i = \left( \sum_{j=1}^N \alpha_j y_j K(x_j, x_i) + b \right) - y_i \tag{9-74} Ei=g(xi)yi=(j=1NαjyjK(xj,xi)+b)yi(9-74)

i = 1 , 2 i = 1, 2 i=1,2 时, E i E_i Ei 为函数 g ( x ) g(x) g(x) 对输入 x i x_i xi 的预测值和真实值 y i y_i yi 之间的误差。

关于目标函数对 α 2 \alpha_2 α2 求偏导并令其为 0,可求得未经截断的 α 2 \alpha_2 α2 的最优解为:
α 2 new, unc = α 2 old + y 2 ( E 1 − E 2 ) κ (9-75) \alpha_2^\text{new, unc} = \alpha_2^\text{old} + \frac{y_2(E_1 - E_2)}{\kappa} \tag{9-75} α2new, unc=α2old+κy2(E1E2)(9-75)

其中,
κ = K 11 + K 22 − 2 K 12 = ∥ ϕ ( x 1 ) − ϕ ( x 2 ) ∥ 2 (9-76) \kappa = K_{11} + K_{22} - 2K_{12} = \|\phi(x_1) - \phi(x_2)\|^2 \tag{9-76} κ=K11+K222K12=ϕ(x1)ϕ(x2)2(9-76)

ϕ ( x ) \phi(x) ϕ(x) 为输入空间在特征空间中的映射。

经截断后的 α 2 \alpha_2 α2 可表示为:
α 2 new = { H , α 2 new, unc > H α 2 new, unc , L ≤ α 2 new, unc ≤ H L , α 2 new, unc < L (9-77) \alpha_2^\text{new} = \begin{cases} H, & \alpha_2^\text{new, unc} > H \\ \alpha_2^\text{new, unc}, & L \leq \alpha_2^\text{new, unc} \leq H \\ L, & \alpha_2^\text{new, unc} < L \tag{9-77} \end{cases} α2new= H,α2new, unc,L,α2new, unc>HLα2new, uncHα2new, unc<L(9-77)

接着基于 α 2 new \alpha_2^\text{new} α2new 可求得 α 1 new \alpha_1^\text{new} α1new
α 1 new = α 1 old + y 1 y 2 ( α 2 old − α 2 new ) (9-78) \alpha_1^\text{new} = \alpha_1^\text{old} + y_1 y_2 \left( \alpha_2^\text{old} - \alpha_2^\text{new} \right) \tag{9-78} α1new=α1old+y1y2(α2oldα2new)(9-78)

最后,每次完成两个变量的优化后,还需要重新计算参数 b b b b b b 的计算分为四种情况:

0 < α 1 new < C 0 < \alpha_1^\text{new} < C 0<α1new<C 时,由:
∑ i = 1 N α i y i K i 1 + b = y 1 (9-79) \sum_{i=1}^N \alpha_i y_i K_{i1} + b = y_1 \tag{9-79} i=1NαiyiKi1+b=y1(9-79)

可得:
b 1 new = y 1 − ∑ i = 3 N α i y i K i 1 − α 1 new y 1 K 11 − α 2 new y 2 K 21 (9-80) b_1^\text{new} = y_1 - \sum_{i=3}^N \alpha_i y_i K_{i1} - \alpha_1^\text{new} y_1 K_{11} - \alpha_2^\text{new} y_2 K_{21} \tag{9-80} b1new=y1i=3NαiyiKi1α1newy1K11α2newy2K21(9-80)

同样,当 0 < α 2 new < C 0 < \alpha_2^\text{new} < C 0<α2new<C 时,有:
b 2 new = y 2 − ∑ i = 3 N α i y i K i 1 − α 2 new y 2 K 22 − α 1 new y 1 K 12 (9-81) b_2^\text{new} = y_2 - \sum_{i=3}^N \alpha_i y_i K_{i1} - \alpha_2^\text{new} y_2 K_{22} - \alpha_1^\text{new} y_1 K_{12} \tag{9-81} b2new=y2i=3NαiyiKi1α2newy2K22α1newy1K12(9-81)

α 1 new \alpha_1^\text{new} α1new α 2 new \alpha_2^\text{new} α2new 同时满足 0 < α 1 new < C 0 < \alpha_1^\text{new} < C 0<α1new<C 时,有:
b 1 new = b 2 new (9-82) b_1^\text{new} = b_2^\text{new} \tag{9-82} b1new=b2new(9-82)

最后一种情况是, α 1 new \alpha_1^\text{new} α1new α 2 new \alpha_2^\text{new} α2new 都不在 [ 0 , C ] [0, C] [0,C] 范围内, b 1 new b_1^\text{new} b1new b 2 new b_2^\text{new} b2new 都满足 KKT 条件,直接对其取均值即可。

综上,参数 b b b 可计算归纳为:
b new = { b 1 new , 0 < α 1 new < C b 2 new , 0 < α 2 new < C b 1 new + b 2 new 2 , 其他 (9-83) b^\text{new} = \begin{cases} b_1^\text{new}, & 0 < \alpha_1^\text{new} < C \\ b_2^\text{new}, & 0 < \alpha_2^\text{new} < C \\ \frac{b_1^\text{new} + b_2^\text{new}}{2}, & 其他 \end{cases} \tag{9-83} bnew= b1new,b2new,2b1new+b2new,0<α1new<C0<α2new<C其他(9-83)


以下是本文部分公式的详细解释:
公式9-72
拉格朗日乘子上界和下界
公式9-78

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/884145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV系列教程六:信用卡数字识别、人脸检测、车牌/答题卡识别、OCR

文章目录 一、信用卡数字识别1.1 模板匹配1.2 匹配多个对象1.3 处理数字模板1.4 预处理卡片信息&#xff0c;得到4组数字块。1.5 遍历数字块&#xff0c;将卡片中每个数字与模板数字进行匹配 二、人脸检测2.1人脸检测算法原理2.2 OpenCV中的人脸检测流程 三、车牌识别3.1 安装t…

Python常用库版本匹配

Python3.7 可运行bert、glove等 Package Version ------------------------------- --------------------- -ip 20.1.1 absl-py 1.4.0 affinegap 1.12 aio-pika …

2024年10月总结及随笔之漏更及失而复得

1. 回头看 日更坚持了670天。 读《数据湖仓》更新完成读《数据工程之道&#xff1a;设计和构建健壮的数据系统》开更并持续更新 2023年至2024年10月底累计码字1642797字&#xff0c;累计日均码字2451字。 2024年10月码字86801字&#xff0c;同比下降30.77%&#xff0c;环比…

VScode + PlatformIO 了解

​Visual Studio Code Visual Studio Code&#xff08;简称 VS Code&#xff09;是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全&#xff08;又称 IntelliSense&#xff09;、代码重构功能&#xff0c;并且内置了工具和 Git 版本…

【linux】ubunda repo是什么

Ubuntu repo&#xff08;repository&#xff0c;简称repo&#xff09;是一个软件仓库&#xff0c;它是存储和分发软件包的服务器或一组服务器。通俗地说&#xff0c;Ubuntu repo就像一个巨大的在线软件商店&#xff0c;用户可以从中下载和安装各种软件。 主要特点 软件集合&a…

一二三应用开发平台自定义查询设计与实现系列2——查询方案功能实现

查询方案功能实现 上面实现了自定义查询功能框架&#xff0c;从用户角度出发&#xff0c;有些条件组合可以形成特定的查询方案&#xff0c;对应着业务查询场景。诸多查询条件的组合&#xff0c;不能每次都让用户来设置&#xff0c;而是应该保存下来&#xff0c;下次可以直接使…

WebSocket 连接频繁断开的问题及解决方案

文章目录 WebSocket 连接频繁断开的问题及解决方案1. 引言2. 什么是 WebSocket&#xff1f;2.1 WebSocket 的优势2.2 WebSocket 的工作原理 3. WebSocket 连接频繁断开的常见原因3.1 服务器端问题3.1.1 服务器负载过高3.1.2 服务器配置不当3.1.3 超时设置 3.2 网络问题3.2.1 网…

Java迭代器:深入理解与应用

在Java编程中&#xff0c;迭代器&#xff08;Iterator&#xff09;是一个用于遍历集合&#xff08;Collection&#xff09;的接口。它提供了一种标准的方式来访问集合中的元素&#xff0c;而不需要暴露其底层结构。本文将详细介绍Java迭代器的概念、工作原理、实现方式以及如何…

萤石私有化设备视频平台EasyCVR视频融合平台如何构建农业综合监控监管系统?

现代农业的迅速发展中&#xff0c;集成监控管理系统已成为提高农业生产效率和优化管理的关键工具。萤石私有化设备视频平台EasyCVR&#xff0c;作为一个具有高度可扩展性、灵活的视频处理能力和便捷的部署方式的视频监控解决方案&#xff0c;为农业监控系统的建设提供了坚实的技…

AI会助力元宇宙的发展吗?

AI将会在元宇宙的发展中扮演关键角色。AI在元宇宙中的应用将推动沉浸式、个性化和智能化体验的实现&#xff0c;具体表现在以下几个方面&#xff1a; 1、虚拟角色和智能交互&#xff1a;AI技术可用来创造智能化虚拟角色&#xff0c;如NPC&#xff08;非玩家角色&#xff09;&a…

#渗透测试#SRC漏洞挖掘# 信息收集-Shodan之搜索语法进阶

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…

Fsm3

采用读热码编写方式&#xff1a; module top_module(input clk,input in,input areset,output out); ////reg [3:0]A 4d0001;// reg [3:0]B 4d0010;//reg [3:0]C 4d0100;// reg [3:0]D 4d1000; //1、首先用读热码定义四个状态变量parameter A 4d0001 ,B 4d0010, C 4d01…

Highcharts 条形图:数据可视化的利器

Highcharts 条形图:数据可视化的利器 引言 在数据分析和可视化领域,Highcharts 是一个广受欢迎的 JavaScript 图表库。它以其易用性、灵活性和丰富的图表类型而著称。其中,条形图作为一种基础但功能强大的图表类型,被广泛应用于各种场景,以直观地展示数据分布和比较。本…

62-Java-面试专题(1)__基础

62-Java-面试专题(1)__基础-- 笔记 笔记内容来源与黑马程序员教学视频 文章目录 62-Java-面试专题(1)__基础-- 笔记Java-面试专题(1)笔记中涉及资源&#xff1a; 一、二分查找①&#xff1a;代码实现1. 流程2. 代码实现3. 测试 ②&#xff1a;解决整数溢出&#xff08;方法一&…

基于华为昇腾910B,实战InternVL2-8B模型推理

基于华为昇腾910B&#xff0c;实战InternVL2-8B模型推理 本文将带领大家基于启智平台&#xff0c;使用 LMDeploy 推理框架在华为昇腾 910B 上实现 InternVL2-8B 模型的推理。 https://github.com/OpenGVLab/InternVL https://github.com/InternLM/lmdeploy 1.登录启智平台 …

linux C 信号量超时返回

需求&#xff1a;设置超时时间&#xff0c;当信号量等待时间过长时返回错误码&#xff0c;而非一直阻塞。效果类似于windows的WaitForSingleObject。 不废话了直接上代码&#xff1a; // main.cpp #include <semaphore.h> #include <unistd.h> #include <iost…

私有化视频平台EasyCVR视频汇聚平台接入RTMP协议推流为何无法播放?

私有化视频平台EasyCVR视频汇聚平台兼容性强、支持灵活拓展&#xff0c;平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 有用户反馈&#xff0c;项目现场使用RTMP协议接入EasyCVR平台&#xff0c;但是视频却不…

Kong Gateway 指南

Kong Gateway 是一个轻量、快速、灵活的云原生API网关&#xff0c;其本质是一个运行在 Nginx中的Lua应用程序。 概述 Kong是Mashape开源的高性能高可用的API网关&#xff0c;可以水平扩展。它通过前置的负载均衡配置把请求分发到各个server&#xff0c;来应对大批量的网络请求…

修改 Docker 镜像默认存储位置的方法

默认存放位置 sudo docker info | grep “Docker Root Dir” 停掉Docker服务 systemctl restart docker 停掉Docker服务 service docker stop 移动原有的内容 mv /var/lib/docker /data/docker 进行链接 ln -sf /data/docker /var/lib/docker 重启docker服务 systemc…

简单的kafkaredis学习之kafka

简单的kafka&redis学习整理之kafka 1. kafka 1.1 什么是消息队列 在学习Kafka之前我们先来看一下什么是消息队列&#xff0c;消息队列(Message Queue)&#xff1a;可以简称为MQ 例如&#xff1a;Java中的Queue队列&#xff0c;也可以认为是一个消息队列 消息队列&#x…