论文地址: Identity Mappings in Deep Residual Networks
工程代码: Github链接1    Github链接2

0. 摘要

  深度残差网络作为一族极深的网络架构在精度和收敛性方面表现良好,该论文分析了深度残差模块的传播方式并发现当跳跃连接和附加激活项使用恒等连接时,前向和后向信号都可以直接从一个模块传递到另一个模块。论文进行了一系列消融实验都证实了这些恒等连接的重要性,由此论文提出了一个新的残差单元,使得模型训练更加简单,泛化能力更强。

1. 简介

  如下图所示的深度残差网络,通过堆叠残差单元形成,

  其可以公式化如下形式:
yl=h(xl)+F(xl.Wl)y_l=h(x_l)+F(x_l.W_l)yl​=h(xl​)+F(xl​.Wl​)

xl+1=f(yl)x_{l+1}=f(y_l)xl+1​=f(yl​)

  其中,xlx_lxl​和xl+1x_{l+1}xl+1​是第lll个单元的输入和输出,FFF是一个残差函数,在ResNets中,h(xl)=xlh(x_l)=x_lh(xl​)=xl​是恒等连接,fff是一个ReLU激活函数。
  ResNets深度超过百层并且在许多识别任务上都取得了SOTA精度,它的核心思想是对恒等连接h(xl)=xlh(x_l)=x_lh(xl​)=xl​学习附加的残差函数FFF,这种思想通过跳跃恒等连接得以实现。
  该论文中,通过在残差单元内部甚至整个网络上为建立一条直接的信息传播方式来分析深度残差网络。观察发现如果h(xl)h(x_l)h(xl​)和f(yl)f(y_l)f(yl​)都是恒等连接的话,前向和后向信号都能够直接从一个单元传播到另一个单元,而且实验表明,此时模型更加容易训练。
  为了理解跳跃结构的作用,论文分析并比较了多种不同类型的h(xl)h(x_l)h(xl​),发现恒等连接h(xl)=xlh(x_l)=x_lh(xl​)=xl​具有最快的训练误差下降速度和最小的训练误差,而使用缩放、门控以及1×1 卷积的跳跃连接都产生了很高的训练损失和误差。这些实验表明保持一个"clean"的信息通道对于优化来说非常重要。
  为了构建这样一个恒等连接f(yl)=ylf(y_l)=y_lf(yl​)=yl​,论文将激活函数ReLu和BN视作权重层的预激活方式而不是传统的后激活,由此产生了一种新的残差单元设计,如下图所示,基于这个单元产生的新的ResNet-101取得了更快的训练速度和更好的泛化能力。之后的实验中论文将原始的产生过拟合现象的ResNet-200进行改进,这种更深的模型也产生了更好的效果,现代深度学习在模型深度方面仍有很大的改进空间。

2.分析深度残差网络

  原始ResNets具有堆叠多个连接形状相同的模块而成的模块化架构,该论文将这些模块称为残差单元,原始的残差单元的计算公式可以表示为:
(1)yl=h(xl)+F(xl,Wl)y_l=h(x_l)+F(x_l,W_l) \tag{1}yl​=h(xl​)+F(xl​,Wl​)(1)

(2)xl+1=f(yl)x_{l+1}=f(y_l)\tag{2}xl+1​=f(yl​)(2)

  这里xlx_lxl​是第lll个残差单元的输入,Wl={Wl,k∣1≤k≤K}W_l=\{{W_{l,k}|1 \leq k \leq K}\}Wl​={Wl,k​∣1≤k≤K}是和第lll个残差单元相关的一些列权重和变差,KKK是残差单元的网络层的数目(原始ResNets中取2或3).FFF代表了残差函数(原始ResNets中是两个3×33 \times 33×3的卷积层),函数fff是元素相加后的操作,原始ResNets中取ReLU,函数hhh是恒等连接即h(xl)=xlh(x_l)=x_lh(xl​)=xl​。
  若fff也是恒等连接即xl+1≡ylx_{l+1}\equiv y_lxl+1​≡yl​,则可将Eqn.(1)代入Eqn.(2)中得到:
(3)xl+1=xl+F(xl,Wl)x_{l+1}=x_l+F(x_l,W_l)\tag{3}xl+1​=xl​+F(xl​,Wl​)(3)

  更一般的形式:
(4)xL=xl+∑i=lL−1F(xi.Wi)x_L=x_l+\sum^{L-1}_{i=l}F(x_i.W_i)\tag{4}xL​=xl​+i=l∑L−1​F(xi​.Wi​)(4)

  对于任意更深的残差单元LLL和任意浅层的残差单元lll,Eqn.4表明了这样的特性:

  • 任何更深的单元LLL的输入特征xLx_LxL​通过加上残差函数∑i=lL−1F\sum^{L-1}_{i=l}F∑i=lL−1​F都可以表示为较浅单元lll的输入特征xlx_lxl​,即LLL和lll直接也是具有残差连接特性的;
  • 公式可以特殊化为:xL=x0+∑i=0L−1F(xi,Wi)x_L=x_0+\sum^{L-1}_{i=0}F(x_i,W_i)xL​=x0​+∑i=0L−1​F(xi​,Wi​)

  Eqn.4也引入了更好的后向传播特性。记损失函数为ε\varepsilonε,由后向传播链式法则有:
(5)∂ε∂xl=∂ε∂xL∂xL∂xl=∂ε∂xL(1+∂∂xl∑i=lL−1F(xi,Wi))\frac{\partial\varepsilon}{\partial x_l}=\frac{\partial\varepsilon}{\partial x_L}\frac{\partial x_L}{\partial x_l}=\frac{\partial\varepsilon}{\partial x_L}\left(1+\frac{\partial}{\partial x_l}\sum^{L-1}_{i=l}F(x_i,W_i) \right)\tag{5}∂xl​∂ε​=∂xL​∂ε​∂xl​∂xL​​=∂xL​∂ε​(1+∂xl​∂​i=l∑L−1​F(xi​,Wi​))(5)

  Eqn.5表明梯度∂ε∂xl\frac{\partial\varepsilon}{\partial x_l}∂xl​∂ε​能够解耦为两部分,一个是∂ε∂xL\frac{\partial\varepsilon}{\partial x_L}∂xL​∂ε​,表示信息不通过权重层直接传播,另一部分∂ε∂xL(1+∂∂xl∑i=lL−1F)\frac{\partial\varepsilon}{\partial x_L}\left(1+\frac{\partial}{\partial x_l}\sum^{L-1}_{i=l}F\right)∂xL​∂ε​(1+∂xl​∂​∑i=lL−1​F)通过权重层进行传播,前者能够保证信息直接后向传播给更浅的单元lll。Eqn.5也表明在一个mini-batch中梯度∂ε∂xl\frac{\partial\varepsilon}{\partial x_l}∂xl​∂ε​不可能小时,因为不可能所有样例的∂∂xl∑i=lL−1F\frac{\partial}{\partial x_l}\sum^{L-1}_{i=l}F∂xl​∂​∑i=lL−1​F都为-1,这就表明即使权重任意小,都不会出现梯度消失的现象。
讨论:Eqn.4和Eqn.5表明后向和前向的信号都可以直接从一个单元传递到另一个单元,Eqn.4的基础是两个恒等连接:

  • 跳跃恒等连接h(xl)=xlh(x_l)=x_lh(xl​)=xl​
  • fff也是一个恒等连接

  下图所示的灰色箭头表示的信息流不附带任何操作也就是"clean"的时候上面两个条件成立,论文接着会分别研究这两个条件的影响。

3. 恒等跳跃结构的重要性

  通过一个简单的修改h(xl)=λlxlh(x_l)=\lambda_lx_lh(xl​)=λl​xl​来代替恒等快速连接得到:
(6)xl+1=λlxl+F(xl,Wl)x_{l+1}=\lambda_lx_l+F(x_l,W_l)\tag{6}xl+1​=λl​xl​+F(xl​,Wl​)(6)

  λl\lambda_lλl​是调节标量,通过方程的递归可以得到类似于Eqn.4的公式xL=(∏i=lL−1λi)xl+∑i=lL−1(∏j=i+1L−1λj)F(xi,Wi)x_L=\left(\prod^{L-1}_{i=l}\lambda_i\right)x_l+\sum^{L-1}_{i=l}\left(\prod^{L-1}_{j=i+1}\lambda_j\right)F\left(x_i,W_i\right)xL​=(∏i=lL−1​λi​)xl​+∑i=lL−1​(∏j=i+1L−1​λj​)F(xi​,Wi​),简化之后如下:
(7)xL=(∏i=lL−1λi)xl+∑i=lL−1F^(xi,Wi)x_L=\left(\prod^{L-1}_{i=l}\lambda_i\right)x_l+\sum^{L-1}_{i=l}\hat{F}\left(x_i,W_i\right)\tag{7}xL​=(i=l∏L−1​λi​)xl​+i=l∑L−1​F^(xi​,Wi​)(7)

  其中F^\hat{F}F^将缩放标量融入了残差函数之中,与Eqn.5相同,后向传播公式可以表示为:
(8)∂ε∂xl=∂ε∂xL((∏i=lL−1λi)+∂∂xl∑i=lL−1F^(xi,Wi))\frac{\partial\varepsilon}{\partial x_l}=\frac{\partial\varepsilon}{\partial x_L}\left(\left(\prod^{L-1}_{i=l}\lambda_i\right)+\frac{\partial}{\partial x_l}\sum^{L-1}_{i=l}\hat{F}(x_i,W_i) \right)\tag{8}∂xl​∂ε​=∂xL​∂ε​((i=l∏L−1​λi​)+∂xl​∂​i=l∑L−1​F^(xi​,Wi​))(8)

  和Eqn.5的不同之处在于Eqn.8中第一部分也就是不经过权重层直接传播的过程通过∏i=lL−1λi\prod^{L-1}_{i=l}\lambda_i∏i=lL−1​λi​来进行调节,对于特别深度的网络(也就是LLL特别大),如果对于所有的iii有λi&gt;1\lambda_i&gt;1λi​>1,则这个调节因子会有指数型增长;如果对于所有的iii有λi&lt;1\lambda_i&lt;1λi​<1,则这个调节因子会特别小以至为0,这就会阻断捷径的后向传播信号并且强制它通过权重层,这会导致训练时优化困难。
  通过以上的分析,Eqn.3中原始的恒等跳跃结构被简单的缩放h(xl)=λlxlh(x_l)=\lambda_lx_lh(xl​)=λl​xl​代替,如果跳跃结构h(xl)h(x_l)h(xl​)表示更加复杂的转换(门控或者1x1卷积)且Eqn.8中的第一个参数变为∏i=lL−1hi′\prod^{L-1}_{i=l}h'_i∏i=lL−1​hi′​,其中h′h'h′是hhh的倒数,这个成绩同样会阻碍信息的传播妨碍训练过程。

3.1 跳跃结构相关实验

  论文在CIFAR-10上使用原始的中的ResNet-110进行实验,这个极深的ResNet-110含有54个2层残差单元(由3×3的卷积层组成),这对优化造成了一定的挑战。网络的实现细节与原始结构相同的相同。为了避免随机变量的影响,论文中的结果为在CIFAR上每个框架运行5次得到的准确率的中位数。

  虽然在上述分析中,f为恒等映射,但是该节的实验中都是基于f= ReLU的。在测试集上我们的原始ResNet-110的错误率为6.61% ,与其他变形(如上图)的比较得到如下表所示的结果:

  总结如下:
Constant scaling对于所有的捷径连接,我们设置λ=0.5。我们进一步考虑F 的两种缩放情况:

  • F不被缩放
  • F 有常数标量 1−λ=0.5进行缩放,这与highway门控类似,但是它是冷冻门控

  前一种情况不能很好的收敛;后一种可以收敛,但是测试错误率比原始的ResNet-110高得多。下图显示了训练错误率比原始ResNet-110的要高,表明了当捷径信号被缩放时,优化变得更加困难。

Exclusive gating根据采用门控机制的Highway Networks,文中设计一个门控函数g(x)=σ(Wgx+bg)g(x)=σ(W_gx+b_g)g(x)=σ(Wg​x+bg​)
表示由权重WgW_gWg​ 、偏置项bgb_gbg​以及sigmoidsigmoidsigmoid函数σ(x)=11+e−xσ(x)=\frac{1}{1+e^{-x}}σ(x)=1+e−x1​组成的变换。在一个卷积网络中g(x)g(x)g(x)通过 1×1的卷积层实现。门控函数通过元素乘法来调节信号。
  论文对“exclusive”门控进行研究——FFF
由 g(x)g(x)g(x)进行缩放,捷径连接由1−g(x)1−g(x)1−g(x)进行缩放。论文发现偏置项bgbgbg的初始化对于门控模型的训练是至关重要的,论文设置bgbgbg的初始值范围为0到-10,递减量为1,然后通过cross-validation来执行超参数搜索。然后使用最佳值(这里为−6)来在训练集上进行训练,测试错误率为 8.70%,这仍然落后于原始的ResNet-110,训练曲线如下图所示。注意到当bgbgbg的初始化不合理时,exclusive gating网络并不能收敛到一个好的结果。

  Exclusive gating机制的影响是双面的。当 1−g(x)1−g(x)1−g(x)接近1时,门控捷径连接接近于恒等映射,这有助于信息的传递;但是这种情况下,g(x) 接近于0,从而阻碍了函数F。为了避免捷径连接中门控函数的影响,论文在接下来研究一个non-exclusive的门控机制。
Shortcut-only gating这种情况下,函数F不进行缩放,只有捷径连接由1−g(x)1−g(x)1−g(x)进行缩放。偏置项bgbgbg的初始值同样很重要。当bgbgbg的初始值为0时(即1−g(x)为 0.5),网络收敛到一个很差的结果 12.86%,这同样产生了很高的训练错误率,如下图所示:

 &emsp当bgbgbg的初始值是负很多的数(例如, −6)时,1−g(x)1−g(x)1−g(x)的值接近于1,捷径连接接近于恒等映射。因此,结果(6.91%)与原始ResNet-110的结果很接近。
1×1 convolutional shortcut接下来使用 1×1 的卷积捷径连接替代恒等连接进行实验。这种方案在原始论文中使用34层的ResNet(16个残差单元),展现除了很好的结果,表明了1×1 卷积捷径连接是有效果的。但是我们发现当残差单元有很多时,这并不能起到特别好的效果。当使用1×1 的卷积捷径连接时,110 层的ResNet的结果很差(12.22%)。同样的训练误差也变得很高,如下图所示。当堆叠了如此多的残差单元时(ResNet-110 中有54个),即便是最短的路径可能也会对信号的传播造成阻碍。当在ImageNet上使用1×1卷积捷径连接的ResNet-110时,出现了类似的结果。

Dropout shortcut最后在恒等捷径连接上添加Dropout(比率为0.5) 来进行实验,网络并没有收敛到一个很好的结果。Dropout在统计学上相当于给捷径连接强加了一个λ为0.5的缩放,这和0.5的constant scaling很类似,同样的阻碍了信号的传播。

3.2 讨论

  如变形图中灰色箭头所示,捷径连接是信息传递最直接的路径。 捷径连接中的操作 (缩放、门控、1×1 的卷积以及 dropout) 会阻碍信息的传递,以致于对优化造成困难。
  值得注意的是1×1的卷积捷径连接引入了更多的参数,本应该比恒等捷径连接具有更加强大的表达能力。事实上,shortcut-only gating 和1×1的卷积涵盖了恒等捷径连接的解空间(即,他们能够以恒等捷径连接的形式进行优化)。然而,它们的训练误差比恒等捷径连接的训练误差要高得多,这表明了这些模型退化问题的原因是优化问题,而不是表达能力的问题。

4. 激活函数的使用

  以上的实验内容验证了Eqn.5和Eqn.8中的分析,两个公式都是基于连接后的激活函数fff为恒等连接的假设。但是在上述实验中f是以原始论文中的ReLU设计的,因此,Eqn.5和8只是以上实验的估计。接下来论文研究了激活函数fff的影响。

  通过重新设计激活函数(ReLU和/或BN)来使得fff为一个恒等映射。原始残差连接的形状如上图所示 — BN在每一个权重层之后使用,之后再接一个ReLU,在最后的元素相加之后还有最后一个ReLU(即f= ReLU)。下图还展示了论文研究的其他形式。

4.1 在激活函数上实验

  使用原始论文中的ResNet-110和164层瓶颈结构(称为ResNet-164)来进行实验。瓶颈残差单元包含一个1×11×11×1的层来降维,一个3×33×33×3的层,还有一个1×11×11×1的层来恢复维度。正如原始论文中所述,它的计算复杂度和包含两个3×3的层的残差单元相同,ResNet-164的基本结构在CIFAR-10上具有很好的结果如下图所示,还包括其他变形的错误率:

  [b].BN after addition:在将fff调整至恒等映射之前,相反,在加法后添加一个BN层。这样fff就包含了BN和ReLU。这样的结果比基本结构的结果要差很多,目前的BN层改变了流经捷径连接的信号,并阻碍了信息的传递,这从训练一开始降低训练误差的困难就可以看出,如下图所示:

  [c].ReLU before addition:使得fff成为恒等映射的一个天真的选择就是将 ReLU 移到加法之前。这导致了FFF的输出为非负,然而一个“残差”函数的输出应该是(−∞,+∞) 的。造成的结果就是,前向传递的信号是单调递增的。这会影响表达能力,结果也变得更差了。研究者希望残差函数的值是在区间(−∞,+∞)中的,这个条件可以由包括以下的残差单元来实现
  Post-activetion or pre-activation?:在Eqn.1和2表示的原始设计中,激活函数xl+1=f(yl)x_{l+1}=f(y_l)xl+1​=f(yl​)会影响下一个残差单元前后向两个传播路径:yl+1=f(yl)+F(f(yl),wl+1)y_{l+1}=f(y_l)+F(f(y_l),w_{l+1})yl+1​=f(yl​)+F(f(yl​),wl+1​)。接下来论文设计了一个不对称结构其中y^\hat{y}y^​只对FFF路径有影响:yl+1=yl+F(f^(yl),Wl+1)y_{l+1}=y_{l}+F(\hat{f}(y_l),W_{l+1})yl+1​=yl​+F(f^​(yl​),Wl+1​),即:
(9)xl+1=xl+F(f^(xl),Wl)x_{l+1}=x_{l}+F(\hat{f}(x_l),W_{l})\tag{9}xl+1​=xl​+F(f^​(xl​),Wl​)(9)

  很容易发现Eqn.9与Eqn.4相似,因此能够得到与Eqn.5类似的反向方程,对于如 Eqn.9所示的新的残差单元,新的附加激活函数变成了一个恒等映射,这个设计表明,如果一个新的附加激活f^\hat{f}f^​是非对称的,这就等同于将f^\hat{f}f^​作为下一个残差单元的预激活(pre-activation)项,如下图所示:

  后激活(post-activation)与预激活(pre-activation)的区别是由元素级加法的存在而造成的。一个含有N层的平铺网络,包含有N−1个激活层(BN/ReLU),如何考虑它们是否是后激活或者预激活都不要紧,但是对附加的分支层来说,激活函数的位置就变得很重要了。
  论文使用以下两种设计进行实验:

  • 只使用ReLU的预激活(上图中的变形结构:d)
  • 全预激活 (上图中的变形结构:e) ,它的BN和ReLU全都放置在权重层的前面。

  实验表明只使用ReLU预激活的结果与原始ResNet-110/164的很接近。这个ReLU层不与BN层连接使用,因此无法共享BN所带来的好处。

  然而,当BN和ReLU都用在预激活上,结果得到了很可观的提高,上图展示了不同结构的结果:

  • (i) ResNet-110
  • (ii) ResNet-164
  • (iii) 一个110层的ResNet结构,其中每一个捷径连接跳过1层(即,每一个残差单元只包含一层),称它为“ResNet-110(1layer)”
  • (iv) 一个含有333个残差单元的1001层瓶颈结构(对应于每一种尺寸特征图有111个残差单元),称它为“ResNet-1001”
      在CIFAR-100上进行实验,上图的结果表明了“预激活”模型比原始的模型的性能要好得多,作如下分析。
4.1 分析

  论文发现预激活的影响具有两个方面:

  • 由于f也是恒等映射,优化变得更加简单(与原始ResNet相比)
  • 在预激活中使用BN能够提高模型的正则化。

  Ease of optimization这个影响在训练1001层ResNet时尤为显著。下图展示了训练和测试曲线。使用原始结构时,训练错误率在一开始下降的特别慢。对于f=ReLU,如果信号是负的时候会造成一定的影响,而当残差单元很多时,这个影响将会变得尤为突出,所以Eqn.3(Eqn.5也是)并不是一个好的估计。另一方面,当fff时一个恒等映射时,信号在两个单元之间能够很直接的进行传递,1001层网络的训练误差能够降低的特别快,它同样达到了所有我们研究的模型中最低的误差,表明了在优化上的成功。

  我们同样发现如果ResNet层数不多如下图所示的164层),f=ReLU 的影响并不是很强烈。在训练初期,训练曲线似乎收到了一点影响,但是马上回归到良好的状态。通过监控模型的响应,观测到,这是因为在经过一定的训练后,权重被调整到使得 Eqn.1中的yly_lyl​总是大于0的,因此f此f此f并不会截断它(由于先前ReLU的存在,xlx_lxl​总是非负的,因此只有当F是非常负的时候,y_l才会小于0)。当时在使用1000层的模型时,这种截断就会更加频繁。

  Reducing overfitting使用这个预激活单元的另一个影响就是正则化,如上图所示所示。预激活版本的模型达到收敛时产生了稍高的训练损失,但是却只产生了最低的的测试错误率。这个现象在CIFAR-10和100上的ResNet-110,ResNet-110(1-layer)以及ResNet-164上都观测到了,这可能是由BN的正则化效应引起的。在原始残差单元中,尽管BN对信号进行了标准化,但是它很快就被合并到捷径连接上,组合的信号并不是被标准化的。这个非标准化的信号又被用作下一个权重层的输入。恰恰相反的是,在预激活版本的模型中,权重层的输入总是标准化的。

5. 实验结果

Comparisons on CIFAR-10/100:下图的是结果是在 CIFAR-10/100上比较了目前最好的方法,论文的模型取得了非常有竞争性的结果,从结果中也发现对于这些小数据集,并不需要特意剪裁网络的宽度和深度,也不需要使用正则化技术(例如dropout)来保证模型的效果,只通过一个简单却有效的方式——加深网络,这些结果展示了推进深度极限的潜力。

Comparisons on ImageNet:1000类的ImageNet数据集上的实验结果。实验使用含有跳跃连接的ResNet-101在ImageNet上进行了初步的实验,也同样遇到了优化难题。在第一个学习率上,这些非恒等捷径连接网络的训练误差显然比原始的ResNet高得多,由于资源有限,实验停止。但是研究者完成了“BN after addition”版本的ResNet的实验,这个模型的单一裁切(single-crop)(224×224)的验证错误率为24.6%/7.5%,而原始ResNet-101的为23.6%/7.1%。

  上图展示了ResNet-152和 ResNet-200的结果,所有训练从头开始。注意到原始的ResNet论文中在训练模型时,使用了图像较短边s∈[256,480]的尺寸抖动(scale jittering),所以当s=256时,在224×224的裁切图像的测试上加了负的偏置。相反的,在所有原始的以及我们提出的ResNet上,我们从s=320的图像中裁切一个单一的320×320图像进行测试。即使ResNets是在更小的裁切图像上进行训练的,但是由于ResNets的全卷积设计,在更大的裁切图像上它们也能够很容易的进行测试。这和Inception v3使用的299×299的尺寸很接近,因此是一个更公平的比较。
  原始 ResNet-152在320×320裁切图像上的top-1错误率为21.3%,而我们的与激活版本的错误率为21.1%。在ResNet-152上的增益并不是很大,因为这个模型并没有表现出很严重的泛化困难。然而原始的ResNet-200的错误率比ResNet-152的要高,为21.8%。但是我们发现原始 ResNet-200 的训练误差比ResNet-152的更低,表明受到了过拟合的问题。
计算代价:模型的计算复杂度和深度呈线性关系(所以1001层网络的复杂度为100层网络的近10倍)。在CIFAR上,ResNet-1001使用2块GPU花费了27个小时的训练时间;在ImageNet上,ResNet-200使用8块GPU花费了将近3周的训练时间。

6. 结论

  本文研究了深度残差网络的连接机制背后的传播方式。推导表明了恒等捷径连接和恒等附加激活对于信息的顺利传播是至关重要的。“消融”实验(Ablation experiments)展示了和推导一致的现象。同时也提出1000层的深度网络,能够容易的训练并达到了更好的准确率。
  
欢迎扫描二维码关注微信公众号 深度学习与数学   [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]

主干网络系列(2) -ResNet V2:深度残差网络中的恒等映射相关推荐

  1. 【论文泛读】 ResNet:深度残差网络

    [论文泛读] ResNet:深度残差网络 文章目录 [论文泛读] ResNet:深度残差网络 摘要 Abstract 介绍 Introduction 残差结构的提出 残差结构的一些问题 深度残差网络 ...

  2. 【深度学习之ResNet】——深度残差网络—ResNet总结

    目录 论文名称:Deep Residual Learning for Image Recognition 摘要: 1.引言 2.为什么会提出ResNet残差网络呢? 3.深度残差网络结构学习(Deep ...

  3. 深度学习目标检测 RCNN F-RCNN SPP yolo-v1 v2 v3 残差网络ResNet MobileNet SqueezeNet ShuffleNet

    深度学习目标检测--结构变化顺序是RCNN->SPP->Fast RCNN->Faster RCNN->YOLO->SSD->YOLO2->Mask RCNN ...

  4. 大话深度残差网络(DRN)ResNet网络原理

    -- 原文发布于本人的微信公众号"大数据与人工智能Lab"(BigdataAILab),欢迎关注. 一说起"深度学习",自然就联想到它非常显著的特点" ...

  5. CNN经典模型:深度残差网络(DRN)ResNet

    一说起"深度学习",自然就联想到它非常显著的特点"深.深.深"(重要的事说三遍),通过很深层次的网络实现准确率非常高的图像识别.语音识别等能力.因此,我们自然很 ...

  6. TF2.0深度学习实战(七):手撕深度残差网络ResNet

    写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...

  7. 手把手教你:基于深度残差网络(ResNet)的水果分类识别系统

    系列文章 手把手教你:图像识别的垃圾分类系统 手把手教你:人脸识别考勤系统 手把手教你:基于粒子群优化算法(PSO)优化卷积神经网络(CNN)的文本分类 目录 系列文章 一.项目简介 二.水果分类结果 ...

  8. 深度残差网络ResNet解析

    ResNet在2015年被提出,在ImageNet比赛classification任务上获得第一名,因为它"简单与实用"并存,之后很多方法都建立在ResNet50或者ResNet1 ...

  9. dlibdotnet 人脸相似度源代码_使用dlib中的深度残差网络(ResNet)实现实时人脸识别 - supersayajin - 博客园...

    opencv中提供的基于haar特征级联进行人脸检测的方法效果非常不好,本文使用dlib中提供的人脸检测方法(使用HOG特征或卷积神经网方法),并使用提供的深度残差网络(ResNet)实现实时人脸识别 ...

  10. 深度残差网络(ResNet)详解与实现(tensorflow2.x)

    深度残差网络(ResNet)详解与实现(tensorflow2.x) ResNet原理 ResNet实现 模型创建 数据加载 模型编译 模型训练 测试模型 训练过程 ResNet原理 深层网络在学习任 ...

最新文章

  1. 1066 Root of AVL Tree 需再做
  2. java 读取远程文件夹_java读取远程共享文件 | 学步园
  3. 基于黄色LED反向电流的光电检测板
  4. B2C Opinions
  5. Win XP系统的开机菜单具体含义
  6. 快速安装第三方库的指令——解决第三方库安装超时问题
  7. c语言怎么往栈中输入元素,C语言栈操作
  8. C++面试知识点汇总
  9. 【PTVS+Theano+CPU/GPU】在windows下使用VS安装theano深度学习工具
  10. C语言学习笔记---时间函数strftime()
  11. 打包windows 和 linux caffe 版本的人脸识别 人脸年龄估计 人脸性别模型的总结
  12. SPOJ 104 Highways(最小生成树计数)
  13. docker php安装gd扩展_PHP安装AMQP扩展
  14. java在微信的应用_java版微信公众平台消息接口应用示例
  15. java反编译工具jd-gui-osx for mac M1芯片无法使用的两个问题场景
  16. 噪声调相干扰matlab程序,噪声调相干扰信号的性能仿真
  17. ios睡眠分析 卧床 睡眠_iPhone睡眠模式:教你设置追踪睡眠排程与提升睡眠品质...
  18. virtualbox vbox虚拟机去虚拟化软件使用教程 硬件级虚拟机系统 超能版 V2020
  19. [SSL_CHX][2021-08-19]子矩阵求和
  20. ffmpeg 安装bzlib_centos6中yum安装ffmpeg

热门文章

  1. vCenter 6.0 vsca 安装遇到的一些小问题
  2. 2018-2019-1 20189213《Linux内核原理与分析》第五周作业
  3. 14.2.4 InnoDB Undo Logs
  4. Java加密压缩文件
  5. 接口设计的一些小总结
  6. Security+Oauth2权限认证(案例 源码)
  7. QA:Golang抽象nil问题
  8. 使用脚本 Nodesource快速安装nodejs环境
  9. c# 存储图片到oracle,c# winform 读取oracle中blob字段的图片并且显示到pictureBox里 保存进库...
  10. linux 扫描媒体库,如何扫描出Android系统媒体库中视频文件