《机器学习理论导引》笔记目录
0 感言
剩下一部分是最优化基础,之前运筹学中接触过一点,但是学得很不理想,重新过又是大工程,头大。
1.3 最优化基础
最小二乘 (Least Square) 问题
xminf(x)=i=1∑m(aiTx−bi)2=∥Ax−b∥22
其中 x=(x1,...,xd)∈Rd 为d维优化变量,A=(a1,...,am)∈Rm×d,b=(b1,...,bm)∈Rm
求解闭式 (close-form) 最优解:
make S(X)=∥Ax−b∥→x^=argmin(S(X))(S2(X))′=[(Ax−b)T(Ax−b)]′=[xTATAx−bTAx−bxTAT]′=2(ATAx−ATb)=0→x∗=(ATA)−1ATb
线性规划 (linear programming) 问题
xmincTxs.t. aiTx⩽bi (i∈[m])
优化问题的泛化表示
xminf(x)s.t. hi(x)⩽0 (i∈[m])
其中 f:Rd↦R 称为优化目标函数,hi:Rd↦R称为约束函数,上式即在满足 hi(x)⩽0 的条件下,寻找 x 使得目标函数 f(⋅) 最小化。Ω={x∣hi(x)⩽0 (i∈[m])}称为可行域(feasible region),该问题同时也可以表达为 {x∗∣f(x∗)⩽f(x) (∀x∈Ω)}
凸优化 (convex optimizationv) 问题
若目标函数 f(⋅) 和约束函数 hi(⋅) 都是凸函数,则称之为凸优化 (convex optimization) 问题。
当目标函数 f(⋅) 可微时,x∗ 是凸优化问题的最优解当且仅当 x∗∈Ω 且 ∇f(x∗)T(z−x∗)⩾0 (∀z∈Ω),直观来看,−∇f(x∗) 在 x∗ 处定义了可行域 Ω 的一个支撑超平面。而对于无约束的凸优化问题,x∗ 是最优解当且仅当 ∇f(x∗)=0,即最优解处梯度为0。
图例1.支撑超平面的示意图
主问题 (primal problem) 与其对偶式 (dual problem)
将主问题划分为等式约束与不等式约束可写为
xminf(x)s.t. hi(x)⩽0 (i∈[m]), gj(x)=0 (j∈[n])
将其定义域记为 Ψ,最优值记为 p∗,引入拉格朗日乘子 λ=(λ1,...,λm) 和 μ=(μ1,...,μn),相应拉格朗日函数 L:Rd×Rm×Rn↦R 为
Γ(λ,μ)=x∈ΨinfL(x,λ,μ)=x∈Ψinf(f(x)+i=1∑mλihi(x)+j=1∑nμjgj(x))
由定义知,对于任意 λ⪰0 (指 λ 的分量均非负)都有
i=1∑mλihi(x)+j=1∑nμjgj(x)⩽0
对于 ∀x~∈Ψ,有
Γ(λ,μ)=x∈ΨinfL(x,λ,μ)⩽L(x,λ,μ)⩽f(x~)
于是对任意 λ⪰0 都有 Γ(λ,μ)⩽p∗,即使用拉格朗日构造的对偶函数给出了主问题目标函数最优值 p∗ 的下界,并基于其给出对偶问题 (dual problem) 的定义,其中 λ,μ 称为对偶变量 (dual variable)
λ,μmax Γ(λ,μ) s.t. λ⪰0
强对偶性 (strong duality) 和弱对偶性 (weak duality)
可以看出上式中 Γ(λ,μ) 是若干仿射函数之和的最小值,因此其为凹函数,对偶问题试图最大化一个凹函数,是凸优化问题,且该问题的目标函数最优值 d∗ 是主问题的目标函数最优值 p∗ 的下界,即
d∗⩽p∗
这称之为弱对偶性 (weak duality),若等号可以取到,则为强对偶性 (strong duality)。强对偶性显见通常不成立,但是当主问题为凸优化问题时,若其中 f(x),hi(x)均为凸函数,gj(x) 为仿射函数(即由1 阶多项式构成的函数),且可行域 Ω 中至少有一处使得不等式约束严格成立,则强对偶性成立。
KKT (Karush-Kuhn-Tucker) 条件
KKT (Karush-Kuhn-Tucker) 条件可以刻画主问题与对偶问题最优解之间的关系,令x∗为主问题的最优解,(λ∗,μ∗) 为对偶问题的最优解,当强对偶性成立时
f(x∗)=Γ(λ∗,μ∗)=x∈Ψinf(f(x)+i=1∑mλi∗hi(x)+j=1∑nμj∗gj(x))⩽f(x∗)+i=1∑mλi∗hi(x∗)+j=1∑nμj∗gj(x∗)⩽f(x∗)
其中所有不等号均取等,转化为下面两个条件必然成立
- 互补松弛条件 (complementary slackness)
λi∗hi(x∗)=0 (i∈[m])→(λi∗>0⇒hi(x∗)=0) or (hi(x∗)=0⇒λi=0)
x∗=argx∈ΨminL(x,λ∗,μ∗)=argx∈Ψmin{f(x)+i=1∑mλi∗hi(x)+j=1∑nμj∗gj(x)}
通常 Ψ 为全集或 x∗ 位于 Ψ 内部,因此拉格朗日函数 L(x,λ∗,μ∗) 在 x∗ 处梯度为0,即
∇L(x,λ∗,μ∗)=∇f(x∗)+i=1∑mλi∗∇hi(x∗)+j=1∑nμj∗∇gj(x∗)=0
相应的,KKT 条件可以由以下几个部分组成
(1). 主问题约束:
{hi(x∗)⩽0 (i∈[m])gj(x∗)=0 (j∈[n])
(2). 对偶问题约束:λ∗⪰0
(3). 互补松弛条件:λi∗hi(x∗)=0 (i∈[m])
(4). 拉格朗日函数在 x∗ 处的梯度为0:
∇f(x∗)+i=1∑mλi∗∇hi(x∗)+j=1∑nμj∗∇gj(x∗)=0
KKT条件具有如下重要性质:
- 强对偶性成立时,对于任意优化问题,主问题最优解与对偶问题最优解一定满足 KKT 条件
- 凸优化问题中,KKT是充分条件,KKT条件的解一定是最优解
- 对于强对偶性成立的凸优化问题,KKT 条件是充要条件,即 x∗ 是主问题最优解当且仅当 (λ∗,μ∗) 满足 KKT 条件。
1.4 支持向量机 (Supporting Vector Machine, SVM)
对于给定训练集 S={(x1,y1),⋯,(xm,ym)},yi∈{−1,+1},其试图寻找刚好再两类训练样本“正中间”的划分超平面 ωTx+b=0。假设超平面可以将训练样本正确分类,即对于 (xi,yi)∈D,有
{ωTxi+b>0, yi=+1ωTxi+b<0, yi=−1⇒{ωTxi+b⩾+1, yi=+1ωTxi+b⩽−1, yi=−1
则求解 最大间隔(maximum margin) 划分超平面对应于优化问题
ω,bmin 21 ∥ω∥2s.t. yi(ωTxi+b)⩾1 (i∈[m])
**图例2**.核化支持向量机与支持向量机示意图
由上面优化基础部分进行拉格朗日函数补全
L(ω,b,α)=21∥ω∥2+i=1∑mαi(1−yi(ωTxi+b))
其中拉格朗日乘子 αi⩾0,α=(α1,...,αm),令 ∂ω∂L(ω,b,α)=∂b∂L(ω,b,α)=0,则有
ω=i=1∑mαiyixii=1∑mαiyi=0
并将其带回得到对偶问题
αmins.t.21i=1∑mj=1∑mαiαjyiyjxiTxj−i=1∑mαii=1∑mαiyi=0, αi⩾0 (i∈[m])
上述过程满足 KKT 条件
⎩⎨⎧∑i=1mαiyixi=ω∑i=1mαiyi=0αi⩾0yi(ωTxi+b)−1⩾0αi(yi(ωTxi+b)−1)=0
非线性化与核函数
为了解决非线性化的问题,引入非线性映射ϕ(x),其主问题变为
ω,bmin 21 ∥ω∥2s.t. yi(ωTϕ(xi)+b)⩾1 (i∈[m])
同时对偶问题变为
αmins.t.21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)−i=1∑mαii=1∑mαiyi=0, αi⩾0 (i∈[m])
而其中设计计算其映射后的内积 (inner product) ϕ(xi)Tϕ(xj),很多高维情况下直接计算是困难的,因此,引入核函数 (kernal function)
κ(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩=ϕ(xi)Tϕ(xj)
借助于核函数完成对偶问题优化
αmins.t.21i=1∑mj=1∑mαiαjyiyjκ(xi,xj)−i=1∑mαii=1∑mαiyi=0, αi⩾0 (i∈[m])
定理1.1. 核函数 令 X 为输入空间,κ(⋅,⋅) 是定义在 X×X 上的对称函数,则 κ 是核函数当且仅当对于任意数据 {x1,x2,...,xm},核矩阵 (kernal matrix) K 是一个半正定的m阶方阵,Kij=κ(xi,xj)。
每个核函数都隐式地定义了一个特征空间,称为 再生核希尔伯特空间 (Reproducing Kernal Hilbert Space, RKHS),其是否适当对支持向量机的性能至关重要。下面给出几种常用的核函数
| 名称 | 表达式 | 参数 |
|---|
| 线性核 | κ(xi,xj)=xiTxj | |
| 多项式核 | κ(xi,xj)=(xiTxj)d | d⩾1为多项式次数 |
| 高斯核 | κ(xi,xj)=exp(−2σ2∥xi−xj∥2) | σ>0为高斯核的带宽(width) |
| 拉普拉斯核 | κ(xi,xj)=exp(−σ∥xi−xj∥) | σ>0 |
| Sigmoid 核 | κ(xi,xj)=tanh(βxiTxj+θ) | tanh 为双曲正切函数,β>0,θ<0 |
同时,为了防止过拟合引入 软间隔 (soft margin),即允许某些样本不满足yi(ωTxi+b)⩾1但是同时希望这样的样本还是尽可能少,优化目标转化为
ω,bmin 21∥ω∥2+βi=1∑ml0/1(yi(ωTϕ(xi)+b)−1)
其中 β>0 为常数,l0/1=I(x<0) 是 (0/1) 损失函数,同时有更好的 hinge损失函数 作为 替代损失 (surrogate loss)
lhinge(x)=max(0,1−x)
在引入 松弛变量 (slack variables) ξi⩾0后重写为
ω,b,ξimins.t.21∥ω∥2+βi=1∑mξiyi(ωTϕ(xi)+b)⩾1−ξi, ξ⩾0 (i∈[m])
其对偶形式为
αmins.t.21i=1∑mj=1∑mαiαjyiyjκ(xi,xj)−i=1∑mαii=1∑mαiyi=0, 0⩽αi⩽β (i∈[m])