点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

导读

最近和同事交流很多来参加面试的应聘者的情况,很多都是介绍自己用了什么来做什么,但是对于内部的原理,都兵没有深入研究,现在深度学习框架都提供了非常便利的API,你可以轻松实现和搭建基础的网络,甚至可以直接照搬开源代码跑。

但你觉得跑跑开源代码真的就能拿到高薪吗?不太现实吧,跑通别人代码只是开始,更加重要的是理解原理,理解作者是如何通过观察发现存在的问题,理解作者如何设计实验,以及如何验证自己的想法。

在本文中,将回顾 AlexNet 和 CaffeNet。AlexNet是2012年ILSVRC(ImageNet Large Scale Visual Recognition Competition) 的冠军,这是一个图像分类比赛。

这是2012年来自Hinton教授团队的NIPS论文,在我(指原作者)写这篇文章的时候被引用了28000次。它在深度学习方面取得了重大突破,大大降低了ILSVRC 2012的错误率,如下图所示。因此,这是一篇必读的论文!!

ImageNet是一个包含超过1500万张高分辨率图像的数据集,包含大约22000个类别。ILSVRC使用ImageNet的一个子集,在1000个类别中每个类别中大约有1000张图片。总共大约有120万张训练图像,5万张验证图像和15万张测试图像。

AlexNet, the winner in ILSVRC 2012 image classification with remarkable lower error rate

A. For AlexNet, we will cover:

  1. Architecture

  2. ReLU (Rectified Linear Unit)

  3. Multiple GPUs

  4. Local Response Normalization

  5. Overlapping Pooling

  6. Data Augmentation

  7. Dropout

  8. Other Details of Learning Parameters

  9. Results

B. 对于CaffeNet来说,它只是一个AlexNet的单gpu版本。因为通常人们只有一个GPU, CaffeNet是一个模拟AlexNet的单GPU网络。在这个故事的最后我们也会报道这个。

通过遍历每个组件,我们可以知道每个组件的重要性。其中一些现在还不是很有用。但它们确实激发了其他网络的发明。

整理自:https://medium.com/coinmonks/paper-review-of-alexnet-caffenet-winner-in-ilsvrc-2012-image-classification-b93598314160

1. Architecture

AlexNet

AlexNet contains eight layers:

1th: Convolutional Layer: 96 kernels of size 11×11×3 (stride: 4, pad: 0) 55×55×96 feature maps Then  3×3 Overlapping Max Pooling (stride: 2)

27×27×96 feature maps Then Local Response Normalization

27×27×96 feature maps

2nd: Convolutional Layer: 256 kernels of size 5×5×48 (stride: 1, pad: 2)

27×27×256 feature maps Then 3×3 Overlapping Max Pooling (stride: 2) 13×13×256 feature maps Then **Local Response Normalization 13×13×256 feature maps

3rd: Convolutional Layer: 384 kernels of size 3×3×256 (stride: 1, pad: 1)

13×13×384 feature maps

4th: Convolutional Layer: 384 kernels of size 3×3×192 (stride: 1, pad: 1)

13×13×384 feature maps

5th: Convolutional Layer: 256 kernels of size 3×3×192 (stride: 1, pad: 1)

13×13×256 feature maps Then 3×3 Overlapping Max Pooling (stride: 2)

6×6×256 feature maps

6th: Fully Connected (Dense) Layer of

4096 neurons

7th: Fully Connected (Dense) Layer of

4096 neurons

8th: Fully Connected (Dense) Layer of

Output: 1000 neurons (since there are 1000 classes) Softmax is used for calculating the loss.

总共有6000万参数需要训练!!!

2. ReLU

激活函数

在Alexnet之前,Tanh被使用。ReLU是在AlexNet中介绍的。达到25%的训练错误率时,ReLU比Tanh快6倍

执行步骤

3. Multiple GPUs

此时使用的是NVIDIA GTX 580 GPU,内存只有3GB。因此,我们可以在架构中看到,它们被分成两条路径,使用两个gpu进行卷积。内部通信只发生在一个特定的卷积层。

因此,使用2个gpu,是由于内存问题,而不是为了加快训练过程。

与只有一半内核(只有一条路径)的网络相比,整个网络中,top-1和top-5的错误率分别降低了1.7%和1.2%。

4. Local Response Normalization

Normalization

在AlexNet中,使用了局部相应归一化( local response normalization)。正如我们在方程式中看到的那样,它不同于批处理归一化(batch normalization)。归一化(normalization)有助于加快收敛速度。现在,批处理归一化代替了局部相应归一化。

通过局部响应归一化,Top-1和top-5的错误率分别降低了1.4%和1.2%。

5. Overlapping Pooling

Overlapping Pooling 是步长小于核大小的池化,而Non-Overlapping Pooling 是步长等于或大于核大小的池化。

通过overlapping pooling,,Top-1和top-5的错误率分别降低了0.4%和0.3%。

6. Data Augmentation

两种方式的数据增强

第一:图像平移 + 水平变换(镜像)

从一张 256×256的图像加上水平变换后随机裁剪224×224。训练集的大小增加了2048倍。可以计算如下:

图像平移 :(256–224)²=32²=1024

水平变换:1024×2 = 2048

在测试时,利用四个角斑加上中心斑及其对应的水平反射(共10个斑)进行预测,并对所有结果进行平均,得到最终分类结果。

第二:Altering the intensity

对训练集进行主成分分析 (PCA),对于每一张训练图像,添加数量:

Quantity of intensity altered

pi 和 λi 是 3×3协方差矩阵的特征向量和特征值的RGB像素值,相应的,αi 是随机变量的意思,均值为0和标准差0.1。

通过增加训练集的大小,将Top-1错误率降低1%以上。

7. Dropout

Dropout

通过在训练过程中使用dropout的这一层,每个神经元都有一定概率不参与前馈传递和反向传播。这样,每个神经元就可以有更大的机会接受训练,而不必太依赖某些非常“强大”的神经元。

在test阶段,没有使用 dropout。

在AlexNet中,前两个完全连接层的概率为0.5。Dropout是一种减少过拟合的正则化方法。

8. Other Details of Learning Parameters

Batch size: 128 Momentum v: 0.9 Weight Decay: 0.0005 Learning rate ϵ: 0.01, reduced by 10 manually when validation error rate stopped improving, and reduced by 3 times.

训练集120万张图片。网络被训练了大约90个周期。在两个NVIDIA GTX 580 3GB gpu上运行5到6天。

9. Results

Error Rate in ILSVRC 2010

对于ILSVRC 2010, AlexNet获得了前1和前5的错误率分别为37.5%和17.0%,优于其他方法。

如果不通过数据扩充对10个patches 进行10次预测取平均,AlexNet的前1次和前5次错误率分别为39.0%和18.3%。

Error Rate in ILSVRC 2010

1个 AlexNet (1 CNN)时,验证错误率为18.2%。

通过对5个AlexNet(5个CNNs)的预测进行平均,错误率降低到16.4%。这是一种已经在LeNet中用于数字分类的boosting 技术

通过在AlexNet中增加一个卷积层(1 CNN*),验证错误率降低到16.6%

通过对2个modfiied AlexNet和5个原始AlexNet(7个CNNs)的预测进行平均*,验证错误率降低到15.4%

Some Top-5 results by AlexNet

B. CaffeNet

CaffeNet is a 1-GPU version of AlexNet. The architecture is:

CaffeNet

我们可以看到AlexNet中的两条路径被合并成一条路径。

需要注意的是,对于CaffeNet的早期版本,池化层和归一化层的顺序是颠倒的,这是偶然的。但是在Caffe提供的当前版本的CaffeNet中,它已经为CaffeNet提供了正确的池化层和归一化化层的顺序。

通过逐一调查每个组件,我们可以知道每个成分的有效性。

References

  1. [2012 NIPS] [AlexNet] ImageNet Classification with Deep Convolutional Neural Networks

    https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

  2. [2014 ACM MM] [CaffeNet] Caffe: Convolutional Architecture for Fast Feature Embedding

    https://ucb-icsi-vision-group.github.io/caffe-paper/caffe.pdf

  3. VERY QUICK SETUP of CaffeNet (AlexNet) for Image Classification Using Nvidia-Docker 2.0 + CUDA + CuDNN + Jupyter Notebook + Caffe

    https://medium.com/@sh.tsang/very-quick-setup-of-caffenet-alexnet-for-image-classification-using-nvidia-docker-2-0-c3b75bb8c7a8

  4. ILSVRC ImageNet Large Scale Visual Recognition Competition

    http://www.image-net.org/challenges/LSVRC/

好消息!

小白学视觉知识星球

开始面向外开放啦

回顾经典: AlexNet, CaffeNet — Winner of ILSVRC 2012相关推荐

  1. 回顾经典,Netflix的推荐系统架构

    这篇文章我们回顾一篇经典博客,Netflix官方博客介绍的推荐系统架构,虽然文章发布已有六年, 但是现在回看起来我自己还是蛮惊讶的,因为Netflix的推荐系统架构居然到现在依然是主流. 当然,框架中 ...

  2. Hello! ImageNet ILSVRC 2012!

    Up主作为CV穷人代表,这一次想要触碰一下 papers 里最为活跃却又以 "Huge" 令穷人望而生畏的超级数据集: ImageNet 中的 ILSVRC2012. 还记得依靠氪 ...

  3. 回顾经典电影星舰战队I have not been to Paradise[图]

    星舰战队又名星河战队,星舰战队是正确译名! 做为整个影片中最具震慑力的歌曲I have not been to Paradise,在两位主角接吻时给所有观众都留下的深刻的影像! 这部电影拍摄于1997 ...

  4. Java手机游戏新流星蝴蝶剑,手机游戏平台java游戏经典的五款游戏回顾-经典游戏...

    当今手机市场差不多未是iOS和安卓两强让霸的排场,旧日的手机操做系统的霸从塞班(Symbian)未经成为过去式.近几年手逛兴旺成长,手机逛戏平台未然成为目前的收流逛戏平台之一,回忆起塞班期间,能让人们 ...

  5. C语言中的这些经典题目你都会了吗?【一文带你回顾经典】【全程高能】

  6. 回顾经典-读《JavaScript高级程序设计》

    脑图 详情 第1章:什么是 JavaScript 本章主要讲了 JavaScript 的一些历史 JavaScript包含三个部分:ECMAScript(核心).DOM(文档对象模型).BOM(浏览器 ...

  7. 写在2012之前的话(回顾我的2011-,展望我的2012+)

    一年又一年,还好我永远是8岁. 逛了一会csdn中的博客,看了些牛人的血泪奋斗史,结合自己微不足道的经验,不免唏嘘. 大学四年,荒废了不少时间,也不太确定是什么时候要决心学好一门编程语言了,好像从来也 ...

  8. 回顾经典: ERP故事

    一天中午,丈夫在外给家里打电话:"亲爱的老婆,晚上我想带几个同事回家吃饭可以吗?"( 订货意向) 妻子:"当然可以,来几个人,几点来,想吃什么菜?" 丈夫:&q ...

  9. 干货丨计算机视觉必读:图像分类、定位、检测,语义分割和实例分割方法梳理(经典长文,值得收藏)

    文章来源:新智元 作者:张皓 [导读]本文作者来自南京大学计算机系机器学习与数据挖掘所(LAMDA),本文直观系统地梳理了深度学习在计算机视觉领域四大基本任务中的应用,包括图像分类.定位.检测.语义分 ...

  10. 计算机视觉四大基本任务(分类、定位、检测、分割)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载于:作者 | 张皓 来源 | 知乎(https://zhuan ...

最新文章

  1. Xamarin XAML语言教程将XAML设计的UI显示到界面
  2. 015_CSS伪元素选择器
  3. JS_dom查询节点
  4. 大并发服务器架构 大型网站架构演变
  5. 四、用户、群组和权限(未完结)
  6. html中 一条样式规则,css规则的基本格式是什么?
  7. 1.10 编程基础之简单排序 03 成绩排序 3分 python
  8. 垃圾回收算法的实现原理_有关垃圾回收算法工作原理的动画指南
  9. mysql重复你数据标识_MySQL 处理重复数据
  10. Core Servlets and JSP Volume I 读后感 Servlet(三)
  11. 2015-2018节假日表
  12. 【Python】10行代码获取海贼王最新目录
  13. Unity Resource Manager
  14. 除了青蛙旅行,我们还有哪些大事不是被机器人搞砸的?
  15. 全屏功能-实现全屏-图标切换
  16. 网吧大哥服务器维修,《绝地求生》服务器又崩溃!网吧老板快要哭了
  17. CodeForces - 510A 蛇形图案输出 难度:C++入门 复杂度:简单 翻译难度:一般
  18. 监听enter按键,使其拥有Tab按键的切换功能
  19. 国企招聘计算机笔试考什么区别,国企秋招要来了!看看你能报考哪家国企!
  20. 【小白篇】从零开始搭建传奇服务器(只做自我娱乐之用)

热门文章

  1. 正项级数收敛性的判别法
  2. 企业内部即时通讯工具WorkPlus,支持内网私有化部署
  3. 【多任务学习-Multitask Learning概述】
  4. 语义分割学习总结(一)—— 基本概念篇
  5. 【OpenCV】58 二值图像分析—寻找最大内接圆
  6. CODESYS Softmotion(一)功能介绍
  7. python爬去新浪微博_Python爬取新浪微博热搜榜
  8. 创建Win95 100M无盘工作站
  9. 解决eclipse安装Darkest Dark Theme报错
  10. 凯立德地图导航2022年懒人包 安卓版