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