AlexNet

论文:ImageNet Classification with Deep Convolutional Neural Networks

本文仅记录个人阅读论文的收获和思考。

Introduction

1

1
To improve their performance, we can collect larger datasets, learn more powerful models, and use better techniques for preventing overfitting. 

用机器(深度)学习解决问题的三个理论上的关键。

需要解决的问题越复杂, 除对应所需的数据需要更多以外, 模型也需要更加复杂(学习容量更大), 如此随训练进行过拟合的程度会提高。

此外, 显卡也是关键。

2

用深度学习解决问题的基本要素包括以下:

  • 数据集

  • 模型, 包括输入数据, 变换(线性、卷积、池化等)层, 激活函数层, 初始权重。

  • 训练, 包括损失函数, 梯度计算, 参数更新, 过拟合问题。

为了更好的解决问题, 以上问题都应考虑, 论文里也多处体现。

The Architecture

1

1
2
3
4
Deep convolutional neural networks with ReLUs train several times faster than their equivalents with tanh units.

... the accelerated ability to fit the training set which we report when using ReLUs.

文中反复强调了 Relu 激活函数的优点之一: 加速训练。

2

Local Response Normalization

对卷积层的结果进行动态权重正则化。

公式:

$$ b_{x,y}^i = a_{x,y}^i/(k+\alpha \sum_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(a_{x,y}^j)^2)^\beta $$

$a_{x,y}^i$ 为第$i$个 kernel 在$(x, y)$位置的运算结果。

大概是根据相邻的几个 kernel 运算结果进行正则化。

原论文中设置超参数 $k=2,\beta=0.75$, 当相邻的卷积核运算结果越大时, 其惩罚会越大。

3

Overlapping Pooling

带重叠区域的池化可以提高模型的准确度。

Reducing Overfitting

1

1
2
3
4
5

We do this by extracting random 224 × 224 patches (and their horizontal reflections) from the 256×256 images and training our network on these extracted patches.

At test time, the network makes a prediction by extracting five 224 × 224 patches (the four corner patches and the center patch) as well as their horizontal reflections (hence ten patches in all), and averaging the predictions made by the network’s softmax layer on the ten patches.

数据增强

1

256*256 的图片中截取 224*224 的图片, 并进行水平翻转, 将数据量扩大到 2*(256-224)^2=2048 倍。

预测时取四角加中心并水平翻转得到10张图片。 用这10张图片预测取平均值得到结果。

2

RGB 进行 PCA 处理, 并添加噪声。

不是很懂。