关于AlexNet的一些个人看法,如有错误欢迎指出。参考《TensorFlow实战》之6.1,P98
网络构架如下:
- conv1:(11*11*3*64),stride=4,padding='SAME',lrn,pool1:3*3,stride=2,padding='VALIDE'
- conv2:(5*5*64*192),sreide=1,padding='SAME',lrn,pool2:3*3,stride=2,padding='VALIDE'
- conv3:3*3*192*384,stride=1
- conv4:3*3*384*256,stride=1
- conv5:3*3*256*256,stride=1,padding='SAME',pool5:3*3,stride=2padding='VALID'
图片链接:https://www.cs.toronto.edu/~frossard/post/vgg16/#files
highlig
1.成功使用ReLU函数替代Sigmoid作为激活函数。解决了sigmoid函数网络较深时梯度弥散问题。(后续详细解释两个激活函数的不同)
2.Drop随机忽略一部分神经元,避免过拟合
3.使用重叠的的最大池化,避免平均池化的模糊化效果,AlexNet提出了步长小于卷积核尺寸。这样的处理池化层的输出之间会有重叠和覆盖,提高特征泛化能力,提升特征丰富性。
4.提出了LRN层。对局部神经元活动创造竞争机制,使得其中响应比较大的值变得相对更大,抑制其他反馈较小的神经元,增加模型泛化能力。参考博客:https://blog.csdn.net/yangdashi888/article/details/77918311
5.CUDA加速,并行运算能力。(显存)
6.数据增强。随机截取224*224大小区域(以及水平翻转镜像),相当于增加了的数据量,进行测试时,取图片四个角加中间共五个位置,左右翻转或的十张图片,预测并求取平均值。
预处理:对RGB图像进行PCA处理,对主要成分做标准差为0.1的高斯扰动,增加噪声,可以使错误率下降1%