2D网络模型总结3:Resnet和DenseNet

时间:2024-03-31 15:25:07

ResNet

原文链接:https://blog.csdn.net/u013181595/article/details/80990930
ResNet(Residual Neural Network)由微软研究院的Kaiming He等四名华人提出,通过使用ResNet Unit成功训练出了152层的神经网络,并在ILSVRC2015比赛中取得冠军,在top5上的错误率为3.57%,同时参数量比VGGNet低,效果非常突出。ResNet的结构可以极快的加速神经网络的训练,模型的准确率也有比较大的提升。同时ResNet的推广性非常好,甚至可以直接用到InceptionNet网络中。ResNet的主要思想是在网络中增加了直连通道,即Highway Network的思想。

创新点

提出残差学习的思想。
传统的卷积网络或者全连接网络在信息传递的时候或多或少会存在信息丢失,损耗等问题,同时还有导致梯度消失或者梯度爆炸,导致很深的网络无法训练。ResNet在一定程度上解决了这个问题,通过直接将输入信息绕道传到输出,保护信息的完整性,整个网络只需要学习输入、输出差别的那一部分,简化学习目标和难度。ResNet最大的区别在于有很多的旁路将输入直接连接到后面的层,这种结构也被称为shortcut或者skip connections。

网络结构

在ResNet网络结构中会用到两种残差模块,一种是以两个33的卷积网络串接在一起作为一个残差模块,另外一种是11、33、11的3个卷积网络串接在一起作为一个残差模块。他们如下图所示。
2D网络模型总结3:Resnet和DenseNet
ResNet不同的网络结构:
2D网络模型总结3:Resnet和DenseNet

DesNet

2017年CVPR的Best Paper,DesNet脱离了网络层数(ResNet)和加宽网络结构(Inception)来提高网络网络性能的定式思维。从特征的角度,通过特征重用和旁路(Bypass)设置,既大幅减少了网络参数量,又在一定程度上缓解了梯度消失问题的产生,结合了信息流和特征服用的假设。DesNet为了最大化网络中所有层之间的信息流,将网络中的所有层两两都进行了连接,使得网络中每一层都接受它前面所有层的特征作为输入。由于网络中存在着大量密集的连接,作者将这种网络结构称为 DenseNet。其结构示意图如下左图所示:
2D网络模型总结3:Resnet和DenseNet
DenseNet的一个优点是网络更窄,参数更少,很大一部分原因得益于这种dense block的设计,后面有提到在dense block中每个卷积层的输出feature map的数量都很小(小于100),而不是像其他网络一样动不动就几百上千的宽度。同时这种连接方式使得特征和梯度的传递更加有效,网络也就更加容易训练。前面提到过梯度消失问题在网络深度越深的时候越容易出现,原因就是输入信息和梯度信息在很多层之间传递导致的,而现在这种dense connection相当于每一层都直接连接input和loss,因此就可以减轻梯度消失现象,这样更深网络不是问题。另外作者还观察到这种dense connection有正则化的效果,因此对于过拟合有一定的抑制作用。

原文链接:https://blog.csdn.net/u014380165/article/details/75142664/
Pooling Layers;

DenseNets

对于一个卷积网络,假设输入图像x0。该网络包含 L 层,每一层都实现了一个非线性变换Hi(.),其中i表示第i层。Hi(.)可以是一个组合操作,如:BN,ReLU,Pooling或者Conv。将第i层的输出记作xi,
3个dense blocks组成的一个深度DenseNet
2D网络模型总结3:Resnet和DenseNet
当每个 Hi 都产生 k 个特征映射时,它表示第 i 层有 k0+k∗(i−1)个输入特征映射, k0 表示输入层的通道数。DenseNet与已存在的架构的不同在于DenseNet可以有很窄的层,eg: k=12。将超参数 k 称为网络的 growth rate。下表将显示一个相对较小的growth rate就能够获得很好的结果

k=32 conv层表示BN-ReLU-Conv2D网络模型总结3:Resnet和DenseNet