在LeNet的基础上,将CNN应用到了很深很宽的网络中。
一共13层,5层卷积,3层全连接,最后是1000个类输出的softmax层用作分类。
新的技术点:ReLU,Dropout、LRN等trick,同时使用了GPU进行加速。
ReLU
之前使用的sigmoid函数,缺点是由于反向传递时梯度爆炸或者梯度消失,(0均值),解析式中有幂计算,耗时。
relu正区间梯度永远是1,不会产生梯度爆炸和消失。负轴为0,可能会导致某些神经元永远不被激活,相应的参数永远都不会被更新。
Dropout
避免过拟合,随机忽略一部分神经元。在最后几个全连接层使用了dropout。
重叠的最大池化
避免平均池化的模糊效果,输出之间有重叠,提升特征丰富性
LRN层
对局部神经元的活动中,响应较大的值变大,抑制响应小的,增强泛化能力。
CUDA
gpu并行计算
数据增强
随机地从256*256的原始图像中截取224*224大小的区域(以及水平翻转的镜像)
如果没有数据增强,仅靠原始的数据量,参数众多的CNN会陷入过拟合中,使用了数据增强后可以大大减轻过拟合,提升泛化能力。
进行预测时,则是取图片的四个角加中间共5个位置,并进行左右翻转,一共获得10张图片,对他们进行预测并对10次结果求均值。
同时,AlexNet论文中提到了会对图像的RGB数据进行PCA处理,并对主成分做一个标准差为0.1的高斯扰动,增加一些噪声,这个Trick可以让错误率再下降1%
alexnet_v2
没有了全连接层,是通过不断地卷积池化,最后一层是4096个1x1的特征图。