【约束非线性优化1】投影梯度下降法

1. 投影梯度下降法(PGD)

1.1 介绍

前面章节我们介绍了梯度下降法来解决无约束的非线性优化问题。那么如何解决带约束的非线性优化问题呢?一个直观的想法是:我们依旧先进行梯度下降到一个相对较小的点,然后再将这个点通过某种方式投影到可行域内。如图:

  • 第一步:进行无约束的梯度下降:

x k + 1 2 = x k − η k ∇ f ( x k ) \mathbf{x}^{k+\frac{1}{2}}=\mathbf{x}^k-\eta_k\nabla f(\mathbf{x}^k) xk+21=xkηkf(xk)

  • 第二步:将 x k + 1 2 \mathbf{x}^{k+\frac{1}{2}} xk+21 通过某种度量映射到可行域 Ω \Omega Ω 内最接近的点:

x k + 1 ∈ arg ⁡ min ⁡ x ∈ Ω ∣ ∣ x − x k + 1 2 ∣ ∣ \mathbf{x}^{k+1}\in\arg\min\limits_{\mathbf{x}\in\Omega}||\mathbf{x}-\mathbf{x}^{k+\frac{1}{2}}|| xk+1argxΩmin∣∣xxk+21∣∣

记”把 x \mathbf{x} x 投影到 Ω \Omega Ω 上”为: P Ω ( x ) = arg ⁡ min ⁡ x ′ ∈ Ω ∣ ∣ x ′ − x ∣ ∣ \mathcal{P}_\Omega(\mathbf{x})=\arg\min\limits_{\mathbf{x'\in\Omega}}||\mathbf{x'}-\mathbf{x}|| PΩ(x)=argxΩmin∣∣xx∣∣,对于凸可行域,投影 P Ω ( x ) \mathcal{P}_\Omega(\mathbf{x}) PΩ(x) 是唯一的。

1.2 理解

【回忆】:在无约束非线性优化中,梯度下降法可以看成是最小化某个点处的二阶估计:
x k + 1 = arg ⁡ min ⁡ x { f ( x k ) + ∇ f ( x k ) T ( x − x k ) + 1 2 η k ∣ ∣ x − x k ∣ ∣ 2 } . \mathbf{x}^{k+1}=\arg\min\limits_{\mathbf{x}}\{f(\mathbf{x}^k)+\nabla f(\mathbf{x}^k)^T(\mathbf{x}-\mathbf{x}^k)+\frac{1}{2\eta_k}||\mathbf{x}-\mathbf{x}^k||^2\}. xk+1=argxmin{f(xk)+f(xk)T(xxk)+2ηk1∣∣xxk2}.
加上约束后,
x k + 1 ∈ arg ⁡ min ⁡ x ∈ Ω { f ( x k ) + ∇ f ( x k ) T ( x − x k ) + 1 2 η k ∣ ∣ x − x k ∣ ∣ 2 } ≡ arg ⁡ min ⁡ x ∈ Ω { η k f ( x k ) ⏟ constant + η k ∇ f ( x k ) T ( x − x k ) + 1 2 ∣ ∣ x − x k ∣ ∣ 2 } (multiply by  η k ) ≡ arg ⁡ min ⁡ x ∈ Ω { η k 2 2 f ( x k ) ⏟ constant + η k ∇ f ( x k ) T ( x − x k ) + 1 2 ∣ ∣ x − x k ∣ ∣ 2 } ( ±  constants not rely on  x ) ≡ arg ⁡ min ⁡ x ∈ Ω { 1 2 ∣ ∣ ( x − x k ) + η k ∇ f ( x k ) ∣ ∣ 2 } ≡ arg ⁡ min ⁡ x ∈ Ω { ∣ ∣ x − ( x k − η k ∇ f ( x k ) ) ⏟ gradient descent ∣ ∣ 2 } . \begin{align} \mathbf{x}^{k+1}&\in\arg\min\limits_{\mathbf{x}\in\Omega}\{f(\mathbf{x}^k)+\nabla f(\mathbf{x}^k)^T(\mathbf{x}-\mathbf{x}^k)+\frac{1}{2\eta_k}||\mathbf{x}-\mathbf{x}^k||^2\}\\ &\equiv \arg\min\limits_{\mathbf{x}\in\Omega}\{\underbrace{\eta_kf(\mathbf{x}^k)}_{\text{constant}}+\eta_k\nabla f(\mathbf{x}^k)^T(\mathbf{x}-\mathbf{x}^k)+\frac{1}{2}||\mathbf{x}-\mathbf{x}^k||^2\} \text{(multiply by $\eta_k$)}\\ &\equiv \arg\min\limits_{\mathbf{x}\in\Omega}\{\underbrace{\frac{\eta_k^2}{2}f(\mathbf{x}^k)}_{\text{constant}}+\eta_k\nabla f(\mathbf{x}^k)^T(\mathbf{x}-\mathbf{x}^k)+\frac{1}{2}||\mathbf{x}-\mathbf{x}^k||^2\} \text{($\pm$ constants not rely on $\mathbf{x}$)}\\ &\equiv \arg\min\limits_{\mathbf{x}\in\Omega}\{\frac{1}{2}||(\mathbf{x}-\mathbf{x^k})+\eta_k\nabla f(\mathbf{x}^k)||^2\}\\ &\equiv \arg\min\limits_{\mathbf{x}\in\Omega}\{||\mathbf{x}-\underbrace{(\mathbf{x}^k-\eta_k\nabla f(\mathbf{x}^k))}_{\text{gradient descent}}||^2\}. \end{align} xk+1argxΩmin{f(xk)+f(xk)T(xxk)+2ηk1∣∣xxk2}argxΩmin{constant ηkf(xk)+ηkf(xk)T(xxk)+21∣∣xxk2}(multiply by ηk)argxΩmin{constant 2ηk2f(xk)+ηkf(xk)T(xxk)+21∣∣xxk2}(± constants not rely on x)argxΩmin{21∣∣(xxk)+ηkf(xk)2}argxΩmin{∣∣xgradient descent (xkηkf(xk))2}.

1.3 适用场景

当投影操作计算方便时,即可行域较为简单时可用。以下是一些简单可行域的例子:

  • 变量只有上界或下界: L ≤ x ≤ U L\leq \mathbf{x}\leq U LxU
  • 只有线性等式约束: a T x = b \mathbf{a}^T\mathbf{x}=\mathbf{b} aTx=b
  • 只有半空间约束: a T x ≤ b \mathbf{a}^T\mathbf{x}\leq\mathbf{b} aTxb
  • 只有 norm-ball 约束: ∣ ∣ x ∣ ∣ p ≤ τ ||\mathbf{x}||_p\leq\tau ∣∣xpτ,for p = 1 , 2 , ∞ p=1,2,\infin p=1,2,

【例1】(使用投影梯度下降解SVM)

【例2】(将 L 1 L_1 L1 正则化,i.e.,LASSO回归,转换成约束优化问题)

2. 应用:软间隔支持向量机

2.1 引入松弛变量 ξ i \xi_i ξi

之前的介绍中,我们假设数据点是能够用一个线性超平面分割的,于是我们形式化求解了硬间隔的SVMs。在实际应用中,我们常常很难遇到能够完全线性分离的数据集,如图:

在这里插入图片描述

这种情况下,我们就无法找到 ( x , b ) (\mathbf{x},b) (x,b) 满足 y i ( x T s i + b ) ≥ 1 , ∀ i = 1 , ⋯   , m y^i(\mathbf{x}^T\mathbf{s}^i+b)\geq1,\forall i =1,\cdots,m yi(xTsi+b)1,i=1,,m。所以我们试图为每一个训练样本 s i \mathbf{s}^i si 引入一个松弛变量 ξ i ≥ 0 \xi_i\geq0 ξi0 来放宽原来的约束:
y i ( x T s i + b ) ≥ 1 − ξ i y^i(\mathbf{x}^T\mathbf{s}^i+b)\geq1-\xi_i yi(xTsi+b)1ξi
其中,松弛变量 ξ i ≥ 0 \xi_i\geq0 ξi0 反应了原训练样本违反原来约束的程度。如果 ξ i = 0 \xi_i=0 ξi=0,说明对应的 s i \mathbf{s}^i si 能够被 margin 分隔开。如果 ξ i ≥ 1 \xi_i\geq1 ξi1,则说明 s i \mathbf{s}^i si 将会被错误的分类,因为在这个情况下 y i ( x T s i + b ) y^i(\mathbf{x}^T\mathbf{s}^i+b) yi(xTsi+b) 可能会变成负数。

因此,我们通过最小化平均松弛变量 1 m ∑ ξ i \frac{1}{m}\sum\xi_i m1ξi 来使得平均约束违反程度最小。

2.2 用PGD求解软间隔SVM

我们将 C m ∑ ξ i \frac{C}{m}\sum\xi_i mCξi 引入原问题目标函数,其中 C C C 权衡了 ∣ ∣ x ∣ ∣ 2 ||\mathbf{x}||^2 ∣∣x2 ∑ ξ i \sum\xi_i ξi 。为了简化问题,我们忽略 b \mathbf{b} b,则软间隔的SVM原问题为:
min ⁡ x , ξ 1 2 ∣ ∣ x ∣ ∣ 2 + C m ∑ i = 1 m ξ i s.t.  y i ( x T x i ) ≥ 1 − ξ i , ξ i ≥ 0 , ∀ i = 1 , ⋯   , m \min\limits_{\mathbf{x},\xi}\frac{1}{2}||\mathbf{x}||^2+\frac{C}{m}\sum_{i=1}^m\xi_i\\ \text{s.t. }y^i(\mathbf{x}^T\mathbf{x}^i)\geq1-\xi_i,\xi_i\geq0,\forall i=1,\cdots,m x,ξmin21∣∣x2+mCi=1mξis.t. yi(xTxi)1ξi,ξi0,i=1,,m
使用 KKT 条件我们可以推导出软间隔SVM对偶问题:
max ⁡ λ ∑ i = 1 m λ i − 1 2 ∑ i = 1 m ∑ j = 1 m λ i λ j y i y j ( s i ) T s j s.t.  λ i ∈ [ 0 , C / m ] , ∀ i = 1 , ⋯   , m \max\limits_{\lambda}\sum_{i=1}^m\lambda_i-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\lambda_i\lambda_jy^iy^j(\mathbf{s}^i)^T\mathbf{s}^j\\ \text{s.t. } \lambda_i\in [0,C/m],\forall i=1,\cdots,m λmaxi=1mλi21i=1mj=1mλiλjyiyj(si)Tsjs.t. λi[0,C/m],i=1,,m
用对偶函数表示为:
max ⁡ λ q ( λ ) : = ∑ i = 1 m λ i − 1 2 λ T Q λ s.t.  λ i ∈ [ 0 , C / m ] , ∀ i = 1 , ⋯   , m where  Q : = [ ( y 1 ) 2 ( s 1 ) T s 1 ⋯ y 1 y m ( s 1 ) T s m ⋮ ⋱ ⋮ y m y 1 ( s m ) T s 1 ⋯ ( y m ) 2 ( s m ) T s m ] \max\limits_{\lambda}q(\lambda):=\sum_{i=1}^m\lambda_i-\frac{1}{2}\lambda^TQ\lambda\\ \text{s.t. }\lambda_i\in[0,C/m],\forall i=1,\cdots,m\\ \text{where } Q:=\left[ \begin{matrix} (y^1)^2(\mathbf{s}^1)^T\mathbf{s}^1 & \cdots & y^1y^m(\mathbf{s}^1)^T\mathbf{s}^m\\ \vdots & \ddots & \vdots\\ y^my^1(\mathbf{s}^m)^T\mathbf{s}^1 & \cdots & (y^m)^2(\mathbf{s}^m)^T\mathbf{s}^m \end{matrix} \right] λmaxq(λ):=i=1mλi21λTQλs.t. λi[0,C/m],i=1,,mwhere Q:= (y1)2(s1)Ts1ymy1(sm)Ts1y1ym(s1)Tsm(ym)2(sm)Tsm
接下来对其使用PGD算法:

  • step 1:初始化 λ 0 ∈ R m \lambda_0\in \R^m λ0Rm Q Q Q
  • step 2for k = 0 , 1 , ⋯   , t − 1 k=0,1,\cdots,t-1 k=0,1,,t1 do
    • step 2.1 λ k + 1 2 = λ k − η k ∇ q ( λ k ) \lambda_{k+\frac{1}{2}}=\lambda_k-\eta_k\nabla q(\lambda_k) λk+21=λkηkq(λk)
    • step 2.2 λ k + 1 = min ⁡ { max ⁡ { 0 , λ 1 + 1 2 } , C m } \lambda_{k+1}=\min\{\max\{0,\lambda_{1+\frac{1}{2}}\},\frac{C}{m}\} λk+1=min{max{0,λ1+21},mC}

【说明】:在step 2.2中, λ k + 1 = arg ⁡ min ⁡ λ ∣ ∣ λ − λ k + 1 2 ∣ ∣ \lambda_{k+1}=\arg\min\limits_{\lambda}||\lambda-\lambda_{k+\frac{1}{2}}|| λk+1=argλmin∣∣λλk+21∣∣,画图可知,当 λ k + 1 2 < 0 \lambda_{k+\frac{1}{2}}<0 λk+21<0 时,把它归到0,当 λ k + 1 2 > C m \lambda_{k+\frac{1}{2}}>\frac{C}{m} λk+21>mC 时,在 C/m 处截断,即 λ k + 1 = min ⁡ { max ⁡ { 0 , λ 1 + 1 2 } , C m } \lambda_{k+1}=\min\{\max\{0,\lambda_{1+\frac{1}{2}}\},\frac{C}{m}\} λk+1=min{max{0,λ1+21},mC}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值