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

【1】引言

前序学习进程中,我们已经掌握了支持向量机算法中,为寻找最佳分割超平面,如何用向量表达超平面方程,如何为超平面方程建立拉格朗日函数

本篇文章的学习目标是:求解SVM拉格朗日函数。

【2】求解方法

【2.1】待求解函数

支持量机算法的拉格朗日函数为:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i y i ( w ⋅ x i + 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,α)=21∥w∥2−i=1∑mαiyi(w⋅xi+b−1)

【2.2】函数求导

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

【2.2.1】对w求导

∂ L ∂ w = ∂ ∂ w 1 2 w T w − ∑ i = 1 m α i y i w T x i \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∂L=∂w∂21wTw−i=1∑mαiyiwTxi

细心观察的朋友肯定发现上式出现了权重矩阵w的转置 w T w^T wT,这是因为:

在之前的所有公式的写法中,我对w和x/的矩阵乘法都沿用了最为稳妥的写法 w ⋅ x w\cdot x w⋅x。在机器学习领域,一般默认的向量形式为列向量,所以 w w w和 x i x_{i} xi可能都是列向量,实际做矩阵乘法的时候,需要转置其中一个,实际的超平面式简写后为
w T x + b = 0 w^Tx+b=0 wTx+b=0或者 w x T + b = 0 wx^T+b=0 wxT+b=0这两种写法完全等效。

在求导的时候,必须选择上述写法中的任何一个,这里选择了 w T x i + b = 0 w^Tx_{i}+b=0 wTxi+b=0,是为了和 1 2 ∥ w ∥ 2 = 1 2 w T w \frac{1}{2}{\left\|w\right\|}^2=\frac{1}{2}w^Tw 21∥w∥2=21wTw保持一致。

继续求解导数:
∂ L ∂ w = ∂ ∂ w 1 2 w T w − ∑ i = 1 m α i y i w T x i = w − ∑ i = 1 m α i y i x i \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} ∂w∂L=∂w∂21wTw−i=1∑mαiyiwTxi=w−i=1∑mαiyixi

【2.2.2】对b求导

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

【2.3】极值代入

令前两步的导数为0,首先:
∂ L ∂ w = w − ∑ i = 1 m α i y i x i = 0 \frac{\partial L}{\partial w}=w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}=0 ∂w∂L=w−i=1∑mαiyixi=0可得:
w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i} w=i=1∑mαiyixi

然后:
∂ L ∂ b = − ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b}=-\sum_{i=1}^{m}\alpha_{i}y_{i}=0 ∂b∂L=−i=1∑mαiyi=0

可得:
∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_{i}y_{i}=0 i=1∑mαiyi=0将上数值代入拉格朗日函数有:

第一项:
1 2 ∥ w ∥ 2 = 1 2 w T w = 1 2 ( ∑ i = 1 m α i y i x i ) T ∑ i = 1 m α j y j x j = 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j \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} 21∥w∥2=21wTw=21(i=1∑mαiyixi)Ti=1∑mαjyjxj=21i,j=1∑mαiαjyiyjxiTxj

第二项:
∑ i = 1 m α i y i w T x i = ∑ i = 1 m α i y i ( ∑ j = 1 m α j y j x i ) T x i = ∑ i = 1 m α i y i ( ∑ j = 1 m α j y j x j T ) x i = ∑ i , j = 1 m α i α j y i y j x j T x i \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=1∑mαiyiwTxi=i=1∑mαiyi(j=1∑mαjyjxi)Txi=i=1∑mαiyi(j=1∑mαjyjxjT)xi=i,j=1∑mαiαjyiyjxjTxi

第三项:
∑ i = 1 m α i y i b = b ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_{i}y_{i}b=b\sum_{i=1}^{m}\alpha_{i}y_{i}=0 i=1∑mαiyib=bi=1∑mαiyi=0

第四项:
∑ i = 1 m α i ⋅ 1 = ∑ i = 1 m α i \sum_{i=1}^{m}\alpha_{i}\cdot 1=\sum_{i=1}^{m}\alpha_{i} i=1∑mαi⋅1=i=1∑mαi

将上述四项叠加后,得到:
L ( w , b , α ) = ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j L(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=1∑mαi−21i,j=1∑mαiαjyiyjxiTxj

【3】总结

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

相关推荐
人工智能培训5 分钟前
人工智能数据安全下的个人信息保护实践方案
大数据·人工智能·算法·生活
大象AI共学6 分钟前
# 【AI成本治理】额度缩水 44%-76% 之后的自查清单:10 题体检表 + 三档模型组合 + 免费/本地化实测方案
人工智能
OceanBase数据库官方博客6 分钟前
亮相“十五五”公积金高质量发展大会“AI 数据库”助力智慧公积金升级
数据库·人工智能
用户83562907805112 分钟前
使用 Python 在 Excel 中插入 OLE 对象
后端·python
学习星球12 分钟前
2026 AI游戏开发实战指南:从NVIDIA ACE到Summer Engine,AI如何重塑游戏开发
人工智能·microsoft
稚语成长16 分钟前
适趣大历史是什么?儿童历史启蒙 AI App 解析(H1–H7 分级、适合几岁、怎么用)
人工智能
one31220 分钟前
高精度MEMS电容式倾角传感器:原理、结构与Python三维可视化
开发语言·python
dongd70326 分钟前
2026年大语言模型AI网关行业调查报告已出刊:产业链、占有率、发展前景,一次讲透
大数据·人工智能·语言模型
一RTOS一28 分钟前
2026世界机器人大会:鸿道为具身智能机器人打造“神经系统”
人工智能·机器人·鸿道操作系统·鸿道实时操作系统·国产嵌入式操作系统选型·智算控一体
auto_go35 分钟前
大模型实战指南(10)——多模态实战:让模型“看懂”图片和视频
大数据·人工智能·音视频