博客:blog.shinelee.me | 博客园 | CSDNgithub
本文重点在于回顾深度神经网络在CV领域的First Blood——AlexNet,AlexNet是首个在大规模图像识别问题取得突破性进展的深度神经网络,相比基于SIFT+FVs、稀疏编码的传统方法,性能提高了10多个百分点(error rate 26.2% → 15.3%,ILSVRC-2012),并由此开启了深度神经网络血洗CV各领域的开端,以下图所示(SuperVision即AlexNet)。spring
截止本文时间2019年9月2日,AlexNet论文的引用量达45305,论文做者Alex Krizhevsky、Ilya Sutskever和“深度学习之父”Geoff Hinton。网络
AlexNet的原始网络结构以下,能够参见caffe的网络定义bvlc_alexnet,pytorch等也给出了变种实现,见torchvision/models/alexnet.py。app
整个网络大致由5个卷积层和3个全链接层组成,受限于当时的计算资源,网络经过2块GTX580 3GB的GPU训练,上图可见,整个网络上下一分为二,各用1块GPU训练(在caffe中经过group层实现),每一个GPU放一半的神经元,网络中第3个卷积层和3个全链接层跨GPU链接。与使用单个GPU和50%神经元的网络相比,这个双GPU方案的Top1和Top5错误率分别下降了1.7%和1.2%。ide
每层的配置以下,第一个卷积层的kernel size为11,stride为4:函数
为了得到最佳表现,论文中综合应用了不少技术,有些后来已成为通用的标准作法。性能
使用ReLU做为激活函数,做为non-saturating非线性激活函数有效避免了梯度消失问题,同时与tanh(saturating非线性激活函数)相比,训练速度提高了数倍(CIFAR-10上训练达到25%错误率速度快了6倍)。学习
多GPU训练,实际上至关于增长了网络的宽度,如上节所述,Top1和Top5错误率比单GPU网络分别下降了1.7%和1.2%。编码
提出了LRN(Local Response Normalization)层,使用相邻\(n\)个特征图上同位置的值对当前值进行归一化,公式以下。LRN被认为没有太大效果,已不被后来者采用。
\[ b_{x, y}^{i}=a_{x, y}^{i} /\left(k+\alpha \sum_{j=\max (0, i-n / 2)}^{\min (N-1, i+n / 2)}\left(a_{x, y}^{j}\right)^{2}\right)^{\beta} \]
使用Overlapping Max-Pooling,如上节图中,Pooling层的kernel size \(z=3\),stride \(s=2\),\(z > s\),与\(s=z=2\)相比,Top1和Top5错误率分别降低了0.4%和0.3%。
经过Data Augmentation数据增广下降过拟合,提升预测准确度
对前2个全链接层使用Dropout技术,训练时每次随机让50%的神经元输出为0,以此来下降过拟合,预测时将权重乘以0.5。这样能够强迫网络学习到更鲁棒的特征,也能够从集成学习的视角理解,预测阶段至关于对随机到的全部模型求了个指望。
batchsize 128,SGD Momentum 0.9,weight decay 0.0005,initial learning rate 0.01 停滞时divide by 10,
\[ \begin{aligned} v_{i+1} & :=0.9 \cdot v_{i}-0.0005 \cdot \epsilon \cdot w_{i}-\epsilon \cdot\left\langle\left.\frac{\partial L}{\partial w}\right|_{w_{i}}\right\rangle_{D_{i}} \\ w_{i+1} & :=w_{i}+v_{i+1} \end{aligned} \]
回顾AlexNet论文,发现论文中说起了不少有意思的点,有些仅仅是一笔带过,可是可能启发了后面大量的工做,翻回来看才发现“祖师爷”早有预兆。
finetune,在一个库上训练,在另外一个库上finetune
权重可视化,仅可视化第1个卷积层的96个卷积核权重,发现网络学到了频率方向性的特征,更有意思的是,GPU1上的48个卷积核是颜色无关的,GPU2上的是颜色相关的。
匹配与检索,使用最后一个全链接层的输出做为特征,经过欧氏距离可计算图像间的特征类似度,可作匹配,提出能够经过auto-encoder进一步压缩获取到short binary code,可用于检索,以下图所示,检索与最左边一列特征最近的图像
深度十分重要,增长深度能够进一步提高性能,当前性能只是受限于计算资源和训练时间(微笑)
在ILSVRC 2012上作的报告展现了使用AlexNet作detection的结果,以下
不愧是开创性工做的paper,给这含金量跪了。