支持向量机(SVM)的原理推导及解释
Posted Spuer_Tiger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机(SVM)的原理推导及解释相关的知识,希望对你有一定的参考价值。
文章目录
支持向量机(SVM)的原理推导及解释
支持向量机的本质:选出最优的分类超平面(标准:离超平面最近距离的样本点最远的超平面)。
假定超平面方程
W
T
x
+
b
=
0
\\mathbf{W}^{\\mathbf{T}}\\mathbf{x}+\\mathbf{b}=0
WTx+b=0,则样本数据点x到该超平面的距离表示为:
∣
W
T
x
+
b
∣
|\\mathbf{W}^{\\mathbf{T}}\\mathbf{x}+\\mathbf{b}|
∣WTx+b∣。而判断
W
T
x
+
b
\\mathbf{W}^{\\mathbf{T}}\\mathbf{x}+\\mathbf{b}
WTx+b与标记y符号是否一致得到分类结果:一致,分类正确;否则,分类错误。
于是,我们采用 y ( W T x + b ) \\mathbf{y}\\left( \\mathbf{W}^{\\mathbf{T}}\\mathbf{x}+\\mathbf{b} \\right) y(WTx+b)替代 ∣ W T x + b ∣ |\\mathbf{W}^{\\mathbf{T}}\\mathbf{x}+\\mathbf{b}| ∣WTx+b∣表示样本点到超平面的距离。【当然,这里会有读者思考,如果分类错误,则 y ( W T x + b ) \\mathbf{y}\\left( \\mathbf{W}^{\\mathbf{T}}\\mathbf{x}+\\mathbf{b} \\right) y(WTx+b)为负值,没错,我们假定所有的分类标签都是正确的->找到最优的超平面。】
函数距离 d i = y i ( w T x i + b ) \\mathbf{d}_{\\mathbf{i}}=\\mathbf{y}_{\\mathbf{i}}\\left( \\mathbf{w}^{\\mathbf{T}}\\mathbf{x}_{\\mathbf{i}}+\\mathbf{b} \\right) di=yi(wTxi+b) (i为第i个样本点),而样本总数据集D的函数间隔d定义为D中所有样本数据点到超平面的最小函数间隔值, d = min d i \\mathbf{d}=\\min \\mathbf{d}_{\\mathbf{i}} d=mindi。
但是,函数间隔也存在明显的缺点:若同比例缩放其参数向量w和偏置量b,会改变间隔di的取值。
s
∗
w
T
x
+
s
∗
b
=
0
\\mathbf{s}*\\mathbf{w}^{\\mathbf{T}}\\mathbf{x}+\\mathbf{s}*\\mathbf{b}=0
s∗wTx+s∗b=0,
d
i
=
s
∗
y
i
(
w
T
x
i
+
b
)
\\mathbf{d}_{\\mathbf{i}}=\\mathbf{s}*\\mathbf{y}_{\\mathbf{i}}\\left( \\mathbf{w}^{\\mathbf{T}}\\mathbf{x}_{\\mathbf{i}}+\\mathbf{b} \\right)
di=s∗yi(wTxi+b),超平面的方向由w决定,位置由w、x和b决定,这里超平面的方向位置不变,但是di却发生了变化。于是,我们引入了几何间隔:
d
i
_
g
=
y
i
(
w
T
x
i
+
b
)
∣
∣
w
∣
∣
=
d
i
∣
∣
w
∣
∣
\\mathbf{d}_{\\mathbf{i}\\_g}=\\frac{\\mathbf{y}_{\\mathbf{i}}\\left( \\mathbf{w}^{\\mathbf{T}}\\mathbf{x}_{\\mathbf{i}}+\\mathbf{b} \\right)}{||\\mathbf{w}||}=\\frac{\\mathbf{d}_{\\mathbf{i}}}{||\\mathbf{w}||}
di_g=∣∣w∣∣yi(wTxi+b)=∣∣w∣∣di
1.线性可分支持向量机(linear support vector machine in linearly separable case)
-
核心:硬间隔最大化(hard margin maximization)
-
数据对象:线性可分数据
-
要求:必须所有的正例和负例分类标签正确(超平面受边界数据影响大)
-
寻找参数w和b,使得D中所有样本数据点到超平面的最小函数间隔值d最大(这里设定d=1)。
-
求解问题如下: max w , b 1 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2.... n 转换 为 : min w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) − 1 ⩾ 0 , i = 1 , 2.... n \\text{求解问题如下:} \\\\ \\underset{\\mathbf{w},\\mathbf{b}}{\\max}\\frac{1}{||\\mathbf{w}||}\\,\\, \\\\ \\mathbf{s}.\\mathbf{t}. \\mathbf{y}_{\\mathbf{i}}\\left( \\mathbf{w}^{\\mathbf{T}}\\mathbf{x}_{\\mathbf{i}}+\\mathbf{b} \\right) \\geqslant 1,\\mathbf{i}=1,2....\\mathbf{n} \\\\ \\text{转换}为\\text{:} \\\\ \\underset{\\mathbf{w},\\mathbf{b}}{\\min}\\frac{1}{2}||\\mathbf{w}||^2\\,\\, \\\\ \\mathbf{s}.\\mathbf{t}. \\mathbf{y}_{\\mathbf{i}}\\left( \\mathbf{w}^{\\mathbf{T}}\\mathbf{x}_{\\mathbf{i}}+\\mathbf{b} \\right) -1\\geqslant 0,\\mathbf{i}=1,2....\\mathbf{n} 求解问题如下:w,bmax∣∣w∣∣1s.t.yi(wTxi+b)⩾1,i=1,2....n转换为:w,bmin21∣∣w∣∣2s.t.yi(wTxi+b)−1⩾0,i=1,2....n
-
对于约束优化问题: min f ( x ) s . t . g j ( x ) ⩽ 0 , j = 1 , 2 , . . . , m 若 f ( x ) 和 g j ( x ) 都 为 凸函数,则此问题 为 凸规划。 \\text{对于约束优化问题:} \\\\ \\min \\mathbf{f}\\left( \\mathbf{x} \\right) \\\\ \\mathbf{s}.\\mathbf{t}. \\mathbf{g}_{\\mathbf{j}}\\left( \\mathbf{x} \\right) \\leqslant 0,\\mathbf{j}=1,2,...,\\mathbf{m} \\\\ \\text{若}\\mathbf{f}\\left( \\mathbf{x} \\right) \\text{和}\\mathbf{g}_{\\mathbf{j}}\\left( \\mathbf{x} \\right) \\text{都}为\\text{凸函数,则此问题}为\\text{凸规划。} 对于约束优化问题:minf(x)s.t.gj(x)⩽0,j=1,2,...,m若f(x)和gj(x)都为凸函数,则此问题为凸规划。
-
凸规划的性质: 1. 若给定一点 x 0 ,则集合 R = { x ∣ f ( x ) ⩽ f ( x 0 ) } 为 凸集。 2. 可行域 R = { x ∣ g j ( x ) ⩽ 0 , j = 1 , 2 , . . . , m } 为 凸集合。 3. 凸规划的任何 局 部最优解就 是 全 局 最优解。 \\text{凸规划的性质:} \\\\ 1.\\text{若给定一点}\\mathbf{x}_0\\text{,则集合}\\mathbf{R}=\\left\\{ \\mathbf{x}|\\mathbf{f}\\left( \\mathbf{x} \\right) \\leqslant \\mathbf{f}\\left( \\mathbf{x}_0 \\right) \\right\\} 为\\text{凸集。} \\\\ 2.\\text{可行域}\\mathbf{R}=\\left\\{ \\mathbf{x}|\\mathbf{g}_{\\mathbf{j}}\\left( \\mathbf{x} \\right) \\leqslant 0,\\mathbf{j}=1,2,...,\\mathbf{m} \\right\\} 为\\text{凸集合。} \\\\ 3.\\text{凸规划的任何}局\\text{部最优解就}是\\text{全}局\\text{最优解。} 凸规划的性质:1.若给定一点x0,则集合R={x∣f(x)⩽f(x0)}为SVM支持向量机原理及代码实现