AlexNet论文笔记
一、Alexnet综述:AlexNet有五层网络,6千万个参数,65万个神经元,运用3个全连接层处理,1个最大值池化层,并运用“dropout”的正则化方法防止过拟合。
二、数据集:不做任何预处理的ILSVRC数据集,下采样至256x256大小的原生图片。
三、架构:如图所示
3.1、包含8层网络,其中5层卷积层,3层全连接层;
3.2、创造性的选用Relu激活函数,该函数为不饱和激活函数,相较于传统的激活函数sigmod或者tanh有明细的计算优势,也有防止过拟合的作用;
3.3、一块GPU放不下整张网络,就把网络分配到两块GPU上面进行交叉运算;
3.4、局部响应归一化,可以提高识别率(后来证明LRN对CNN并没有什么作用,反而增加了计算复杂度)
3.5、传统池化层,会拿池化核的边长Z与步长S一致,但AlexNet,使得S<Z,使得局部池化部分得以重叠,这样重叠池化比不重叠池化更不易出现过拟合。
3.6、总体架构,直接上NG老师的图,和论文上不通的是输入从224x224x3变成227x227x3是一个更合理的方式
四、降低过拟合
4.1、数据增强:首先是通过在256x256的图像上取224x224的大小的图片,选取的位置是四个角和中心,这样就有5张不同的图片数据,再把图像水平翻转,再去一次224x224大小的图片按照上述取法,在得到5张图片,一张256x256的图片变成了10张224x224的图片,(论文中为224,实际可以取成227);
其次针对RGB的主成分分析,在主成分的倍数,即大小成正比的对应特征值乘以一个随机变量,随机变量进行一个标准差为0.1,均值为0的高斯滤波,对图像进行增强,这样的好处可以模拟自然,减少光照和色彩对结果的影响
4.2、Dropout: 联合多个模型进行学习是很好能降低错误的方法,但针对AlexNet来说,这样的训练代价太过昂贵,AlexNet利用神经元的随机归零dropout的方法,即让每层神经元有0.5的概率归为0,这样正向计算和反向传播值都为0,这样每次训练有不同的神经元输出归零,使得每个神经元都能够发挥自己最大的作用,在测试阶段,使用所有的神经元但它们的输出乘以0.5,
dropout在前两个全连接层中使用,避免过拟合。