残差网络(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))的主要内容,如果未能解决你的问题,请参考以下文章