AlexNet 学习小记

参考很多,仅为个人学习记录使用

 

论文:ImageNet Classification with Deep Convolutional Neural Networks

发表时间:2012

一、网络结构(pytorch)

输入:227 * 227 * 3 (论文中写 224)

第一块:

conv: (227 - 11) / 4 + 1 = 55    3 -> 64

pool: (55 - 3) / 2 +1 = 27    64 -> 64

nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2)

第二块:

conv: (27 - 5 + 2 * 2) / 1 + 1 = 27    64 -> 192

pool: (27 - 3) / 2 + 1 = 13                192 -> 192

nn.Conv2d(64, 192, kernel_size=5, padding=2),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2)

第三块:

conv: (13 - 3 + 1 * 2) / 1 + 1 = 13    192 -> 384

conv: (13 - 3 + 1 * 2) / 1 + 1 = 13    384 -> 256

conv: (13 - 3 + 1 * 2) / 1 + 1 = 13    256 -> 256

pool: (13 - 3) / 2 + 1 = 6                  256 -> 256

nn.Conv2d(192, 384, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.Conv2d(384, 256, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.Conv2d(256, 256, kernel_size=3, padding=1),
nn.ReLU(inplace=True),
nn.MaxPool2d(kernel_size=3, stride=2)

第四块:

Drop -> Linear -> ReLU -> Drop -> Linear -> ReLU -> Linear

nn.Dropout(),
nn.Linear(256 * 6 * 6, 4096),
nn.ReLU(inplace=True),
nn.Dropout(),
nn.Linear(4096, 4096),
nn.ReLU(inplace=True),
nn.Linear(4096, num_classes)

二、网络特点

1.ReLU

使用了 ReLU 作为激活函数,论文中用一个 4 层的卷积网络,分别使用 ReLU 和 tanh 作为激活函数,比较了在 Cifar-10 上准确率达到 75% 时的速度。得出 ReLU 能大幅加快收敛速度的结论(ReLU 比 tanh 快 6 倍)。

 

2.LRN(Local Response Normalization)

论文中提出使用了 LRN 后 AlexNet 在 ImageNet 上的准确率有提高,但是这个方法除了 AlexNet 基本没有别的网络使用。且 LRN 会降低网络速度。

3.Overlapping Pooling

一般的 pooling 方法是无重叠的,AlexNet 中使用尺寸为 3,步长为 2 的池化块,发现更难过拟合,泛化能力有提高(准确率有微弱提高:top1和top5分别提升0.4%和0.3%)

4.Dropout

每个神经元都有一定的几率被 drop 掉,相当于在大模型中抽样出子模型,可以避免网络对某些神经元的依赖,迫使网络寻找更具有鲁棒性的特征。可以有效的减少过拟合。

三、数据增强

1.随机裁剪 + 水平翻转

将原始图片 resize 到 256 * 256,然后随机 crop 出 227 * 227 的图片,再进行水平翻转,那么每张原始图像就有 (256 - 227 + 1) *  (256 - 227 + 1) * 2 = 1682 种出现方式,相当于把训练集扩充了 1682 倍(论文中 crop 大小为 224,倍数为 32 *32 * 2 = 2048)。

测试时选取图像的四个角和中心位置的图像,再对每张图像进行水平翻转,最终得到 10 张图像,将这 10 张图像作为输入,取其测试结果的平均值作为该测试图片的最终结果。

2.像素增强

 

先在整个训练集图像上用 PCA 计算 RGB 通道上的主成分,然后对每张训练图片进行颜色增强,引入参数 alpha,这个参数是用均值为 0,标准差为 0.1 的高斯随机数发生器随机产生的,每当遇到同样的训练图片时,就获得一个新的 alpha 值用于增强该训练图片。像素增强的公式如下

I′xy=Ixy+[p1,p2,p3][α1λ1,α2λ2,α3λ3]T

用这个方法使 AlexNet 的 Top-1 错误率降低了 1%

四、训练过程

用了带动量的 SGD,动量 0.9

初始学习率 0.01,在验证集准确率不变时对现有学习率除 10

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值