支持向量机算法(SVM)详细讲解(含手推公式)(《机器学习》--周志华)

#前言

    本人是一个本科到研究生都坚持本专业的人,但是,本科时间被狗吃了,目前还是小白一只,曾经以为考研之后要继续学习一技之长找个工作养活自己,当然,现在发现这都是自己想太多了,哈哈哈,读研之后才知道基础不好的人学习起来是多么困难,但是,既然选择了,哭着也要拿到毕业证啊。
     因为被老师安排讲解SVM算法并且推到公式,于是花了一些时间来研究和推到了SVM算法的公式。可能写的不够全,也可能由一些错的地方,第一次写博客,望多多指教。哈哈哈,说太多没用的,开始来看一下SVM吧!!

今天的内容:

  • 间隔与支持向量机
  • 对偶问题
  • 核函数
  • 软间隔
  • 支持向量回归

# 间隔与支持向量机

    支持向量机(support vector machines,SVM)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机。

    给定训练数据集 D = D= D={ ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) (x_{1},y_{1}),(x_{2},y_{2}),...,(x_{m},y_{m}) (x1,y1),(x2,y2),...,(xm,ym)}, y i ∈ y_{i}∈ yi{-1,+1},分类学习器最基本的想法就是基于训练集D在空间中找到一个划分平面,能够将不同的样本分开。如下图所示【图片来源网络】,在一个这个样本空间中,我们可以找到很多条划分平面能够将两类样本正确的分开,那么我们应该选择哪一条呢?或许你会说,当然是正中间那一条了,没错,如果你这么想,那么你已经知道SVM是用来干什么的了。

    正如你所想的,我们需要选择正中间的这条直线(图中红色的直线)作为我们的划分平面,因为这条直线的容错能力和泛化能力比较强,也就是说,当我们在样本空间中再增加一些样本,此时就会有很多划分平面不能再将样本正确的分开,而正中间这一条直线却还能正确的将样本区分开。我们的SVM算法就是要找到这样一个划分平面,使其能够将不同样本正确的分开并且对训练样本局部扰动的“容忍”性最好。     上述中提到的划分平面在SVM中就称为**超平面**,可以通过如下的线性方程来描述:

(1) w T x + b = 0 \bm{w^Tx}+b=0\tag{1} wTx+b=0(1)
其中, w = \bm{w}= w= ( w 1 , w 2 , . . . , w d ) (w_{1},w_{2},...,w_{d}) (w1,w2,...,wd)为法向量,决定超平面的方向,b为偏移项,决定超平面与原点之间的距离。划分超平面可记为 ( w T , b ) (\bm{w^T},b) (wT,b),样本空间中任意一点x到超平面的距离可写为:
(2) r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ . r=\frac{|\bm{w^Tx}+b|}{||w||}.\tag{2} r=wwTx+b.(2)
这个距离怎么得到的呢?下面请看我的推导:其中x是样本空间中任意一个样本, x 0 x_{0} x0是x再超平面上的投影,因此有 w T x 0 + b = 0 \bm{w^Tx_{0}}+b=0 wTx0+b=0,r为x到超平面的距离。

    假设超平面$(\bm{w^T},b)$能将训练样本正确分类,即对于任意的$(x_{i},y_{i})∈D$,若$y_{i}=+1$,则有$\bm{w^Tx}+b>0$;若$y_{i}=-1$,则有$\bm{w^Tx}+b<0$。我们令

(3) { w T x + b ≥ + 1 , y i = + 1 w T x + b ≤ − 1 , y i = − 1 \left\{ \begin{aligned} \bm{w^Tx}+b ≥&amp;+1 , y_{i}=+1\\ \bm{w^Tx}+b ≤&amp;-1, y_{i}=-1 \\ \end{aligned} \right.\tag{3} { wTx+bwTx+b+1,yi=+11,yi=1(3)

为什么可以这样写呢,而不是写成下面这样呢?

(4) { w T x + b ≥ 0 , y i = + 1 w T x + b ≤ 0 , y i = − 1 \left\{ \begin{aligned} \bm{w^Tx}+b ≥&amp;0 , y_{i}=+1\\ \bm{w^Tx}+b ≤&amp;0, y_{i}=-1 \\ \end{aligned} \right.\tag{4} { wTx+bwTx+b0,yi=+10,yi=1(4)
其实我们也是为了解释SVM的原理,同时也易于后面的计算和理解,下面来看一下下图【图片来源网络】:

我们可以从图中看出,式(3)表示的是,当样本属于正例时,样本就落在直线 w T x + b = 1 \bm{w^Tx}+b=1 wTx+b=1上方;当样本属于反列时,样本就落在直线 w T x + b = − 1 \bm{w^Tx}+b=-1 wTx+b=1下方。我们要找的不是中间那条超平面吗,为什么还要这两条直线呢?这里,我先引入两个概念。
    在样本空间中,总会有一些正例样本和反例样本距离超平面是最近的,这些样本点我们就称为”支持向量“(support vector),而过这些支持向量且平行于超平面的直线就是我们我们图中的两条直线 w T x + b = 1 \bm{w^Tx}+b=1 wTx+b=1 w T x + b = − 1 \bm{w^Tx}+b=-1 wTx+b=1。两个异类支持向量到超平面的距离之和为
(5) r = 2 ∣ ∣ w ∣ ∣ r=\frac{2}{||w||}\tag{5} r=w2(5)
它被称为”间隔“(margin)。

    你可能还有疑问,为什么支持向量间隔边界为什么就一定是 w T x + b = 1 \bm{w^Tx}+b=1 wTx+b=1 w T x + b = − 1 \bm{w^Tx}+b=-1 wTx+b=1呢?这里原则上说,这两条直线可以是 w T x + b = k \bm{w^Tx}+b=k wTx+b=k w T x + b = − k \bm{w^Tx}+b=-k wTx+b=k,这里我们的可以两边同时乘以 1 k \frac{1}{k} k1,然后令 w T = 1 k w T \bm{w^T}=\frac{1}{k}\bm{w^T} wT=k1wT,再令 b = 1 k b b=\frac{1}{k}{b} b=k1b,这时候我们就得到图中的边界直线 w T x + b = 1 \bm{w^Tx}+b=1 wTx+b=1 w T x + b = − 1 \bm{w^Tx}+b=-1 wTx+b=1,而超平面依然是 w T x + b = 0 \bm{w^Tx}+b=0 wTx+b=0,因此在这里,我们只是对w和b进行变换了。

    公式(5)我们怎么得到的呢?在前面我们就知道,我们需要找一个在两个异类正中间的超平面,这里我们就知道,两个异类的支持向量到超平面的距离是相等的,而对任意支持向量 x i , 都 有 x_{i},都有 xi, ∣ w T x + b ∣ = 1 |\bm{w^Tx}+b|=1 wTx+b=1,将其带入式(2),得到支持向量到超平面的距离都为: r = 1 ∣ ∣ w ∣ ∣ r=\frac{1}{||w||} r=w1,间隔等于支持向量到超平面的2倍,也就是式(5)。
    支持向量机的目标就是找到”最大间隔“(maximum margin)的划分超平面,也就是找到能够找到满足式(3)中约束的参数 w \bm{w} w和b,使得 r r r最大,即
(6) max ⁡ w , b 2 ∣ ∣ w ∣ ∣ s . t &ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace; y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m {\max_{w,b} \frac{2}{||w||}}\\ s.t \,\,\,\,\,\, y_{i}(\bm{w^Tx_{i}}+b)≥1,i=1,2,...,m \tag{6} w,bmaxw2s.tyi(wTxi+b)1i=1,2,...,m(6)
    为了最大化间隔,仅需要最大化 ∣ ∣ w ∣ ∣ − 1 ||\bm{w}||^{-1} w1,这等价于最小化 ∣ ∣ w ∣ ∣ 2 ||\bm{w}||^2 w2,于是目标方程写成
(7) max ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t &ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace;&ThinSpace; y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m {\max_{w,b} \frac{1}{2}||\bm{w}||^2}\\ s.t \,\,\,\,\,\, y_{i}(\bm{w^Tx_{i}}+b)≥1,i=1,2,...,m \tag{7} w,bmax21w2s.t</

  • 29
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
当应用支持向量机SVM)进行4D雷达点云分类时,可以按照以下步骤进行: 1. 数据预处理:首先,对从4D雷达传感器获取的原始点云数据进行预处理。这可能包括去除噪声、滤波、点云的归一化等操作,以提高后续分类的准确性和稳定性。 2. 特征提取:从预处理后的点云数据中提取有意义的特征。常用的特征包括点的坐标、反射强度、法向量等。可以根据实际情况选择合适的特征。 3. 数据标注:为每个点标注相应的类别标签。根据应用场景,可以将点云分为不同的类别,如车辆、行人、建筑物等。 4. 数据划分:将提取的特征和对应的类别标签划分为训练集和测试集。通常会采用交叉验证或者留出法来评估模型的性能。 5. 模型训练:使用训练集数据训练SVM模型。SVM是一种监督学习算法,通过寻找一个最优的超平面来划分不同类别的样本。可以使用常见的SVM实现库,如scikit-learn来训练模型。 6. 模型评估:使用测试集对训练好的SVM模型进行评估。可以计算准确率、召回率、F1分数等指标来评估模型的性能。 7. 参数调优:根据评估结果,可以调整SVM模型的参数,如核函数选择、正则化参数等,以提高分类的准确性。 8. 模型应用:最后,将训练好的SVM模型应用于新的4D雷达点云数据,进行分类和识别。 需要注意的是,SVM在处理高维数据和非线性问题时表现较好,但对于大规模数据集可能存在计算复杂度较高的问题。因此,在实际应用中,可能需要对数据进行降维或采用其他加速技术以提高效率。此外,合适的特征提取和数据预处理也是影响分类性能的重要因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值