最近在折腾CNN常见的几个网络模型以及相关源码的解读,以下是这段时间对这些网络的认识总结。谨用文字描述如下,望能对你有所帮助。
1、Alexnet
是一个7层网络,5层卷积,2层全连接4096神经元。包含特色ReLu、LRN、pool。同时该网络卷积层采用的是一种并行结构,并行运算使得计算更加快速!
2、VGGNet
根据卷积层数不同,有几个变种,经典有VGG16和VGG19,是AlexNet更深的表现,主要是在卷积层上增加,连续做卷积的次数,alexNet主要是做一次卷积就过一次激活函数以及pool,而VGGNet做连续的卷积,卷积核相比alexnet变小!
3、GoogleNet
也称为inception,根据不断的改进,有inceptionv1:采用多种形式卷积核做多路卷积,最后再concat。inceptionv2:降解大的卷积,改用多个小卷积同时保证相同的感受域!inceptionV3:将参数更是下贱,2D的卷积核改用1D形式,inceptionV4:引入1*1卷积,使得参数更加减少,同时提升模型的非线性表达能力。同时inception的一大特色是使用了BN,使得网络可以更加深可训,此外还有加入resnet等其他变种!所谓的concat是一种通道合并!
4、Resnet
残差网络也是一种提升网络深度可训的方法,将上一层的结果+昨晚操作之后的结果然后输出到下一层,目的是使得梯度尽量的回传到浅层网络,压制梯度消失出现。Resnet网络的深度可以达到上千层!代码实现也是非常简单,残差输出节点做加法输出即可!