【图像去噪】论文精读:xUnit: Learning a Spatial Activation Function for Efficient Image Restoration

请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)


前言

论文题目:xUnit: Learning a Spatial Activation Function for Efficient Image Restoration —— xUnit:学习空间激活函数进行高效图像恢复

论文地址:xUnit: Learning a Spatial Activation Function for Efficient Image Restoration

论文源码:https://github.com/kligvasser/xUnit

CVPR 2018!代替ReLU!新激活函数xUnit提升模型性能!可添加到去噪模型中!

Abstract

近年来,深度神经网络 (DNN) 在许多低级视觉任务中取得了前所未有的性能。然而,最先进的结果通常是通过非常深的网络实现的,它可以达到数十层,具有数千万个参数。为了使 DNN 能够在资源有限的平台上实现,有必要削弱性能和效率之间的权衡。在本文中,我们提出了一种新的激活单元,特别适用于图像恢复问题。与广泛的每像素激活单元(如 ReLU 和 sigmoid)相比,我们的单元实现了具有空间连接的可学习非线性函数。这使得网络能够捕获更复杂的特征,因此需要显着减少层数才能达到相同的性能。我们通过与最先进的去噪、去雨和超分辨率网络的实验来说明我们的单元的有效性,这些网络被认为非常小。通过我们的方法,我们能够进一步将这些模型减少近 50%,而不会导致性能的任何退化。

摘要总览:为了在硬件条件一般的情况下也能跑出不错的性能,平衡性能与效率,xUnit可以替代ReLU和Sigmoid,在网络不那么深的情况下达到非常深的网络的性能。可以有效减少模型参数,并保持模型性能。

1. Introduction

深度卷积神经网络 (CNN) 彻底改变了计算机视觉,在分类 [45, 14, 17]、分割 [38, 1] 和人脸识别 [32, 43] 等高级视觉任务以及去噪 [20, 48, 3, 35]、去模糊 [30]、超分辨率 [9, 23, 21] 和去雾 [37] 等低级视觉任务中实现了前所未有的性能。今天,CNN 的性能仍在不断提高,主要是通过增加网络深度。事实上,ResNets[14]和DenseNets[17]中使用的身份跳过连接[15]和残差学习[14,48]现在克服了与非常深的网络相关的一些困难,甚至允许跨越1000层屏障[15]。

性能和深度之间的强联系对获得最先进结果所需的计算资源和运行时间有重大影响。实际上,这意味着实时、低功耗和有限的资源平台(例如移动设备)上的应用程序目前无法利用 CNN 的全部潜力。

在本文中,我们提出了一种不同的机制来提高 CNN 性能(见图 1)。我们不是增加深度,而是专注于使非线性激活更有效。大多数流行的架构使用逐像素激活单元,例如整流线性单元 (ReLU) [11]、指数线性单元 (ELU) [5]、sigmoids [31] 等。在这里,我们建议将这些单元替换为 xUnit,这是一个具有空间和可学习连接的层。xUnit 计算连续值权重图,作为其输入的软门。正如我们所展示的,尽管它比逐像素单元具有更高的计算要求和内存消耗,arXiv:17111.06445v3 [cs.CV] 25 Mar 2018,xUnit 对网络的性能有显着影响。因此,它允许使用更少的层来匹配 CNN 与 ReLU 激活的性能。总体而言,这导致性能和效率之间的权衡显着提高,如图 1 所示。在这里插入图片描述
图 1. xUnit 激活与 ReLU 激活。xUnits 是具有可学习空间连接的非线性激活。当用于代替流行的逐像素激活(例如 ReLU)时,它们可以显着提高性能,总网络参数数量较少。该图比较了传统 ConvNet (Conv+BN+ReLU 层) 和我们的 xNet (Conv+xUnit 层) 在 σ = 25 的噪声水平下的去噪性能。可以看出,xNet 在相同数量的参数下实现了更高的 PSNR。或者,它可以在大约 1/3 的 ConvNet 参数数量的情况下实现相同的 PSNR。

xUnit 有一组可学习的参数。因此,为了符合参数的总预算,xUnits 必须以牺牲网络中的一些卷积层或这些卷积层中的一些通道为代价。这就提出了一个问题:投入激活单元的最佳参数百分比是多少。今天,大多数 CNN 架构都在频谱的一个极端,0% 的参数投资于激活。在这里,我们通过实验表明最佳百分比远大于零。这表明使用空间激活获得的表征能力可能比具有每像素激活的卷积层提供的表征能力要多得多。

我们在几个图像恢复任务中说明了我们方法的有效性。具体来说,我们采用最先进的 CNN 模型进行图像去噪 [48]、超分辨率 [9, 23] 和去雨 [10],这些模型已经被认为是非常轻量级的,并用 xUnits 替换它们的激活。我们表明,这允许我们进一步减少参数的数量(通过丢弃层或通道),而不会导致性能下降。事实上,我们表明,对于小型模型,我们可以在实现相同性能甚至更好的同时节省近 50% 的参数。正如我们所展示的,这通常允许使用比训练示例少三个数量级。

工作介绍:将像素激活(ReLU等)换成空间激活(xUnit)会提升性能,但需要减少卷积层。图1所示,Conv+BN+ReLU替换为Conv+xUnit layers会提升性能。所以,接下来带着问题阅读,什么是xUnit layers?

2. Related Work

在过去的几十年里,对精确图像增强算法的追求引起了大量的研究工作。直到 2012 年,绝大多数算法都依赖于生成图像模型,通常通过最大后验 (MAP) 估计。模型通常是手工制作的或从训练图像中学习的,包括导数的先验[41],小波系数[33],滤波器响应[39],图像补丁[7,50]等。近年来,生成方法逐渐被判别方法推开,主要基于cnn。这些体系结构通常直接学习从退化图像到恢复图像的映射,并被证明在许多恢复任务中表现出出色的性能,包括去噪[3,48,20]、去模糊[30]、超分辨率[8,9,23,21]、去雾[4,25]和去雨[10]。

提高 CNN 模型性能的一种流行策略是通过增加它们的深度。各种工作提出了克服训练非常深的网络的一些困难的方法。这些为使用越来越大的网络的一系列算法打开了大门。具体来说,与普通网络相比,残差网络 (ResNet) 架构 [14] 被证明可以实现卓越的分类性能。密集卷积网络(DenseNets)[17]更进一步,通过将每一层以前馈方式连接到所有其他层。这允许在非常深的网络中取得优异的性能。

低级视觉社区也采用了这些想法。在去噪的背景下,张等人。 [48] 是第一个训练非常深的 CNN 进行去噪的方法,产生了最先进的结果。为了训练其参数为 0.5M 的网络,他们使用了残差学习和批量归一化 [48],缓解了梯度消失问题。在[20]中,提出了一个两倍更大的模型,该模型基于格式化残差图像以包含结构化信息,而不是学习干净图像和噪声图像之间的差异。[34,36,49]中也提出了类似的想法,导致具有大量参数的模型。最近,[2]提出了一种基于残差学习的非常深的网络,其中包含 60 多个层和 17M 参数。

在超分辨率的背景下,进展是相似的。近过去,最先进的方法只使用了数万个参数。例如,SRCNN 模型 [9] 仅包含三个卷积层,只有 57K 参数。非常深的超分辨率模型 (VDSR) [21] 已经使用了 20 层,参数为 660K。如今,使用更复杂的模型。例如,著名的SRResNet[23]使用了超过1.5M的参数,EDSR网络27有43M个参数。

使 CNN 尽可能深的趋势在低功耗和有限的计算和内存资源平台上运行这些模型方面提出了重大挑战。减少内存消耗和访问时间的一种方法是使用二值化神经网络[6]。这些在分类任务中显示出好处的架构将权重和激活限制为二进制。另一种方法是通过深度卷积[16]替换多通道卷积层。这提供了大小和延迟显着减少,同时允许合理的分类精度。在[44]中,建议通过引入学习放大滤波器的亚像素卷积层来降低超分辨率的网络复杂度和内存消耗。在[24]中,一种利用图像中非局部自相似性的架构,被证明可以通过减少模型产生良好的结果。最后,学习泄漏ReLU类型激活的最佳斜率也被证明会导致更有效的模型[13]。

相关工作:介绍了一些底层的视觉任务,主要是对模型参数和性能方面的阐述。为引出xUint铺垫。

3. xUnit

尽管存在各种 CNN 架构,但它们的构建块非常相似,主要由卷积层和每像素激活单元组成。在数学上,第 k + 1 k + 1 k+1 层的特征 x k + 1 x_{k+1} xk+1 通常计算为
z k = W k x k + b k x k + 1 = f ( z k ) (1) \begin{array}{l} z_{k}=W_{k} x_{k}+b_{k} \\ x_{k+1}=f\left(z_{k}\right) \end{array}\tag{1} zk=Wkxk+bkxk+1=f(zk)(1)

其中 x 0 x_0 x0 是网络的输入, W k W_k Wk 执行卷积操作, b k b_k bk 是偏置项, z k z_k zk 是卷积层的输出, f ( ⋅ ) f (·) f() 是一些非线性激活函数,它根据其参数逐个元素操作。流行的激活函数包括 ReLU [11]、leaky ReLU [28]、ELU [5]、tanh 和 sigmoid 函数。

请注意,(1) 中存在明显的二分法:卷积层负责空间处理,非线性的激活单元。有人可能会想,这是实现低级视觉所需的复杂函数最有效的方法。特别是,没有理由不允许在激活函数内进行空间处理。

元素激活可以被认为是非线性门控函数。具体来说,假设 f ( 0 ) = 0 f (0) = 0 f(0)=0,就像所有流行激活的情况一样,(1) 可以写成
x k + 1 = z k ∘ g k (2) x_{k+1}=z_{k} \circ g_{k}\tag{2} xk+1=zkgk(2)
其中◦表示(逐元素)Hadamard乘积, g k g_k gk是一个(多通道)权重图,它依赖于 z k z_k zk的每个元素,如
[ g k ] i = [ f ( z k ) ] i [ z k ] i (3) \left[g_{k}\right]_{i}=\frac{\left[f\left(z_{k}\right)\right]_{i}}{\left[z_{k}\right]_{i}}\tag{3} [gk]i=[zk]i[f(zk)]i(3)
这里 0/0 应该被解释为 0。例如,与 ReLU 函数 f ( ⋅ ) f (·) f() 相关的权重图 g k g_k gk 是一个二进制图,它是 z k z_k zk 的阈值版本,
[ g k ] i = { 1 [ z k ] i > 0 0 [ z k ] i ≤ 0 (4) \left[g_{k}\right]_{i}=\left\{\begin{array}{ll} 1 & {\left[z_{k}\right]_{i}>0} \\ 0 & {\left[z_{k}\right]_{i} \leq 0} \end{array}\right.\tag{4} [gk]i={10[zk]i>0[zk]i0(4)
这种解释在图 2(a) 中可视化(未显示偏差)。
在这里插入图片描述
图 2. xUnit 激活层。(a) 流行的 ReLU 激活可以解释为在其输入 zk 和权重图 gk 之间执行逐元素乘积,它是 zk 的二值化版本。(b) xUnit 通过在 zk 上执行非线性可学习空间函数来构造取值在 [0, 1] 中的连续权重图。

由于非线性激活是赋予 CNN 实现复杂功能的能力的原因,因此我们在这里建议使用可学习的空间激活。也就是说,我们建议允许 g k g_k gk 中的每个元素也依赖于 z k z_k zk 中相应元素的空间邻域,而不是逐元素关系 (3)。具体来说,我们引入了xUnit,其中
[ g k ] i = exp ⁡ { − [ d k ] i 2 } (5) \left[g_{k}\right]_{i}=\exp \left\{-\left[d_{k}\right]_{i}^{2}\right\}\tag{5} [gk]i=exp{[dk]i2}(5)
并且
d k = H k ReLU ⁡ ( z k ) (6) d_{k}=H_{k} \operatorname{ReLU}\left(z_{k}\right)\tag{6} dk=HkReLU(zk)(6)
H k H_k Hk表示深度卷积[16]。这个想法是引入 (i) 非线性 (ReLU), (ii) 空间处理(深度卷积),以及 (iii) 在 [0, 1](高斯)范围内构建门控图。深度卷积对每个输入通道应用单个滤波器,并且在内存和计算方面比 CNN 中常用的多通道卷积更有效。请注意,过滤器 H k H_k Hk 必须在训练期间学习。为了使训练稳定,我们还在 ReLU 和求幂之前添加了批量归一化层 [19]。这如图2(b)所示。

仅仅用 xUnits 替换 ReLU 会在测试阶段清楚地增加内存消耗和运行时间。这主要是由于它们的卷积操作(指数可以使用查找表实现)。具体来说,具有 d 通道输入的 xUnit 和涉及 r × r 滤波器的 d 通道输出引入了开销 ( r 2 + 4 ) d (r^2 + 4)d (r2+4)d 参数 ( r × r × d r × r × d r×r×d 用于深度滤波器,每个批量归一化层为 2 × d)。然而,首先,请注意,与每个 r × r × d × d 卷积层的 r 2 d 2 r^2d^2 r2d2 参数相比,这种开销相对温和。其次,为了返回这个开销,xUnits 提供了性能提升。这意味着可以通过更少的层或每层更少的通道来获得相同的性能。因此,重要问题是 xUnits 是否提高了性能和参数数量之间的整体权衡。

在这里插入图片描述
图 3. 去噪性能与参数数量。我们将由前馈 Conv+BN+ReLU 层组成的 ConvNet 与由一系列 Conv+xUnit 层组成的 xNet 进行比较。我们逐渐增加网络层数,并记录在噪声水平σ = 25的BSD68数据集去噪中获得的平均PSNR,作为网络中参数总数的函数。两个网络的训练配置是相同的。我们的xNet在相同的参数数量下获得了更高的PSNR。或者,它可以在大约三分之一的 ConvNet 参数数量的情况下实现相同的 PSNR。

图 3 显示了在去噪任务中使用 xUnits 的效果。在这里,我们训练了两个简单的网络架构,以使用不同数量的层从噪声图像中去除标准偏差 σ = 25 的加性高斯噪声。第一个网络是一个传统的 ConvNet 架构,由一系列 Conv+BN+ReLU 层组成。我们抛硬币 xNet 的第二个网络由一系列 Conv+xUnit 层组成。在这两个网络中,常规卷积层(不是 xUnits 中的卷积层)包含 64 个通道 3 × 3 过滤器。对于xUnits,我们将深度滤波器的大小从1 × 1更改为9 × 9。我们使用残差学习从BSD数据集[29]训练400张图像上的两个网络(即学习预测噪声,并在测试时从噪声图像中减去噪声估计)。这已被证明有利于[48]中的去噪。如图所示,当xUnit滤波器为1 × 1时,xNet得到的峰值信噪比(PSNR)仅比ConvNet小差距。在这种情况下,xUnits 不是空间。然而,随着 xUnits 的过滤器变大,对于任何给定的参数总数,xNet 的性能开始提高。请注意,例如,具有 9 × 9 激活的 3 层 xNet 优于 9 层 ConvNet,尽管参数数量不到 1/3。
在这里插入图片描述
图4。去噪性能与激活参数的百分比。改变 xUnit 过滤器的支持可以提高性能,但也增加了参数的总数。在这里,我们展示了当参数总数被限制为99,136时,平均去噪PSNR作为xUnit激活中投入的总参数百分比的函数。这对应于图3中图的垂直横截面。可以看出,虽然传统的ConvNets在激活中投入了0%的参数,但这显然是次优的。当投资于激活中约20%的总参数时,性能有了显著提高。

为了进一步了解使用空间激活时的性能计算权衡,图 4 显示了图 3 中图的垂直横截面,总体为 99,136 个参数。在这里,PSNR 是根据在 xUnit 激活中投入的参数的百分比绘制的。在传统的 ConvNet 中,0% 的参数被投入到激活中。从图中可以看出,这显然是次优的。特别是,最佳百分比至少可以被视为22%,其中xNet的性能达到平台期。事实上,在大约 15%(对应于 9 × 9 个激活过滤器)之后,进一步增加过滤器支持的好处变得相对较小。
在这里插入图片描述
图 5. xNet 激活的可视化。训练 4 层 xNet 和 4 层 ConvNet(具有 ReLU 激活)使用直接学习对噪声水平 σ = 25 的图像进行去噪。当在同一输入图像上运行时,两个网络都显示了第 4 层的 64 个特征图、激活图及其乘积。在xNet中,每个激活映射都是对应特征映射的空间函数,而在ConvNet中,它是一个逐像素函数。可以看出,ConNet 的激活非常稀疏,而 xNet 的激活非常密集。因此,在 xNet 中,更多的特征图参与去噪工作。

为了直观地了解允许xNet在参数较少的情况下获得更好的结果的机制,我们在图5中描述了ConvNet的第4层特征映射z4、权重(激活)映射g4及其乘积x5,以及在同一噪声输入图像上运行的xNet。有趣的是,我们发现与 ConvNet 激活相比,更多的 xNet 激活接近 1(白色)。因此,在 xNet 中,更多的通道似乎参与了去噪工作。此外,可以看出 xNet 权重图是特征相当复杂的函数,而不是 ConvNet 中 ReLU 的简单二值化函数。
在这里插入图片描述
图6。xUnit设计比较。我们将各种 xUnit 设计与传统的 ConvNet 进行比较。我们逐渐增加所有网络的层数,并记录在噪声水平σ = 50的BSD68数据集去噪中获得的平均PSNR。所有网的训练配置都是相同的。建议版本 BN+RL+CD+BN+GS 获得了最高的 PSNR。

图 6 比较了几种替代 xUnit 设计。建议的设计,其中包含 Batch Norm (BN)、ReLU (RL)、Conv。深度 (CD) 和高斯 (GS) 取得了最好的结果。然而,请注意,所有设计的性能都明显优于传统的 ConvNet,这表明空间处理(CD,出现在所有设计中)贡献最大。有趣的是,BN+RL+CD 组合允许权重图包含负值,当层数较小时,预训练与我们的建议设计非常相似。尽管如此,与其他设计不同,对于更多的层,我们在训练期间经历梯度爆炸。这突出了高斯的重要性,它通过保持 [0, 1] 范围内的权重来调节训练。


xUnit方法总结:

  • 先复习一下ReLU:和零比较,大于0就激活输出,小于等于0就为0,也就是图2a中的“Threshold”。由于它简单结构,计算方便,所以被广泛应用。但是,它是一个二值函数
  • 本文提出的xUnit:结构为Batch-Norm(BN)→ReLU(RL)→Conv2d Depthwise(CD)→Batch-Norm(BN)→Gaussian(GS);替换后可以知道模型参数增加了多少,但更重要的是平衡参数与性能。
  • 这样只需要增大xUnit的卷积核就可以在不增加层数的情况下提升性能,图3所示,3层9×9的xNet比9层ConvNet性能更好,但是参数减少了1/3;图4可以看出增大卷积核后的参数占比(激活函数的参数占总参数的比例)与性能之间的关系,大约20%左右最好,再多性能不增长了。也就是说,默认的xUnit中的卷积核可能为9×9。
    在这里插入图片描述
  • 图5可视化了ConvNet与xNet的feature map,xNet的特征图更密集,而ConvNet更稀疏。密集说明更多的通道参与了工作,从激活函数的特点上ReLU具有稀疏性,所以产生这样的效果也是显而易见。
  • 图6对比了各种可能的xUnit结构,最终BN+RL+CD+BN+GS最优。

注:正常提出模型结构的论文,图3-图6都应该是实验部分的内容。由于本文只是提出这个结构,所以需要夯实正文内容。


4. Experiments and Applications

我们的目标是表明,许多小规模和中等规模的最先进的 CNN 可以在 xUnits 的情况下几乎减少 50%,而不会导致性能下降。

我们在 Pytorch 中实现提议的架构。我们在配备 Intel i5-6500 CPU 和 Nvidia 1080Ti GPU 的台式计算机上运行所有实验。我们使用了Adam [22] 优化器,其默认设置用于训练网络。我们将学习率初始化为10−3,并在训练期间逐渐降低到10−4。我们保持小批量大小固定为 64。在所有应用程序中,我们在 xUnits 中使用 9 × 9 深度卷积,并最小化训练集上的均方误差 (MSE)。

4.1. Image Denoising

我们首先说明xUnits在图像去噪中的有效性。作为基线架构,我们采用最先进的DnCNN去噪网络[48]。我们用 xUnit 层替换所有 ReLU 层,并将卷积层的数量从 17 个减少到 9 个。我们将所有卷积层保留 64 个通道 3 × 3 个过滤器,就像在原始架构中一样。我们创造了 xDnCNN 的净参数数量仅为 54%(xDnCNN 为 303K,DnCNN 为 555K)。

与[48]一样,我们在400张图像上训练我们的网络。我们使用来自Berkeley分割数据集(BSD)[29]的图像,通过随机翻转和随机裁剪(80×80)来丰富。噪声图像是通过在训练图像中添加高斯噪声来生成的(每个图像的不同实现)。我们研究了我们的网络在噪声水平σ = 25, 50时的性能。表1比较了我们的xDnCNN与原始DnCNN(变体“S”)所获得的平均PSNR,以及最先进的非CNN去噪方法BM3D[7]、WNNM[12]、EPLL[50]和MLP[3]。评估是在 BSD68 数据集 [40] 上进行的,该数据集是来自 BSD 数据集的 68 张图像的子集,不包括在训练集中。可以看出,我们的 xDnCNN 优于所有非 CNN 去噪方法,并取得了与 DnCNN 相当的结果。尽管 xDnCNN 在参数数量方面几乎是 DnCNN 大小的一半。随着噪声水平的增加,我们的方法的优越性变得更加显着。在 σ = 50 的噪声水平下,我们的方法在数据集中的 68 张图像中的 57 个上实现了最高的 PSNR 值。在这里插入图片描述
图 7 显示了 xDnCNN 获得的示例去噪结果,与 BM3D、EPLL、MLP 和 DnCNN-s 相比,噪声水平为 σ = 50。可以看出,我们的 xDnCNN 最好地重建精细细节,几乎不引入任何分散注意力的伪影。相比之下,所有其他方法(包括DnCNN)都引入了不愉快的失真。在这里插入图片描述
参数降低一半,性能几乎不变,重建效果更好。

4.2. Single image rain removal

接下来,我们在从单个图像中去除雨条纹的任务中使用了相同的架构。我们只对去噪xDnCNN进行了一次修改,即在三个通道(RGB)输入图像上工作,并输出三个通道图像。这导致具有 306K 参数的网络。我们将我们的结果与 3 通道输入 3 通道输出 DnCNN 版本和 DerainNet [10] 进行了比较,这是一个具有 753K 参数的网络,包括三个卷积层:分别为 16 × 16 × 512、1 × 1 × 512 和 8 × 8 × 3。与去噪类似,我们学习了雨天图像和干净图像之间的残差映射。训练是在 DerainNet [10] 的数据集上进行的,该数据集包含 4900 对干净和合成生成的雨天图像。然而,我们在 Rain12 数据集 [26] 上评估我们的模型,该数据集包含 12 个人工生成的图像。尽管训练数据与测试数据有很大不同,但我们的 xDnCNN 的性能明显优于 DnCNN 和 DerainNet,如表 2 所示。在去除真实图像时也可以看到这种行为。如图8所示,xDnCNN在清理实际的雨纹方面表现明显更好。因此,我们得出结论,xDnCNN 对不同的降雨外观更加稳健,同时保持了其效率。注意,我们的xDnCNN去雨网络只有DerainNet的参数数量的40%,DnCNN的参数数量仅为55%。在这里插入图片描述
在这里插入图片描述

4.3. Single image super resolution

我们的xUnit激活也可以应用于单幅图像超分辨率。我们使用最先进的 SRResNet 架构 [23] 和非常小的 SRCNN [9] 模型来说明这一点。对于 SRResNet,我们在xUnits的残差块中替换了 PReLU ,并将残差块的数量从 16 减少到 10。我们创造了 xSRResNet 的变体只有 SRResNet 的参数数量(SRResNet 为 1.546M,xSRResNet 为 1.15M)。SRCNN 架构包含三个卷积层:9 × 9 × 64、5 × 5 × 32 和 5 × 5 × 1。在这里,我们研究了 SRCNN 两种不同的修改,我们将两个 ReLU 层替换为 xUnit 层。在第一个修改中,我们将中间层的过滤器大小从5 × 5 × 32减少到3 × 3 × 32。我们抛硬币xSRCNNf的变体只有SRCNN的参数数量(xSRCNNf为32K,SRCNN为57K)。在第二个修改中,我们将第二层的通道数从 64 减少到 42。我们创造了 xSRCNNc 的变体只有 77% 的参数(xSRCNNc 为 44K,SRCNN 为 57K)。

原始的SRCNN和SRResNet模型在ImageNet[42]的约400,000张图像上进行训练。在这里,我们在更小的数据集上训练我们的模型。具体来说,对于 xSRCNN,我们仅使用来自 [47] 的 91 张图像和来自 BSD 的 400 张图像。对于 xSRResNet,我们使用来自 Mirflickr25k [18] 数据集的 25,000 张图像。我们通过随机翻转和随机裁剪来增强数据。

表 3 报告了 BSD100 数据集上所有模型获得的结果。可以看出,我们的模型获得了与原始 SRCNN 和 SRResNet 相当的结果,尽管要小得多,并且在明显较少的图像上进行了训练。请注意,我们的 xSRCNNf 的参数比 xSRCNNc 少。这可能表明丢弃 xNets 中参数的更好方法是减少过滤器大小,而不是减少通道。一个可能的解释是 xUnits 中的 9 × 9 滤波器可以部分补偿卷积层中滤波器的小支持。然而,丢弃通道也可以在相同的性能下显著减少参数的事实表明,xNet中的通道比具有每像素激活的ConvNets中的通道更有效。在这里插入图片描述
图 9 显示了 SRCNN 和我们的 xSRCNNf 的第 2 层特征图、激活映射及其乘积。与去噪的情况一样,我们可以看到在 xSRCNN 中,与 SRCNN 相比,更多的特征图参与重建工作。这为它在较小的过滤器(或具有较少通道)下表现良好的能力提供了可能的解释。在这里插入图片描述

5. Conclusion

流行的 CNN 架构使用简单的非线性激活函数(例如 ReLU),它在特征图上按像素操作。在本文中,我们证明了 CNN 可以极大地受益于在激活单元中加入可学习的空间连接。虽然这些空间连接向网络引入了额外的参数,但它们显着提高了其性能。总体而言,性能和参数数量之间的权衡得到了显着提高。我们说明了我们的方法如何减少几个最先进的 CNN 模型的大小,用于去噪、去雨和超分辨率,这些模型被认为非常小,几乎 50%。这不会导致性能的任何退化。


总结:
在这里插入图片描述

  • 结构为:Batch-Norm(BN)→ReLU(RL)→Conv2d Depthwise(CD)→Batch-Norm(BN)→Gaussian(GS)
  • 替换模型中的ReLU
  • 对于去噪模型来说,参数减少,性能不变,重建细节更好。
  • 相当于一个即插即用模块,可以水论文的一个小创新点(似乎这篇工作关注的人比较少,全网都没几个讲解的)

接下来马不停蹄地来到复现文章吧!看看xUnit是如何实现以及加入到去噪模型中的!

本文对应的复现文章:


至此本文结束。

如果本文对你有所帮助,请点赞收藏,创作不易,感谢您的支持!

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十小大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值