AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的。也是在那年之后,更多的更深的神经网路被提出,比如优秀的vgg,GoogleLeNet。其官方提供的数据模型,准确率达到57.1%,top 1-5 达到80.2%. 这项对于传统的机器学习分类算法而言,已经相当的出色。
上图所示是caffe中alexnet的网络结构,上图采用是两台GPU服务器,所以会看到两个流程图。下边把AlexNet的网络结构示意一下:
评价:
(1) AlexNet使用ReLU代替了Sigmoid,其能更快的训练,同时解决sigmoid在训练较深的网络中出现的梯度消失,或者说梯度弥散的问题。激活函数的主要作用是引入了非线性。
(2) 随机dropout一些神经元,以避免过拟合。
(3) 在以前的CNN中普遍使用平均池化层average pooling,AlexNet全部使用最大池化层 max pooling,避免了平均池化层的模糊化的效果,并且步长比池化的核的尺寸小,这样池化层的输出之间有重叠,提升了特征的丰富性。
(4) 提出LRN层,局部响应归一化,对局部神经元创建了竞争的机制,使得其中响应较大的值变得更大,并抑制反馈较小的。(强者更强,弱者更弱)
(5) 使用了gpu加速神经网络的训练。
(6) 使用数据增强的方法缓解过拟合现象。
VGG深度学习模型主要从Alex-net发来而来,其在Alex-net基础上,主要修改了两个方面:
i.在第一个卷基层使用更小的filter尺寸和间隔。
ii.在整个图片和multi-scale上训练和测试图片。
1.VGG网络配置结构
2.VGG结构解释
(1)VGG全部使用3*3卷积核、2*2池化核,不断加深网络结构来提升性能。
(2)A到E网络变深,参数量没有增长很多,参数量主要在3个全连接层。
(3)训练比较耗时的依然是卷积层,因计算量比较大。
(4)VGG有5段卷积,每段有2~3个卷积层,每段尾部用池化来缩小图片尺寸。
(5)每段内卷积核数一样,越靠后的段卷积核数越多:64-128-256-512-512。
3. VGG理解
VGG16输入224*224*3的图片,经过的卷积核大小为3x3x3,stride=1,padding=1,pooling为采用2x2的max pooling方式:
1.输入224x224x3的图片,经过64个卷积核的两次卷积后,采用一次pooling。经过第一次卷积后,c1有(3x3x3)个可训练参数。
2.之后又经过两次128的卷积核卷积之后,采用一次pooling。
3.再经过三次256的卷积核的卷积之后,采用pooling。
4.重复两次三个512的卷积核卷积之后再pooling。
5.三次Fc。
AlexNet 是一种典型的 convolutional neural network,它由5层 convolutional layer,2层 fully connected layer,和最后一层 label layer (1000个node, 每个node代表ImageNet中的一个类别) 组成。2012年,deep learning的大牛教授 Geoffrey Hinton (University of Toronto, Google) 的学生Alex Krizhevsky 设计了一个8层的CNN,并把它用于ImageNet的image classification,直接把当时最好算法的错误率差不多减半。这引起了computer vision community 的强烈关注。这篇文章的出现也是 deep learning 开始被 computer vision community 接受的关键转折点。如是后来大家把这个8层的CNN命名为AlexNet。
VGG-Net同样也是一种CNN,它来自 Andrew Zisserman 教授的组 (Oxford),VGG-Net 在2014年的 ILSVRC localization and classification 两个问题上分别取得了第一名和第二名,VGG-Net不同于AlexNet的地方是:VGG-Net使用更多的层,通常有16-19层,而AlexNet只有8层。另外一个不同的地方是:VGG-Net的所有 convolutional layer 使用同样大小的 convolutional filter,大小为 3 x 3。
AlexNet和VGG-Net 中的 feature
Deep learning 实际上是一种 feature engineering 的方法。不论是AlexNet还是VGG-Net,倒数第二层都可以很好的描述image全局特征,所以它们通常用来当作 input image 新的 feature,用来做 image classification(最后一层N个node的softmax层,代表了N个类别)。那么, AlexNet 和 VGG-Net 的 intermediate layer(中间层)呢? 他们是否也可以作为特征来使用? 答案是肯定的。 这些 intermediate convolutional layer 描述了影像的 local feature (局部特征),而最后的几层(倒数第二、第三层) fully connected layer,描述了影像的 global feature (全局特征)。如果一个 deep architecture 只有 convolutional layer, 那么 input image 可以任意大小,可是一旦在convolutional layer 上面叠加上 fully connected layer,input image大小就需要固定了。今年CVPR有好多文章使用 convolutionally filtered intermediate layer 作为 local feature,典型的代表有 Jitendra Malik (Berkeley) 组的 Hypercolumns for Object Segmentation and Fine-grained Localization,Xiaoou Tang (CUHK) 组的 Action Recognition With Trajectory-Pooled Deep-Convolutional Descriptors。
参考:
https://blog.csdn.net/malele4th/article/details/79404731?utm_source=blogxgwz4
https://blog.csdn.net/Errors_In_Life/article/details/65950699?utm_source=blogxgwz11
https://blog.csdn.net/gbyy42299/article/details/78969261
https://blog.csdn.net/roguesir/article/details/77051250?utm_source=blogxgwz4
https://blog.csdn.net/wcx1293296315/article/details/79995851