最新版的d2l主要介绍了LeNet、AlexNet、VGG、NiN、GoogLeNet、ResNet和DenseNet。此处做个小总结。仅做个人记录。
CNN | 贡献 | 激活函数 | 网络组成 |
LeNet | 用卷积层替代全连接层,最初用于手写数字识别 | sigmoid | 2个卷积层+2个平均池化层+3个全连接层 |
AlexNet | 第一个在大规模视觉竞赛中击败传统模型的大型神经网络 | ReLU | 5个卷积层+3个池化层+3个全连接层 |
VGG | 使用可复用的VGG block构造网络,可以有效地设计复杂网络 | ReLU | 5个VGG block(前两个有1个卷积层,后三个有2个卷积层,每个block最后都以1个最大池化层结束)+3个全连接层(前两层使用了dropout,失活率为0.5) |
NiN | 每个NiN block中由一个卷积层和两个1*1卷积层组成,完全取消了全连接层,显著减少了模型参数,但有时会提升训练时间 | ReLU | 4个NiN block,前3个block后面接1个3*3/2的最大池化层,最后接一个全局平均池化层 |
GoogLeNet | 使用inception block,将不同大小的卷积核的输出进行通道合并,大幅降低了模型复杂度 | ReLU | 2个卷积层+1个1*1卷积层+4个最大池化层+2+5+2个inception block(4个通道并行通道连接)+1个全局平均池化层+1个全连接层 |
ResNet | 使用残差连接的residual block,使得更深的网络会有更好的性能,同时引入BN,使得网络更加稳定 | ReLU | 1个卷积层+1个BN+1个最大池化层+2个不改变输出通道的residual block(两套Conv+BN+ReLU,输入直接与输出相加)+3个改变输出通道的2*residual block(输入通过1*1卷积改变通道数与输出相加)+1个全局平均池化层+1个全连接层 |
DenseNet | 将ResNet的相加改为通道维连结,使得最后一层与之前所有层紧密相连,由dense block和transition layer组成,前者定义连结输入和输出,后者控制通道数量,防止过于复杂 | ReLU | dense block(4个BN+ReLU+Conv)+transition layer(BN+1*1Conv+AvgPool)+BN+1个全局平均池化层+1个全连接层 |