统计学习算法——支持向量机的基本概念

内容来自B站Up主:FunInCode https://www.bilibili.com/video/BV16T4y1y7qj、风中摇曳的小萝卜https://www.bilibili.com/video/BV1vv4y1g721,仅为个人学习所用。

支持向量机中的复杂的数学推导本文不涉及,仅为概念理解。

超平面

若数据在一条直线上(一维),可以找到一个点将两种数据进行区分。

若数据在一个平面内(二维),可以找到一条直线将两种数据区分。

若数据在三维立体空间(三维)内,可以找到一个平面将两种数据区分。

也就是说,在n维空间中,存在一个n-1维的超平面将数据区分开来。

下面的讨论只讨论二维的情况。

支持向量机

引入

在二维空间中存在一些数据点,如何找到一条较好的直线将两类数据进行区分?

相关概念

决策边界线与(硬)间隔

决策边界线是在分类问题中,将不同类别的数据分开的边界。如上图中的蓝色、粉红色、绿色线,将两类数据作了区分。上述问题实际上是如何找到一条最佳的决策边界线的问题。

看图像上的蓝色决策边界线,发现某些点距离蓝色线非常近。若有一个新的数据同样在蓝色线附近,造成错误分类的概率很大。

看图像上的粉红色决策边界线,两类数据中所有点都与该线保持了一定的距离,将这个距离称为间隔 (没有容错率,也成为硬间隔)。

间隔越大,说明两类数据的差异越大,区分起来就较容易。因此,将寻找最佳决策边界线问题可以转化为求解两类数据的最大间隔问题。当有新数据需要判断时,根据其所在的决策边界的相对位置,就可以将其分类。

支持向量

假设决策边界的超平面方程为 w 1 x 1 + w 2 x 2 + b = 0 w_1x_1+w_2x_2+b=0 w1x1+w2x2+b=0(直线方程的一般式),将其移动 ± c \pm{c} ±c个距离,就会来到对应的上下边界。上下边界会经过一些样本数据点,这些点距离决策边界点最近,他们决定了间隔距离(图中打⭐的数据点),将图中打⭐的数据点称为支持向量

方程同时除以 c c c,使用上标撇来代替系数,就得到了新的直线方程(粉红色部分)。方程式右侧是 ± 1 \pm1 ±1,将这两个方程式定义为正负超平面。

由于 w ′ w' w′、 b ′ b' b′只是符号,故替换为 w w w和 b b b,有

注意,正负超平面在图上是虚线(二维空间的超平面是一维的),不是平面区域。

损失因子

假设数据中出现了一个异常的点黄点,需不需要因为该异常点缩短间隔距离?

因此引入损失因子的概念。这些异常点有其对应的损失值。接下来,同时考虑间隔和损失的条件下,如何最大化的去画决策边界线。该条件下形成的间隔称为软间隔

软间隔有一定的容错率,目的是在间隔距离和错误大小之间找到一个平衡值。

升维转换

有这样一些点,在二维平面下不能通过一维的直线很好的分类

但是引入新的维度,在三维空间中,可以使用一个超平面(该超平面是平面)对其进行区分。

对原来的二维平面上的数据,常规的做法是引入一个新的维度进行计算。但这样会大大增加数据存储需求和计算需求。因此,使用核技巧,可以避免将数据送入高纬度空间进行计算,但是又能够获得同样的分类效果。

核函数与核技巧

核函数

核函数是在支持向量机等算法中广泛使用的函数。用于将低维空间中的数据映射到高维空间,而无需显式地计算高维空间中的数据点坐标。其主要目的是在高维空间中找到一个更适合分类或回归任务的决策边界。

在机器学习的分类任务中,比如识别图片是猫还是狗。原始的图片数据(像颜色、形状等简单特征组成的低维空间)可能很难区分猫和狗的图片。

核函数可以把这些图片数据进行一种复杂的变换(想象成提取更复杂的特征,像动物的神态、动作风格等,就好像把数据变到高维空间),然后通过比较这些变换后的数据之间的相似度,来更好地判断一张图片是猫还是狗。如果一张图片经过核函数计算后,计算的结果与已知的猫的特征向量的相似度很高(例如,核函数值接近 1),并且与狗的特征向量的相似度较低,那么模型就会倾向于判断这张图片是猫,反之会判断为狗。

核技巧

核技巧是一种利用核函数来高效地解决机器学习问题的方法。在支持向量机(SVM)中,通常需要计算数据点在高维空间中的内积。核技巧通过直接使用核函数来计算这个内积,而不是先将数据点映射到高维空间再计算内积,从而避免了高维空间中复杂的计算。

核技巧依赖于核函数。核函数提供了在低维空间中计算高维空间内积的工具,而核技巧是利用这个工具来优化机器学习算法的计算过程。没有核函数,核技巧就无法实现其高效计算高维空间内积的功能;而核技巧则是核函数在机器学习算法中的具体应用方式,使得算法能够在不显式处理高维空间数据的情况下,利用高维空间的优势来提高性能。

向量内积与相似度之间的关系:

内积的几何定义是一个向量在另一个向量方向上的投影长度与另一个向量长度的乘积。如果两个向量的夹角越小,那么一个向量在另一个向量方向上的投影长度就越长,内积的值就越大。

例如,对于单位向量 a → \overrightarrow{a} a 和 b → \overrightarrow{b} b ,当它们同向时,夹角为0度, a → × b → = ∣ a → ∣ × ∣ b → ∣ × cos ⁡ 0 = 1 \overrightarrow{a} \times \overrightarrow{b} = \left|\overrightarrow{a}\right| \times\left|\overrightarrow{b}\right|\times\cos0=1 a ×b = a × b ×cos0=1,此时内积最大,表示它们最相似;当夹角为 90 90 90度时,结果为0,表示它们垂直,不相似;当夹角为180度时,结果为-1,表示它们方向相反,也不相似。

因此,若核技巧计算的内积结果为接近于1,说明很相似;接近于0,说明不相似。

相关推荐
仙俊红1 小时前
LeetCode每日一题,20250914
算法·leetcode·职场和发展
Hello_Embed6 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中6 小时前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Magnetic_h7 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
风中的微尘8 小时前
39.网络流入门
开发语言·网络·c++·算法
研梦非凡8 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d
西红柿维生素9 小时前
JVM相关总结
java·jvm·算法
limengshi1383929 小时前
机器学习面试:请介绍几种常用的学习率衰减方式
人工智能·学习·机器学习
知识分享小能手9 小时前
React学习教程,从入门到精通,React 组件核心语法知识点详解(类组件体系)(19)
前端·javascript·vue.js·学习·react.js·react·anti-design-vue
周周记笔记10 小时前
学习笔记:第一个Python程序
笔记·学习