DRCN(Deeply-Recursive Convolutional Network for Image Super-Resolution)阅读笔记
1、论文地址:https://arxiv.org/abs/1511.04491
2、github上的tensorflow代码:https://github.com/nullhty/DRCN_Tensorflow
3、论文介绍
3.1、提出的问题
在超分任务中,为了提高感受野的范围,一般通过增加卷积层的数量来达到,作者提出也会带来两个问题。

  • 过拟合很有可能发生,所以就需要有更多的数据;
  • 模型变大导致在保持和恢复模型的时候比较费时间和空间

3.2、提出解决的方法
  为了解决上述两个问题,作者提出了一个新的方法------深度循环卷积神经网络(DRCN),该网络可以按照你所需要的重复的利用相同的卷积层。但是当你在增加卷积层的数量的时候参数的数量并不会增加
  由于梯度消失和梯度爆炸的问题,导致模型不是那么容易收敛,作者针对这个问题提出了两个解决办法。

  • 监督所有的循坏层------对于每一个循环层都进行重构,最后按照权重将所有的重构结果相加得到最后的重构结果。
  • 跳跃连接------将输入信息添加到重构层。

3.3、DRCN
在这里插入图片描述
  其中a表示该论文模型图,c为a的扩展图。b为别的论文中使用深度循环的模型图。
该模型是由三部分组成:编码层、推测层、重构层。

  • 编码层
    将输入的图片(灰度或者RGB)表示成一系列的特征映射,传递个推测层。

  • 推测层
    该部分为主要解决该超分任务的部分,每一个循环层(包括的卷积个数不同)都对输入的图像进行处理,每次卷积后都使用激活函数,最后得到超分结果。

  • 重构层
    将处理后的特征使用转置卷积进行处理转化成原始大小。

3.4、循环监督
  为了解决梯度和优化循环层的问题,提出了该方法。监督所有的循环层为了减缓梯度消失和梯度爆炸的可能,在该方法中,假如由D个循环层(每个循环层都是一次卷积,该卷积使用的参数都是相同的),那么由于加入循环监督,所以会有D个重构结果(在每个循环层后边都加入重构),最后按照权重将所有的结果相加得到最后的重构结果(所有的权重在训练的时候进行自动更新)。在进行测试的时候权重取的是均值。
3.5、跳跃连接
  在超分任务中输入图像和输出图像是十分相似的。所以在输入和重构层直接加入一个跳跃连接。
3.6、损失函数
  对于该模型优化的部分分为 D+1个,其中D个循环层的输出以及一个最后的输出。
针对D个循环层的输出使用如下函数:
在这里插入图片描述
  针对最后的优化使用如下函数:
在这里插入图片描述
  最后的更新函数:
在这里插入图片描述
3.7、代码介绍
  未完待续。。。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐