【1】引言

前序学习进程中,我们已经掌握了支持向量机算法中,为寻找最佳分割超平面,如何用向量表达超平面方程,如何为超平面方程建立拉格朗日函数。
本篇文章的学习目标是:求解SVM拉格朗日函数。

【2】求解方法

【2.1】待求解函数

支持量机算法的拉格朗日函数为:
L(w,b,α)=12∥w∥2−∑i=1mαi[yi(w⋅xi+b−1)]L(w,b,\alpha)=\frac{1}{2}{\left\|w\right\|}^2-\sum_{i=1}^{m}\alpha_{i}[y_{i}(w\cdot x_{i}+b-1)]L(w,b,α)=21w2i=1mαi[yi(wxi+b1)]

【2.2】函数求导

按照一贯的求解思路,先对拉格朗日函数进行求导:

【2.2.1】对w求导

∂L∂w=∂∂w[12wTw−∑i=1mαiyiwTxi]\frac{\partial L}{\partial w}=\frac{\partial }{\partial w}[{\frac{1}{2}w^Tw}-\sum_{i=1}^{m}\alpha_{i}y_{i}w^Tx_{i}]wL=w[21wTwi=1mαiyiwTxi]
细心观察的朋友肯定发现上式出现了权重矩阵w的转置wTw^TwT,这是因为:
在之前的所有公式的写法中,我对w和x/的矩阵乘法都沿用了最为稳妥的写法w⋅xw\cdot xwx。在机器学习领域,一般默认的向量形式为列向量,所以wwwxix_{i}xi可能都是列向量,实际做矩阵乘法的时候,需要转置其中一个,实际的超平面式简写后为
wTx+b=0w^Tx+b=0wTx+b=0或者 wxT+b=0wx^T+b=0wxT+b=0这两种写法完全等效。
在求导的时候,必须选择上述写法中的任何一个,这里选择了wTxi+b=0w^Tx_{i}+b=0wTxi+b=0,是为了和12∥w∥2=12wTw\frac{1}{2}{\left\|w\right\|}^2=\frac{1}{2}w^Tw21w2=21wTw保持一致。
继续求解导数:
∂L∂w=∂∂w[12wTw−∑i=1mαiyiwTxi]=w−∑i=1mαiyixi\frac{\partial L}{\partial w}=\frac{\partial }{\partial w}[{\frac{1}{2}w^Tw}-\sum_{i=1}^{m}\alpha_{i}y_{i}w^Tx_{i}]=w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}wL=w[21wTwi=1mαiyiwTxi]=wi=1mαiyixi

【2.2.2】对b求导

∂L∂b=−∑i=1mαiyi\frac{\partial L}{\partial b}=-\sum_{i=1}^{m}\alpha_{i}y_{i}bL=i=1mαiyi

【2.3】极值代入

令前两步的导数为0,首先:
∂L∂w=w−∑i=1mαiyixi=0\frac{\partial L}{\partial w}=w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}=0wL=wi=1mαiyixi=0可得:
w=∑i=1mαiyixiw=\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i} w=i=1mαiyixi
然后:
∂L∂b=−∑i=1mαiyi=0\frac{\partial L}{\partial b}=-\sum_{i=1}^{m}\alpha_{i}y_{i}=0bL=i=1mαiyi=0
可得:
∑i=1mαiyi=0\sum_{i=1}^{m}\alpha_{i}y_{i}=0i=1mαiyi=0将上数值代入拉格朗日函数有:
第一项:
12∥w∥2=12wTw=12(∑i=1mαiyixi)T∑i=1mαjyjxj=12∑i,j=1mαiαjyiyjxiTxj\frac{1}{2}{\left\|w\right\|}^2=\frac{1}{2}w^Tw=\frac{1}{2}({\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i})^T}\sum_{i=1}^{m}\alpha_{j}y_{j}x_{j}=\frac{1}{2}\sum_{i,j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^Tx_{j}21w2=21wTw=21(i=1mαiyixi)Ti=1mαjyjxj=21i,j=1mαiαjyiyjxiTxj
第二项:
∑i=1mαiyiwTxi=∑i=1mαiyi(∑j=1mαjyjxi)Txi=∑i=1mαiyi(∑j=1mαjyjxjT)xi=∑i,j=1mαiαjyiyjxjTxi\begin{align*}\sum_{i=1}^{m}\alpha_{i}y_{i}w^Tx_{i}=\\ \sum_{i=1}^{m}\alpha_{i}y_{i}(\sum_{j=1}^{m}\alpha_{j}y_{j}x_{i})^Tx_{i}=\sum_{i=1}^{m}\alpha_{i}y_{i}(\sum_{j=1}^{m}\alpha_{j}y_{j}x_{j}^T)x_{i}\\=\sum_{i,j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{j}^Tx_{i}\end{align*}i=1mαiyiwTxi=i=1mαiyi(j=1mαjyjxi)Txi=i=1mαiyi(j=1mαjyjxjT)xi=i,j=1mαiαjyiyjxjTxi
第三项:
∑i=1mαiyib=b∑i=1mαiyi=0\sum_{i=1}^{m}\alpha_{i}y_{i}b=b\sum_{i=1}^{m}\alpha_{i}y_{i}=0i=1mαiyib=bi=1mαiyi=0
第四项:
∑i=1mαi⋅1=∑i=1mαi\sum_{i=1}^{m}\alpha_{i}\cdot 1=\sum_{i=1}^{m}\alpha_{i}i=1mαi1=i=1mαi

将上述四项叠加后,得到:
L(w,b,α)=∑i=1mαi−12∑i,j=1mαiαjyiyjxiTxjL(w,b,\alpha)=\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i,j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^Tx_{j}L(w,b,α)=i=1mαi21i,j=1mαiαjyiyjxiTxj

【3】总结

对支持向量机算法的拉格朗日函数按照参数求导后,获得了新的表达式。

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

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

相关文章

mac安装node的步骤

适用于macOS 10.15及以上版本。 前提条件 macOS版本:确保系统为macOS 10.15(Catalina)或更高版本。可在“苹果菜单 > 关于本机”查看。管理员权限:部分安装可能需要管理员权限。网络连接:需要联网下载安装包或工具…

【LeetCode数据结构】栈的应用——有效的括号问题详解

🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题 🍉学习方向:C/C方向 ⭐️人生格言:为天地立心,为生民立命,为…

多尺度卷积模型:Inception块

在GoogLeNet中,基本的卷积块被称为Inception块(Inception block)。 使用窗口大小为11,33,551\times1,3\times3,5\times511,33,55的卷积层,从不同空间大小中提…

Android 默认图库播放视频没有自动循环功能,如何添加

Android 默认图库播放视频没有自动循环功能, 如何添加 按如下方式添加 开发云 - 一站式云服务平台 .../apps/Gallery2/res/values-zh-rCN/strings.xml | 3 ++ packages/apps/Gallery2/res/values/strings.xml | 3 ++ .../com/android/gallery3d/app/MovieActivity…

7月21日总结

命令执行 RCE RCE(remote code execute):远程命令执行或者代码执行,我们平时说的rce,比如thinkPHP的 rce漏洞,即算代码注入漏洞,也算rce漏洞,因为渗透的最终情况可以实现执行命令或…

Linux——自制shell命令行解释器

文章目录1.打印命令提示符2.获取用户输入指令3.重定向分析4.命令行参数表,环境变量表,初始化5.命令解析6.命令执行6.1.创建子进程6.2 处理内建命令6.3 文件重定向7.源码前言 在实现shell的时候我们先创建自己myshell目录,在目录中创建myshell.cc文件,因…

Boost库智能指针boost::shared_ptr详解和常用场景使用错误示例以及解决方法

1、Boost智能指针 —— boost::shared_ptr 详解一、什么是 boost::shared_ptr boost::shared_ptr 是 Boost 库中实现的一个智能指针模板类,用于管理动态分配的对象生命周期,采用引用计数机制。多个 shared_ptr 实例可以共享同一个对象的所有权&#xff0…

科学分析指南,如何快速找到并清理磁盘的无用文件

随着时间的推移,系统中会积累大量的临时文件、缓存文件、不再需要的安装包或其他大型文件。磁盘清理可以删除这些不必要的文件,从而释放宝贵的磁盘空间。它无需安装,插上 U 盘就能直接使用。只需勾选需要扫描的磁盘,点击“开始分析…

Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡

Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡一、查看 Laravel 版本的方法优雅草蜻蜓T会议系统专业版 最近又有客户要了,但是发现 密码不对 管理员账户密码不对,卓伊凡必须处理下,这里顺便讲解密…

针对大规模语言模型的上下文工程技术调研与总结(翻译并摘要)

针对大规模语言模型的上下文工程技术调研与总结声明摘要部分翻译介绍部分翻译相关工作部分翻译并摘要为什么使用上下文工程(翻译并摘要)基础组件(翻译并摘要)RAG(翻译并摘要简单介绍一下个人认为比较好的技术&#xff…

QT配置Quazip外部库

1.下载QuaZip源码网址:https://sourceforge.net/projects/quazip/  注:下载->解压->打开.pro文件2.编译QuaZip源码2.1配置zlib注:QuaZip需zlib的支持,我们需要引用zlib找到本地安装Qt目录下zlib目录:注&#x…

从C++开始的编程生活(4)——类的定义、访问限定符、类域、类的实例化和this指针

前言 本系列文章承接C语言的学习,需要有C语言的基础才能学会哦~ 第3篇主要讲的是有关于C的类的定义、访问限定符、类域、类的实例化和this指针。 C才起步,都很简单呢! 目录 前言 类 基本语法 访问限定符 基本语法 类域 类的实例化 内…

AD域控制器虚拟化的安全加固最佳实践

以下是AD域控制器虚拟化安全加固的7项核心实践,结合最新Windows Server 2022特性与虚拟化环境需求:基础架构强化‌ 采用静态IP分配并确保所有域控节点DNS指向主DC(如192.168.1.10)‌ 虚拟机模板需预配置林/域功能级别为Windows Se…

java解析nc气象数据

1.1pom.xml<dependency><groupId>edu.ucar</groupId><artifactId>netcdfAll</artifactId><version>5.4.1</version></dependency>1.2 netcdf使用/** param type 0 ,1, 2 wind 1 or 2 其他 0 .* return Map* */public Map i…

STC8H8K64U SKDIP28芯片频率占空比PWM波形

/****PWM输出任意周期占空比波形*******/ #include "STC8H.h" // #include "intrins.h" // #define uchar unsigned char // #define uint unsig…

【RK3576】【Android14】USB开发调试

获取更多相关的【RK3576】【Android14】驱动开发&#xff0c;可收藏系列博文&#xff0c;持续更新中&#xff1a; 【RK3576】Android 14 驱动开发实战指南 硬件接口 RK3576支持两个USB3.0控制器 驱动开发 dts配置 在“Android14/kernel-6.1/arch/arm64/boot/dts/rockchip/rk…

20. TaskExecutor与ResourceManager心跳

20. TaskExecutor与ResourceManager心跳 现在&#xff0c;需要回过头看 ResourceManager是如何产生心跳管理服务的。cluster.initializeServices 方法的 heartbeatServices createHeartbeatServices(configuration);产生一个 HeartbeatServicesImpljobmanager的 resourceManag…

OS19.【Linux】进程状态(上)

目录 1.情景引入 2.操作系统学科对进程状态的分类 运行状态 基于时间片的轮转调度算法 阻塞状态 等待IO设备的例子 等待其他进程中需要获取的数据 进程唤醒 挂起状态(全称为阻塞挂起状态) 简单谈谈虚拟内存管理 就绪状态 笔面试题 3.Linux对进程状态的分类 R和S状…

如何优雅地修改项目的 Android 版本(API 级别)

引言 在 Android 开发的日常迭代中&#xff0c;我们经常需要升级或降级项目的 minSdkVersion、targetSdkVersion 与 compileSdkVersion。升级可以解锁新特性和性能优化&#xff1b;降级则可能为了兼容旧机型或快速验证问题。本文将手把手演示在 Android Studio 里修改 Android …

GNU Radio多类信号多种参数数据集生成技巧

参考我的这篇博客&#xff0c;我想自制一个多信号数据集&#xff1a; 【多雷达信号硬件模拟】 3台USRP1台VSG信号发生器模拟多雷达信号&#xff0c;1台USRP产生高斯噪声模拟更多信道环境&#xff0c;1台USRP采集信号 需要在多个波段对四种信号进行参数设置&#xff0c;带宽有…