一些零碎的知识点
知识点一:Lagrange对偶性
参考李航老师的《统计学习方法》
-
原始问题
给定凸优化问题
min x f ( x ) s . t . g i ( x ) ≤ 0 , i = 1 , ⋯ , m h j ( x ) = 0 , j = 1 , ⋯ , n \begin{aligned} \min_{x}\quad &f(x) \\ s.t.\quad &g_{i}(x) \leq 0,\ i=1,\cdots,m \\ & h_{j}(x) = 0,\ j=1,\cdots,n \end{aligned} xmins.t.f(x)gi(x)≤0, i=1,⋯,mhj(x)=0, j=1,⋯,n其中 f ( x ) f(x) f(x) 和 g i ( x ) g_{i}(x) gi(x) 都是 R n \mathbb{R}^n Rn 上的连续可微的凸函数,约束函数 h j ( x ) h_{j}(x) hj(x) 是 R n \mathbb{R}^n Rn 上的仿射函数。当 f ( x ) f(x) f(x) 是二次函数,约束函数 g i ( x ) g_{i}(x) gi(x)和 h j ( x ) h_{j}(x) hj(x) 是仿射函数时,上述问题称为凸二次规划问题。
构造Lagrange函数
L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ j = 1 n μ j h j ( x ) L(x,\lambda, \mu) = f(x) + \sum_{i=1}^{m}\lambda_{i}g_{i}(x) + \sum_{j=1}^{n}\mu_{j}h_{j}(x) L(x,λ,μ)=f(x)+i=1∑mλigi(x)+j=1∑nμjhj(x)
其中, λ i ≥ 0 , μ j \lambda_{i}\geq0,\mu_{j} λi≥0,μj 是拉格朗日乘子。则上述优化问题等价于
min x max λ ≥ 0 , μ L ( x , λ , μ ) \min_{x}\max_{\lambda\geq0,\mu} L(x, \lambda, \mu) xminλ≥0,μmaxL(x,λ,μ)
事实上
min x max λ ≥ 0 , μ L ( x , λ , μ ) = min x ( f ( x ) + max λ ≥ 0 , μ ( ∑ i = 1 m λ i g i ( x ) + ∑ j = 1 n μ j h j ( x ) ) ) = min x ( f ( x ) + { 0 , g ( x ) ≤ 0 , h ( x ) = 0 ∞ , o t h e r w i s e ) = min x f ( x ) s . t . g i ( x ) ≤ 0 , i = 1 , ⋯ , m h j ( x ) = 0 , j = 1 , ⋯ , n \begin{aligned} &\quad\min_{x}\max_{\lambda\geq0,\mu}\quad L(x, \lambda, \mu) \\ &=\min_{x}\left(f(x)+\max_{\lambda\geq0,\mu}\left(\sum_{i=1}^{m}\lambda_{i}g_{i}(x) + \sum_{j=1}^{n}\mu_{j}h_{j}(x)\right)\right) \\ &=\min_{x}\left(f(x)+ \begin{cases}0, & g(x)\leq0,\ h(x)=0 \\ \infty, & otherwise \end{cases} \right) \\ &=\min_{x}\ f(x)\\ &\quad\ \ s.t.\ g_{i}(x)\leq0,\ i=1,\cdots,m \\ &\qquad\quad\ \ h_{j}(x)=0,\ j=1,\cdots,n \end{aligned} xminλ≥0,μmaxL(x,λ,μ)=xmin(f(x)+λ≥0,μmax(i=1∑mλigi(x)+j=1∑nμjhj(x)))=xmin(f(x)+{0,∞,g(x)≤0, h(x)=0otherwise)=xmin f(x) s.t. gi(x)≤0, i=1,⋯,m hj(x)=0, j=1,⋯,n -
对偶问题
原始问题是 (primary problem):
min x max λ ≥ 0 , μ L ( x , λ , μ ) \min_{x}\max_{\lambda\geq0,\mu} L(x, \lambda, \mu) xminλ≥0,μmaxL(x,λ,μ)
对偶问题 (duality problem) 是:
max λ ≥ 0 , μ min x L ( x , λ , μ ) \max_{\lambda\geq0,\mu}\min_{x} L(x, \lambda, \mu) λ≥0,μmaxxminL(x,λ,μ) -
原始问题和对偶问题的关系
定理1 (弱对偶性, weak duality): 若原始问题和对偶问题都有最优值,则
d ∗ = max λ ≥ 0 , μ min x L ( x , λ , μ ) ≤ min x max λ ≥ 0 , μ L ( x , λ , μ ) = p ∗ d^{*} = \max_{\lambda\geq0,\mu}\min_{x}\ L(x, \lambda, \mu) \leq \min_{x}\max_{\lambda\geq0,\mu}\ L(x, \lambda, \mu) = p^{*} d∗=λ≥0,μmaxxmin L(x,λ,μ)≤xminλ≥0,μmax L(x,λ,μ)=p∗
推论1: 设 x ∗ x^* x∗ 和 ( λ ∗ , μ ∗ ) (\lambda^*,\mu^*) (λ∗,μ∗) 分别是原始问题和对偶问题的可行解,并且 d ∗ = p ∗ d^*=p^* d∗=p∗,则 x ∗ x^* x∗ 和 ( λ ∗ , μ ∗ ) (\lambda^*,\mu^*) (λ∗,μ∗) 分别是原始问题和对偶问题的最优解。强对偶性 (strong duality):
p ∗ = d ∗ p^{*}=d^{*} p∗=d∗
在强对偶成立的情况下,可以通过求解对偶问题来得到原始问题的解。强对偶性成立的性质
设 x ∗ x^* x∗ 和 ( λ ∗ , μ ∗ ) (\lambda^*,\mu^*) (λ∗,μ∗) 分别是原始问题和对偶问题的最优解,则
d ∗ = min x L ( x , λ ∗ , μ ∗ ) ≤ L ( x ∗ , λ ∗ , μ ∗ ) ≤ max λ ≥ 0 , μ L ( x ∗ , λ , μ ) = p ∗ d^* = \min_{x} L(x,\lambda^*,\mu^*) \leq L(x^*,\lambda^*,\mu^*) \leq \max_{\lambda\geq0,\mu} L(x^*,\lambda,\mu) = p^* d∗=xminL(x,λ∗,μ∗)≤L(x∗,λ∗,μ∗)≤λ≥0,μmaxL(x∗,λ,μ)=p∗
结合强对偶性知
p ∗ = d ∗ = L ( x ∗ , λ ∗ , μ ∗ ) p^*=d^*=L(x^*,\lambda^*,\mu^*) p∗=d∗=L(x∗,λ∗,μ∗)
强对偶性成立的条件Slater 条件是指不等式约束条件是严格可行的,即存在 x x x 满足:
g i ( x ) < 0 , i = 1 , ⋯ , m g_{i}(x) < 0,\ i=1,\cdots,m gi(x)<0, i=1,⋯,m
KKT条件:
∇ x f ( x ∗ ) + ∑ i = 1 m λ i ∗ ∇ x g i ( x ∗ ) + ∑ j = 1 n μ j ∗ ∇ x h j ( x ∗ ) = 0 ( 互 补 松 弛 条 件 ) λ i ∗ g i ( x ∗ ) = 0 , i = 1 , ⋯ , m g i ( x ∗ ) ≤ 0 , i = 1 , ⋯ , m λ i ∗ ≥ 0 , i = 1 , ⋯ , m h i ( x ∗ ) = 0 , j = 1 , ⋯ , n \begin{aligned} \nabla_{x}f(x^*) + \sum_{i=1}^{m}\lambda_{i}^{*}\nabla_{x}g_{i}(x^*) + \sum_{j=1}^{n}\mu_{j}^{*}\nabla_{x}h_{j}(x^*) = 0 \\ (互补松弛条件)\ \lambda_{i}^{*}g_{i}(x^{*}) = 0,\ i=1,\cdots,m \\ g_{i}(x^{*}) \leq 0,\ i=1,\cdots,m \\ \lambda_{i}^{*} \geq 0,\ i=1,\cdots,m \\ h_{i}(x^{*}) = 0,\ j=1,\cdots,n \end{aligned} ∇xf(x∗)+i=1∑mλi∗∇xgi(x∗)+j=1∑nμj∗∇xhj(x∗)=0(互补松弛条件) λi∗gi(x∗)=0, i=1,⋯,mgi(x∗)≤0, i=1,⋯,mλi∗≥0, i=1,⋯,mhi(x∗)=0, j=1,⋯,n
定理2: 如果原始问题是凸优化问题,满足Slater条件,则存在 x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x∗,λ∗,μ∗,使 x ∗ x^* x∗ 和 ( λ ∗ , μ ∗ ) (\lambda^*,\mu^*) (λ∗,μ∗) 分别是原始问题和对偶问题的最优解,并且
p ∗ = d ∗ = L ( x ∗ , λ ∗ , μ ∗ ) p^*=d^*=L(x^*,\lambda^*,\mu^*) p∗=d∗=L(x∗,λ∗,μ∗)
定理4: 如果原始问题是凸优化问题,且满足Slater条件,则 x ∗ x^* x∗ 和 ( λ ∗ , μ ∗ ) (\lambda^*,\mu^*) (λ∗,μ∗) 分别是原始问题和对偶问题的最优解的充要条件是 ( x ∗ , λ ∗ , μ ∗ ) (x^*,\lambda^*,\mu^*) (x∗,λ∗,μ∗) 满足KKT条件。SVM中的强对偶性
-
SVM是一种凸二次规划问题
-
Slater条件在SVM中等价于存在超平面能将数据分隔开来
-
知识点二:多类别分类: 一对多 (one-vs-all)
例:有三种不同水果:桃,苹果,香蕉。
对桃取值为1,其他两类归于0,做模型进行训练。
对苹果取值为1,其他两类归于0,做模型进行训练。
对香蕉取值为1,其他两类归于0,做模型进行训练。
现在我们有了三个模型,可以对一个输入值进行判断分类,分类结果取出最大值的那个就是类别。
知识点三:特征映射
对于这样的非线性数据 (特征数n=2),不能用直线将他们分开,可以尝试用形如
θ
0
+
θ
1
x
(
1
)
+
θ
2
x
(
2
)
+
θ
3
(
x
(
1
)
)
2
+
θ
4
x
(
1
)
x
(
2
)
+
θ
5
(
x
(
2
)
)
2
+
.
.
.
=
0
\theta_{0}+\theta_{1}x^{(1)}+\theta_{2}x^{(2)}+\theta_{3}(x^{(1)})^{2}+\theta_{4}x^{(1)}x^{(2)}+\theta_{5}(x^{(2)})^{2}+...= 0
θ0+θ1x(1)+θ2x(2)+θ3(x(1))2+θ4x(1)x(2)+θ5(x(2))2+...=0
的多项式函数曲线作为决策边界。为此,只需做特征映射,将
(
x
(
1
)
)
2
,
x
(
1
)
x
(
2
)
,
(
x
(
2
)
)
2
,
⋯
(x^{(1)})^{2},x^{(1)}x^{(2)},(x^{(2)})^{2},\cdots
(x(1))2,x(1)x(2),(x(2))2,⋯ 作为新的特征。
def feature_mapping(x, y, power):
"""
x, y: array
power: 最高项次数
-------
Return: x^{p-i}y^{i}, p<=power 生成的DataFrame
"""
df = pd.DataFrame({'x{}y{}'.format(p-i, i):
np.power(x, p-i) * np.power(y, i)
for p in range(power+1) for i in range(p+1)})
return df