厚街网站建设报价/爱站工具包官网下载
l1l_1l1-norm, 作为 l0l_0l0-norm 的最紧凸近似,在压缩感知中非常常用。
例如求解问题:
argminxAx=bs.t.∣x∣0≤n\mathrm{argmin}_x Ax = b \quad \mathrm{s.t.} |x|_0\le nargminxAx=bs.t.∣x∣0≤n
即待求解向量xxx是一个稀疏向量, 其非零元素个数不超过nnn个。
一种基于LASSO的做法是将问题改写为:
argminx∣∣Ax−b∣∣22+λ∣x∣1\mathrm{argmin}_x ||Ax-b||_2^2 + \lambda |x|_1argminx∣∣Ax−b∣∣22+λ∣x∣1
其中λ\lambdaλ是一个人工变量, 可通过改变其大小改变对稀疏条件的重视程度。 注意, 这里将不可导、非凸的零范数放松为了一范数。 也因此,改写后的问题是一个可导的问题。
最简单的情况下, xxx为实数向量。 此时, 1-范数的导数很容易由定义得到: ∣x∣1=∑∣xi∣|x|_1=\sum |x_i|∣x∣1=∑∣xi∣, ∂∣x∣1xi=sign(xi)\frac{\partial |x|_1}{x_i} = \mathrm{sign}(x_i)xi∂∣x∣1=sign(xi).
本文考虑的是通信中更常见的情形, 即xxx是一个复数向量。
此时, ∣xi∣|x_i|∣xi∣不再是xix_ixi的绝对值, 而是复数xix_ixi的模,即xixi∗\sqrt{x_ix_i^*}xixi∗.
也就是说:(复数时求梯度为对变量的共轭求导)
∂∣x∣1∂xi∗=∂∑xixi∗∂xi∗=(xi)12(xi∗)−122.\frac{\partial |x|_1}{\partial x_i^*}=\frac{\partial \sum \sqrt{x_ix_i^*}}{\partial x_i^*} = \frac{(x_i)^\frac{1}{2}(x^*_i)^{-\frac{1}{2}}}{2}.∂xi∗∂∣x∣1=∂xi∗∂∑xixi∗=2(xi)21(xi∗)−21.
进一步更复杂一些的:
设 f=∣Ax∣1f = |Ax|_1f=∣Ax∣1, 求∂f∂x∗\frac{\partial f}{\partial x^*}∂x∗∂f。
设AAA的第iii行为aia_iai, 那么[Ax]i=aix[Ax]_i=a_ix[Ax]i=aix, ∣[Ax]i∣=(xHaiHaix)12|[Ax]_i|=(x^Ha_i^Ha_ix)^{\frac{1}{2}}∣[Ax]i∣=(xHaiHaix)21, 因此,
f=∑(xHaiHaix)12f = \sum (x^Ha_i^Ha_ix)^{\frac{1}{2}}f=∑(xHaiHaix)21
对fff求微分, 有:
df=dtr(∑(xHaiHaix)12)=tr(∑d(xHaiHaix)12)df=d\mathrm{tr}(\sum (x^Ha_i^Ha_ix)^{\frac{1}{2}})=\mathrm{tr}(\sum d(x^Ha_i^Ha_ix)^{\frac{1}{2}})df=dtr(∑(xHaiHaix)21)=tr(∑d(xHaiHaix)21)
而:
d(xHaiHaix)12=12(xHaiHaix)−12(dxH)aiHaixd(x^Ha_i^Ha_ix)^{\frac{1}{2}} = \frac{1}{2}(x^Ha_i^Ha_ix)^{-\frac{1}{2}}(d x^H) a_i^Ha_ixd(xHaiHaix)21=21(xHaiHaix)−21(dxH)aiHaix
代回, 得:
df=tr(∑12(xHaiHaix)−12aiHaix(dxH))df =\mathrm{tr}(\sum \frac{1}{2}(x^Ha_i^Ha_ix)^{-\frac{1}{2}}a_i^Ha_ix(d x^H) )df=tr(∑21(xHaiHaix)−21aiHaix(dxH))
因此,
∂f∂x∗=12∑(xHaiHaix)−12aiHaix.\frac{\partial f}{\partial x^*} =\frac{1}{2} \sum (x^Ha_i^Ha_ix)^{-\frac{1}{2}}a_i^Ha_ix.∂x∗∂f=21∑(xHaiHaix)−21aiHaix.
再进一步的, 设 f=∣vec(AHXA)∣1f = |\mathrm{vec}(A^HXA)|_1f=∣vec(AHXA)∣1, 求∂f∂X∗\frac{\partial f}{\partial X^*}∂X∗∂f。
(注意, 如果XXX是一个稀疏矩阵, 那么对其0范数的近似并不是直接XXX的1范数, 而是XXX向量化后的1范数。 因为一个矩阵的1范数是每列1范数的最大值, 而不是所有元素模的和。)
设AAA的第iii列为aia_iai, 那么 [AHXA]ij=aiHXaj[A^HXA]_{ij} = a_i^HXa_j[AHXA]ij=aiHXaj, 由于fff代表矩阵每个元素的模的和, 因此
f=∑i∑j(ajHXHaiaiHXaj)12f = \sum_i\sum_j(a_j^HX^Ha_ia_i^HXa_j)^{\frac{1}{2}}f=i∑j∑(ajHXHaiaiHXaj)21
同样地, 对fff求微分, 有:
df=dtr(∑i∑j(ajHXHaiaiHXaj)12)=tr(∑i∑jd(ajHXHaiaiHXaj)12)df =d\mathrm{tr}(\sum_i\sum_j(a_j^HX^Ha_ia_i^HXa_j)^{\frac{1}{2}})=\mathrm{tr}(\sum_i\sum_j d(a_j^HX^Ha_ia_i^HXa_j)^{\frac{1} {2}})df=dtr(i∑j∑(ajHXHaiaiHXaj)21)=tr(i∑j∑d(ajHXHaiaiHXaj)21)
而:
d(ajHXHaiaiHXaj)12=12(ajHXHaiaiHXaj)−12ajH(dXH)aiaiHXajd(a_j^HX^Ha_ia_i^HXa_j)^{\frac{1}{2}} = \frac{1}{2}(a_j^HX^Ha_ia_i^HXa_j)^{-\frac{1}{2}}a_j^H(dX^H)a_ia_i^HXa_jd(ajHXHaiaiHXaj)21=21(ajHXHaiaiHXaj)−21ajH(dXH)aiaiHXaj, 代回得
df=tr(∑i∑j12(ajHXHaiaiHXaj)−12aiaiHXajajH(dXH))df = \mathrm{tr}(\sum_i\sum_j \frac{1}{2}(a_j^HX^Ha_ia_i^HXa_j)^{-\frac{1}{2}}a_ia_i^HXa_ja_j^H(dX^H))df=tr(i∑j∑21(ajHXHaiaiHXaj)−21aiaiHXajajH(dXH))
因此,
∂f∂X∗=∑i∑j12(ajHXHaiaiHXaj)−12aiaiHXajajH.\frac{\partial f}{\partial X^*} = \sum_i\sum_j \frac{1}{2}(a_j^HX^Ha_ia_i^HXa_j)^{-\frac{1}{2}}a_ia_i^HXa_ja_j^H.∂X∗∂f=i∑j∑21(ajHXHaiaiHXaj)−21aiaiHXajajH.