卷积神经网络详解下
- LeNet-5
- AlexNet
- ZFNet
- VGGNet
- GoogLeNet
- ResNet
LeNet-5
LeNet-5的结构是卷积-池化-卷积-池化-全连接层。
AlexNet
AlexNet:最后的1000个神经元对应1000种分类。
AlexNet第一次使用了ReLU,使用了现在不常用的规范化,对数据进行了数据增强,在全连接层使用了dropout p=0.5,batch size =128,使用的更新方法是SGD momentum,mu=0.9,学习率设置为1e-2,每当准确率变化趋于平缓时,手动将学习率缩小十倍,有一个L2权值衰减,权值为5e-4,即在损失函数后面加上.此外实验发现用单卷积模型的错误率是18.4%而使用七个卷积模型的集成模型错误率可以降低到15.4%。
注意到AlexNet的分类前一层的全连接层命名为fc7,很多其他网络经常用fc7层指分类前一层的全连接层。
ZFNet
ZFNet是在AlexNet的基础上做的改进,首先CONV1层,AlexNet的卷积滤波器,stride=4,ZFNet认为活动步伐太大,跳过了很多信息,所以将其改,stride=2,这样可以做更密集的运算。CONV3、CONV4、CONV5ALexNet的滤波器个数是384、384、256,ZFNet认为更多的滤波器更多的层可以得到更好的效果,将滤波器个数改为512、1024、512。将错误率有15.5%减少到14.8%。
VGGNet
VGGNet不像ZFNet一样关注滤波器的大小,整个VGGNet都使用的滤波器,pad和stride均为1。VGGNet的关键在于网络层数。但是VGGNet的参数特别多,占用内存较大,计算量也较大。
GoogLeNet
GoogleNet引入了感知模块,计算量比VGGNet小。
ResNet
之前提出的卷积网络被称为plain net,从图中可以看出plain net层数越多效果越差,而Resnet层数越多效果越好。
再看34层的plain net与Resnet的结构图:
Resnet与plain net不同的是每两个卷积层都有一个跳跃连接。如下图所示。
从上图可以看出,Resnet中的H(x)不再与x无关。
Resnet训练:(1)每一个卷积层后都有一个BN。(2)Xavier/2权值初始化。(3)更新方法:SGD+momentum(0.9)。(4)学习率设置为0.1,每次验证集的错误率变化趋于平缓时,学习率缩小十倍。(5)batchsize 256(6)权值衰减率是1e-5(6)没有dropout。