IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 机器学习:支持向量机(supported vector machine)基本介绍及公式推导 -> 正文阅读

[数据结构与算法]机器学习:支持向量机(supported vector machine)基本介绍及公式推导

1.SVM基本介绍

1.1 SVM算法定义

??SVM全称是supported vector machine(支持向量机),即寻找到一个超平面使样本分成两类,并且间隔最大。

??SVM能够执行线性和非线性分类,回归,甚至是异常值监测任务。特别适用于中小型复杂数据集的分类。

1.2 SVM和逻辑回归的区别

在这里插入图片描述

  1. 逻辑回归和SVM都是寻找一条分类直线,目标是把这两个类别分开
  2. 逻辑回归的最终判断标准是:准确率,而SVM最终的判断结果是:准确率+最大间隔
  3. 逻辑回归的分类直线可能有多条,而SVM的分类直线只有一条。

单纯考虑准确率和考虑最大间隔哪个泛化性能更好一点:
在这里插入图片描述

  1. 准确率只考虑了在训练集上的预测能力
  2. 准确率+最大间隔即考虑了预测能力,又考虑了模型对未知样本的泛化能力。

1.3 软间隔和硬间隔

硬间隔:指让所有样本都不在最大间隔之间,并且位于分类正确的一边。如果出现异常值或者样本不能线性分割,此时硬间隔无法实现。
在这里插入图片描述

软间隔:指容忍一部分样本在最大间隔之内,甚至在错误的一边。相对来说,软间隔可以应用在一些线性不可分的场景中。因此,软间隔可能在训练集表现不是很好,但是在测试集上的泛化性能可能要比硬间隔好。

1.4 惩罚参数C

??在硬间隔的情况下,我们只考虑如何使间隔最大。在软间隔的情况下,我们既要考虑间隔最大化,又要考虑间隔违例样本带来的损失。

??一般间隔违例样本带来的损失为:该点到分类直线之间的距离,C值用于惩罚间隔违例样本带来的损失。

??C值越大,说明间隔违例样本带来的损失越大,就要减少这些样本带来的损失,所以间隔就要越小。
在这里插入图片描述

??C值越小,间隔违例样本带来的损失就越小,可以适当增大间隔,以提高模型的泛化性能。

??C值可以用来平衡间隔违例样本损失、最大间隔。当对违反限制间隔的样本点的容忍度很低时,可增大C值,反之就减小C值。

2.SVM算法推导的目标函数

在这里插入图片描述

SVM求解目标:将所有样本分类正确的基础上,找出最大间隔。
1.最大间隔距离表示公式:
2 ∥ w ∥ \frac{2}{\|\boldsymbol{w}\|} w2?

直线方程为:y = w1x1 + w2x2 + b = 0,平面上任意一点(xi,xj)到该直线的距离计算公式为:

d = ∣ w 1 x i + w 2 x j + b ∣ w 1 2 + w 2 2 d=\frac{\left|w_{1} x_{i}+w_{2} x_{j}+b\right|}{\sqrt{w_{1}^{2}+w_{2}^{2}}} d=w12?+w22? ?w1?xi?+w2?xj?+b?
分母可以用范数的形式表示:||w||

2.训练样本能够正确分类:
{ w T x i + b ? + 1 , y i = + 1 w T x i + b ? ? 1 , y i = ? 1 \left\{\begin{array}{ll} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1, & y_{i}=+1 \\ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1, & y_{i}=-1 \end{array}\right. {wTxi?+b?+1,wTxi?+b??1,?yi?=+1yi?=?1?

我们希望所有样本分类正确的情况下,实现最大间隔。因此,目标函数可以转换为:
max ? w , b = 2 ∥ w ∥ ?s.t.? y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ? ? , m \begin{array}{l} \max _{w, b}=\frac{2}{\|w\|} \\ \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{array} maxw,b?=w2??s.t.?yi?(wTxi?+b)1,i=1,2,?,m?
将最大化问题转化为最小化问题:
min ? w , b = 1 2 ∥ w ∥ 2 ?s.t.? y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ? ? , m \begin{array}{l} \min _{w, b}=\frac{1}{2}\|w\|^2 \\ \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{array} minw,b?=21?w2?s.t.?yi?(wTxi?+b)1,i=1,2,?,m?

  • 最大化转换为最小化,加上平方是为了去除二范数的根号,不影响目标优化。1/2是为了求导时候,去掉系数。通过问题转换,让问题向最简单的方向发展。

3.目标函数推导过程

3.1 约束条件优化问题转换

目标函数是一个带有约束条件的优化问题,不容易求解,所以使用拉格朗日乘子法将其转换为多元极值问题,转换构成如下:
h ( x ) = f ( x ) + α g ( x ) h(x)= f(x)+\alpha g(x) h(x)=f(x)+αg(x)
f(x)是原问题,g(x)是原问题的约束条件。因此,约束条件函数可以转换为:

y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ? ? , m ∑ i = 1 n ( 1 ? y i ( w T ? ? ( x i ) + b ) ) ≤ 0 y_i(w^Tx_i+b)\geq 1,i=1,2,\cdots,m \\\sum_{i=1}^{n}(1-y_i(w^T\cdot \phi (x_i)+b)) \leq 0 yi?(wTxi?+b)1,i=1,2,?,mi=1n?(1?yi?(wT??(xi?)+b))0
目标函数可以转换为:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 ? ∑ i = 1 n α i ( y i ( w T ? ? ( x i ) + b ) ? 1 ) L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^{n}\alpha_i(y_i(w^T\cdot \phi (x_i)+b)-1) L(w,b,α)=21?w2?i=1n?αi?(yi?(wT??(xi?)+b)?1)
此时问题转化为满足所有样本都能正确分类的情况下,求解极小极大值问题:
min ? w , b max ? α L ( w , b , α ) \min_{w,b}\max_{\alpha}L(w,b,\alpha) w,bmin?αmax?L(w,b,α)

  • 整个式子求极小值,后边式子求极大值

3.2 对偶问题转换

1.对偶问题转换

对w求偏导,并令其等于0:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 ? ∑ i = 1 n α i ( y i ( w T ? ? ( x i ) + b ) ? 1 ) L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 ? ∑ i = 1 n ( α i y i w T φ ( x i ) + α i y i b ? α i ) = 0 ? L ? w = w ? ∑ i = 1 n α i y i φ ( x i ) = 0 L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^{n}\alpha_i(y_i(w^T\cdot \phi (x_i)+b)-1) \\L(w,b,\alpha)=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n}( \alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i})=0 \\\frac{\partial L}{\partial w}=w-\sum_{i=1}^n\alpha_iy_i\varphi(x_i)=0 L(w,b,α)=21?w2?i=1n?αi?(yi?(wT??(xi?)+b)?1)L(w,b,α)=21?w2?i=1n?(αi?yi?wTφ(xi?)+αi?yi?b?αi?)=0?w?L?=w?i=1n?αi?yi?φ(xi?)=0
得到:
w = ∑ i = 1 n α i y i φ ( x i ) w= \sum_{i=1}^n\alpha_iy_i\varphi(x_i) w=i=1n?αi?yi?φ(xi?)
对b求偏导,并令其等于0:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 ? ∑ i = 1 n ( α i y i w T φ ( x i ) + α i y i b ? α i ) = 0 ? L ? b = ∑ i = 1 n α i y i = 0 L(w,b,\alpha)=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n} (\alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i})=0 \\\frac{\partial L}{\partial b}=\sum_{i=1}^n\alpha_iy_i=0 L(w,b,α)=21?w2?i=1n?(αi?yi?wTφ(xi?)+αi?yi?b?αi?)=0?b?L?=i=1n?αi?yi?=0
将对w、b求偏导的结果代入原拉格朗日公式中:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 ? ∑ i = 1 n α i ( y i ( w T ? ? ( x i ) + b ) ? 1 ) L(w,b,\alpha)=\frac{1}{2}\|w\|^2-\sum_{i=1}^{n}\alpha_i(y_i(w^T\cdot \phi (x_i)+b)-1) L(w,b,α)=21?w2?i=1n?αi?(yi?(wT??(xi?)+b)?1)
去括号得:
L ( w , b , α ) = 1 2 w T w ? ∑ i = 1 n α i y i w T ? ( x i ) ? b ? ∑ i = 1 n α i y i + ∑ i = 1 n α i L(w,b,\alpha)=\frac{1}{2}w^Tw-\sum_{i=1}^n\alpha_iy_iw^T\phi(x_i)-b\cdot\sum_{i=1}^n\alpha_iy_i+\sum_{i=1}^n\alpha_i L(w,b,α)=21?wTw?i=1n?αi?yi?wT?(xi?)?b?i=1n?αi?yi?+i=1n?αi?
代入w、b得:
L ( w , b , α ) = 1 2 w T ∑ i = 1 n α i y i φ ( x i ) ? w T ∑ i = 1 n α i y i φ ( x i ) + ∑ i = 1 n α i L(w,b,\alpha)=\frac{1}{2}w^T\sum_{i=1}^n\alpha_iy_i\varphi(x_i)-w^T\sum_{i=1}^n\alpha_iy_i\varphi(x_i)+\sum_{i=1}^n\alpha_i L(w,b,α)=21?wTi=1n?αi?yi?φ(xi?)?wTi=1n?αi?yi?φ(xi?)+i=1n?αi?
化简得:
L ( w , b , α ) = ∑ i = 1 n α i ? 1 2 ( ∑ i = 1 n α i y i φ ( x i ) ) T ? ∑ i = 1 n α i y i φ ( x i ) L(w,b,\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}(\sum_{i=1}^n\alpha_iy_i\varphi(x_i))^T\cdot\sum_{i=1}^n\alpha_iy_i\varphi(x_i) L(w,b,α)=i=1n?αi??21?(i=1n?αi?yi?φ(xi?))T?i=1n?αi?yi?φ(xi?)
最终得:
L ( w , b , α ) = ∑ i = 1 n α i ? 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ? T ( x i ) ? ( x j ) L(w,b,\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j) L(w,b,α)=i=1n?αi??21?i=1n?j=1n?αi?αj?yi?yj??T(xi?)?(xj?)
此时,求解当 α 是什么值时,L会变得很大,当求出 α 值,再求解 w, b 值。此时,就变成了极大极小值问题。

3.3 确定超平面

1、求解当α为什么值时,公式的值最大:
α ? = arg ? max ? α ( ∑ i = 1 n α i ? 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ? T ( x i ) ? ( x j ) ) ? s . t . ∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , 3 ? ? , n \alpha^*=\underset{\alpha}{\arg\max}(\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)) \\\ s.t. \sum_{i=1}^n\alpha_iy_i=0 \\ \alpha_i \geq0,i=1,2,3\cdots,n α?=αargmax?(i=1n?αi??21?i=1n?j=1n?αi?αj?yi?yj??T(xi?)?(xj?))?s.t.i=1n?αi?yi?=0αi?0,i=1,2,3?,n

2、将上面的问题转换为极小值问题:
m i n α ??? 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ? T ( x i ) ? ( x j ) ? ∑ i = 1 n α i \underset{\alpha}{min} \ \ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)-\sum_{i=1}^n\alpha_i αmin????21?i=1n?j=1n?αi?αj?yi?yj??T(xi?)?(xj?)?i=1n?αi?
且满足以下条件:
∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , 3 ? ? , n \sum_{i=1}^n\alpha_iy_i=0\\ \alpha_i \geq0,i=1,2,3\cdots,n i=1n?αi?yi?=0αi?0,i=1,2,3?,n
将训练样本代入上面公式,求解出α值。然后,将α值代入公式计算w、b的值
w ? = ∑ i = 1 n α i ? y i φ ( x i ) b ? = y i ? ∑ i = 1 n α ? y i ( ? ( x i ) ? ? ( x j ) ) w^*= \sum_{i=1}^n\alpha_i^*y_i\varphi(x_i) \\ b^*=y_i-\sum_{i=1}^n\alpha^*y_i(\phi(x_i)\cdot\phi(x_j)) w?=i=1n?αi??yi?φ(xi?)b?=yi??i=1n?α?yi?(?(xi?)??(xj?))
最后求的分离超平面为:
w ? ? ( x ) + b ? = 0 w^*\phi(x)+b^*=0 w??(x)+b?=0
求的分类决策函数:
f ( x ) = sign ? ( w ? ? ( x ) + b ? ) f(x)=\operatorname{sign}(w^*\phi(x)+b^*) f(x)=sign(w??(x)+b?)

4.案例代入

正例点x1=(3,3),x2=(4,3),负例点x3=(1,1),求线性可分支持向量机。
m i n α ??? 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ? T ( x i ) ? ( x j ) ? ∑ i = 1 n α i s . t . ∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , 3 ? ? , n \underset{\alpha}{min} \ \ \ \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\alpha_i\alpha_jy_iy_j\phi^T(x_i)\phi(x_j)-\sum_{i=1}^n\alpha_i \\ s.t. \sum_{i=1}^n\alpha_iy_i=0 \\ \alpha_i \geq0,i=1,2,3\cdots,n αmin????21?i=1n?j=1n?αi?αj?yi?yj??T(xi?)?(xj?)?i=1n?αi?s.t.i=1n?αi?yi?=0αi?0,i=1,2,3?,n
将3个样本代入上述公式,得到一个关于α的函数:
1 2 ( 18 α 1 2 + 25 α 2 2 + 2 α 3 2 + 42 α 1 α 2 ? 12 α 1 α 3 ? 14 α 2 α 3 ) ? α 1 ? α 2 ? α 3 ? ? ( 4.1 ) \frac{1}{2}(18\alpha_1^2+25\alpha_2^2+2\alpha_3^2+42\alpha_1\alpha_2-12\alpha_1\alpha_3-14\alpha_2\alpha_3)-\alpha_1-\alpha_2-\alpha_3 \cdots\cdots(4.1) 21?(18α12?+25α22?+2α32?+42α1?α2??12α1?α3??14α2?α3?)?α1??α2??α3???(4.1)
由于:
∑ i = 1 n α i y i = 0 = > α 1 y 1 + α 2 y 2 + α 3 y 3 = 0 ? ? ? ? ? ( 4.2 ) \sum_{i=1}^n\alpha_iy_i=0=>\alpha_1y_1+\alpha_2y_2+\alpha_3y_3=0 \cdots\cdots \cdots\cdots \cdots(4.2) i=1n?αi?yi?=0=>α1?y1?+α2?y2?+α3?y3?=0?????(4.2)
可得:
α 1 + α 2 ? α 3 = 0 ? ? ? ? ? ? ( 4.3 ) α 1 + α 2 = α 3 ? ? ? ? ? ? ? ? ( 4.4 ) \alpha_1+\alpha_2-\alpha_3=0 \cdots\cdots \cdots\cdots \cdots\cdots(4.3) \\\alpha_1+\alpha_2=\alpha_3\cdots\cdots \cdots\cdots \cdots\cdots\cdots\cdot(4.4) α1?+α2??α3?=0??????(4.3)α1?+α2?=α3?????????(4.4)
将(4.4)式子代入(4.1)式子中可得:
4 α 1 2 + 13 2 α 2 2 + 10 α 1 α 2 ? 2 α 1 ? 2 α 2 ? ? ? ? ? ? ( 4.5 ) 4 \alpha_{1}^{2}+\frac{13}{2} \alpha_{2}^{2}+10 \alpha_{1} \alpha_{2}-2 \alpha_{1}-2 \alpha_{2}\cdots\cdots \cdots\cdots \cdots\cdots(4.5) 4α12?+213?α22?+10α1?α2??2α1??2α2???????(4.5)
对 α1、α2 求偏导,并令其等于 0,可得:
{ ? s ( α 1 , α 2 ) ? α 1 = 8 α 1 + 10 α 2 ? 2 = 0 ? s ( α 1 , α 2 ) ? α 2 = 13 α 2 + 10 α 1 ? 2 = 0 ? { α 1 = 1.5 α 2 = ? 1 \left\{\begin{array} { l } { \frac { \partial s ( \alpha 1, \alpha 2 ) } { \partial \alpha 1 } = 8 \alpha 1 + 1 0 \alpha _ { 2 } - 2 = 0 } \\ { \frac { \partial s ( \alpha 1 , \alpha 2 ) } { \partial \alpha 2 } = 1 3 \alpha 2 + 1 0 \alpha 1 - 2 = 0 } \end{array} \Rightarrow \left\{\begin{array}{l} \alpha 1=1.5 \\ \alpha 2=-1 \end{array}\right.\right. {?α1?s(α1,α2)?=8α1+10α2??2=0?α2?s(α1,α2)?=13α2+10α1?2=0??{α1=1.5α2=?1?
由于限制条件中 α 值必须大于 0,故而上面求出的结果不是最终结果。

  1. 当α1=0时,对α2求偏导得 2/13,α3=2/13
  2. 当α2=0时,对α1求偏导得 1/4,α3=1/4

现有两组结果,我们需要找出哪组结果使得结果最小,将每组结果代入(4.5)式子中,得:

  1. 第一组结果是:-0.1538
  2. 第二组结果是:-0.25

因此,第二组结果最小,所以α1=1/4,α2=0,α3=1/4

接下来,根据 α 和样本计算 w 的值:

  1. 正例 1: x1=(3,3),α1 = 1/4

  2. 正例 1:x2=(4,3),α2 = 0

  3. 负例 -1: x3=(1,1),α3 = 1/4

w = ∑ i = 1 n α i y i Φ ( x n ) w=\sum_{i=1}^{n} \alpha_{i} y_{i} \Phi\left(x_{n}\right) w=i=1n?αi?yi?Φ(xn?)
代入得:
w = 1 4 ? 1 ? ( 3 , 3 ) + 1 4 ? ( ? 1 ) ? ( 1 , 1 ) = ( 1 2 , 1 2 ) w=\frac{1}{4} * 1 *(3,3)+\frac{1}{4} *(-1) *(1,1)=\left(\frac{1}{2}, \frac{1}{2}\right) w=41??1?(3,3)+41??(?1)?(1,1)=(21?,21?)
由 f(x) = 0.5x1 + 0.5x2 + b,并将任意样本代入,可得 b 为:

  1. 0.5*3 + 0.5*3 + b =1,得:b = -2
  2. 0.5*1 + 0.5*1 + b =-1,得:b = -2

最终确定分类超平面为:
f ( x ) = sign ? ( 0.5 x 1 + 0.5 x 2 ? 2 ) f(x)=\operatorname{sign}\left(0.5 x_{1}+0.5 x_{2}-2\right) f(x)=sign(0.5x1?+0.5x2??2)

在这里插入图片描述

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 00:01:44  更:2021-07-25 00:02:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 8:01:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码