AlexNet网络结构
AlexNet每层中的超参数数量:
其输入、输出及每层训练参数计算如下:
层 | 输入尺寸 | 卷积核大小 | 卷积核个数 | 步长 | 输出尺寸 | 超参数数量 |
---|---|---|---|---|---|---|
Conv | 224x224x3 | 11x11x3 | 96 | 4 | (224-11)/4+1 = 54.25 ~ 55, 55x55x48x2,x2表示两部分 | (3*11*11+1)*96=34944~35k |
Local Response Norm | - | - | - | - | - | - |
Max Pool | 55x55x48,两块GPU并行处理,每个处理48个feature maps | 3x3 | - | 2 | (55-3)/2+1=27, 27x27x48 | - |
Conv | 总输入27x27x96,96表示feature maps个数,单个GPU 27x27x48,48个feature maps | 总共5x5x96,单个GPU为 5x5x48 | 总共256,每个GPU128 | 1 | 卷积前经过padding使操作后尺寸不变,每个GPU输出27x27x128 | (48*5*5+1)*128*2=307456~307k |
Local Response Norm | - | - | - | - | - | - |
Max Pool | 27x27x128,两块GPU并行处理,每个处理128个feature maps | 3x3 | - | 2 | (27-3)/2+1=13, 13x13x128 | - |
Conv | 总输入13x13x256,256表示feature maps个数 | 3x3 | 192x2 | 1 | 卷积前经过padding使操作后尺寸不变,13x13x192 | (3*3*256+1)*192*2=885120 |
Conv | 总输入13x13x384,单个GPU 13x13x192 | 3x3 | 192x2 | 1 | 卷积前经过padding使操作后尺寸不变,每个GPU输出13x13x192 | (3*3*192+1)*192*2=663936 |
Conv | 1总输入13x13x384,单个GPU 13x13x192 | 3x3 | 128x2 | 1 | 卷积前经过padding使操作后尺寸不变,每个GPU输出13x13x128 | (3*3*192+1)*128*2=442624 |
Max Pool | 13x13x256 | 3x3 | - | 2 | (13-3)/2+1=6, 6x6x256 | - |
FC | 展平后43264x1 | - | - | - | 4096 | 43264*4096=177209344 |
FC | 4096x1 | - | - | - | 4096 | 16777216 |
AlexNet中的新技术:
(1) 使用了ReLU
解决了深层网络使用Sigmoid出现梯度弥散的问题。
(2) 使用Dropout减轻过拟合
在两个全连接层中使用了dropout。
几种解析:
-
组合解析:
每次dropout相当于训练一个子网络;
最终结果相当于多个自网络的组合。 -
动机解释:
消除了神经元之间的依赖,增加泛化能力 -
数据解析:
对于dropout后的结果,总能找到与之对应点样本,等价于数据增强
(3) 使用重叠最大池化
池化过程中使用的步长比池化核尺寸小,池化的输出之间会有重叠和覆盖。
(4) 提出LRN(local response norm 局部响应标准化)层
使响应比较大的值变得相对较大,抑制其他反馈小的神经元。但是其他网络很少使用,因为效果不明显,还有一个问题就是导致前馈和反馈的速度大大降低。
(5) 使用了GPU进行加速
(6) 数据增强
对256x256尺寸的图片随机采样出多张224x224尺寸的图片用于训练;
对图片进行水平翻转