超分辨率——DRCN

超分辨率——DRCN@TOC
我们提出一种基于深度递归卷积神经网络进行图像超分辨率重建的模型。我们的网络有一个很深的递归层,多大16层。在额外的卷积层不引入新的变量的情况下,增加递归层数可以提高超分辨率图像恢复性能。由于梯度消失和梯度爆炸,用标准的梯度下降法学习DRCN是困难的。为了减轻训练的困难程度,作者提出两个改进办法:递归监督和跃层连接。
对于SR问题,卷积网络的感受野决定了上下文信息的数量,上下文信息可以被利用去推断丢失的高频组件。SR是一个不适定的逆问题,收集和分析更多的邻居像素可以给出更多的在降采样时丢失的信息。
提高感受野的方法有:增加卷积核大于1X1的卷积层,增加池化层。这两种办法有很大的缺点,增加卷积层会增加参数,增加池化层会忽略一些像素级的信息。
SR问题为什么不用池化网络?
在SR问题中图片细节是非常重要的,因此大多数深度学习方法不使用池化层。
为什么作者会想到用深度递归卷积网络解决SR问题?
增加网络深度会产生更多的参数进而有两个问题会出现:1,过拟合,需要更多的数据。2,模型太大而不能存储和检索。基于以上问题作者提出了深度递归卷积神经网络(DRCN)。DRCN重复使用相同的卷积层,但是递归执行时并不增加参数数量,DRCN感受野是41X41这相对于SRCNN(13X13)是相当大的。但是学习单个权值像素之间的长期依赖关系非常困难。
如何解决学习单个权值像素之间的长期依赖关系困难问题?
递归监督:每个递归的特征映射被用来重建目标HR图片
跃层连接:从输入层到输出层使用跃层连接在这里插入图片描述作者为什么想用深度递归神经网络解决SR问题?
(1)VDSR提出一种深度卷积神经网络解决SR问题,并且有很好的实现效果,作者想到卷积层有完全相同的结构提醒我们递归
(2)感受野对于SR问题,卷积网络的感受野决定了上下文信息的数量,上下文信息可以被利用去推断丢失的高频组件。收集和分析更多的邻居像素可以给出更多的在降采样时丢失的信息。
提高感受野的方法有:增加卷积核大于1X1的卷积层,增加池化层。这两种办法有很大的缺点,增加卷积层会增加参数,增加池化层会忽略一些像素级的信息

Embed Net作用?为什么使用两次卷积?
Embeding Net主要是将输入图像转成一系列的feature map表示。该子网络主要注重提取特征,将其送入Inference Net去恢复低分辨率图像中的丢失的高频信息。
卷积神经网络的第一个卷积层的过滤器用来检测低阶特征,比如边角曲线等,随着卷积层的增加,对应过滤器检测的特征就更加复杂。

Inference Net层的作用?
Inference Net是这篇文章的重点,主要是处理超分辨率过程的高频细节恢复工作。Inference Net是一个递归的子网络,通过不增加参数数量的情况下,尽量大的增加网络的感受野receptive fields。
因此本文采用了递归卷积层,每次递归都采用与上次一样的卷积核,因此,在增大感受野的同时,并没有引入额外的参数
这样做的同时,会引入两个麻烦的问题;1)Recursive次数怎么选?如何去选取最优的Recursive次数。2)Recursive次数多了,在反向传播的时候,长链式的梯度会出现两个常见的问题:梯度爆炸和梯度弥散,如何去有效训练该子网络?
关于第二个问题,作者给出了两种算法去解决这个问题,1)监督递归,每次Recursive后的feature map都会连接到输出。递归监督本质上减轻了训练递归网络的困难。如果监控信号直接从损耗层递归到早期递归,则反向传播要经过几个层。将从不同预测损耗反向传播的梯度累加,得到平滑效果。沿反向传播路径的渐变消失/爆炸的不利影响得到了缓解。
2)skip-connection,由于超分辨率有个特点(图像输入和图像输出在一定程度上是高度相关的,所以将图像输入直接跳跃连接到图像输出)
对于SR,输入和输出图像是高度相关的。即使不是全部,至少也要携带大部分输入值,直到网络结束,这是不可避免的,但效率非常低。由于梯度问题,如果输入和输出之间存在多次递归,那么准确地学习输入和输出之间的简单线性关系是非常困难的。
我们添加了一个层跳过[3]从输入到重建网络。在语义分割网络[18]中成功地应用了层跳算法,并采用了相似的思想。现在,只要在递归过程中使用输入图像,它就会被直接输入到重构网络中。我们skip-connection
有两个优点。首先,保存递归期间存储输入信号的网络容量。其次,输入信号的精确拷贝可以用于目标预测。
此外,选择最优递归数的重要性也降低了,因为我们可以利用所有中间层的预测。如果递归对于给定的任务来说太深,那么我们期望晚期预测的权重较低,而早期预测的权重较高

reconstruction network 作用?
reconstruction network 相当于Embed Net的逆过程,将图片转换为输入图片的通道个数。

递归神经网络如何实现参数共享?
在卷积神经网络中,卷积核内的一个卷积核(滤波器)用于提取一个特征(输入数据的一个维度),而输入数据具有多个特征(维度)的话,就会有很多个卷积核,那么在这一层的卷积层中就会有“参数爆炸”的情况。同时,一层中每个卷积核提取特定的特征,忽略了数据的局部相关性。
而参数共享的作用在于,每个特征具有平移不变性,同一个特征可以出现在出现在不同数据的不同位置,可以用同一个卷积核来提取这一特征。而且利用数据的局部相关性,通过权值共享,一个卷积层共享一个卷积核,减少了卷积层上的参数。通过加深神经网络的层数(深度网络),每一层卷积层使用不同的卷积核,从而达到提取尽可能多特征的目的。

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值