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

python学智能算法(二十七)|SVM-拉格朗日函数求解上

【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.dtcms.com/a/290738.html

相关文章:

  • SVM(Support Vector Machine)从入门到精通
  • 部署zabbox企业级分布式监控
  • 软件卸载:金山毒霸怎么卸载?【图文讲解】【小白专属】
  • freertos双向链表的插入
  • AI知识点——MCP
  • 如何使用终端查看任意Ubuntu的版本信息
  • 使用Langchain调用模型上下文协议 (MCP)服务
  • 中文分词模拟器 - 华为OD统一考试(Java 题解)
  • CS231n-2017 Lecture5神经网络笔记
  • 【Java EE初阶 --- 网络原理】应用层---HTTP(HTTPS)协议
  • 内网与外网是通过什么进行传输的?内外网文件传输的安全方法
  • Java从入门到精通 - 面向对象高级(三)
  • kafka 生产和消费 性能测试工具 kafka-producer-perf-test.sh kafka-consumer-perf-test.sh
  • kafka 生产消息和消费消息 kafka-console-producer.sh kafka-console-consumer.sh
  • Python 进阶(六): Word 基本操作
  • ROS 与 Ubuntu 版本的对应关系
  • 初学者STM32—USART
  • 了解类加载器吗?类加载器的类型有哪些?
  • Java 大视界 -- 基于 Java 的大数据分布式计算在地球物理勘探数据处理与地质结构建模中的应用(356)
  • 鹏鼎控股入职测评综合能力真题SHL测评题库2025年攻略
  • postgresql16.4 配置 数据库主从
  • PyTorch 实现 CIFAR-10 图像分类:从数据预处理到模型训练与评估
  • git bash命令不够完善,想整合msys2该怎么办?
  • 02-UE5蓝图初始的三个节点作用
  • 文娱投资的逆势突破:博派资本的文化旅游综合体战略
  • 阿里云宝塔Linux面板相关操作记录
  • 照片to谷歌地球/奥维地图新增功能:导出 GeoJSON 数据
  • 高级技术【Java】【反射】【注解】【动态代理】
  • c++:父类的析构函数定义为纯虚函数注意事项
  • “专属私有云”或“行业公有云(逻辑隔离的公共云专区)”两种主流部署模式到底有什么区别?政务云不就应该是专属的私有云么?政务云是不是不能混用?