点赞再看,养成习惯,您动动手指对原创作者意义非凡🤝 备战秋招面试 微信搜索公众号【TechGuide】关注更多新鲜好文和互联网大厂的笔经面经。 作者@TechGuide
当你的才华还撑不起你的野心时,你应该静下心去学习 。 前言关于支持向量机(Support Vector Machine, SVM)的强对偶关系证明,我在网上浏览过各种版本,绝大部分是比较繁琐的公式推导,这显然不利于读者理解。我们可以尝试切换思路,用几何描述的方法比较直观清晰的推出结论,相信看完这篇文章你一定能豁然开朗!
正文为了直观解释强对偶关系,我们把原问题限定在二维平面上(多维同理),所以我们假设原问题(prime problem)为: Minimize f ( x ) \text{Minimize}\ f(x) Minimize f(x) Subject to: m 1 ( x ) ≤ 0 (1) \text{Subject to:}\, m_1(x) \leq 0 \tag 1 Subject to:m1(x)≤0(1) 这里为了能限定在二维平面上,并且更简单直观,我们以只取一个约束条件为例。我们定义这个优化问题的定义域 D = domain f ∩ domain m 1 D = \text{domain}f \cap \text{domain}m_1 D=domainf∩domainm1,这样为解此问题,我们依然选择构造拉格朗日函数,得到: L ( x ) = f ( x ) + λ m 1 ( x ) , λ ≥ 0 (2) L(x) = f(x) + \lambda m_1(x), \,\,\,\lambda \geq 0 \tag 2 L(x)=f(x)+λm1(x),λ≥0(2) 我们设原问题的最优解 p ∗ = min f ( x ) p^* = \min f(x) p∗=minf(x), 实际上也可表示成 p ∗ = min x max λ L ( x ) p^* = \min_{x} \max_{\lambda} L(x) p∗=minxmaxλL(x),两者是等价的。那么,对偶问题的最优解相应即为 d ∗ = max λ min x L ( x ) d^* = \max_{\lambda} \min_{x} L(x) d∗=maxλminxL(x)。
接下来很关键的一步,我们要构建一个二维坐标平面,这里用集合U表示,我们这样定义U,
U
=
{
(
m
1
(
x
)
,
f
(
x
)
)
∣
x
∈
D
}
U = \left\{(m_1(x),f(x)) | x \in D \right\}
U={(m1(x),f(x))∣x∈D}, 为简化公式,我们定义
t
=
m
1
(
x
)
,
z
=
f
(
x
)
t = m_1(x) ,\, z = f(x)
t=m1(x),z=f(x), 所以U可表示为
U
=
{
(
t
,
z
)
∣
x
∈
D
}
(3)
U = \left\{(t,z) | x \in D \right\} \tag 3
U={(t,z)∣x∈D}(3),这样我们就得到了我们想要的坐标系,Great! 为了不失普适性,我们用一个非凸函数(一个爱心)代表集合U在坐标系内的分布,有了这个坐标系,原问题最优解
p
∗
=
min
f
(
x
)
=
min
z
p^* = \min f(x) = \min z
p∗=minf(x)=minz就可以表示为
p
∗
=
inf
{
z
∣
(
t
,
z
)
∈
U
,
t
≤
0
}
p^*=\inf \left\{z | (t,z) \in U, t \leq 0 \right\}
p∗=inf{z∣(t,z)∈U,t≤0}。
此处说明,inf表示下确界,可以理解为几何意义上的取”最低点“,
t
≤
0
t \leq 0
t≤0则是题给的约束条件。所以可以这样理解,原问题的最优解即为下图示阴影区域在z轴的投影所得线段的最低点p。 看完了原问题的最优解,我们再看看其对偶问题(dual problem)的解
d
∗
=
max
λ
min
x
L
(
x
)
d^* = \max_{\lambda} \min_{x} L(x)
d∗=maxλminxL(x),该式可以相应简化为
d
∗
=
max
λ
min
x
(
t
+
λ
z
)
(4)
d^* = \max_{\lambda} \min_{x}(t+\lambda z) \tag 4
d∗=λmaxxmin(t+λz)(4),那么应该怎么在同一坐标系内表示出这个最优解d*呢?我们可以先看上式的后一部分
min
x
(
t
+
λ
z
)
\min_{x}(t+\lambda z)
minx(t+λz),我们用
g
(
λ
)
g(\lambda)
g(λ)表示它,即,
g
(
λ
)
=
min
x
(
t
+
λ
z
)
g(\lambda)=\min_{x}(t+\lambda z)
g(λ)=minx(t+λz),我们尝试用我们构建的二维坐标系描述它,那么
g
(
λ
)
=
inf
{
t
+
λ
z
∣
(
t
,
z
)
∈
U
}
g(\lambda) = \inf \left\{t+\lambda z | (t,z) \in U\right\}
g(λ)=inf{t+λz∣(t,z)∈U}
根据上图,
t
+
λ
z
t+\lambda z
t+λz实际就是在z轴的截距,假定初始状态
t
+
λ
z
=
0
t+\lambda z=0
t+λz=0这条直线如蓝线1所示,那么要找到与爱心U“相擦”,并且截距最小的直线,即为上图中蓝线2,它与z轴的交点即为
g
(
λ
)
g(\lambda)
g(λ)。知道了
g
(
λ
)
g(\lambda)
g(λ),
d
∗
d^*
d∗也很好求了,
d
∗
=
max
λ
g
(
λ
)
d^* = \max_{\lambda} g(\lambda)
d∗=λmaxg(λ),什么含义呢?就是反复调整蓝线2的斜率
λ
\lambda
λ,使其与z轴截距最大(但注意要保证和U相擦),所以最优情况如下图红线所示(我寻思这图画着画着咋有点不对劲嘞…),与U相擦,同时与Z轴交于d点,此即为d* !!!
由图可以明显看出,d的值无论怎么取都不会超过p的,所以由此推的第一重关系-----弱对偶关系
d
∗
≤
p
∗
d^* \leq p^*
d∗≤p∗。
好,那么如何才能使d,p两点重合在一点呢?很容易推得集合U(图中爱心)需要是凸函数,同时还需要满足slater条件,它的定义是:
source:https://blog.csdn.net/u010510549/article/details/100938214
slater条件实际上是原问题P可以等价于对偶问题Q的一个充分条件。
你的鼓励是我创作的动力,如果你有收获,点个赞吧👍我接下来还会陆续更新机器学习相关的学习笔记,补充这个系列。如果看到这里的话,说明你有认真看这篇文章,希望你能有所收获!最后,欢迎交流指正!
还有不明白的欢迎阅读其他文章: 通俗讲解支持向量机SVM(一)面试官:什么?线性模型你不会不清楚吧? 通俗讲解支持向量机SVM(二)另辟蹊径!对偶性的几何解释 通俗讲解支持向量机SVM(三)SVM处理非线性问题及软间隔之引出 通俗讲解支持向量机SVM(四)用尽洪荒之力把核函数与核技巧讲得明明白白(精华篇)