几个经典的网络架构:
1.Alexnet
Alexnet是2012年在比赛中夺冠的一个网络。 它有几个缺点:(1)11x11的filter,大刀阔斧的提取特征,这样是不好的,卷积核一般是越小越好
(2)步长为4,过大;
(3)没有加pad填充。
Alexnet是一个8层的网络,有5层的卷积和3层的全连接。
2.Vgg
Vgg是一个2014年出现的网络,它有不同的几个版本,下图中红色框起来的是比较主流的一个版本。它所有的卷积核大小都是3x3的,都是细粒度的进行特征提取,且它的层数有16层或者19层。Vgg还有个特点,当池化的时候会损失一些信息,它会通过特征图的个数翻倍的形式来进行弥补。它的缺点是网络训练的时间较长,假如Alexnet网络的训练时间是8小时,则Vgg网络的训练时间要长达3天。
但是有个问题,Vgg为什么只用到16层,为什么不用17层、20层?因为在实验过程中发现一个问题,所谓的深度学习,从本质上理解,应该是越深越好,但事实上却不是如此。随着卷积层的增加,不一定所有的卷积层做的效果都好,因为它是在之前提取的特征基础上再去提取特征,并不一定能够百分百保证提取的特征比之前的好。这个问题的出现也就给我们带来了Resnet残差网络。
3.Resnet残差网络(Residual Network)
深层网络遇到的问题就是,当网络层数越高的时候,无论在训练集还是在测试集上的错误率都比层数更少的网络要高。当在20层的基础上再加36层时,肯定会有提取特征不好的,会拉高整个网络的错误率。需要达到的效果就是,既要把网络层数堆叠起来,还不能让那些效果比较差的层影响网络的作用。
解决办法:对网络层进行选择,保留能够促进网络效果的层,舍弃对网络起抑制作用的层,但并不是直接不要那些效果不好的层。2015年,Resnet网络的作者提出了同等映射,也就是加进来的那些层,即使它效果不好,那么把它的权重参数设为0,让它为0就行。
假如有A、B、C三个层,如果B的效果不好,让它为0的话,那么A和C就断开了,但是如果将A同等映射到C,则B的有无并不会影响整个网络。
传统网络层数越高,错误率越高;Resnet网络层数高,错误率反而较低.