SVM

news/2024/11/16 9:52:35/文章来源:https://www.cnblogs.com/Blackteaxx/p/18201606

idea of SVM

分类问题的简化

首先我们考虑这样一个分类问题

  • 二分类
  • 线性分类边界
  • 100% 可分

我们就能够考虑想出一个好的 idea,如下图所示

img

在上述条件满足的情况下,哪一个分类边界最好?

idea:最大化所有点到分类边界的最小距离,这个最小距离称为 margin

形式化距离

函数间隔:\(| w^Tx_i + b |\)

几何间隔:\(\frac{|w^Tx_i + b|}{\| w \|}\), 这也表示了一个点到超平面的距离

proof

我们 denote \(w^Tx + b = 0\)为超平面,那么对于任意一个点\(x_i\),我们可以将其投影到超平面上,得到\(x_i'\),那么有\(r = x_i - x_i' = r_0 w \Rightarrow x_i' = x_i - r_0 w\)

那么有

\[\begin{aligned} r_0 &= \frac{w^T x_i + b}{\| w \|} \end{aligned} \]

\(r_0\)的 abs 即为我们想要的距离

proof end

形式化想法

我们使用几何间隔来表示点到超平面的距离,那么 margin 即为

\[\text{margin}=\min_{i=1,2,\ldots,N} \frac{|w^Tx_i + b|}{\| w \|} \]

如果我们将标签\(y\)限制在集合\(\{ +1, -1 \}\)(为了方便优化),那么我们的目标函数即为

\[\max_{w,b} \min_{i=1,2,\ldots,N} \frac{|w^Tx_i + b|}{\| w \|} \\ \text{s.t. } y_i(w^Tx_i + b) \geq 0, \quad i = 1, 2, \ldots, N \]

去除绝对值,我们可以得到

\[\max_{w,b} \frac{1}{\| w \|} \min_{i=1,2,\ldots,N} y_i({w^Tx_i + b}) \\ \text{s.t. } y_i(w^Tx_i + b) \geq 0, \quad i = 1, 2, \ldots, N \]

形式上依旧可以简化,一个想法是对于一个分式,我们可以通过限制其中一项,来优化另一项,可以得到相同的解,即

\[\arg \max \frac{f(x)}{g(x)} \iff \arg \max \frac{c f(x)}{c g(x)} \iff \arg \max f(x), \quad s.t. \ g(x) = c \]

于是我们可以通过限制 margin 的值,来优化 \(w, b\),即限制\(\min_{i=1,2,\ldots,N} y_i({w^Tx_i + b}) = 1\)

于是我们可以得到最终形式

\[\min_{w,b} \frac{1}{2} \| w \|^2 \\ \text{s.t. } y_i(w^Tx_i + b) \geq 1, \quad i = 1, 2, \ldots, N \]

这是一个凸二次规划问题,Dual Gap 为 0,因此我们可以通过求解对偶问题来求解原问题,即使用 KKT 条件来求解原问题。

然而值得注意的是,使用对偶问题的好处在于我们能够使用 Kernel function 将原问题映射到高维空间,从而解决线性不可分的问题,对于求解时间的提升并不明显,甚至于说,对于线性可分的问题,我们可以直接求解原问题,而不需要使用对偶问题(\(\mathcal{O}(n^{1.x})\))。

Hard Margin-SVM

\[\max_{\alpha} \min_{w,b} \frac{1}{2} \| w \|^2 + \sum_{i=1}^N \alpha_i (1 - y_i(w^Tx_i + b)) \\ \text{s.t. } \alpha_i \geq 0, \quad i = 1, 2, \ldots, N \]

\[\begin{aligned} \mathcal{L}(w, b, \alpha) &= \frac{1}{2} \| w \|^2 + \sum_{i=1}^N \alpha_i (1 - y_i(w^Tx_i + b)) \end{aligned} \]

求一下偏导数(最小值的必要条件):

\[\begin{aligned} \frac{\partial \mathcal{L}(w, b, \alpha)}{\partial w} &= w - \sum_{i=1}^N \alpha_i y_i x_i = 0 \\ \Rightarrow w & = \sum_{i=1}^N \alpha_i y_i x_i \\ \frac{\partial \mathcal{L}(w, b, \alpha)}{\partial b} &= -\sum_{i=1}^N \alpha_i y_i = 0 \\ \end{aligned} \]

代入 \(w, b\),我们可以得到对偶问题

\[\mathcal{L}(w, b, \alpha) = \frac{1}{2} \| w \|^2 + \sum_{i=1}^N \alpha_i (1 - y_i(w^Tx_i + b)) = \\ \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j + \sum_{i=1}^N \alpha_i - \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j = \\ \sum_{i=1}^N \alpha_i - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j \]

因此,我们可以得到对偶问题

\[\max_{\alpha} \sum_{i=1}^N \alpha_i - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j \\ \text{s.t. } \alpha_i \geq 0, \quad i = 1, 2, \ldots, N \\ \sum_{i=1}^N \alpha_i y_i = 0 \]

我们如果想要对偶问题有意义且和原问题有对应关系(对于 QP 是强对偶关系),那么我们需要满足 KKT 条件,即

\[\begin{aligned} \frac{\partial \mathcal{L}(w, b, \alpha)}{\partial w} &= w - \sum_{i=1}^N \alpha_i y_i x_i = 0 \\ \Rightarrow w & = \sum_{i=1}^N \alpha_i y_i x_i \\ \frac{\partial \mathcal{L}(w, b, \alpha)}{\partial b} &= -\sum_{i=1}^N \alpha_i y_i = 0 \\ 1 - y_i(w^Tx_i + b) &\leq 0 \\ \alpha_i &\geq 0 \\ \alpha_i (1 - y_i(w^Tx_i + b)) &= 0 \end{aligned} \]

此时\(v(D) = v(P)\), 同时\(\alpha^\star\)即对应原问题 KKT 点的乘子。

\(w^\star, b^\star\)可以通过 KKT 求解

\[w^\star = \sum_{i=1}^N \alpha_i^\star y_i x_i \\ \alpha_i^\star (1 - y_i(w^{\star T}x_i + b^\star)) = 0 \]

那么对于\(1 - y_i(w^{\star T}x_i + b^\star) = 0\)的点,我们拥有\(\alpha_i^\star \geq 0\),我们称之为 支持向量,只要寻找到一个就可以求解\(b^\star\)

\[b^\star = y_i - \sum_{j=1}^N \alpha_j^\star y_j x_j^T x_i \]

然而在实际过程中,为了减少误差,我们可以求解所有支持向量的平均值。

在求解过程中的有趣的现象

  1. 目标函数首先我们看对偶问题的目标函数

    \[\max_{\alpha} \sum_{i=1}^N \alpha_i - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j \\ \text{s.t. } \alpha_i \geq 0, \quad i = 1, 2, \ldots, N \\ \sum_{i=1}^N \alpha_i y_i = 0 \]

    观察\(\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j\),可以将其写成一个二次型\((\alpha y)^T X^T X (\alpha y)\), 那么如果将\(X\)单位化,\(X^T X\)是一个相似性矩阵(考虑\(cos \theta\))。不单位化也可以表示相似性。

    那么 SVM 的学习过程可以看作是在一个相似性空间中进行的,类别相同的点在相似性空间中更加接近,而类别不同的点在相似性空间中更加远离。

  2. 对偶问题中的约束

    \[\sum_{i=1}^N \alpha_i y_i = 0 \]

    每一个点都有一个乘子,对于不是支持向量的点,\(\alpha_i = 0\),对于支持向量,\(\alpha_i > 0\)

    正类与负类的乘子之和为 0,可以看作隐式的对正负类做了平衡性调节。

Soft Margin-SVM

Hard Margin-SVM 考虑的情况非常理想,而对于线性不可分的问题,我们无法求解,因此我们引入了 Soft Margin-SVM。

我们可以引入一个 loss function,对于每一个点,我们引入一个 \(\xi_i\)\(\xi_i = 0,\quad y_i(wx_i + b) \geq 0\), \(\xi_i = 1-y_i(wx_i + b), \quad y_i(wx_i + b) < 0\), 那么我们可以写出优化目标

\[\min_{w,b,\xi} \frac{1}{2} \| w \|^2 + C \sum_{i=1}^N \xi_i \\ \text{s.t. } y_i(wx_i + b) \geq 1 - \xi_i, \quad i = 1, 2, \ldots, N \\ \xi_i \geq 0, \quad i = 1, 2, \ldots, N \]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/709136.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新浪微博动态 RSA 分析图文+登录

当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解 新浪微博动态 RSA 分析图文+登录 日期:2016-10-12 阿珏 教程 浏览:3583次 评论:5条新浪微博动态 RSA 分析一、用到的工具1.ie 浏览器(9 …

那些曾经逝去的记忆

当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解 那些曾经逝去的记忆 日期:2016-10-23 阿珏 谈天说地 浏览:1458次 评论:2条有的时候真的想,永远的都不要长大,永远都停留在童年时期。但…

【触想智能】工业一体机安装注意的问题与应用领域分析

工业一体机是一款集工业控制显示设备、计算机系统和物联网等技术于一体的新型智能设备,其被广泛应用于工业生产、商业、交通、大数据等领域。工业一体机在安装时需要注意哪些问题以及其具体应用领域有哪些?下面小编给大家介绍一下。一、安装工业一体机需要注意以下几个方面:…

常见的排序算法——归并排序(四)

本文记述了针对归并排序的 3 项改进和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 本文实现了《算法(第4版)》书中提到的 2 项改进和练习题 2.2.10。对小规模子数组使用插入排序。因为递归会使小规模问题中方法的调用过于频繁,所以改进对它们的…

食物识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型

一、介绍 食物识别系统。该项目通过构建包含11种常见食物类别(包括Bread, Dairy product, Dessert, Egg, Fried food, Meat, Noodles-Pasta, Rice, Seafood, Soup, Vegetable-Fruit)的图片数据集,并利用TensorFlow框架下的ResNet50神经网络模型进行开发。项目流程包括数据预…

和谷歌Google I/O杠上了,ChatGPT将具备通话功能

在当今社会,人工智能技术的发展已经取得了巨大的成就,尤其是在语言领域。ChatGPT作为一种新型的自然语言处理模型,被广泛应用于各种领域,比如问答系统、智能对话系统等,其在对话生成方面的表现也十分出色。而随着技术的不断发展,有人开始猜测ChatGPT是否将来具备通话功能…

CSP历年复赛题-P1014 [NOIP1999 普及组] Cantor 表

原题链接:https://www.luogu.com.cn/problem/P1014 题意解读:根据z字形遍历,求第n个数。 解题思路: 根据题意,遍历顺序如下图所示观察得知,第i层的x/y的x+y = i + 1,并且 如果i是偶数,x从1开始枚举;如果i是奇数,x从i开始枚举 100分代码: #include <bits/stdc++.h…

项目管理之八大绩效域------笔记(五)

18.7 度量绩效域度量绩效域涉及评估项目绩效和采取应对措施相关的活动和职能度量是评估项目绩效,并采取适当的应对措施,以保持最佳项目绩效的过程。一、 预期目标:①对项目状况充分理解;(随时对项目有充分了解) ②数据充分,可支持决策; ③及时采取行动,确保项目最佳绩效;…

CGCL论文阅读笔记

Candidate–aware Graph Contrastive Learning for Recommendation论文阅读笔记 Abstract 现存问题: ​ 大多数基于gcl的方法使用启发式数据增强方法,即随机节点/边下降和属性掩蔽,来构造对比对,导致重要信息的丢失。 解决方案: ​ 为了解决基于gcl的方法中的问题,我们提…

如何使用抽象,虚方法,重写,看了这个示例,超级好用

基础参数 interface,abstract,virtual,override 然后实现了这样的效果 同一个方法,调用不同的实现类,那实现不一样的结果 具体代码public interface IStatsBase{string UserSpeak(string content);string UserHandel(string content);}public interface IUserStatsBase{s…

如何使用虚方法,重写,接口那实现不一样的结果

基础参数 interface,abstract,virtual,override 然后实现了这样的效果 同一个方法,调用不同的实现类,那实现不一样的结果 具体代码public interface IStatsBase{string UserSpeak(string content);string UserHandel(string content);}public interface IUserStatsBase{s…

Calico 组网(Networking)

确定最佳网络选项 了解 Calico 支持的不同网络选项,以便您可以选择最适合您需求的选项。Calico 灵活的模块化架构支持广泛的部署选项,因此您可以选择适合您的特定环境和需求的最佳网络方法。这包括能够以非覆盖或覆盖模式、带或不带 BGP 运行各种 CNI 和 IPAM 插件以及底层网…