一、一些背景
1.ImageNet LSVRC-2012 竞赛
ImageNet 数据集有超过 1500 万的标注高分辨率图像,这些图像属于大约 22000 个类别;
在LSVRC-2012取得了 top-5 15.3%的错误率;
(top- 5 错误率是指测试图像的正确标签不在模型认为的五个最可能的便签
之中的分数)
2.历史意义
为什么会有AlexNet?
在AlexNet之前:处理的数据集较小(几万张图像的数量级)(如Mnist);
AlexNet出现后:
处理的数据集可以很大(从数百万张图像中学习几千个对象);
并且不会出现严重的过拟合;
3.创新点综述
为加快训练,采用非线性激活函数:ReLU;
在多个GPU上训练:提高效率;
局部响应归一化:LPN;
重叠池化:Overlapping Pooling;
总体架构:AlexNet由5个卷积层和三个全连接层构成,共计6000万参数,65万个神经元;
减少过度拟合:数据增强+Dropout;
二、在讨论整体结构之前
1.ReLU 非线性激活函数
好处:ReLU函数的优点即为训练的时间更快
2.在多 GPU 上训练
采用两路GTX 580 3G并行训练;
卷积层全部使用两路GPU其中两个支路是分开的;
第三层之间是串联的的(交叉验证);
到了最后全连接层全部连接起来。
好处:降低错误率,减少训练时间
训练结果
两个GPU训练出来的卷积核特征不同:
3.局部响应归一化LRN
将每一层的每个神经元与周围的N个神经元进行归一化
这样做可以让同一位置不需太多高激活神经元,模仿人类的神经元激活,一个神经元激活会抑制他周围的神经元激活
好处:ReLU本来是不需要对输入进行标准化,但本文发现进行局部标准化能提高性能。
注:该操作没有意义,后续论文将该机制推翻,不过多解释(?)
4.重叠池化 Overlapping Pooling
————————————————
补课:
卷积层:特征提取(如锐化,取局部特征);
池化层:取区域平均或最大(保留主要的特征同时减少参数和计算量,防止过拟合,提高模型泛化能力)(1080p -> 720p)
————————————————
链接: 对重叠的理解
好处:降低错误率,防止过拟合
三、整体结构
————————————————
补课:
卷积核(kernel)和过滤器(filter)的区别:
卷积核是二维的,滤波器是三维的(高维,也可能是四维的)
————————————————
全连接8:用softmax函数将明显的特征扩大,将不明显的特征缩小,同时保证他们的概率相加为1,最后输出
————————————————
补课:
softmax函数:又称归一化指数函数,目的是将多分类的结果以概率的形式展现出来;
全连接层作用:卷积取的是局部特征,全连接就是把以前的局部特征重新通过权值矩阵组装成完整的图。(用拼图来理解)
————————————————
四、减少过拟合的方法
1.数据增强
通过水平翻转、随机裁剪、颜色调整、光照变换来扩充数据集
数据增强的步骤是在cpu上进行,模型训练上一批数据时,下一次的数据通过cpu生成
2.丢弃(Dropout)
一言以蔽之:随机掐死部分神经元
掐死:使一些神经元的权重w为0。
每个神经元失活的概率为0.5
作用:
这种方式使一部分的神经元参与模型的训练,变向地做到了训练多个模型最后取平均的结果,因为每次一小部分神经元组成的神经网络就是一个模型。也就是说每次只有一部分的神经元组成的网络适应一些训练数据,这样得到的就很好的缓解过拟合
五、一些结果
题外话:
在AlexNet问世之后,CNN以一个很快的速度发展,截止到2017年,已经有了多代的网络结构问世,深度、宽度上也越来越大,效率和正确率上也越来越好:
AlexNet—VGG—GoogLeNet—ResNet
在这些结构中:
VGG比AlexNet有更深的网络结构,将大的感受野替换成了小的感受野;
GoogLeNet引入了Inception模块;
ResNet引入了残差学习单元(Residual Unit);