摘要:利用近端梯度下降算法,给出求解压缩感知问题的迭代软阈值和迭代硬阈值算法,并将迭代硬阈值算法通过Learning to learn方法进行改进,利用深度神经网络的模型进行学习.
参考:David Wipf, Microsoft Research, Beijing, 2018
目录
- 问题提出
- 迭代软阈值算法(Iterative Soft Thresholding)
- 迭代硬阈值算法(Iterative Hard Thresholding)
- IHT算法的Learning to learn提升
- Learning to learn 方法
- 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^=argxmin∣∣y−Φx∣∣22+λ∣∣x∣∣0
由此引出我们的问题是:
min x ∣ ∣ x ∣ ∣ 0 s . t . y = Φ x \min_x ||x||_0 \quad s.t.\quad y=\Phi x xmin∣∣x∣∣0s.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} xmin∣∣y−Φx∣∣22+λ∣∣x∣∣1xmin∣∣y−Φx∣∣22+λ∣∣x∣∣0xmin∣∣y−Φx∣∣22s.t.∣∣x∣∣0≤rxmin∣∣y−Φx∣∣22+I∞[∣∣x∣∣0>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^=argxmin∣∣y−Φx∣∣22+λ∣∣x∣∣1
为标准的 f s ( x ) + f n ( x ) f^s(x)+f^n(x) fs(x)+fn(x)的形式,求解的基本思路如下:
- 对光滑部分,计算其梯度 ▽ f s ( x ) \bigtriangledown f^s(x) ▽fs(x),得到标准梯度下降算法的迭代公式;
- 对非光滑部分,求解近端问题 p r o x μ f n ( x ) ( z ) prox_{\mu f^n(x)}(z) proxμfn(x)(z),得到非线性变换公式;
- 联立两项得到单步迭代,即迭代软阈值算法.
下面开始进行求解.
首先计算
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)−L1▽f(x(k))=(I−L1Φ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)=argxmin21∣∣x−z∣∣2+μfn(x)
其中, f n ( x ) = ∣ ∣ x ∣ ∣ 1 f^n(x)=||x||_1 fn(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 ) \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)=argxmin21∣∣x−z∣∣2+μ∣∣x∣∣1=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μ[(I−L1Φ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^=argxmin∣∣y−Φx∣∣22+I∞[∣∣x∣∣0>r]
同样为标准的 f s ( x ) + f n ( x ) f^s(x)+f^n(x) fs(x)+fn(x)的形式,求解的基本思路如下:
- 对光滑部分,计算其梯度 ▽ f s ( x ) \bigtriangledown f^s(x) ▽fs(x),得到标准梯度下降算法的迭代公式;
- 对非光滑部分,求解近端问题 p r o x μ f n ( x ) ( z ) prox_{\mu f^n(x)}(z) proxμfn(x)(z),得到非线性变换公式;
- 联立两项得到单步迭代,即迭代硬阈值算法.
下面开始进行求解.
首先计算
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)−L1▽f(x(k))=(I−L1Φ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)=argxmin21∣∣x−z∣∣2+μfn(x)
其中,
f
n
(
x
)
=
I
∞
[
∣
∣
x
∣
∣
0
>
r
]
f^n(x)=I_\infty\left[||x||_0 > r\right]
fn(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
]
\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)=argxmin21∣∣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
\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:∣zi∣为z的最大r个元素之一: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[(I−L1Φ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算法的基本思路:
- 对光滑部分,计算其梯度 ▽ f s ( x ) \bigtriangledown f^s(x) ▽fs(x),得到标准梯度下降算法的迭代公式,记为 h ^ ( x , θ ; ω ) \hat{h}(x,\theta;\omega) h^(x,θ;ω);
- 对非光滑部分,求解近端问题 p r o x μ f n ( x ) ( z ) prox_{\mu f^n(x)}(z) proxμfn(x)(z),得到非线性变换公式;
- 联立两项得到单步迭代,即迭代硬阈值算法.
在第一步中,我们得到梯度下降的更新公式
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=I−L1Φ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),θ;ω)]⋯,θ;ω)]
通常的深层神经网络为
取 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=1∑Nℓ[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 Φ相关性对估计的影响.