优化|Lp范数优化方法总结

在这里插入图片描述
l p l_p lp范数是数学和工程领域广泛应用的一种度量工具,其中p取不同的值具有不同的应用含义,也可能导致优化函数非凸。本文将总结不同p取值时优化问题的近似求解方法。

一、范数问题定义

在凸优化领域,范数问题在“逼近和拟合”概念 [ 1 ] ^{[1]} [1]中提到,其中,最为基础的范数逼近问题可以表述为如下形式的无约束优化问题:
min ⁡ x   ∥ A x − b ∥ \mathop {\min }\limits_{\bf{x}} \ \left\| {{\bf{Ax}} - {\bf{b}}} \right\| xmin Axb
其中, A ∈ R M × N , b ∈ R M , x ∈ R N {\bf{A}} \in {\mathbb{R}^{M \times N}},{\bf{b}} \in {\mathbb{R}^M},{\bf{x}} \in {\mathbb{R}^N} ARM×N,bRM,xRN , , ∥ ⋅ ∥ \left\| \cdot \right\| 表示 R M {\mathbb{R}^M} RM上的一种范数。从上式也可以看出,范数逼近问题的目标是用 A {\bf{A}} A的列的线性组合,尽可能准确地对向量 b \bf{b} b进行逼近或者拟合。设向量 r = A x − b {\bf{r}} = {\bf{Ax}} - {\bf{b}} r=Axb为这个问题的残差,该问题也可以表示为:
min ⁡ { ∥ r ∥ : r = A x − b , x ∈ R N } \mathop {\min }\left\{ \left\| {\bf{r}} \right\|: {\bf{r} = \bf{Ax-b}}, {\bf{x}} \in {\mathbb{R}^N} \right\} min{r:r=Axb,xRN}

二、范数问题的求解方法

2.1 l 1 {l_1} l1范数( p = 1 p=1 p=1)

l 1 l_1 l1范数问题也称为残差和逼近问题,可以表示为:
min ⁡ x   ∥ A x − b ∥ = ∣ r 1 ∣ + ⋯ + ∣ r M ∣ \mathop {\min }\limits_{\bf{x}} \ \left\| {{\bf{Ax}} - {\bf{b}}} \right\| = \left| {{r_1}} \right| + \cdots + \left| {{r_M}} \right| xmin Axb=r1++rM
该问题可以转换为如下形式的线性规划问题求解:
min ⁡ x , t   1 T t s.t.  − t ≤ A x − b ≤ t , t ∈ R M \begin{array}{l} \mathop {\min }\limits_{{\bf{x}},{\bf{t}}} \ {{\bf{1}}^T}{\bf{t}}\\ \text{s.t.} \ - {\bf{t}} \le {\bf{Ax}} - {\bf{b}} \le {\bf{t}},{\bf{t}} \in {\mathbb{R}^M} \end{array} x,tmin 1Tts.t. tAxbt,tRM
l 1 l_1 l1范数在稀疏表示等领域有广泛应用,比如,在Lasso回归(Least Absolute Shrinkage and Selection Operator Regression)中, l 1 l_1 l1范数用于正则化,以促进模型的稀疏性,比如 min ⁡ x f ( x ) + λ ∥ x ∥ 1 \mathop {\min }\limits_{\bf{x}} {\rm{ }}f\left( {\bf{x}} \right) + \lambda {\left\| {\bf{x}} \right\|_1} xminf(x)+λx1

2.2 l 2 l_2 l2范数( p = 2 p=2 p=2)

l 2 l_2 l2范数是欧几里得距离,广泛用于衡量向量之间的几何距离。该优化问题又称为最小二乘逼近问题,它可以表示为:
min ⁡ x   ∥ A x − b ∥ 2 2 = r 1 2 + ⋯ + r M 2 \mathop {\min }\limits_{\bf{x}} \ \left\| {{\bf{Ax}} - {\bf{b}}} \right\|_2^2 = r_1^2 + \cdots + r_M^2 xmin Axb22=r12++rM2
其目标函数是残差的平方和。假设 A \bf A A的列向量是独立的,则该问题总有唯一解:
x = ( A T A ) − 1 A T b x = {\left( {{{\bf{A}}^T}{\bf{A}}} \right)^{ - 1}}{{\bf{A}}^T}{\bf{b}} x=(ATA)1ATb

2.3 l ∞ {l_\infty } l范数( p = ∞ p=\infty p=)

l ∞ {l_\infty } l范数问题又称为极小极大逼近问题,可以表示为:
min ⁡ x   ∥ A x − b ∥ ∞ = max ⁡ { ∣ r 1 ∣ , ⋯   , ∣ r M ∣ } \mathop {\min }\limits_{\bf{x}} \ {\left\| {{\bf{Ax}} - {\bf{b}}} \right\|_\infty } = \max \left\{ {\left| {{r_1}} \right|, \cdots ,\left| {{r_M}} \right|} \right\} xmin Axb=max{r1,,rM}
该问题可以转换为如下形式的线性规划问题求解:
min ⁡ x , t   t s.t.  − t 1 ≤ A x − b ≤ t 1 , t ∈ R \begin{array}{l} \mathop {\min }\limits_{{\bf{x}},t} \ t\\ \text{s.t.}\ - t{\bf{1}} \le {\bf{Ax}} - {\bf{b}} \le t{\bf{1}},t \in \mathbb{R} \end{array} x,tmin ts.t. t1Axbt1,tR
l ∞ {l_\infty } l范数在信号处理和控制理论中常用于衡量最大误差,在鲁棒优化中可以用来分析最坏条件下的约束条件。

2.4 l p l_p lp范数( 2 ≤ p < ∞ 2 \le p < \infty 2p<)

更广义的 l p l_p lp范数 ($2 \le p < \infty $) 问题可以表示为:
min ⁡ x   ∥ A x − b ∥ p = ( ∑ m = 1 M ∣ r m ∣ p ) 1 / p ⇔ min ⁡ r ∑ m = 1 M ∣ r m ∣ p \mathop {\min }\limits_{\bf{x}} \ {\left\| {{\bf{Ax}} - {\bf{b}}} \right\|_p} = \left( {\sum\limits_{m = 1}^M {{{\left| {{r_m}} \right|}^p}} } \right)^{1/p}\Leftrightarrow \mathop {\min }\limits_{\bf{r}} {\rm{ }}\sum\limits_{m = 1}^M {{{\left| {{r_m}} \right|}^p}} xmin Axbp=(m=1Mrmp)1/prminm=1Mrmp
对于该优化问题,可以采用 majorization-minimization (MM) 算法 [ 2 ] ^{[2]} [2]架构迭代求解。

为了求解简单,我们可以对向量 r \bf{r} r中的每一个元素 r r r都构建一个二次形式的局部逼近函数(local approximation function)来近似 ∣ r ∣ p {\left| r \right|^p} rp。假设 f ( r ) = ∣ r ∣ p , p ≥ 2 , r ∈ [ 0 , t ) f\left( r \right) = {\left| r \right|^p},p \ge 2,r \in \left[ {0,t} \right) f(r)=rp,p2,r[0,t),其中 t t t是给定的常数。对于任意 r 0 ∈ [ 0 , t ) {r_0} \in \left[ {0,t} \right) r0[0,t)处的主函数(majorization function) h ( r ) h\left( r \right) h(r)应满足:

h ( r 0 ) = f ( r 0 ) , r 0 ∈ [ 0 , t ) h ( r ) ≥ f ( r ) , r ∈ [ 0 , t ) h ′ ( r 0 ) = f ′ ( r 0 ) , r 0 ∈ [ 0 , t ) h ( r )   i s   c o n t i n u o u s ,   r ∈ [ 0 , t ) \begin{array}{l} h\left( {{r_0}} \right) = f\left( {{r_0}} \right),{r_0} \in \left[ {0,t} \right)\\ h\left( r \right) \ge f\left( r \right),r \in \left[ {0,t} \right)\\ h'\left( {{r_0}} \right) = f'\left( {{r_0}} \right),{r_0} \in \left[ {0,t} \right)\\ h\left( r \right)\,{\rm{ is \, continuous, }}\,r \in \left[ {0,t} \right) \end{array} h(r0)=f(r0),r0[0,t)h(r)f(r),r[0,t)h(r0)=f(r0),r0[0,t)h(r)iscontinuous,r[0,t)

因此, f ( r ) = ∣ r ∣ p , p ≥ 2 , r ∈ [ 0 , t ) f\left( r \right) = {\left| r \right|^p},p \ge 2,r \in \left[ {0,t} \right) f(r)=rp,p2,r[0,t)可以用以下二次函数近似:
a ∣ r ∣ 2 + ( p ∣ r 0 ∣ p − 1 − 2 a ∣ r 0 ∣ ) ∣ r ∣ + a ∣ r 0 ∣ 2 − ( p − 1 ) ∣ r 0 ∣ p , a{\left| r \right|^2} + \left( {p\left| r_0 \right|^{p - 1} - 2a{\left| r_0 \right|}} \right)\left| r \right| + a\left| r_0 \right|^2 - \left( {p - 1} \right)\left| r_0 \right|^p, ar2+(pr0p12ar0)r+ar02(p1)r0p,

其中,
a = t p − ∣ r 0 ∣ p − p ∣ r 0 ∣ p − 1 ( t − ∣ r 0 ∣ ) ( t − ∣ r 0 ∣ ) 2 . a = \frac{{{t^p} - \left| r_0 \right|^p - p\left| r_0 \right|^{p - 1}\left( {t - {\left| r_0 \right|}} \right)}}{{{{\left( {t - {\left| r_0 \right|}} \right)}^2}}}. a=(tr0)2tpr0ppr0p1(tr0).

具体推导思路如下:对于任意的 r 0 ∈ [ 0 , t ) {r_0} \in \left[ {0,t} \right) r0[0,t),Taylor展开可以表示为:

g ( r ∣ r 0 ) = f ( r 0 ) + f ′ ( r 0 ) ( r − r 0 ) + a ( r − r 0 ) 2 , g\left( {r\left| {{r_0}} \right.} \right) = f\left( {{r_0}} \right) + f'\left( {{r_0}} \right)\left( {r - {r_0}} \right) + a{\left( {r - {r_0}} \right)^2}, g(rr0)=f(r0)+f(r0)(rr0)+a(rr0)2,

其中, a > 0 a > 0 a>0,并且满足 f ( r 0 ) = g ( r 0 ∣ r 0 ) f\left( {{r_0}} \right) = g\left( {{r_0}\left| {{r_0}} \right.} \right) f(r0)=g(r0r0)。如果令函数 g ( r ∣ r 0 ) g\left( {{r}\left| {{r_0}} \right.} \right) g(rr0)作为 f ( r ) f\left( {{r}} \right) f(r)在区间 [ 0 , t ] \left[ {0,t} \right] [0,t] r 0 {r_0} r0处的主函数,需要对于所有的 r ∈ [ 0 , t ] , r ≠ r 0 r \in \left[ {0,t} \right],r \ne {r_0} r[0,t],r=r0满足 f ( r ) ≤ g ( r ∣ r 0 ) f\left( r \right) \le g\left( {r\left| {{r_0}} \right.} \right) f(r)g(rr0),即:

a ≥ f ( r ) − f ( r 0 ) − f ′ ( r 0 ) ( r − r 0 ) ( r − r 0 ) 2 , r ∈ [ 0 , t ] , r ≠ r 0 . a \ge \frac{{f\left( r \right) - f\left( {{r_0}} \right) - f'\left( {{r_0}} \right)\left( {r - {r_0}} \right)}}{{{{\left( {r - {r_0}} \right)}^2}}},r \in \left[ {0,t} \right],r \ne {r_0}. a(rr0)2f(r)f(r0)f(r0)(rr0),r[0,t],r=r0.
定义:
A ( r ∣ r 0 ) = f ( r ) − f ( r 0 ) − f ′ ( r 0 ) ( r − r 0 ) ( r − r 0 ) 2 , r ≠ r 0 A\left( {r\left| {{r_0}} \right.} \right) = \frac{{f\left( r \right) - f\left( {{r_0}} \right) - f'\left( {{r_0}} \right)\left( {r - {r_0}} \right)}}{{{{\left( {r - {r_0}} \right)}^2}}},r \ne {r_0} A(rr0)=(rr0)2f(r)f(r0)f(r0)(rr0),r=r0
A ( r ∣ r 0 ) A\left( {r\left| {{r_0}} \right.} \right) A(rr0)的导数为:
A ′ ( r ∣ r 0 ) = f ′ ( r ) + f ′ ( r 0 ) − 2 ( f ( r ) − f ( r 0 ) ) / ( r − r 0 ) ( r − r 0 ) 2 A'\left( {r\left| {{r_0}} \right.} \right) = \frac{{f'\left( r \right) + f'\left( {{r_0}} \right) - 2\left( {f\left( r \right) - f\left( {{r_0}} \right)} \right)/\left( {r - {r_0}} \right)}}{{{{\left( {r - {r_0}} \right)}^2}}} A(rr0)=(rr0)2f(r)+f(r0)2(f(r)f(r0))/(rr0)
由于 f ′ ( r ) = p r p − 1 , r ∈ [ 0 , t ] , p ≥ 2 f'\left( r \right) = p{r^{p - 1}},r \in \left[ {0,t} \right],p \ge 2 f(r)=prp1,r[0,t],p2是凸函数,则:
f ( r ) − f ( r 0 ) r − r 0 = ∫ 0 1 f ′ ( r 0 + τ ( r − r 0 ) ) d τ ≤ ∫ 0 1 ( f ′ ( r 0 ) + τ ( f ′ ( r ) − f ′ ( r 0 ) ) ) d τ = 1 2 ( f ′ ( r ) + f ′ ( r 0 ) ) \begin{align} \frac{{f\left( r \right) - f\left( {{r_0}} \right)}}{{r - {r_0}}} &= \int_0^1 {f'\left( {{r_0} + \tau \left( {r - {r_0}} \right)} \right)d\tau } \nonumber\\ &\le \int_0^1 {\left( {f'\left( {{r_0}} \right) + \tau \left( {f'\left( r \right) - f'\left( {{r_0}} \right)} \right)} \right)d\tau } \nonumber\\ & = \frac{1}{2}\left( {f'\left( r \right) + f'\left( {{r_0}} \right)} \right)\nonumber \end{align} rr0f(r)f(r0)=01f(r0+τ(rr0))dτ01(f(r0)+τ(f(r)f(r0)))dτ=21(f(r)+f(r0))
这意味着 A ′ ( r ∣ r 0 ) ≥ 0 , r ∈ [ 0 , t ] , r ≠ r 0 A'\left( {r\left| {{r_0}} \right.} \right) \ge 0,r \in \left[ {0,t} \right],r \ne {r_0} A(rr0)0,r[0,t],r=r0,所以 A ( r ∣ r 0 ) A\left( {r\left| {{r_0}} \right.} \right) A(rr0)在区间 r ∈ [ 0 , t ] r \in \left[ {0,t} \right] r[0,t]上单调递增,在 r = t r = t r=t处取得最大值。所以最小的 a a a可以选择:
a = max ⁡ r ∈ [ 0 , t ] , r ≠ r 0 A ( r ∣ r 0 ) = r p − r 0 p − p r 0 p − 1 ( t − r 0 ) ( t − r 0 ) 2 \begin{align} a &= \mathop {\max }\limits_{r \in \left[ {0,t} \right],r \ne {r_0}} A\left( {r\left| {{r_0}} \right.} \right)\nonumber\\ &= \frac{{{r^p} - r_0^p - pr_0^{p - 1}\left( {t - {r_0}} \right)}}{{{{\left( {t - {r_0}} \right)}^2}}}\nonumber \end{align} a=r[0,t],r=r0maxA(rr0)=(tr0)2rpr0ppr0p1(tr0)
在迭代优化求解 l p l_p lp范数($2 \le p < \infty ) 问题时,如果 )问题时,如果 )问题时,如果r 取值区间的最大值 取值区间的最大值 取值区间的最大值t 不能显而易见地得到,可以根据第 不能显而易见地得到,可以根据第 不能显而易见地得到,可以根据第k 次迭代求得的 次迭代求得的 次迭代求得的{\bf{r}}^{\left( k \right)} 分析出在第 分析出在第 分析出在第\left( {k + 1} \right)$次迭代时的目标函数满足:
∑ m = 1 M ∣ r m ∣ p ≤ ∑ m = 1 M ∣ r m ( k ) ∣ p ⇒ ∣ r m ∣ ≤ ( ∑ m = 1 M ∣ r m ( k ) ∣ p ) 1 p \sum\limits_{m = 1}^M {{{\left| {{r_m}} \right|}^p}} \le \sum\limits_{m = 1}^M {{{\left| {r_m^{\left( k \right)}} \right|}^p}} \Rightarrow \left| {{r_m}} \right| \le {\left( {\sum\limits_{m = 1}^M {{{\left| {r_m^{\left( k \right)}} \right|}^p}} } \right)^{\frac{1}{p}}} m=1Mrmpm=1M rm(k) prm(m=1M rm(k) p)p1
所以, r r r取值区间的最大值可以是:
t = ( ∑ m = 1 M ∣ r m ( k ) ∣ p ) 1 p t = {\left( {\sum\limits_{m = 1}^M {{{\left| {r_m^{\left( k \right)}} \right|}^p}} } \right)^{\frac{1}{p}}} t=(m=1M rm(k) p)p1

2.5 l p l_p lp范数( 0 < p ≤ 1 0 < p \leq 1 0<p1)

l p l_p lp范数($0 <p \le1 ) 相比于 )相比于 )相比于l_1 范数更具有稀疏性,其求解更困难。采用和 2.4 节相似的方法,我们需要找到一个具有二次形式的主函数 范数更具有稀疏性,其求解更困难。采用和2.4节相似的方法,我们需要找到一个具有二次形式的主函数 范数更具有稀疏性,其求解更困难。采用和2.4节相似的方法,我们需要找到一个具有二次形式的主函数h\left( {{r}} \right) = br^2 + c 来近似求解 来近似求解 来近似求解f\left( r \right) = {\left| r\right|^p},0 <p \le1 问题,其中系数 问题,其中系数 问题,其中系数b 和 和 c$应满足以下条件:
∣ r 0 ∣ p = b r 0 2 + c {\left| r_0 \right|^p} = b{r_0^2} + c r0p=br02+c
s g n ( r 0 ) p ∣ r 0 ∣ p − 1 = 2 b r 0 {\mathop{\rm sgn}} (r_0)p{\left| r_0 \right|^{p - 1}} = 2br_0 sgn(r0)pr0p1=2br0
其中, s g n ( ⋅ ) {\mathop{\rm sgn}} \left( \cdot \right) sgn()表示符号函数,具体定义为:
$${\mathop{\rm sgn}} \left( r \right) = \left{ \begin{array}{l}
1,r > 0\
0,r = 0\

  • 1,r < 0
    \end{array} \right. 通过求解上述条件,可以得到以下二次函数: 通过求解上述条件,可以得到以下二次函数: 通过求解上述条件,可以得到以下二次函数:h\left( {r\left| {{r_0}} \right.} \right) = \frac{p}{2}{\left| {{r_0}} \right|^{p - 2}}{r^2} + \left( {1 - \frac{p}{2}} \right){\left| {{r_0}} \right|^p}$$

观察函数 h ( r ∣ r 0 ) h\left( {r\left| {{r_0}} \right.} \right) h(rr0)可以发现 r 0 ≠ 0 {r_0} \ne 0 r0=0,因为当 r 0 = 0 {r_0}= 0 r0=0时,系数 b = p 2 ∣ r 0 ∣ p − 2 b=\frac{p}{2}{\left| {{r_0}} \right|^{p - 2}} b=2pr0p2, $0 <p \le1 $没有意义。

为了定义在 r 0 = 0 {r_0}= 0 r0=0处的函数,一种常用的方法是定义如下函数:
$$h\left( {r\left| {{r_0} = 0} \right.} \right) = \left{ \begin{array}{l}

  • \infty ,r \ne 0\
    0,r = 0
    \end{array} \right.$$
    在迭代优化求解中,上式表示当第 k k k次迭代的结果 r ( k ) = 0 {r^{\left( k \right)}} = 0 r(k)=0时,下一次迭代的结果也为0,即 r ( k + 1 ) = 0 {r^{\left( k+1 \right)}} = 0 r(k+1)=0

另一种常见的方法是引入一个扰动误差项 ε > 0 \varepsilon > 0 ε>0,即:
b = p 2 ( ∣ r 0 ∣ 2 + ε ) p − 2 2 b = \frac{p}{2}{\left( {{{\left| {{r_0}} \right|}^2} + \varepsilon } \right)^{\frac{{p - 2}}{2}}} b=2p(r02+ε)2p2
另一种用二次函数在零附近平滑近似(smooth approximation)不可微函数 f ( r ) = ∣ r ∣ p f\left( r \right) = {\left| r \right|^p} f(r)=rp,$0 <p \le1 的方法是按如下函数形式引入扰动误差项 的方法是按如下函数形式引入扰动误差项 的方法是按如下函数形式引入扰动误差项\varepsilon > 0$:
f ε ( r ) = { p 2 ε p − 2 r 2 , ∣ r ∣ ≤ ε ∣ r ∣ p − ( 1 − p 2 ) ε p , ∣ r ∣ > ε {f^\varepsilon }\left( r \right) = \left\{ \begin{array}{l} \frac{p}{2}{\varepsilon ^{p - 2}}{r^2},\left| r \right| \le \varepsilon \\ {\left| r \right|^p} - \left( {1 - \frac{p}{2}} \right){\varepsilon ^p},\left| r \right| > \varepsilon \end{array} \right. fε(r)={2pεp2r2,rεrp(12p)εp,r>ε

2.6 l 0 l_0 l0范数

l 0 l_0 l0范数用于衡量向量中非零元素的数量,即衡量向量的稀疏性, l 0 l_0 l0范数问题可以表示为:
min ⁡ x   ∥ A x − b ∥ 0 = ∑ m = 1 M s g n ( ∣ r m ∣ ) \mathop {\min }\limits_{\bf{x}} \ {\left\| {{\bf{Ax}} - {\bf{b}}} \right\|_0} = \sum\limits_{m = 1}^M {{\mathop{\rm sgn}} \left( {\left| {{r_m}} \right|} \right)} xmin Axb0=m=1Msgn(rm)
l 0 l_0 l0范数问题是非凸的,且是离散的,其值只能取整数。为了近似 l 0 l_0 l0范数,需要选取一些替代函数(surrogate function)来代替符号函数部分。典型的替代函数有以下三种 [ 3 ] ^{[3]} [3]
( 1 )   g p ( r ) = ∣ r ∣ p , 0 < p ≤ 1 \left( 1 \right)\,{g_p}\left( r \right) = {\left| r \right|^p},0 < p \le 1 (1)gp(r)=rp,0<p1
( 2 )   g p ( r ) = log ⁡ ( 1 + ∣ r ∣ / p ) / log ⁡ ( 1 + 1 / p ) , p > 0 \left( 2 \right)\,{g_p}\left( r \right) = \log \left( {1 + \left| r \right|/p} \right)/\log \left( {1 + 1/p} \right),p > 0 (2)gp(r)=log(1+r/p)/log(1+1/p),p>0
( 3 )   g p ( r ) = 1 − e − ∣ x ∣ / p , p > 0 \left( 3 \right)\,{g_p}\left( r \right) = 1 - {e^{ - \left| x \right|/p}},p > 0 (3)gp(r)=1ex/p,p>0
因此, l 0 l_0 l0范数可以被近似为连续函数
∥ r ∥ 0 ≈ ∑ m = 1 M g p ( r m ) {\left\| {\bf{r}} \right\|_0} \approx \sum\limits_{m = 1}^M {{g_p}\left( {{r_m}} \right)} r0m=1Mgp(rm)
该连续函数可以用majorization-minimization (MM) 等方法近似为易于求解的二次函数形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值