【AI原理解析】—支持向量机原理

目录

[1. 支持向量机(SVM)概述](#1. 支持向量机(SVM)概述)

[2. 超平面与支持向量](#2. 超平面与支持向量)

[3. 间隔最大化](#3. 间隔最大化)

[4. 优化问题](#4. 优化问题)

[5. 核函数](#5. 核函数)

[6. 总结](#6. 总结)


1. 支持向量机(SVM)概述

  • 定义:支持向量机是一种监督学习模型,主要用于数据分类问题。其基本思想是通过一个超平面来分割数据点,使得不同类别的数据点位于超平面的两侧。
  • 分类:支持向量机主要分为三类:线性可分支持向量机、线性支持向量机和非线性支持向量机。

2. 超平面与支持向量

  • 超平面:在n维空间中,超平面是一个n-1维的子空间。在二维空间中,它是一个直线;在三维空间中,它是一个平面。超平面可以表示为 w^T * x + b = 0,其中w是法向量,b是截距,x是样本点。
  • 支持向量:距离超平面最近的样本点称为支持向量。这些点对确定超平面的位置起着决定性作用。

3. 间隔最大化

  • 函数间隔:对于给定的训练集和超平面,样本点 (x_i, y_i) 到超平面的函数间隔为 r_i = y_i(wT * x_i + b)。但是,当w和b成比例变化时,函数间隔也会成比例变化。
  • 几何间隔:为了消除这种影响,引入了几何间隔。样本点 (x_i, y_i) 到超平面的几何间隔为 γ_i = y_i((w / ||w||) * x_i + b / ||w||)。其中 ||w|| 是w的范数。
  • 目标:SVM的目标是找到一个超平面,使得训练集上所有样本点的几何间隔最大。这可以转化为一个优化问题,即最大化几何间隔。

4. 优化问题

  • 优化目标:最小化 ||w||2 / 2,同时满足约束条件 y_i(wT * x_i + b) ≥ 1(对于所有样本点)。这是一个凸二次规划问题。
  • 求解:通过拉格朗日乘子法将原始问题转化为对偶问题,并利用SMO算法求解。最终得到的是w和b的最优解,从而确定最优超平面。

5. 核函数

  • 非线性分类:对于非线性可分的数据,SVM通过引入核函数将数据映射到高维空间,使得数据在高维空间中线性可分。
  • 常用核函数:包括线性核、多项式核、高斯核等。选择合适的核函数对于SVM的性能至关重要。

6. 总结

  • 支持向量机通过找到一个最优超平面来实现对数据的分类。该超平面由支持向量确定,并且使得训练集上所有样本点的几何间隔最大。
  • 对于非线性可分的数据,SVM通过引入核函数将数据映射到高维空间,实现非线性分类。
  • SVM具有泛化能力强、对高维数据有效等优点,在许多领域都有广泛的应用。
相关推荐
苏苏susuus14 分钟前
NLP:Transformer之self-attention(特别分享3)
人工智能·自然语言处理·transformer
猫天意17 分钟前
【目标检测】metrice_curve和loss_curve对比图可视化
人工智能·深度学习·目标检测·计算机视觉·cv
纪元A梦22 分钟前
贪心算法应用:K-Means++初始化详解
算法·贪心算法·kmeans
山烛31 分钟前
OpenCV:图像透视变换
人工智能·opencv·计算机视觉·图像透视变换
_不会dp不改名_35 分钟前
leetcode_21 合并两个有序链表
算法·leetcode·链表
艾醒(AiXing-w)1 小时前
探索大语言模型(LLM):Ollama快速安装部署及使用(含Linux环境下离线安装)
linux·人工智能·语言模型
mark-puls1 小时前
C语言打印爱心
c语言·开发语言·算法
月小水长1 小时前
大模型接入自定义 MCP Server,我开发了个免费使用的基金涨跌归纳和归因分析的 Agent
人工智能·后端
Python技术极客1 小时前
将 Python 应用打包成 exe 软件,仅需一行代码搞定!
算法
睡不醒的kun1 小时前
leetcode算法刷题的第三十四天
数据结构·c++·算法·leetcode·职场和发展·贪心算法·动态规划