DeepLearning-L5-AlexNet
1. 简介
2012年,Alex Krizhevsky, Ilya Sutskever和Geoffrey E. Hinton在论文《ImageNet Classification with Deep Convolutional Neural Networks》中提出AlexNet,夺得ILSVRC 2012的冠军。
AlexNet是最早的现代神经网络,AlexNet证明了CNN在复杂模型下的有效性,使用GPU使得训练在可接受的时间范围内得到结果,推动了有监督深度学习的发展。
主要特点:
- 采用GPU实现:两个GPU并行化计算,采用交叉验证,提高了准确率(第二、三层卷积层之间用了两个GPU的“串联”)
- 采用ReLU**函数:克服了梯度消失问题且收敛速度较快,优于tanh与sigmoid函数
- 采用数据增强:数据增强采用图像平移和翻转来生成更多的训练图像,提升了模型的泛化能力
- 采用Dropout:降低了神经元之间互适应关系,迫使神经元不会过度依赖某个神经元或特征,可学习更为鲁棒的特征,防止过拟合
2. 网络结构
Layer 1 : CONV + POOL
- CONV
- 输入:
- 卷积核:,深度,步长
- 输出:
- Relu**函数
- POOL
- 输入:
- 池化核:最大池化,,步长
- 输出:
- LRN(局部响应归一化)
Layer 2 :CONV + POOL
- CONV
- 输入:(SAME Padding)
- 卷积核:,深度,步长
- 输出:
- Relu**函数
- POOL
- 输入:
- 池化核:最大池化,,步长
- 输出:
- LRN(局部响应归一化)
Layer 3: CONV
- CONV
- 输入:(SAME Padding)
- 卷积核:,深度,步长
- 输出:
- Relu**函数
Layer 4: CONV
- CONV
- 输入:(SAME Padding)
- 卷积核:,深度,步长
- 输出:
- Relu**函数
Layer 5: CONV-POOL
- CONV
- 输入:(SAME Padding)
- 卷积核:,深度,步长
- 输出:
- Relu**函数
- POOL
- 输入:
- 池化核:最大池化,,步长
- 输出:
Layer 6: FC1
- 输入:
- 输出:
- Relu**函数
Layer 7: FC2
- 输入:
- 输出:
- Relu**函数
Layer 8: FC3
- 输入:
- 输出:
- Sigmoid**函数
说明:
- 原始图像大小,经过随机裁剪、旋转等预处理,形成。
- Layer 1中卷积核深度为,由于是分在2个GPU上训练,所以总数为;其他层同理。