支持向量机算法(SVM)详细讲解(含手推公式)(《机器学习》 您所在的位置:网站首页 对顶角计算公式讲解 支持向量机算法(SVM)详细讲解(含手推公式)(《机器学习》

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

2024-06-03 23:40| 来源: 网络整理| 查看: 265

#前言

    本人是一个本科到研究生都坚持本专业的人,但是,本科时间被狗吃了,目前还是小白一只,曾经以为考研之后要继续学习一技之长找个工作养活自己,当然,现在发现这都是自己想太多了,哈哈哈,读研之后才知道基础不好的人学习起来是多么困难,但是,既然选择了,哭着也要拿到毕业证啊。      因为被老师安排讲解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=∣∣w∣∣∣wTx+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}+bwTx+b≥wTx+b≤​0,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=∣∣w∣∣2​(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=k1​wT,再令 b = 1 k b b=\frac{1}{k}{b} b=k1​b,这时候我们就得到图中的边界直线 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=∣∣w∣∣1​,间隔等于支持向量到超平面的2倍,也就是式(5)。     支持向量机的目标就是找到”最大间隔“(maximum margin)的划分超平面,也就是找到能够找到满足式(3)中约束的参数 w \bm{w} w和b,使得 r r r最大,即 (6) max ⁡ w , b 2 ∣ ∣ w ∣ ∣ s . t        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,bmax​∣∣w∣∣2​s.tyi​(wTxi​+b)≥1,i=1,2,...,m(6)     为了最大化间隔,仅需要最大化 ∣ ∣ w ∣ ∣ − 1 ||\bm{w}||^{-1} ∣∣w∣∣−1,这等价于最小化 ∣ ∣ w ∣ ∣ 2 ||\bm{w}||^2 ∣∣w∣∣2,于是目标方程写成 (7) max ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t        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,bmax​21​∣∣w∣∣2s.t



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有