以压缩感知问题为例介绍利用神经网络的Learning to learn方法

摘要:利用近端梯度下降算法,给出求解压缩感知问题的迭代软阈值和迭代硬阈值算法,并将迭代硬阈值算法通过Learning to learn方法进行改进,利用深度神经网络的模型进行学习.

参考:David Wipf, Microsoft Research, Beijing, 2018

目录

  1. 问题提出
  2. 迭代软阈值算法(Iterative Soft Thresholding)
  3. 迭代硬阈值算法(Iterative Hard Thresholding)
  4. IHT算法的Learning to learn提升
    1. Learning to learn 方法
    2. IHT方法的Learning to learn 提升

1. 问题提出

先给出一个较复杂又直观的例子:

复杂的例子:声源定位问题

声源空间位置为$x$,传感器空间位置为$y$,从声源空间到传感器空间的映射为 $$y=\Phi x+\epsilon$$

希望由传感器空间的数据估计声源空间的位置 x x x.
Φ \Phi Φ矩阵很大时,对 x x x的估计很困难,但是当假定 x x x的大部分元素为 0 0 0时,声源估计问题可以表示为如下形式
x ^ = arg ⁡ min ⁡ x ∣ ∣ y − Φ x ∣ ∣ 2 2 + λ ∣ ∣ x ∣ ∣ 0 \hat{x}=\arg\min_x ||y-\Phi x||_2^2+\lambda ||x||_0 x^=argxminyΦx22+λx0

由此引出我们的问题是:

min ⁡ x ∣ ∣ x ∣ ∣ 0 s . t . y = Φ x \min_x ||x||_0 \quad s.t.\quad y=\Phi x xminx0s.t.y=Φx

这是一个NP-hard问题,放松约束以后的形式为如下四种

min ⁡ x ∣ ∣ y − Φ x ∣ ∣ 2 2 + λ ∣ ∣ x ∣ ∣ 1 min ⁡ x ∣ ∣ y − Φ x ∣ ∣ 2 2 + λ ∣ ∣ x ∣ ∣ 0 min ⁡ x ∣ ∣ y − Φ x ∣ ∣ 2 2 s . t . ∣ ∣ x ∣ ∣ 0 ≤ r min ⁡ x ∣ ∣ y − Φ x ∣ ∣ 2 2 + I ∞ [ ∣ ∣ x ∣ ∣ 0 > r ] \begin{aligned} &\min_x ||y-\Phi x||^2_2 + \lambda||x||_1\\ & \min_x ||y-\Phi x||^2_2 + \lambda||x||_0\\ &\min_x ||y-\Phi x||^2_2\quad s.t.\quad ||x||_0 \leq r\\ &\min_x ||y-\Phi x||^2_2+I_\infty\left[||x||_0 > r\right] \end{aligned} xminyΦx22+λx1xminyΦx22+λx0xminyΦx22s.t.x0rxminyΦx22+I[x0>r]

其中,第一种为凸约束,后三种为非凸约束,后面两种形式是等价的,限制其非零元素的个数.
上述形式都是标准的
min ⁡ x f s ( x ) + f n ( x ) \min_x f^s(x)+f^n(x) xminfs(x)+fn(x)

的问题,利用近端梯度下降,对不同的形式可以得到不同的迭代算法:

  • 凸约束下,得到迭代软阈值(IST)算法;
  • 非凸约束下,得到迭代硬阈值(IHT)算法.

2. 迭代软阈值算法

优化问题

x ^ = arg ⁡ min ⁡ x ∣ ∣ y − Φ x ∣ ∣ 2 2 + λ ∣ ∣ x ∣ ∣ 1 \hat{x}=\arg\min_x ||y-\Phi x||^2_2 + \lambda||x||_1 x^=argxminyΦx22+λx1

为标准的 f s ( x ) + f n ( x ) f^s(x)+f^n(x) fs(x)+fn(x)的形式,求解的基本思路如下:

  1. 对光滑部分,计算其梯度 ▽ f s ( x ) \bigtriangledown f^s(x) fs(x),得到标准梯度下降算法的迭代公式;
  2. 对非光滑部分,求解近端问题 p r o x μ f n ( x ) ( z ) prox_{\mu f^n(x)}(z) proxμfn(x)(z),得到非线性变换公式;
  3. 联立两项得到单步迭代,即迭代软阈值算法.

下面开始进行求解.
首先计算 f s ( x ) f^s(x) fs(x)的梯度

▽ f s ( x ) = Φ T Φ x ( k ) + Φ T y \bigtriangledown f^s(x)=\Phi^T\Phi x^{(k)}+\Phi^Ty fs(x)=ΦTΦx(k)+ΦTy

带入梯度下降更新公式,得到
x ( k + 1 ) = x ( k ) − 1 L ▽ f ( x ( k ) ) = ( I − 1 L Φ T Φ ) x ( k ) + 1 L Φ T y = W 1 x ( k ) + W 2 y \begin{aligned} x^{(k+1)} &= x^{(k)}-\frac{1}{L}\bigtriangledown f(x^{(k)})\\ &=\left(I-\frac{1}{L}\Phi^T\Phi\right)x^{(k)}+\frac{1}{L}\Phi^Ty\\ &=W_1x^{(k)}+W_2y \end{aligned} x(k+1)=x(k)L1f(x(k))=(IL1ΦTΦ)x(k)+L1ΦTy=W1x(k)+W2y

其次,求解近端问题

p r o x μ f n ( x ) ( z ) = arg ⁡ min ⁡ x 1 2 ∣ ∣ x − z ∣ ∣ 2 + μ f n ( x ) prox_{\mu f^n(x)}(z)=\arg\min_x \frac{1}{2} ||x-z||^2+\mu f^n(x) proxμfn(x)(z)=argxmin21xz2+μfn(x)

其中, f n ( x ) = ∣ ∣ x ∣ ∣ 1 f^n(x)=||x||_1 fn(x)=x1. 带入得到

p r o x μ f n ( x ) ( z ) = arg ⁡ min ⁡ x 1 2 ∣ ∣ x − z ∣ ∣ 2 + μ ∣ ∣ x ∣ ∣ 1 = s i g n ( z ) max ⁡ { ∣ z ∣ − μ , 0 } = S μ ( z ) \begin{aligned} prox_{\mu f^n(x)}(z)&=\arg\min_x \frac{1}{2} ||x-z||^2+\mu||x||_1\\ &=sign(z)\max\left\{|z|-\mu,0\right\}\\ &=S_\mu(z) \end{aligned} proxμfn(x)(z)=argxmin21xz2+μx1=sign(z)max{zμ,0}=Sμ(z)

最后,将梯度下降更新公式带入近端问题,得到最终的迭代软阈值算法

x ( k + 1 ) = S μ [ ( I − 1 L Φ T Φ ) x ( k ) + 1 L Φ T y ] = S μ [ W 1 x ( k ) + W 2 y ] \begin{aligned} x^{(k+1)}&=S_\mu\left[\left(I-\frac{1}{L}\Phi^T\Phi\right)x^{(k)}+\frac{1}{L}\Phi^Ty\right]\\ &=S_\mu\left[W_1x^{(k)}+W_2y\right] \end{aligned} x(k+1)=Sμ[(IL1ΦTΦ)x(k)+L1ΦTy]=Sμ[W1x(k)+W2y]

可以看出,形式上基本由线性变化与非线性激活组成,这就为后续利用神经网络模型提供基础.


3. 迭代硬阈值算法

优化问题

x ^ = arg ⁡ min ⁡ x ∣ ∣ y − Φ x ∣ ∣ 2 2 + I ∞ [ ∣ ∣ x ∣ ∣ 0 > r ] \hat{x}=\arg\min_x ||y-\Phi x||^2_2 + I_\infty\left[||x||_0 > r\right] x^=argxminyΦx22+I[x0>r]

同样为标准的 f s ( x ) + f n ( x ) f^s(x)+f^n(x) fs(x)+fn(x)的形式,求解的基本思路如下:

  1. 对光滑部分,计算其梯度 ▽ f s ( x ) \bigtriangledown f^s(x) fs(x),得到标准梯度下降算法的迭代公式;
  2. 对非光滑部分,求解近端问题 p r o x μ f n ( x ) ( z ) prox_{\mu f^n(x)}(z) proxμfn(x)(z),得到非线性变换公式;
  3. 联立两项得到单步迭代,即迭代硬阈值算法.

下面开始进行求解.
首先计算 f s ( x ) f^s(x) fs(x)的梯度

▽ f s ( x ) = Φ T Φ x ( k ) + Φ T y \bigtriangledown f^s(x)=\Phi^T\Phi x^{(k)}+\Phi^Ty fs(x)=ΦTΦx(k)+ΦTy

带入梯度下降更新公式,得到
x ( k + 1 ) = x ( k ) − 1 L ▽ f ( x ( k ) ) = ( I − 1 L Φ T Φ ) x ( k ) + 1 L Φ T y = W 1 x ( k ) + W 2 y \begin{aligned} x^{(k+1)} &= x^{(k)}-\frac{1}{L}\bigtriangledown f(x^{(k)})\\ &=\left(I-\frac{1}{L}\Phi^T\Phi\right)x^{(k)}+\frac{1}{L}\Phi^Ty\\ &=W_1x^{(k)}+W_2y \end{aligned} x(k+1)=x(k)L1f(x(k))=(IL1ΦTΦ)x(k)+L1ΦTy=W1x(k)+W2y

其次,求解近端问题

p r o x μ f n ( x ) ( z ) = arg ⁡ min ⁡ x 1 2 ∣ ∣ x − z ∣ ∣ 2 + μ f n ( x ) prox_{\mu f^n(x)}(z)=\arg\min_x \frac{1}{2} ||x-z||^2+\mu f^n(x) proxμfn(x)(z)=argxmin21xz2+μfn(x)

其中, f n ( x ) = I ∞ [ ∣ ∣ x ∣ ∣ 0 > r ] f^n(x)=I_\infty\left[||x||_0 > r\right] fn(x)=I[x0>r]. 带入得到
p r o x μ f n ( x ) ( z ) = arg ⁡ min ⁡ x 1 2 ∣ ∣ x − z ∣ ∣ 2 + μ I ∞ [ ∣ ∣ x ∣ ∣ 0 > r ] ≐ H ˉ r [ z ] \begin{aligned} prox_{\mu f^n(x)}(z)&=\arg\min_x \frac{1}{2} ||x-z||^2+\mu I_\infty\left[||x||_0 > r\right]\\ &\doteq \bar{H}_r[z] \end{aligned} proxμfn(x)(z)=argxmin21xz2+μI[x0>r]Hˉr[z]

其中,
H ˉ r [ z i ] = { z i : ∣ z i ∣ 为 z 的 最 大 r 个 元 素 之 一 0 : o t h e r w i s e \bar{H}_r[z_i]=\begin{cases} z_i\quad&:\quad|z_i|为z的最大r个元素之一\\ 0 \quad&:\quad otherwise \end{cases} Hˉr[zi]={zi0:zizr:otherwise

最后,将梯度下降更新公式带入近端问题,得到最终的迭代硬阈值算法

x ( k + 1 ) = H ˉ r [ ( I − 1 L Φ T Φ ) x ( k ) + 1 L Φ T y ] = H ˉ r [ W 1 x ( k ) + W 2 y ] \begin{aligned} x^{(k+1)}&=\bar{H}_r\left[\left(I-\frac{1}{L}\Phi^T\Phi\right)x^{(k)}+\frac{1}{L}\Phi^Ty\right]\\ &=\bar{H}_r\left[W_1x^{(k)}+W_2y\right] \end{aligned} x(k+1)=Hˉr[(IL1ΦTΦ)x(k)+L1ΦTy]=Hˉr[W1x(k)+W2y]


4. IHT算法的Learning to learn提升

4.1 Learning to learn

假设我们的目标函数为

f θ ( x ) , θ ∈ Ω f_\theta(x),\quad \theta\in\Omega fθ(x),θΩ

并假设已有训练集,这里采用有监督的训练对

x i ∗ x_i^* xi由别的优化算法得到. 若难以得到,则可用生成模型:随机生成 x ∗ x^* x,计算 y = Φ x ∗ + ϵ y=\Phi x^* + \epsilon y=Φx+ϵ

{ θ i , x i ∗ ∣ θ i ∈ Θ , x i ∗ = arg ⁡ min ⁡ x f θ i ( x ) , i = 1 , 2 , . . . , N } \left\{\theta_i,x_i^*|\theta_i\in\Theta,x_i^*=\arg\min_x f_{\theta_i}(x),i=1,2,...,N\right\} {θi,xiθiΘ,xi=argxminfθi(x),i=1,2,...,N}

我们的核心目标是:

  • 利用上述信息,学习一些参数化的函数 g ( θ ; ω ) g(\theta;\omega) g(θ;ω),使其满足

g ( θ ; ω ^ ) ≈ x ∗ = arg ⁡ min ⁡ x f θ ( x ) g(\theta;\hat{\omega})\approx x^*= \arg\min_x f_\theta(x) g(θ;ω^)x=argxminfθ(x)

通过 θ \theta θ g g g是一种新的学习算法. 而 g g g也是一个优化算法,即Learning to learn.

4.2 IHT算法的Learning to learn提升

回顾一下IHT算法的基本思路:

  1. 对光滑部分,计算其梯度 ▽ f s ( x ) \bigtriangledown f^s(x) fs(x),得到标准梯度下降算法的迭代公式,记为 h ^ ( x , θ ; ω ) \hat{h}(x,\theta;\omega) h^(x,θ;ω)
  2. 对非光滑部分,求解近端问题 p r o x μ f n ( x ) ( z ) prox_{\mu f^n(x)}(z) proxμfn(x)(z),得到非线性变换公式;
  3. 联立两项得到单步迭代,即迭代硬阈值算法.

在第一步中,我们得到梯度下降的更新公式

x ( k + 1 ) = h ^ ( x ( k ) , θ ; ω ) = W 1 x ( k ) + W 2 y x^{(k+1)}=\hat{h}(x^{(k)},\theta;\omega)=W_1x^{(k)}+W_2y x(k+1)=h^(x(k),θ;ω)=W1x(k)+W2y

其中, θ = y \theta = y θ=y W 1 = I − 1 L Φ T Φ W_1=I-\frac{1}{L}\Phi^T\Phi W1=IL1ΦTΦ W 2 = 1 L Φ T W_2=\frac{1}{L}\Phi^T W2=L1ΦT ω = { W 1 , W 2 } \omega=\left\{W_1,W_2\right\} ω={W1,W2}

在第三步以后,我们得到IHT算法

x ( k + 1 ) = H ˉ r [ W 1 x ( k ) + W 2 y ] x^{(k+1)}=\bar{H}_r\left[W_1x^{(k)}+W_2y\right] x(k+1)=Hˉr[W1x(k)+W2y]

若将迭代硬阈值算法进行 K K K次,则可以得到我们的学习算法

x ^ = x ( K ) = g ( θ ; ω ) = p r o x μ f n ( x ) [ h ^ ( ⋯ p r o x μ f n ( x ) [ h ^ ( x ( 1 ) , θ ; ω ) ] ⋯   , θ ; ω ) ] \begin{aligned} \hat{x}&=x^{(K)}\\ &=g(\theta;\omega)\\ &=prox_{\mu f^n(x)}\left[\hat{h}\left(\cdots prox_{\mu f^n(x)}\left[\hat{h}\left(x^{(1)},\theta;\omega\right)\right]\cdots,\theta;\omega\right)\right] \end{aligned} x^=x(K)=g(θ;ω)=proxμfn(x)[h^(proxμfn(x)[h^(x(1),θ;ω)],θ;ω)]

通常的深层神经网络为

而LIHT模型的深度神经网络模型为

K = 2 K=2 K=2,则很明显这如下的网络结构,网络需要学习的可调参数为 ω \omega ω.

  • 训练过程:

通过已知的信息,可以给出网络的训练过程为对目标函数

min ⁡ ω ∑ i = 1 N ℓ [ g ( θ i ; ω ) , x i ∗ ] \min_\omega \sum_{i=1}^N\ell\left[g(\theta_i;\omega),x_i^*\right] ωmini=1N[g(θi;ω),xi]

的优化. 也可看作是非监督学习,其中 ℓ \ell 为任意的损失函数或距离度量. 可以利用随机梯度下降等方式,得到 ω \omega ω.

  • 测试过程

给出新的函数 f θ ′ f_{\theta'} fθ,即给出新的数据 θ ′ \theta' θ,由训练得到的参数 ω ^ \hat{\omega} ω^计算

g ( θ ′ ; ω ^ ) ≈ arg ⁡ min ⁡ x f θ ′ ( x ) g(\theta';\hat{\omega})\approx \arg\min_x f_{\theta'}(x) g(θ;ω^)argxminfθ(x)

g g g就是新学习到的算法,也就是Learning to learn.

因此,我们的IHT算法变为一个Learning to learn方法,原始算法直接求出 x x x的稀疏最优解,而Learning to learn方法通过学习 ω \omega ω建立起从 θ \theta θ x x x映射. 即学习得到的不是某一个特定的解,而是一个从 θ \theta θ中学到的新的学习算法.

两者的区别:

  • 原始方法是利用测量矩阵 Φ \Phi Φ计算 x ^ \hat{x} x^,Learning to learn方法中的 ω \omega ω是通过训练数据对 { θ i , x i ∗ ∣ θ i ∈ Θ , x i ∗ = arg ⁡ min ⁡ x f θ i ( x ) , i = 1 , 2 , . . . , N } \left\{\theta_i,x_i^*|\theta_i\in\Theta,x_i^*=\arg\min_x f_{\theta_i}(x),i=1,2,...,N\right\} {θi,xiθiΘ,xi=argminxfθi(x),i=1,2,...,N}学习得到的.

  • 有限等距性质对 Φ \Phi Φ的相关性提出一定要求,而利用Learning to learn方法可以很好的减轻 Φ \Phi Φ相关性对估计的影响.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值