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

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

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

目录

  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 = Φ x + ϵ

希望由传感器空间的数据估计声源空间的位置 x .
Φ 矩阵很大时,对 x 的估计很困难,但是当假定 x 的大部分元素为 0 时,声源估计问题可以表示为如下形式

x ^ = arg min x | | y Φ x | | 2 2 + λ | | x | | 0

由此引出我们的问题是:

min x | | x | | 0 s . 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 ]

其中,第一种为凸约束,后三种为非凸约束,后面两种形式是等价的,限制其非零元素的个数.
上述形式都是标准的

min x f s ( x ) + f n ( x )

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

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

2. 迭代软阈值算法

优化问题

x ^ = arg min x | | y Φ x | | 2 2 + λ | | x | | 1

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

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

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

f s ( x ) = Φ T Φ x ( k ) + Φ T y

带入梯度下降更新公式,得到

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

其次,求解近端问题

p r o x μ f n ( x ) ( z ) = arg min x 1 2 | | x z | | 2 + μ f n ( x )

其中, f n ( x ) = | | x | | 1 . 带入得到

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 )

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

x ( k + 1 ) = S μ [ ( I 1 L Φ T Φ ) x ( k ) + 1 L Φ T y ] = S μ [ W 1 x ( k ) + W 2 y ]

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


3. 迭代硬阈值算法

优化问题

x ^ = arg min x | | y Φ x | | 2 2 + I [ | | x | | 0 > r ]

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

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

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

f s ( x ) = Φ T Φ x ( k ) + Φ T y

带入梯度下降更新公式,得到

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

其次,求解近端问题

p r o x μ f n ( x ) ( z ) = arg min x 1 2 | | x z | | 2 + μ f n ( x )

其中, f n ( x ) = I [ | | x | | 0 > r ] . 带入得到

p r o x μ f n ( x ) ( z ) = arg min x 1 2 | | x z | | 2 + μ I [ | | x | | 0 > r ] H ¯ r [ z ]

其中,

H ¯ r [ z i ] = { z i : | z i | z r 0 : o t h e r w i s e

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

x ( k + 1 ) = H ¯ r [ ( I 1 L Φ T Φ ) x ( k ) + 1 L Φ T y ] = H ¯ r [ W 1 x ( k ) + W 2 y ]


4. IHT算法的Learning to learn提升

4.1 Learning to learn

假设我们的目标函数为

f θ ( x ) , θ Ω

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

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

{ θ i , x i | θ i Θ , x i = arg min x f θ i ( x ) , i = 1 , 2 , . . . , N }

我们的核心目标是:

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

g ( θ ; ω ^ ) x = arg min x f θ ( x )

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

4.2 IHT算法的Learning to learn提升

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

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

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

x ( k + 1 ) = h ^ ( x ( k ) , θ ; ω ) = W 1 x ( k ) + W 2 y

其中, θ = y W 1 = I 1 L Φ T Φ W 2 = 1 L Φ T ω = { W 1 , W 2 }

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

x ( k + 1 ) = H ¯ r [ W 1 x ( k ) + W 2 y ]

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

x ^ = x ( K ) = g ( θ ; ω ) = p r o x μ f n ( x ) [ h ^ ( p r o x μ f n ( x ) [ h ^ ( x ( 1 ) , θ ; ω ) ] , θ ; ω ) ]

通常的深层神经网络为

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

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

  • 训练过程:

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

min ω i = 1 N [ g ( θ i ; ω ) , x i ]

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

  • 测试过程

给出新的函数 f θ ,即给出新的数据 θ ,由训练得到的参数 ω ^ 计算

g ( θ ; ω ^ ) arg min x f θ ( x )

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

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

两者的区别:

  • 原始方法是利用测量矩阵 Φ 计算 x ^ ,Learning to learn方法中的 ω 是通过训练数据对 { θ i , x i | θ i Θ , x i = arg min x f θ i ( x ) , i = 1 , 2 , . . . , N } 学习得到的.

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

猜你喜欢

转载自blog.csdn.net/qq_38290475/article/details/81063514