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αi[yi(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】总结

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

相关推荐
酉鬼女又兒2 分钟前
JAVA牛客入门11~20
算法
朴实赋能5 分钟前
生死线:2026年跨境电商大洗牌,AI赋能者存,守旧者亡——AI助力怎样重塑品牌出海新规则
人工智能·独立站运营·智矩引擎·跨境电商创业·ai跨境电商·tiktok电商运营·2026跨境电商新趋势
嘿嘻哈呀6 分钟前
Python类型检查和文档生成
python
梵得儿SHI6 分钟前
深度拆解 Google Personal Intelligence:下一代个性化 AI 的技术架构、隐私保障与未来愿景
大数据·人工智能·agi·pi·跨产品数据整合
Turboex邮件分享9 分钟前
邮件投递全流程故障排查手册
运维·人工智能
runner365.git11 分钟前
做一个基于ffmpeg的AI Agent智能体
人工智能·ffmpeg·大模型
代码游侠12 分钟前
C语言核心概念复习(二)
c语言·开发语言·数据结构·笔记·学习·算法
策知道21 分钟前
2026年北京政府工作报告产业指标深度解析
大数据·数据库·人工智能·搜索引擎·政务
咚咚王者23 分钟前
人工智能之核心技术 深度学习 第八章 数据预处理与增强
人工智能·深度学习
XX風24 分钟前
2.1_binary_search_tree
算法·计算机视觉