残差网络(ResNets)(Residual Networks (ResNets))
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了残差网络(ResNets)(Residual Networks (ResNets))相关的知识,希望对你有一定的参考价值。
参考技术A如果我们使用标准优化算法训练一个普通网络,比如说梯度下降法,或者其它热门的优化算法。如果没有残差,没有这些捷径或者跳跃连接,凭经验你会发现随着网络深度的加深,训练错误会先减少,然后增多。而理论上,随着网络深度的加深,应该训练得越来越好才对。也就是说,理论上网络深度越深越好。但实际上,如果没有残差网络, 对于一个普通网络来说,深度越深意味着用优化算法越难训练。实际上,随着网络深度的加深,训练错误会越来越多。
但有了ResNets就不一样了,即使网络再深,训练的表现却不错,比如说训练误差减少,就算是训练深达100层的网络也不例外。有人甚至在1000多层的神经网络中做过实验,尽管目前我还没有看到太多实际应用。但是对的激活,或者这些中间的激活能够到达网络的更深层。这种方式确实有助于解决梯度消失和梯度爆炸问题,让我们在训练更深网络的同时,又能保证良好的性能。也许从另外一个角度来看,随着网络越来深,网络连接会变得臃肿,但是ResNet确实在训练深度网络方面非常有效。
这里使用跳跃连接(Skip connection),它可以从某一层网络层获取激活,然后迅速反馈给另外一层。就是指跳过一层或者好几层,从而将信息传递到神经网络的更深层。
相比于从头训练权重,如果使用别人已经训练好的网络结构的权重,通常能够进展得相当快,用这个作为预训练。
如果任务只有一个很小的数据集,如图1所示,我们可以完全使用它的权重,把前面的层都冻结;
要是有一个更大的训练集,如图2所示,我们冻结更少的层,然后训练后面的层;
或者如图3所示,换成自己的网络结构。
最后,如果有大量数据,我们应该用这些网络和它的权重当做初始化,用它们来代替随机初始化,接着你可以用梯度下降训练,更新网络所有层的所有权重。
Deeper Depth Prediction with Fully Convolutional Residual Networks(FCRN)全卷积残差网络
Deeper Depth Prediction with Fully Convolutional Residual Networks(FCRN)全卷积残差网络
无限之阿尔法
于 2020-07-04 17:34:11 发布
1517
收藏 16
分类专栏: 深度学习 文章标签: 深度学习
版权
深度学习
专栏收录该内容
2 篇文章0 订阅
订阅专栏
FCRN全卷积残差网络
FCRN网络结构
FCRN的设计与贡献
一种改进的方法
参考博客
FCRN全卷积残差网络是单目深度估计的一种方法。在FCN全卷积网络的基础上尝试了更深层次的网络带来的好处。
FCRN网络结构
上图中前两行是一个pretrained的ResNet50结构,最后一行为一系列反卷积的结构,使输出图片与输入图片大小近似相等。
FCRN延续了FCN(全卷积网络)的特点,直接去掉了全连接层,取而代之的是一个新的上采样结构.整个网络可以看做是一个encoder-decoder的过程。
插一句去掉全连接层的优点:
第一,是全连接层几乎拥有整个网络的90%以上的参数,去掉全连接层可以更好的利用GPU;
第二,全连接层固定了网络输入输出的大小,只有固定大小的图片才能够被处理。利用encoder-decoder就可以直接处理几乎所有的图片大小。
FCRN的设计与贡献
1.设计Res-Block
反池化是提升图片的分辨率。作者首先使用了图a结构,过2 * 2的un-pooling层,没有值的地方填补0,之后过5 * 5的卷积,使让所有有0的地方都能被卷积到,过relu。采用4个这种结构是综合内存与分辨率的考量,如果使用5块,内存增加且分辨率不会有改善。作者又在该基础上,设计了图c所示的res-block的结构。
2.利用小卷积核使up-convolution更加的有效,降低参数,减少训练时间。
在原有的结构中存在un-pooling(上池化)操作,在实验中发现会导致结果中出现过多 0 值,导致卷积操作无意义。于是采用4种不同的小卷积来代替5*5卷积核,分别进行计算,之后叠加feature map,获得更好的训练效果。
3.使用了huber做loss
Huber loss具备了MAE和MSE各自的优点,当值在C范围内为|X|就退化成了MAE(L1范式),而当超过C时就则退化为了MSE(L2范式)。Huber 对两种损失都有了一种平衡。大残差的时候使用L2项,同时,对于小残差梯度,L1效果比L2要好。这也使 Huber 对异常点更加鲁棒。
一种改进的方法
利用HKU-IS显著性数据集进行测试,结果如下:
可以看出结果是存在过拟合的。为了进一步增强网络的泛化能力,对原模型做以下改进:
1)在含有 Skip 跳层连接和projection连接的运算中,在第三层卷积中加入了与前两层一样的 Relu 激活函数,同时在最后输出时加入了卷积运算(核 1*1,步长为 1),如下图紫圈标记。
2) 在上采样(up-projection)中,在最后输出时加入了正则化,如下图 3 紫圈标记。
3)在网络结构上有所修改,主要增加了 skip 的操作次数,如下图。
最终测试结果如下:
可以看到,改进后的模型在一些细节上的表现更加出色。
————————————————
版权声明:本文为CSDN博主「无限之阿尔法」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43080609/article/details/107125719
以上是关于残差网络(ResNets)(Residual Networks (ResNets))的主要内容,如果未能解决你的问题,请参考以下文章
Deep Residual Learning for Image Recognition(残差网络)
Deeper Depth Prediction with Fully Convolutional Residual Networks(FCRN)全卷积残差网络
Deeper Depth Prediction with Fully Convolutional Residual Networks(FCRN)全卷积残差网络
Deeper Depth Prediction with Fully Convolutional Residual Networks(FCRN)全卷积残差网络
《Deep residual shrinkage networks for fault diagnosis》 基于深度残差收缩网络的故障诊断(翻译与python代码)