resnet系列网络
解决的问题
resnet的提出,是为了解决随着网络深度的增加,出现的精度退化问题,导致更高的训练误差。resnet提升了网络的深层表达能力。
创新点
为了解决优化的难题,提出了残差块结构。
假设原始的映射为H(x),则残差网络拟合的映射为:F(x)=H(x)-x。
网络结构
其中,残差块结构有两种:
ResNet-50以下(resnet18/34)使用两个3x3卷积结构。
ResNet-50/101/152采用bottleneck结构,先降维后升维,这样可以减少网络参数量。
resnet和vgg参数量对比
以resnet50和vgg16为例进行对比:
同等输入条件:Input_shape = (224,224,3),classes=1000
resnet50参数量:
Total params: 25,636,712
Trainable params: 25,583,592
Non-trainable params: 53,120
vgg16参数量
Total params: 138,357,544
Trainable params: 138,357,544
Non-trainable params: 0
vgg16参数量(未加最后两层全连接FC-4096)
Total params: 39,803,688
Trainable params: 39,803,688
Non-trainable params: 0
可以看出,尽管resnet50的层数更多,但是由于shortcut和bottleneck的应用,使其参数量更少。