python学智能算法(二十六)|SVM-拉格朗日函数构造

【1】引言

前序学习进程中,已经了解了拉格朗日乘数法求极值的基本原理,也了解了寻找最佳超平面就是寻找最佳分隔距离

这篇文章的学习目标是:使用拉格朗日乘数法获取最佳的分隔距离。

【2】构造拉格朗日函数

目标函数

首先是目标函数f:
f = min ⁡ 1 2 ∥ w ∥ 2 f=\min\frac{1}{2}{\left\|w\right\|}^2 f=min21∥w∥2

然后是约束函数g:

之前定义了函数距离F:
F = min ⁡ i = 1... m y i ( w ⋅ x i + b ) F=\min_{i=1...m}y_{i}({w \cdot x_{i}+b}) F=i=1...mminyi(w⋅xi+b)

以及几何距离δ:
δ = min ⁡ i = 1... m y i ( w ∥ w ∥ ⋅ x + b ∥ w ∥ ) \delta=\min_{i=1...m}y_{i}(\frac{w}{\left\|w\right\|}\cdot x+\frac{b}{\left\|w\right\|}) δ=i=1...mminyi(∥w∥w⋅x+∥w∥b)

约束函数

在引出目标函数f的过程中,使用的方法是:等比率调整权重矩阵w

和偏执量b,使得F=1。

所以才会有最佳超平面对应的最大分隔距离δmax:
δ m a x = max ⁡ 1 ∥ w ∥ \delta_{max}=\max{\frac{1}{\left\|w\right\|}} δmax=max∥w∥1

也是据此才转化出来的目标函数f。

我们在理解这个转化的时候可能过于简略,没有强调一个细节:

  • F=1是对最小的函数距离F调整权重矩阵w和偏置量b获得, 每个候选超平面都先将最小函数距离调整到1,;
    然后再来对比调整后的权重矩阵w,最小的w对应最大的f。

再强调一遍:
每个超平面的最小函数距离F都先调整为1,然后对比挑出来的所有1对应的权重矩阵w,取最小w对应的超平面为最佳超平面。

为此,将约束函数的定义重新也回到函数距离F的应用上,将F的定义改写成g:
g = y i ( w ⋅ x i + b ) ≥ 1 g=y_{i}(w \cdot x_{i}+b)\geq1 g=yi(w⋅xi+b)≥1

或者:
g = y i ( w ⋅ x i + b ) − 1 ≥ 0 g=y_{i}(w \cdot x_{i}+b)-1\geq0 g=yi(w⋅xi+b)−1≥0

g就是约束函数。

在此基础上,构造拉格朗日函数:
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]上式使用了自动求和符号,这是因为拉格朗日函数需要感知每一个约束条件,只有每个约束条件都满足,才能获得真正的最优解。

这里的每个约束条件都分配了单独的因子 α i \alpha_{i} αi。

总结

学习了SVM算法中的拉格朗日函数构造方法。

相关推荐
二进制person3 分钟前
数据结构--双向链表
java·开发语言·数据结构·算法·链表
Al leng10 分钟前
K 近邻算法(K-Nearest Neighbors, KNN)详解及案例
算法·近邻算法
无规则ai14 分钟前
OpenCV的应用:简单的人脸识别和检测
人工智能·opencv·计算机视觉
HEY_FLYINGPIG15 分钟前
【langchain】3分钟构建一个上下文聊天机器人
jvm·人工智能·python·langchain·机器人
lxmyzzs21 分钟前
【打怪升级 - 01】保姆级机器视觉入门指南:硬件选型 + CUDA/cuDNN/Miniconda/PyTorch 安装全流程(附版本匹配秘籍)
python·深度学习·神经网络·目标检测·计算机视觉·目标跟踪
易知微EasyV数据可视化24 分钟前
EasyMan 数字人服务全面焕新,交互型AI数字人助推孪生体验全新升级
人工智能·交互·数字孪生·数字人
飞哥数智坊28 分钟前
卷死PPT设计师!字节「扣子空间」4分钟全自动出稿
人工智能
小王子102431 分钟前
Django实战:Python代码规范指南
python·代码规范·代码风格·pep8
EndingCoder41 分钟前
未来趋势:LeafletJS 与 Web3/AI 的融合
前端·人工智能·前端框架·web3·动态规划·leafletjs·交互式地图
小屁孩大帅-杨一凡1 小时前
在Python中,有多个库可以帮助我们将HTML转换为Markdow
开发语言·前端·python·html