机器学习理论 | 周志华西瓜书 第六章:支持向量机

2024-04-10 23:48

本文主要是介绍机器学习理论 | 周志华西瓜书 第六章:支持向量机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第六章 支持向量机

此系列文章旨在提炼周志华《机器学习》的核心要点,不断完善中…


6.1 间隔与支持向量

  • 超平面(w,b)
    存在多个划分超平面将两类样本分开的情况在这里插入图片描述
    线性方程: w T x + b = 0 w^Tx+b=0 wTx+b=0

    • w w w:法向量,决定超平面方向
    • b b b:位移项,决定超平面与原点之间的距离

    样本空间中任意点到超平面的距离: r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^Tx+b|}{||w||} r=wwTx+b

  • 支持向量(super vector)
    条件一:距离超平面最近的几个训练样本点
    条件二:使得下方任一式子的等号成立
    { w T x i + b ≥ + 1 , y i = + 1 w T x i + b ≤ − 1 , y i = − 1 \begin{cases} w^Tx_i+b≥+1,y_i=+1\\ w^Tx_i+b≤-1,y_i=-1 \end{cases} {wTxi+b+1,yi=+1wTxi+b1,yi=1
    在这里插入图片描述

  • 间隔(margin)
    两个一类支持向量到超平面的距离直和: r = 2 ∣ ∣ w ∣ ∣ r=\frac 2{||w||} r=w2

  • 最大间隔(maximum margin)
    对应的划分超平面
    m a x w , b 2 ∣ ∣ w ∣ ∣ max_{w,b}\ \frac 2{||w||} maxw,b w2
    s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . m s.t. \ y_i(w^Tx_i+b)≥1,i=1,2,...m s.t. yi(wTxi+b)1,i=1,2,...m
    支持向量机的基本型
    m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 min_{w,b}\ \frac 1 2||w||^2 minw,b 21w2
    s . t . y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . m s.t. \ y_i(w^Tx_i+b)≥1,i=1,2,...m s.t. yi(wTxi+b)1,i=1,2,...m

上式就是凸二次规划问题

6.2 对偶问题

6.2.1 凸二次规划问题(convex quadratic programming)

6.2.2 对偶问题(dual problem)

  • 更高效求解参数w和b的方法:拉格朗日乘子法
    对SVM基本型式子的每条约束添加大于等于零的拉格朗日乘子,得到该问题的拉格朗日函数:
    L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(\bm w,b,\bm{\alpha})=\frac 1 2||\bm w||^2+\sum_{i=1}^m\alpha_i(1-y_i(\bm w^T\bm x_i+b)) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))
    令L(w,b,α)对w和b的偏导为零
    w = ∑ i = 1 m α 1 y i x i , 0 = ∑ i = 1 m α i y i \bm w=\sum_{i=1}^m\alpha_1y_i\bm x_i,\ 0=\sum_{i=1}^m\alpha_iy_i w=i=1mα1yixi, 0=i=1mαiyi
    将L(w,b,α)中的w和b消去,得到SVM基本型式子的对偶问题
    m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j max_\bm \alpha\sum_{i=1}^m\alpha_i-\frac 1 2\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_j\bm x_i^T\bm x_j maxαi=1mαi21i=1mj=1mαiαjyiyjxiTxj
    s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , . . . m s.t.\ \sum_{i=1}^m\alpha_iy_i=0,\ \alpha_i≥0,i=1,2,...m s.t. i=1mαiyi=0, αi0,i=1,2,...m
  • KKT(Karush-Kuhn-Tucker)条件
    { α i ≥ 0 ; y i f ( x i ) − 1 ≥ 0 ; α i ( y i f ( x i ) − 1 ) = 0 b \begin{cases} \alpha_i≥0;\\ y_if(\bm x_i)-1≥0;\\ \alpha_i(y_if(\bm x_i)-1)=0b \end{cases} αi0;yif(xi)10;αi(yif(xi)1)=0b
  • 求解对偶问题中的α
    思路:当做二次规划问题求解
    算法
    • 二次规划算法
      缺点:问题的规模正比于训练样本数,开销大
    • SMO(Sequential Minimal Optimization)算法
      选取一对需更新的变量
      固定这对变量以外的参数,求解对偶问题式中获得更新后的参数
      不断执行,直到收敛
  • 确定偏移项b
    思路:使用所有支持向量求解的平均值

6.2.3 支持向量机的重要性质

训练完成后大部分的训练样本都不需保留,最终模型仅与支持向量有关

6.3 核函数

  • 起初
    对非线性可分问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分
    如:异或问题与非线性映射
    在这里插入图片描述

  • 对偶问题
    目标函数: m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) max_\alpha\sum_{i=1}^m\alpha_i-\frac 1 2 \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \phi(\bm x_i)^T\phi(\bm x_j) maxαi=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)
    限制条件: ∑ i = 1 m α i y i = 0 , α i ≥ 0 , i = 1 , 2 , . . . , m \sum_{i=1}^m \alpha_i y_i=0, \alpha_i≥0, i=1,2,...,m i=1mαiyi=0,αi0i=1,2,...,m
    困难性:由于特征空间维数可能很高,甚至无穷维,直接计算特征向量内积通常是困难的
    进行函数变换: m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) max_\alpha\sum_{i=1}^m\alpha_i-\frac 1 2 \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \mathcal{K}(\bm x_i,\bm x_j) maxαi=1mαi21i=1mj=1mαiαjyiyjK(xi,xj)

  • 支持向量展式(support vector expansion)
    模型最优解可通过训练样本的核函数展开
    f ( x ) = w T ϕ ( x ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x ) + b = ∑ i = 1 m α i y i K ( x , x i ) + b \begin{aligned} f(\bm x)&=\bm w^T\phi (\bm x)+b \\ &=\sum_{i=1}^m \alpha_i y_i \phi (\bm x_i)^T\phi(\bm x)+b\\&=\sum_{i=1}^m\alpha_i y_i \mathcal{K}(\bm x,\bm x_i)+b \end{aligned} f(x)=wTϕ(x)+b=i=1mαiyiϕ(xi)Tϕ(x)+b=i=1mαiyiK(x,xi)+b

  • 核函数定理
    核矩阵(kernel matrix)K总是半正定的
    只要一个对称函数所对应的核矩阵半正定,就能用作核函数
    对于一个半正定矩阵,总能找到一个与之对应的映射
    任何一个核函数都隐式地定义了一个称谓“再生核希尔伯特空间”(RKHS)的特征空间

  • 常用的核函数
    线性核: K ( x i , x j ) = x i T x j \mathcal{K}(\bm x_i,\bm x_j)=\bm x_i^T\bm x_j K(xi,xj)=xiTxj
    多项式核(d=1退化为线性核): K ( x i , x j ) = ( x i T x j ) d \mathcal{K}(\bm x_i,\bm x_j)=(\bm x_i^T\bm x_j)^d K(xi,xj)=(xiTxj)d
    高斯核(RBF核): K ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) \mathcal{K}(\bm x_i,\bm x_j)=exp(-\frac{||\bm x_i-\bm x_j||^2}{2\sigma^2}) K(xi,xj)=exp(2σ2xixj2)
    拉普拉斯核: K ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ σ ) \mathcal{K}(\bm x_i,\bm x_j)=exp(-\frac{||\bm x_i-\bm x_j||}{\sigma}) K(xi,xj)=exp(σxixj)
    Sigmoid核: K ( x i , x j ) = t a n h ( β x i T x j + θ ) \mathcal{K}(\bm x_i,\bm x_j)=tanh(\beta \bm x_i^T \bm x_j +\theta) K(xi,xj)=tanh(βxiTxj+θ)

  • 注意点
    特征空间的好坏对支持向量机的性能至关重要
    “核函数选择”成为支持向量机的最大变数

6.4 软间隔与正则化

  • 硬间隔(hard margin):要求所有样本均满足约束,即所有样本都必须划分正确
  • 软间隔(soft margin)
  • 在这里插入图片描述
    • 解决现实任务:很难确定合适的核函数使得训练样本在特征空间中线性可分
    • 缓解的方法:允许支持向量机在一些样本上出错
      允许某些样本不满足约束: y i ( w T x i + b ) ≥ 1 y_i(\bm w^T \bm x_i +b)≥1 yi(wTxi+b)1
      不满足约束的样本应尽可能少
    • 新的优化目标函数: m i n w . b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 2 l 0 / 1 ( y i ( w T x i + b ) − 1 ) min_{w.b}\ \frac 1 2||\bm w||^2 +C\sum_{i=1}^2l_{0/1}(y_i(\bm w^T\bm x_i+b)-1) minw.b 21w2+Ci=12l0/1(yi(wTxi+b)1)
  • 替代损失(surrogate loss)
    • 替代损失函数比0/1损失函数一般具有较好的数学性质
      凸的连续函数
      0/1损失函数的上界
    • 常用的替代损失函数
      hinge损失: l h i n g e ( z ) = m a x ( 0 , 1 − z ) l_{hinge}(z)=max(0,1-z) lhinge(z)=max(0,1z)
      指数损失(exponential loss): l e x p ( z ) = e x p ( − z ) l_{exp}(z)=exp(-z) lexp(z)=exp(z)
      对率损失(logistic loss): l l o g ( z ) = l o g ( 1 + e x p ( − z ) ) l_{log}(z)=log(1+exp(-z)) llog(z)=log(1+exp(z))
  • 松弛变量(slack variables)
    新的目标函数: m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i min_{w,b}\ \frac 1 2||\bm w||^2+C\sum_{i=1}^m\xi_i minw,b 21w2+Ci=1mξi
    限制条件: y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , . . . m y_i(\bm w^T\bm x_i+b)≥1-\xi_i, \ \xi_i ≥0, i=1,2,...m yi(wTxi+b)1ξi, ξi0,i=1,2,...m
  • 正则化(regularization)
    • 各种替代损失函数学习模型的共性: m i n f Ω ( f ) + C ∑ i = 1 m l ( f ( x i ) , y i ) min_f \Omega(f)+C\sum_{i=1}^ml(f(\bm x_i),y_i) minfΩ(f)+Ci=1ml(f(xi),yi)
      • 结构风险(structural risk):优化目标中的第一项用来描述划分超平面的“间隔”大小
      • 经验风险(empirical risk):另一项用来表述训练集上的误差
      • C用于对二者进行折中
    • 可理解为一种“罚函数法”:对不希望得到的结果施以惩罚,从而使得优化过程中趋向于希望目标
    • 正则化问题
      • Ω(f):正则化项(Lp范数是常用的正则化项)
        • Lo范数||w||o
        • L1范数||w||1倾向于w的分量尽量稀疏,即非零分量个数尽量少
        • L2范数||w||2倾向于w的分量尽量取值均衡,即非零分量个数尽量稠密
      • C:正则化常数

6.5 支持向量回归

ε-间隔带:容忍f(x)与y之间最多有ε的偏差(认为此带中的预测正确)
在这里插入图片描述
SVR问题形式: m i n w . b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m l ε ( f ( x i ) − y i ) min_{w.b}\ \frac 1 2 ||w||^2 +C\sum_{i=1}^m l_{\varepsilon }(f(\bm x_i)-y_i) minw.b 21w2+Ci=1mlε(f(xi)yi)
ε-不敏感损失函数
1)表达式
{ 0 , i f ∣ z ∣ ≤ ε ∣ z ∣ − ε , o t h e r w i s e \begin{cases} 0,\ \ \ \ \ \ \ \ \ \ if \ |z|≤\varepsilon\\ |z|-\varepsilon,otherwise \end{cases} {0,          if zεzε,otherwise
2)图像
在这里插入图片描述
SVR式子重写(间隔带两次的松弛程度可以不同,引入两个松弛变量)
引入拉格朗日乘子、偏导为零、对偶问题、KKT条件、求解w和b,特征映射、核函数

6.6 核方法

  • 表示定理(representer theorem)
  • 核函数的巨大威力
    表示定理对损失函数没有限制
    对正则化项Ω仅要求单调递增,不要求是凸函数
  • 核方法定义:基于核函数的学习方法
  • 核方法的常见用法:通过“核化”(引入核函数)将线性学习器拓展为非线性学习器
    核线性判别分析(Kernelized Linear Discriminant Analysis, KLDA)

这篇关于机器学习理论 | 周志华西瓜书 第六章:支持向量机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892493

相关文章

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss