AlexNet:深度卷积神经网络
AlexNet简介
AlexNet是2012年ISLVRC 2012(ImageNet Large Scale Visual Recognition Challenge)竞赛的冠军网络,分类准确率由传统的 70%+提升到 80%+。它是由Hinton和他的学生Alex Krizhevsky设计的。也是在那年之后,深度学习开始迅速发展。
AlexNet的优势
论文中采用多个GPU并行训练数据,加快了训练过程
使用了 ReLU 激活函数,而不是传统的 Sigmoid 激活函数以及 Tanh 激活函数。
局部响应归一化(Local Response Normalization, LRN)
- 首先,局部响应归一化是一种在卷积神经网络中常用的技术,目的是在网络的某些层中减少神经元之间的干扰,从而提高网络的泛化能力。这种技术通过规范化神经元的输出来实现。
Dropout
- 使用 Dropout 的方式在网络正向传播过程中随机失活一部分神经元:
AlexNet卷积过程
经卷积后的矩阵尺寸大小计算公式为: N = (W − F + 2P ) / S + 1
- 输入图片大小 W×W
- Filter大小 F×F
- 步长 S
- padding的像素数 P
Cov 1
:
kernels
: 48 * 2 = 96kernel_size
: 11padding
: [1, 2] (左边上边补充一列padding,右边下边补充两列padding)stride
: 4
N = (W − F + 2P ) / S + 1 = (224 - 11 + 1 + 2) / 4 + 1 = 55
input_size = [224,224,3] output_size = [55,55,96]
Maxpool 1
:
kernels
: 3padding
: 0stride
: 2
该池化层使得宽高减半,通道数不变
input_size = [55,55,96] output_size = [27,27,96]
Cov 2 :
kernels
: 128 * 2 = 256kernel_size
: 5padding
: [2, 2]stride
: 1
N = (W − F + 2P ) / S + 1 = (27 - 5 + 2 * 2) / 1 + 1 = 27
input_size = [27,27,96] output_size = [27,27,256]
Maxpool 2
:
kernels
: 3padding
: 0stride
: 2
该池化层使得宽高减半,通道数不变
input_size = [27,27,256] output_size = [13,13,256]
Cov 3
:
kernels
: 192 * 2 = 384kernel_size
: 3padding
: [1, 1]stride
: 1
N = (W − F + 2P ) / S + 1 = (13 - 3 + 2 * 1) / 1 + 1 = 13
input_size = [13,13,256] output_size = [13,13,384]
Cov 4
:
kernels
: 192 * 2 = 384kernel_size
: 3padding
: [1, 1]stride
: 1
N = (W − F + 2P ) / S + 1 = (13 - 3 + 2 * 1) / 1 + 1 = 13
input_size = [13,13,384] output_size = [13,13,384]
Cov 5
:
kernels
: 128 * 2 = 256kernel_size
: 3padding
: [1, 1]stride
: 1
N = (W − F + 2P ) / S + 1 = (13 - 3 + 2 * 1) / 1 + 1 = 13
input_size = [13,13,384] output_size = [13,13,256]
Maxpool 3
:
kernels
: 3padding
: 0stride
: 2
该池化层使得宽高减半,通道数不变
input_size = [13,13,256] output_size = [6,6,256]
AlexNet模型构建
1 |
|
AlxeNet模型训练
1 |
|