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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度了解flink Flink 本地运行Standalone模式

环境准备 IDEA 必须git 必须maven 必须jdk 1.8 必须scala 2.12.7 源码下载 如果能访问github&#xff0c;下载github的源码(flink的代码托管网站) git clone https://github.com/apache/flink.git 如果不能访问github&#xff0c;可以通过码云下载(国内的代码托管平台) g…

【Nginx系列】Nginx 中的`proxy_set_header`指令:Host 字段的区别与联系

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

SRS:构建实时免费视频服务器的全方位指南

SRS&#xff08;Simple Realtime Server&#xff09;是一个开源的、基于MIT协议的实时视频服务器&#xff0c;以其简单、高效而著称。它支持多种流媒体协议&#xff0c;包括RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等&#xff0c;使其成为直播和WebRTC领域的理想…

混合搜索与多重嵌入:一次有趣又毛茸茸的猫咪搜索之旅!(一)

作者&#xff1a;来自 Elastic Jo Ann de Leon 演示如何在多个嵌入&#xff08;文本和图像&#xff09;上实现不同类型的搜索 - 词汇、向量和混合。它使用一个简单而有趣的猫搜索应用程序。 你知道 Elastic 可以用作强大的向量数据库吗&#xff1f;在本博客中&#xff0c;我们…

二:Linux学习笔记(第一阶段)-- Linux命令

目录 Linux注意事项&#xff1a; Linux目录 Linux系统基础命令 1. 文件和目录操作 2. 文件查看和编辑 3. 文件权限和所有权 4. 系统信息 5. 网络命令 6. 文件查找 7. 压缩和解压缩 8. 系统管理 Linux注意事项&#xff1a; 严格区分大小写一切皆文件windows下的程序不…

Java设计模式之代理模式(一)

什么是代理&#xff1f;可以理解为其他对象提供一种代理以控制对这个对象的访问。 举个例子&#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 网…

字符串逆序(c语言)

错误代码 #include<stdio.h>//字符串逆序 void reverse(char arr[], int n) {int j 0;//采用中间值法//访问数组中第一个元素和最后一个元素//交换他们的值&#xff0c;从而完成了字符串逆序//所以这个需要临时变量for (j 0; j < n / 2; j){char temp arr[j];arr[…

elcipse工具使用记录

安装 创建项目并运行Helloword 没有显示console? Window–>Show View–>Console 快捷键的积累 代码提示功能 windows->prference->java->Content Assist, 修改Auto…,内容为.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.

头歌——数据库系统原理(数据的简单查询)

文章目录 第1关&#xff1a;基本 SELECT 查询代码 第2关&#xff1a;带限制条件的查询和表达式查询代码 第3关&#xff1a;使用 WHERE 语句进行检索代码 第1关&#xff1a;基本 SELECT 查询 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 如何获取数据表中指…

关于我、重生到500年前凭借C语言改变世界科技vlog.13——深入理解指针(3)

文章目录 1.字符指针变量2.数组指针变量3.函数指针变量4.函数指针数组5.二维数组传参本质6.拓展补充希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本章节接着学习常见的指针变量类型 1.字符指针变量 字符指针变量&#xff0c;顾名思义就是字…

贪心算法入门(一)

1.什么是贪心算法&#xff1f; 贪心算法是一种解决问题的策略&#xff0c;它将复杂的问题分解为若干个步骤&#xff0c;并在每一步都选择当前最优的解决方案&#xff0c;最终希望能得到全局最优解。这种策略的核心在于“最优”二字&#xff0c;意味着我们追求的是以最少的时间和…

MacBook 如何设置打开json格式文件的默认程序是vs code

首先右键选中文件&#xff0c;然后选中显示简介 然后选中打开方式 设置成vs code

宝塔使用clickhouse踩坑

前言 最近有个物联网项目,需要存储物联网终端发送过来的信息(类似log日志,但又要存储在数据库里,方便后期聚合统计),本来想写文件的奈何客户要求聚合统计,所以只能用数据库才能达到更高的计算效率,当然mysql对这种日志型数据库并没有优势,数据量上去后反而不利于计算…

ML 系列:第 18 部 - 高级概率论:条件概率、随机变量和概率分布

文章目录 一、说明二、关于条件概率2.1 为什么我们说条件概率&#xff1f;2.2 为什么条件概率在统计学中很重要 三、 随机变量的定义3.1 定义3.2 条件概率中的随机变量 四、概率分布的定义五、结论 一、说明 条件概率是极其重要的概率概念&#xff0c;它是因果关系的数学表述&…

十个常见的软件测试面试题,拿走不谢

所有面试问题一般建议先总后分的方式来回答&#xff0c;这样可以让面试官感觉逻辑性很强。 1. 自我介绍 之所以让我们自我介绍&#xff0c;其实是面试官想找一些时间来看简历&#xff0c;所以自我介绍不用太长的时间&#xff0c;1-2分 钟即可。 自我介绍一般按以下方式进行介…

软考高级中哪个好考?软考5个高级资格详细分析!

计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试&#xff0c;这个考试既是职业资格考试&#xff0c;又是职称资格考试。 软考专业资格层次对应表 计算机软件资格考试设置了27个专业资格&#xff0c;涵盖5个专业领域&#xff0c;3个级别层次…

vi —— 终端中的编辑器

目标 vi 简介打开和新建文件三种工作模式常用命令分屏命令常用命令速查图 01. vi 简介 1.1 学习 vi 的目的 在工作中&#xff0c;要对 服务器 上的文件进行 简单 的修改&#xff0c;可以使用 ssh 远程登录到服务器上&#xff0c;并且使用 vi 进行快速的编辑即可常见需要修改…

sklearn|机器学习:决策树(一)

文章目录 sklearn&#xff5c;机器学习&#xff1a;决策树&#xff08;一&#xff09;&#xff08;一&#xff09;概述&#xff08;二&#xff09;实战1. 环境配置2. sklearn 中的决策树&#xff08;1&#xff09;模块 sklearn.tree&#xff08;2&#xff09;sklearn 基本建模流…

React基础语法

1.React介绍 React由Meta公司开发&#xff0c;是一个用于构建Web和原生交互界面的库 1.1 React优势 相较于传统基于DOM开发的优势 1.组件化的开发方式 2.不错的性能 相较于其他前端框架的优势 1.丰富的生态 2.跨平台支持 1.2React的时长情况 全球最流行&#xff0c;大厂…