| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 第七章 支持向量机 -> 正文阅读 |
|
[人工智能]第七章 支持向量机 |
文章目录引入SVM三要素概述: 支持向量机还包括核技巧,这使他成为实质上的非线性分类器。 支持向量机的学习策略就是间隔最大化,可形式化为求解一个凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。 支持向量机的学习算法就是求解凸二次规划的最优化算法。 支持向量机的种类有:
关于核函数: 核函数可以学习非线形支持向量机,等价于隐式地在高维的特征空间学习线性支持向量机。 线性可分支持向量机与硬间隔最大化线性可分支持向量机考虑二分类问题。
学习的目标是在特征空间找到一个分离超平面。 当训练数据集线性可分的时候,存在无穷多个分离超平面。感知机采用的是误分类最小的策略,求得分离超平面,此时的解有无穷多个。线性可分支持向量机采用间隔最大化求最优分离超平面,这时,解是唯一的。 定义7.1(线性可分支持向量机)给定线性可分训练数据集,通过间隔最大化等价地求解相应的凸二次规划问题学习得到的分离超平面为
w
?
?
x
+
b
=
0
w^*\cdot x+b=0
w??x+b=0 函数间隔和几何间隔一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。 定义7.2(函数间隔)对于给定的训练数据集
T
T
T和超平面
(
w
,
b
)
(w,b)
(w,b),定义超平面
(
w
,
b
)
(w,b)
(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi?,yi?)的函数间隔为
γ
^
i
=
y
i
(
w
?
x
i
+
b
)
\hat\gamma_i=y_i(w\cdot x_i+b)
γ^?i?=yi?(w?xi?+b) 虽然函数间隔能表示点到超平面的一种距离,但是是由缺陷的。如果成比例地改变系数的话,超平面不变,函数间隔会改变。因此我们需要对超平面的法向量加约束。此时的函数间隔称为几何间隔。 定义7.3(几何间隔)对于给定的训练数据集
T
T
T和超平面
(
w
,
b
)
(w,b)
(w,b),定义超平面
(
w
,
b
)
(w,b)
(w,b)关于样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi?,yi?)的几何间隔为
γ
i
=
y
i
(
w
∥
w
∥
?
x
i
+
b
∥
w
∥
)
\gamma_i=y_i(\frac{w}{\|w\|}\cdot x_i+\frac{b}{\|w\|})
γi?=yi?(∥w∥w??xi?+∥w∥b?) 于是,函数间隔和几何间隔的关系是 γ i = γ ^ i ∥ w ∥ , γ = γ ^ ∥ w ∥ \gamma_i=\frac{\hat\gamma_i}{\|w\|},\gamma=\frac{\hat\gamma}{\|w\|} γi?=∥w∥γ^?i??,γ=∥w∥γ^?? 间隔最大化支持向量机的学习策略是正确划分数据且几何间隔最大。 不仅能将正负例分开,而且对最难分的点实例点(离超平面最近的点)也有足够大的确信度。 最大间隔分离超平面基于间隔最大化的约束最优化问题表示为: 考虑函数间隔和几何间隔的关系的话,上述式子可以用函数间隔表示: 因为函数间隔的取值对优化的解不产生影响,所以不妨可以假设其为1,那么目标函数就成了最大化 1 ∥ w ∥ \frac{1}{\|w\|} ∥w∥1?,即最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^2 21?∥w∥2。于是,最优化问题可以表示为: min ? w , b ? 1 2 ∥ w ∥ 2 s . t . ? y i ( w ? x i + b ) ? 1 ≥ 0 \begin{aligned}&\min_{w,b}~\frac{1}{2}\|w\|^2\\&s.t.~y_i(w\cdot x_i+b)-1\ge0\end{aligned} ?w,bmin??21?∥w∥2s.t.?yi?(w?xi?+b)?1≥0? 这是一个凸二次规划问题。 算法7.1(线性可分支持向量机学习算法——最大间隔法) 至此,我们一共学习的七个模型中,有四个需要用最优化的知识求解,即感知机、逻辑斯蒂回归、最大熵模型以及支持向量机。 定理7.1(最大间隔分离超平面的存在唯一性)若训练数据集 T T T线性可分,则可将训练数据集中的样本点完全正确分开的最大间隔分离超平面存在且唯一。 支持向量和间隔边界在线性可分情况下,训练数据集的样本点中与分离超平面最近的样本点的实例称为支持向量。支持向量是使约束条件等号成立的点,即 y i ( w ? x i + b ) ? 1 = 0 y_i(w\cdot x_i+b)-1=0 yi?(w?xi?+b)?1=0。 注意到支持向量所在的超平面是相互平行的,分离超平面位于他们中间。间隔依赖于分离超平面的法向量 w w w,等于 2 ∥ w ∥ \frac{2}{\|w\|} ∥w∥2?。 H 1 , H 2 H_1,H_2 H1?,H2?称为间隔边界。 学习的对偶算法在支持向量机这篇博客中介绍得很清楚,此处不再赘述。 关于对偶算法的优化对象,是通过KKT条件得到的。KKT条件是拉格朗日乘子法取得可行解的必要条件,详细可以参考这篇文章。 总结来说:
定理7.2 设 α ? = ( α 1 ? , . . . , α l ? ) T \alpha^*=(\alpha_1^*,...,\alpha_l^*)^T α?=(α1??,...,αl??)T是对偶最优化问题的解,那么存在下标 j j j,使得 α j ? > 0 \alpha_j^*\gt0 αj??>0,并可按照下式求得原始最优化问题的解 w ? = ∑ i = 1 N α i ? y i x i , b ? = y j ? ∑ i = 1 N α i ? y i ( x i ? x j ) w^*=\sum_{i=1}^N\alpha^*_iy_ix_i,b^*=y_j-\sum_{i=1}^N\alpha_i^*y_i(x_i\cdot x_j) w?=i=1∑N?αi??yi?xi?,b?=yj??i=1∑N?αi??yi?(xi??xj?) 算法7.2
定义7.4(支持向量)考虑原属最优化问题及对偶优化问题,将训练数据集中,对对应于 α i ? > 0 \alpha_i^*\gt0 αi??>0的样本点 ( x i , y i ) (x_i,y_i) (xi?,yi?)的实例 x i ∈ R n x_i\in R^n xi?∈Rn称为支持向量。 为什么 α ? > 0 \alpha^*\gt0 α?>0就行呢?这是因为这个i啊,他满足约束条件,自然和我们之前的支持向量定义满足了。 线性支持向量机与软间隔最大化线性支持向量机线性可分问题的支持向量机学习方法,对线性不可分训练数据是不适用的,因为上述方法的不等式约束并不能成立。 训练数据中存在特异点,线性不可分意味着某些样本点不能满足函数间隔大于等于1的约束条件(
y
i
(
w
?
x
+
b
)
?
1
≥
0
y_i(w\cdot x+b)-1\ge0
yi?(w?x+b)?1≥0)。为了解决这个问题,引入了松弛变量
ξ
i
≥
0
\xi_i\ge0
ξi?≥0,使得函数间隔加上松弛变量大于等于1,这样约束条件就变为了
y
i
(
w
?
x
+
b
)
≥
1
?
ξ
i
y_i(w\cdot x+b)\ge 1-\xi_i
yi?(w?x+b)≥1?ξi? 这一目标函数包含两层含义,分别是:第一项尽量小即函数间隔大;第二项尽量小即误分类点数少。C是调和二者的系数。 线性不可分的线性支持向量机可以写为如下形式的凸二次规划: 因为该问题是一个凸二次规划问题,因而解是存在的。可以证明 w w w是唯一的,但 b b b不唯一,而是存在于一个区间。 定义7.5(线性支持向量机) 对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,得到的分离超平面为 w ? ? x + b ? = 0 w^*\cdot x+b^*=0 w??x+b?=0以及相应的分类决策函数 f ( x ) = s i g n ( w ? ? x + b ? ) f(x)=sign(w^*\cdot x+b^*) f(x)=sign(w??x+b?)称为线性支持向量机。 学习的对偶算法此处同样参照先前的链接。 定理7.3 设 α ? = ( α 1 ? , α 2 ? , . . . , α N ? ) \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*) α?=(α1??,α2??,...,αN??)是对偶问题的一个解,若存在 α ? \alpha^* α?的一个分量 a j ? a_j^* aj??, 0 < α j ? < C 0\lt\alpha_j^*\lt C 0<αj??<C,则原始问题的解与定力7.2的形式一致。 算法7.3 和 算法7.2保持一致,也是先求 α \alpha α,再求 w , b w,b w,b,最后得到分离超平面。 支持向量在线性不可分的情况下,将对偶问题的解 α ? \alpha^* α?中对应于 α i ? > 0 \alpha_i^*\gt0 αi??>0的样本点的实例称为支持向量。 软间隔的支持向量或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分类一侧。 所谓支持向量,应该是能影响超平面分类的向量。 在软间隔支持向量机中,间隔边界依然是满足 y ( w ? x + b ) = ± 1 y(w\cdot x+b)=\pm1 y(w?x+b)=±1的,不过我这个支持向量不一定在它上面了。 准确来说,它应该在函数间隔 1 ? ξ i 1-\xi_i 1?ξi?的位置,这个支持向量离间隔边界的几何距离为 ξ i ∥ w ∥ \frac{\xi_i}{\|w\|} ∥w∥ξi??。
这些参数是怎么得到的呢? 我们关注一下原始优化问题的Lagrange函数: L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i ? ∑ i = 1 N α i ( y i ( w ? x i + b ) ? 1 + ξ i ) ? ∑ i = 1 N μ i ξ i L(w,b,\xi,\alpha,\mu)=\frac{1}{2}\|w\|^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w\cdot x_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i\xi_i L(w,b,ξ,α,μ)=21?∥w∥2+Ci=1∑N?ξi??i=1∑N?αi?(yi?(w?xi?+b)?1+ξi?)?i=1∑N?μi?ξi? 进行简单的改写: ∑ i = 1 N α i ( y i ( w ? x i + b ) ? ( 1 ? ( C α i ? 1 ) ξ i ) ) \sum_{i=1}^N\alpha_i(y_i(w\cdot x_i+b)-(1-(\frac{C}{\alpha_i}-1)\xi_i)) i=1∑N?αi?(yi?(w?xi?+b)?(1?(αi?C??1)ξi?)) 首先, 0 ≤ α i ≤ C 0\le\alpha_i\le C 0≤αi?≤C,超过的话,就说明,这个点在间隔边界外,不存在需要松弛变量的情况。 合页损失函数线性支持向量机还有另一种解释,就是最小化以下目标函数: ∑ i = 1 N [ 1 ? y i ( w ? x i + b ) ] + + λ ∥ w ∥ 2 \sum_{i=1}^N[1-y_i(w\cdot x_i+b)]_++\lambda\|w\|^2 i=1∑N?[1?yi?(w?xi?+b)]+?+λ∥w∥2 目标函数的第一项是经验损失或经验风险,函数 L ( y ( w ? x + b ) ) = [ 1 ? y ( w ? x + b ) ] + L(y(w\cdot x+b))=[1-y(w\cdot x+b)]_+ L(y(w?x+b))=[1?y(w?x+b)]+? 这就是定理7.4:线性支持向量机原始最优化问题等价于最优化上述目标函数。
非线性支持向量机与核函数核技巧非线性分类问题
如果能用 R n R^n Rn中的一个超曲面将正例正确分开,则称这个问题为非线性可分问题。 非线性问题往往不好求解, 希望能用解线性分类问题的方法解决这个问题,所采取的方法是进行一个非线形变换,将非线形问题转化为线性问题。 比如说,我们可以通过一个非线形变换,将上图中的椭圆转变为下图中的之前。 以这个问题为例,我们不妨设原空间为 X ? R 2 \mathbb{X}\subset R^2 X?R2, x = ( x ( 1 ) , x ( 2 ) ) T ∈ X x=(x^{(1)},x^{(2)})^T\in\mathbb{X} x=(x(1),x(2))T∈X,新空间为 Z ? R 2 \mathbb{Z}\subset R^2 Z?R2, z = ( z ( 1 ) , z ( 2 ) ) T ∈ Z z=(z^{(1)},z^{(2)})^T\in\mathbb{Z} z=(z(1),z(2))T∈Z。 我们定义映射为 z = ? ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) T z=\phi(x)=((x^{(1)})^2,(x^{(2)})^2)^T z=?(x)=((x(1))2,(x(2))2)T 于是,原空间中的椭圆就变为了新空间中的直线 w 1 z ( 1 ) + w 2 z ( 2 ) + b = 0 w_1z^{(1)}+w_2z^{(2)}+b=0 w1?z(1)+w2?z(2)+b=0。 这个例子说明,用线性分类方法求解非线性分类问题分为两个步骤:
将核技巧应用到支持向量机的基本思想是:通过一个非线性变换将输入空间对应于一个特征空间(希尔伯特空间),使得在输入空间中的超曲面模型对应于特征空间中的超平面模型。 核函数的定义定义7.6(核函数)两个空间还是惯例,如果存在一个从
X
→
H
\mathbb{X}\to\mathbb{H}
X→H的映射
?
(
x
)
:
X
→
H
\phi(x):\mathbb{X}\to\mathbb{H}
?(x):X→H使得对所有
x
,
z
∈
X
x,z\in\mathbb{X}
x,z∈X,函数
K
(
x
,
z
)
K(x,z)
K(x,z)满足条件
K
(
x
,
z
)
=
?
(
x
)
?
?
(
z
)
K(x,z)=\phi(x)\cdot\phi(z)
K(x,z)=?(x)??(z) 核技巧的基本思想是:在学习与预测中只定义和函数,而不显式地定义映射函数 ? \phi ?。这是因为,直接计算 K ( x , z ) K(x,z) K(x,z)比较容易。 值得一提的是,这个希尔伯特空间一般是高维甚至无穷维的。 核函数表示的是两个希尔伯特空间中的向量的内积。 核技巧在支持向量机中的应用线性支持向量机的目标函数可化为为 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) ? ∑ i = 1 K α i \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^K\alpha_i 21?i=1∑N?j=1∑N?αi?αj?yi?yj?K(xi?,xj?)?i=1∑K?αi? 同样,分类决策函数也变成了 f ( x ) = s i g n ( ∑ i = 1 N s α i ? y i K ( x i , x ) + b ? ) f(x)= sign(\sum_{i=1}^{N_s}\alpha_i^*y_iK(x_i,x)+b^*) f(x)=sign(i=1∑Ns??αi??yi?K(xi?,x)+b?) 在实际应用中,往往需要依赖领域知识来选择核函数,核函数选择的有效性需要通过实验验证。 正定核不构造映射 ? ( x ) \phi(x) ?(x),能否直接判断一个给定的函数 K ( x , z ) K(x,z) K(x,z)是不是核函数? 通常所说的核函数是正定核,判断一个正定核的充要条件是:设
K
:
X
×
X
→
R
K:\mathbb{X}\times\mathbb{X}\to R
K:X×X→R是对称函数,则
K
(
x
,
z
)
K(x,z)
K(x,z)是正定核函数的充要条件是对任意
x
i
∈
X
,
i
=
1
,
2
,
.
.
.
,
m
x_i\in\mathbb{X},i=1,2,...,m
xi?∈X,i=1,2,...,m,
K
(
x
,
z
)
K(x,z)
K(x,z)对应的Gram矩阵(这个东西在感知机的对偶形式见过,就是样本之间的内积矩阵):
K
=
[
K
(
x
i
,
x
j
)
]
m
×
m
K=[K(x_i,x_j)]_{m\times m}
K=[K(xi?,xj?)]m×m? 非线性支持向量机从非线性分类训练集,通过核函数与软间隔最大化,或凸二次规划,学习得到的决策函数 f ( x ) = s i g n ( ∑ i = 1 N α i ? y i K ( x , x i ) + b ? ) f(x)=sign(\sum_{i=1}^N\alpha_i^*y_iK(x,x_i)+b^*) f(x)=sign(i=1∑N?αi??yi?K(x,xi?)+b?)这称为非线性支持向量机, K ( x , x i ) K(x,x_i) K(x,xi?)为正定核。 线性可分支持向量机的两个支持向量对应的 α \alpha α是相等的,因此得到的 b ? b^* b?是唯一的。因为要求是 0 < α < C 0\lt\alpha\lt C 0<α<C,所以线性支持向量机对应的 α \alpha α和前一种是一致的,但是因为 C C C不一样,所以b也会有好多。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/26 2:40:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |