1.前言
好久没有更新专栏了,最近因为项目的原因接触到了PyTorch,感觉打开了深度学习新世界的大门.闲暇之余就用PyTorch训练了最近在图像分类上state-of-the-art的CNN模型,正好在文章中总结如下:
- ResNet [1, 2]
- Wide ResNet [3]
- ResNeXt [4]
- DenseNet [5]
- DPNet [9]
- NASNet [10]
- SENet [11]
- Capsules [12]
本文复现了上述论文在CIFAR数据集(包括cifaro10和cifar100)上的结果([9]除外),代码已经放在github上了:
这篇主要介绍前四个结构.
2.分析与复现结果
2.1 ResNet
ResNet是近年来CNN结构发展中最为关键的一个结构,后面非常多的insight都是在resnet基础上进行改进,也有非常多的论文旨在分析残差结构的有效性.ResNet的成功首先得益于其结构的简单有效,其次得益于它的广泛适用.一个简单的残差块如下图所示:
这个单元用可以由以下公式来表述:
在resnet的大多数结构块中, 亦即恒等映射,只有非常少的几个需要进行维度匹配而使用了1x1的卷积层来增加维度,而f则是ReLU函数.
假设从上一层传来的loss为