1 DRCN
DRCN(Deeply-Recurisive Convolutional Network),一种利用深度递归卷积网络。DRCN与之前的VDSR都是来自首尔国立大学计算机视觉实验室的工作。该网络将插值后的图像作为输入,并像SRCNN中一样预测目标图像。
该网络分为三个部分,第一个是Embedding network(嵌入网络),相当于SRCNN中的特征提取;第二个是Inference network(推理网络),相当于特征的非线性映射,第三个Reconstruction network(重构网络),从特征图像恢复最后的重建结果,即重建。
- Embedding net:获取输入图像并将其表示为一组特征图。
- Inference net:是解决超分辨率任务的主要组件;由单个递归层完成大图像的分析;每个递归都应用相同的卷积。
- Reconstruction net:对于大于 1 × 1 1 \times 1 1×1 的卷积滤波器,每次递归后都会扩大感受野。虽然来自递归层最终应用的特征图表示高分辨率图像,但还是需要由重建网络将它们(多通道)转变为(单通道或三通道)。
其中,递归层存在于推理网络中,如图:
左为递归层,右边为其展开结构。
网络的最终模型具有递归监督和跳过连接。除了推理网络的层是递归的,其他网络与具有单个隐藏层的MLP非常相似。
作者在文章中使用的是
3
×
3
×
F
×
F
3\times3\times F \times F
3×3×F×F 的过滤器。
H
1
H_1
H1 到
H
D
H_D
HD 是
D
D
D 个共享参数的卷积层。将这
D
D
D 个卷积层的每一层的结果都通过相同的Reconstruction Net ,在Reconstruction Net 中与输入的图像相加,得到
D
D
D 个输出重建结果。这些所有的结果在训练时都同时被监督,即所有的递归都被监督,作者称之为递归监督,避免了梯度消失/爆炸问题。将
D
D
D 个递归得到的结果再加权平均:
y
^
=
∑
d
=
1
D
w
d
⋅
y
d
^
\hat{y} = \sum_{d=1}^{D} w_d \cdot \hat{y_d}
y^=∑d=1Dwd⋅yd^
其中
w
d
w_d
wd表示在递归期间从每个中间隐藏状态重建的预测的权重;并在训练期间习得。
最终的目标函数需要优化两个部分的误差:
l
1
(
θ
)
=
∑
d
=
1
D
∑
i
=
1
N
1
2
D
N
∥
y
(
i
)
−
y
d
^
(
i
)
∥
2
l_1(\theta)=\sum_{d=1}^D\sum_{i=1}^{N}\frac{1}{2DN}\lVert y^{(i)}-\hat{y_{d}}^{(i)}\rVert^2
l1(θ)=∑d=1D∑i=1N2DN1∥y(i)−yd^(i)∥2
l 2 ( θ ) = ∑ i = 1 N 1 2 N ∥ y ( i ) − ∑ d = 1 D w d ⋅ y ^ ( i ) ∥ 2 l_2(\theta)=\sum_{i=1}^N \frac{1}{2N} \lVert y^{(i)}-\sum_{d=1}^D w_d \cdot \hat{y}^{(i)}\rVert^2 l2(θ)=∑i=1N2N1∥y(i)−∑d=1Dwd⋅y^(i)∥2
损失函数:
L
(
θ
)
=
α
l
1
(
θ
)
+
(
1
−
α
)
l
2
(
θ
)
+
β
∥
θ
∥
2
L(\theta)=\alpha l_1(\theta)+(1-\alpha)l_2(\theta)+\beta \rVert\theta\lVert^2
L(θ)=αl1(θ)+(1−α)l2(θ)+β∥θ∥2
β
\beta
β 表示的是权值衰减(weight decay)。
α
\alpha
α 的初始值设置得比较高以使得训练过程稳定,因为训练开始的阶段递归更容易收敛。随着训练的进行,
α
\alpha
α 逐渐衰减来提升最终输出的性能。
2 Code
在这里插入代码片
https://zhuanlan.zhihu.com/p/31664818
https://arxiv.org/abs/1511.04491