Daily Notes 7.10

  • Imagenet classification with deep convolutional neural networks

Imagenet classification with deep convolutional neural networks

本文提出的 AlexNet,突破性地在 ImageNet 数据集上取得了极好的效果。作者特别自信地表示如果更快的 GPU 和更大的数据集出现,他们可以得到更好地结果。

我注意到一点很有趣的事情,他们处理数据的时候是直接把短边变成 256,然后直接裁中间的那部分。感觉这样很有可能导致最后的输入图像里只有部分信息,不知道是不是都这么做的。(感觉也没有别的办法了?总不能先跑一遍 detection?)另外,他们把图像的像素减去了数据集像素的平均值。

网络总共有8层,其中有5个卷积层和3个全连接层。

文中提出使用 ReLU 是不饱和的非线性函数,在梯度下降的时候训练速度要快。像$f(x)=tanh(x)$ 和 $f(x)=(1+e^{-x})^{-1}$是饱和的非线性函数(从图像可以看出)。

由于网络结构太大显存放不下,本文作者在两个 GPU 上面并行地跑。其中本文要求 GPU 只在特定的层才相互交换信息,来控制信息交换的代价在整个计算过程中的占比。

Local Response Normalization,翻译过来是局部响应归一化。首先又夸了 ReLU 的好处是不需要对输入数据做归一化因为它不饱和 —— 只要给 ReLU 的输入是正的,它的梯度就不为0。然后作者表示发现 local normalization 操作一下之后可以让网络有更好的泛化效果。注意$a_{x,y}^{i}$表示的是在$(x, y)$这个位置操作第i个卷积核的结果。局部归一化就是对每一个a,用相邻的n个卷积核结果来归一化。

其中 $k,n,\alpha, \beta$ 是超参数,在 validation set 上面决定的。这里作者并没有给数据减去它们的平均值。这个操作放在一部分 ReLU 层之后。好像说是 LRN 效果并不明显,在日后新网络结构中使用很少

作者表示发现如果允许池化层池化的部分又重叠,可以让网络不那么容易就过拟合、并减少错误率。

网络目标是最大化一个多项式的 logistic 回归,相当于是最大化数据输出的正确类别的可能性的平均值

文中使用的数据增强方法只需要很少的计算,这样增强之后多出来的数据不需要提前放到硬盘上。实现中用 CPU 来增强数据, GPU 同时训练上一批数据,所以对计算资源没有影响。第一种增强的方法是从256 x 256的图片中随机的取224 x 224的块,然后也加入水平翻转后的结果,这样就把数据集扩大为原来的2048倍。测试的时候也是取出来四个角落和中心的224 x 224的块以及他们的水平翻转,把这十张图的结果求平均当做是原图的测试结果。

第二种数据增强的方法是改变输入数据 RGB 通道亮度。文中对每张图片都做 PCA,$p_1, p_2, p_3$是特征向量,$\lambda_1, \lambda_2, \lambda_3$是特征值。每次图像被用来训练的时候,都重新生成三个$\alpha_i$,然后把原图上的每个像素加上$[p_1, p_2, p_3][\alpha_1 \lambda_1, \alpha_2 \lambda_2, \alpha_3 \lambda_3]^T$。这里面的$\alpha_i$是从一个均值为0,标准差为0.1的高斯随机数发生器产生,注意这里对于同一张图在同一次训练过程中使用同一组$\alpha_i$。作者表示这样操作可以使得学到的物体特征不受亮度和光照颜色的影响,captures an important property of natural images。文中表示实验结果证明可以减少错误率。

同时还使用了 dropout,就是让前两个全连接层的神经元有一定概率(文中0.5)不参与前向和反向传播。这样每次数据输入进来的时候,神经网络都给出一个不一样的结构,但是这些结构是共享权重的。这种操作可以减少神经元之间的依赖,因为如此下来神经元不能依赖于某个其他神经元的存在来处理信息,也就迫使神经元尝试学习到更加强大的可以和其他神经元的随机子集共同工作的特征。在测试的时候,本文中使用全部的节点,只不过把它们的输出都乘上0.5

作者表示初始化权重的时候用标准差为0.01的零均值高斯分布。给某些卷积层的神经元偏置设为1,使得初期阶段传给 ReLU 的输入是正的,其余层的偏置用0初始化。另外,如果在验证集上的错误率停止进步,就把学习率除以10

Terms

Toeplitz matrix

a.k.a diagonal-constant matrix.

主对角线上的元素相等,$A{i,j} = A{i+1,j+1}$

不一定是个方阵

Factorial Distribution

要求一组变量中变量之间没有相互作用

$P(x|y) = P(x)$

non-saturating neurons

不饱和神经元,就是说梯度不接近0,还可以有效地调整权重