当前位置:网站首页>【南瓜书ML】(task5)支持向量机的数学推导(更新ing)
【南瓜书ML】(task5)支持向量机的数学推导(更新ing)
2022-07-29 17:14:00 【山顶夕景】
学习总结
SVM中的求解过程:
- 拉格朗日乘子法:把约束条件搞到目标函数里面去。
- KKT条件:把约束条件为不等式的,转变为约束条件为等式。
- 拉格朗日对偶:把不容易解决的问题,转变为容易解决的对偶问题。
- 核函数:把本来线性不可分的点,投射到更高维度上去,使其变得线性可分。
一、间隔与支持向量
支持向量机SVM是20世纪90年代在计算机界发展起来的一种分类算法,在许多问题中都被证明有较好的效果,被认为是适应性最广的算法之一。
支持向量机的基本原理:如上图,白色和蓝色的点各为一类,如果数据本身是线性可分的,让两类的点分开的超平面有很多,但现在我们的目标是找到一个【最大间隔超平面】,即该分割平面距离最近的观测点最远:
根据距离超平米那最近的点,只要同时缩放w和b可以得到: w T x 1 + b = 1 w^Tx_1 + b = 1 wTx1+b=1与 w T x 2 + b = − 1 w^Tx_2+b = -1 wTx2+b=−1,因此:
w T x 1 + b = 1 w T x 2 + b = − 1 ( w T x 1 + b ) − ( w T x 2 + b ) = 2 w T ( x 1 − x 2 ) = 2 w T ( x 1 − x 2 ) = ∥ w ∥ 2 ∥ x 1 − x 2 ∥ 2 cos θ = 2 ∥ x 1 − x 2 ∥ 2 cos θ = 2 ∥ w ∥ 2 d 1 = d 2 = ∥ x 1 − x 2 ∥ 2 cos θ 2 = 2 ∥ w ∥ 2 2 = 1 ∥ w ∥ 2 d 1 + d 2 = 2 ∥ w ∥ 2 \begin{array}{l} w^{T} x_{1}+b=1 \\ w^{T} x_{2}+b=-1 \\ \left(w^{T} x_{1}+b\right)-\left(w^{T} x_{2}+b\right)=2 \\ w^{T}\left(x_{1}-x_{2}\right)=2 \\ \qquad \begin{array}{l} w^{T}\left(x_{1}-x_{2}\right)=\|w\|_{2}\left\|x_{1}-x_{2}\right\|_{2} \cos \theta=2 \\ \left\|x_{1}-x_{2}\right\|_{2} \cos \theta=\frac{2}{\|w\|_{2}} \end{array} \\ \qquad \begin{array}{l} d_{1}=d_{2}=\frac{\left\|x_{1}-x_{2}\right\|_{2} \cos \theta}{2}=\frac{\frac{2}{\|w\|_{2}}}{2}=\frac{1}{\|w\|_{2}} \\ d_{1}+d_{2}=\frac{2}{\|w\|_{2}} \end{array} \end{array} wTx1+b=1wTx2+b=−1(wTx1+b)−(wTx2+b)=2wT(x1−x2)=2wT(x1−x2)=∥w∥2∥x1−x2∥2cosθ=2∥x1−x2∥2cosθ=∥w∥22d1=d2=2∥x1−x2∥2cosθ=2∥w∥22=∥w∥21d1+d2=∥w∥22
由此可知道SVM模型的具体形式:
min w , b 1 2 ∥ w ∥ 2 s.t. y ( i ) ( w T x ( i ) + b ) ≥ 1 , i = 1 , … , n \begin{aligned} \min _{w, b} & \frac{1}{2}\|w\|^{2} \\ \text { s.t. } & y^{(i)}\left(w^{T} x^{(i)}+b\right) \geq 1, \quad i=1, \ldots, n \end{aligned} w,bmin s.t. 21∥w∥2y(i)(wTx(i)+b)≥1,i=1,…,n
几个概念:
(1)支持向量:距离超平面最近的几个训练样本满足下面条件。
假设超平面 ( w , b ) (w, b) (w,b) 能将训练样本正确分类, 即对于 ( x i , y i ) ∈ D \left(x_{i}, y_{i}\right) \in D (xi,yi)∈D, 若 y i = + 1 y_{i}=+1 yi=+1, 则有 w T x i + w^{T} x_{i}+ wTxi+ b > 0 b>0 b>0, 若 y i = − 1 y_{i}=-1 yi=−1, 则有 w T x i + b < 0 w^{T} x_{i}+b<0 wTxi+b<0, 令:
{ w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \begin{cases}w^{T} x_{i}+b \geqslant+1, & y_{i}=+1 \\ w^{T} x_{i}+b \leqslant-1, & y_{i}=-1\end{cases} { wTxi+b⩾+1,wTxi+b⩽−1,yi=+1yi=−1
(2)间隔:两个异类支持向量超平面的距离之和 γ = 2 ∥ w ∥ \gamma=\dfrac{2}{\|w\|} γ=∥w∥2
(3)SVM的目标函数:找到最大间隔的划分超平面, 需要求解参数 w w w 和 b b b 使得 γ \gamma γ 最大, 目标函数如下:
min w , b 1 2 ∥ w ∥ 2 s.t. y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , … , m \begin{array}{lc} \min _{w, b} & \dfrac{1}{2}\|w\|^{2} \\ \text { s.t. } & y_{i}\left(w^{T} x_{i}+b\right) \geqslant 1, \quad i=1,2, \ldots, m \end{array} minw,b s.t. 21∥w∥2yi(wTxi+b)⩾1,i=1,2,…,m
二、转为对偶问题后的求解
可以将上面SVM目标形式中的约束条件写为: g i ( w ) = − y ( i ) ( w T x ( i ) + b ) + 1 ≤ 0 g_{i}(w)=-y^{(i)}\left(w^{T} x^{(i)}+b\right)+1 \leq 0 gi(w)=−y(i)(wTx(i)+b)+1≤0
可以将优化问题拉格朗日化
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y ( i ) ( w T x ( i ) + b ) − 1 ] \mathcal{L}(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left[y^{(i)}\left(w^{T} x^{(i)}+b\right)-1\right] L(w,b,α)=21∥w∥2−i=1∑nαi[y(i)(wTx(i)+b)−1]
因此:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y ( i ) ( w T x ( i ) + b ) − 1 ] \mathcal{L}(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left[y^{(i)}\left(w^{T} x^{(i)}+b\right)-1\right] L(w,b,α)=21∥w∥2−i=1∑nαi[y(i)(wTx(i)+b)−1]欲构造 d u a l dual dual 问题, 首先求拉格朗日化的问题中 w \mathrm{w} w 和 b \mathrm{b} b 的值, 对 w \mathrm{w} w 求梯度, 令梯度为 0, 可求得 w:
对 b 求梯度, 令梯度为 0, 可得:
∂ ∂ b L ( w , b , α ) = ∑ i = 1 n α i y ( i ) = 0 \frac{\partial}{\partial b} \mathcal{L}(w, b, \alpha)=\sum_{i=1}^{n} \alpha_{i} y^{(i)}=0 ∂b∂L(w,b,α)=i=1∑nαiy(i)=0
将 w \mathrm{w} w 带入拉格朗日化的原问题可得
L ( w , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n y ( i ) y ( j ) α i α j ( x ( i ) ) T x ( j ) − b ∑ i = 1 n α i y ( i ) L ( w , b , α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n y ( i ) y ( j ) α i α j ( x ( i ) ) T x ( j ) \begin{array}{l} \mathcal{L}(w, b, \alpha)=\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} y^{(i)} y^{(j)} \alpha_{i} \alpha_{j}\left(x^{(i)}\right)^{T} x^{(j)}-b \sum_{i=1}^{n} \alpha_{i} y^{(i)} \\ \mathcal{L}(w, b, \alpha)=\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} y^{(i)} y^{(j)} \alpha_{i} \alpha_{j}\left(x^{(i)}\right)^{T} x^{(j)} \end{array} L(w,b,α)=∑i=1nαi−21∑i,j=1ny(i)y(j)αiαj(x(i))Tx(j)−b∑i=1nαiy(i)L(w,b,α)=∑i=1nαi−21∑i,j=1ny(i)y(j)αiαj(x(i))Tx(j)
因此:
对拉格朗日化的原问题求最小值, 得到了 w , 现在可以构造 dual 问题 max α W ( α ) = ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n y ( i ) y ( j ) α i α j * x ( i ) , x ( j ) * s.t. α i ≥ 0 , i = 1 , … , n ∑ i = 1 n α i y ( i ) = 0 可以推导出 b的值为: b ∗ = − max i : y ( i ) = − 1 w ∗ T x ( i ) + min i : y ( i ) = 1 w ∗ T x ( i ) 2 SVM的决策子如下,值的符号为类别. w T x + b = ( ∑ i = 1 n α i y ( i ) x ( i ) ) T x + b = ∑ i = 1 n α i y ( i ) * x ( i ) , x * + b \begin{aligned} &\text { 对拉格朗日化的原问题求最小值, 得到了 } \mathrm{w} \text { , 现在可以构造 dual 问题 }\\ &\begin{aligned} \max _{\alpha} & W(\alpha)=\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} y^{(i)} y^{(j)} \alpha_{i} \alpha_{j}\left\langle x^{(i)}, x^{(j)}\right\rangle \\ \text { s.t. } & \alpha_{i} \geq 0, \quad i=1, \ldots, n \\ & \sum_{i=1}^{n} \alpha_{i} y^{(i)}=0 \end{aligned}\\ &\text { 可以推导出 b的值为: } b^{*}=-\frac{\max _{i: y^{(i)}=-1} w^{* T} x^{(i)}+\min _{i: y^{(i)}=1} w^{* T} x^{(i)}}{2}\\ &\begin{array}{r} \text { SVM的决策子如下,值的符号为类别. } \\ \qquad w^{T} x+b=\left(\sum_{i=1}^{n} \alpha_{i} y^{(i)} x^{(i)}\right)^{T} x+b=\sum_{i=1}^{n} \alpha_{i} y^{(i)}\left\langle x^{(i)}, x\right\rangle+b \end{array} \end{aligned} 对拉格朗日化的原问题求最小值, 得到了 w , 现在可以构造 dual 问题 αmax s.t. W(α)=i=1∑nαi−21i,j=1∑ny(i)y(j)αiαj*x(i),x(j)*αi≥0,i=1,…,ni=1∑nαiy(i)=0 可以推导出 b的值为: b∗=−2maxi:y(i)=−1w∗Tx(i)+mini:y(i)=1w∗Tx(i) SVM的决策子如下,值的符号为类别. wTx+b=(∑i=1nαiy(i)x(i))Tx+b=∑i=1nαiy(i)*x(i),x*+b
Reference
[1] 陈希孺编著.概率论与数理统计[M].中国科学技术大学出版社,2009
[2] B 站视频教程:https://www.bilibili.com/video/BV1Mh411e7VU
[3] 线上南瓜书:https://datawhalechina.github.io/pumpkin-book/#/chapter1/chapter1
[4] 开源地址:https://github.com/datawhalechina/pumpkin-book
[5] 【数学基础】KKT条件
[6] 支持向量机SVM的通俗介绍
[7] SVM(三):对偶问题最直白解释
[8] 对偶问题
边栏推荐
猜你喜欢

如何在C语言中定义自己的数据类型?

【Translation】Device Manager—Intel NIC Properties Setting Advanced Options Function

leetcode:1901. 寻找峰值 II【二分找矩阵局部最大】

解析正则表达式(一)

如何写好设计文档

Quantitative primary - akshare get the stock code, the minimalist strategy

Chicken and rabbit in the same cage

解析idea中的debug调试模式

(笔记)Build was configured to prefer settings repositories over project repositories but 解决方法

浅聊对比学习(Contrastive Learning)
随机推荐
Swagger
js图片等分对比插件
【上传文件】
接口项目02文档:Jmeter接口测试与性能测试
Exchange the STP/network knowledge
生物JC TRIM37防止凝集物组织的异位纺锤体极点的形成,以确保有丝分裂的保真度
递归法解决N皇后问题
Tech Talk 活动回顾|基于 Amazon KVS 打造智能视觉产品
旭硝子龟尾工厂3月起将减少30%玻璃基板供应!TCL华星、友达、群创、惠科均受影响
CRM如何帮助企业营销获客
解析idea中的debug调试模式
参加Ultimate Harvest Moon活动,立即赢取终极版月光女神NFT
How should small and medium-sized financial enterprises carry out disaster recovery construction?
浅聊对比学习(Contrastive Learning)
The two armies clash
Rust自定义安装路径
什么时候使用UserCF,什么时候使用ItemCF?
Loadrunner与Jmeter区别与相同
城堡跑酷js小游戏源码
掘金量化:通过history方法获取数据,和新浪财经,雪球同用等比复权因子。不同于同花顺