重读经典:《ImageNet Classification with Deep Convolutional Neural Networks》

9年后重读深度学习奠基作之一:AlexNet【下】【论文精读】

这两天偶然间在B站看了李沐博士对AlexNet论文的重新解读,收获满满。AlexNet是当今深度学习浪潮奠基作之一,发表在2012年。在视频中,李沐博士主要是分享了他的三步法快速读论文。即当我们看一篇新的论文,可以按照下面这种方法去读:

  • 第一遍:论文标题、摘要、结论。顺带看看论文中重要的图和表。花费十几分钟时间判断论文是否和自己的研究方向相同。
  • 第二遍:确定论文值得读之后,可以快速的把整个论文过一遍,不需要知道所有的细节,但是需要了解重要的图和表,知道每一个部分在干什么,圈出相关文献。觉得文章太难理解的话,可以先看看论文中引用的其它文献,了解相关背景知识。
  • 第三遍:最详细的一遍,知道每一段和每一句话是什么意思,在复现论文时再反复研读。

AlexNet论文链接:https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf


1.第一遍

首先是论文标题,论文标题中文意思是:使用深度卷积神经网络对ImageNet数据集进行分类。第一次读论文标题时要注意下面几个关键词:

  • ImageNet:论文使用的数据集是ImageNetImageNet数据集具体内容是什么样的?
  • Neural Networks :神经网络,这篇文章使用了神经网络技术。
  • Deep Convolutional卷积神经网络工作原理是什么? 同时作者为什么要使用深度的卷积神经网络。

下面是论文的作者,论文一作是Alex,这也是本篇论文提出的网络被称为AlexNet的原因。可能对论文前两个作者不是很熟悉,但是论文通信作者是Hinton,长期研究神经网络和深度学习。
在这里插入图片描述

下面是论文摘要,摘要总共六句话。

  • 前2句话介绍了自己做的工作,训练了一个很大很深的卷积神经网络在LSVRC-2010 contest取得了很好的结果。
  • 第3句话介绍了网络的模型,有6000万个参数和65万个神经元,模型包含5个卷积层,以及最大池化层和3个全连接层。
  • 第4句和第5句介绍了如何训练网络,使用了不饱和的神经元和GPU实现,为了减少全连接层的过拟合,使用了dropout技术。
  • 最后一句, 介绍在ILSVRC-2012比赛取得了第一名,错误率比第二名低了10.9%,可以看到本文设计的网络模型效果很好。
    在这里插入图片描述

最后是论文结论部分,不过本篇论文的结论是讨论,和一般论文稍有不同。论文讨论有两段,第一段说我们在有监督学习上取得了很好的效果,证明了网络的深度很重要。第二段说我们没有使用任何的无监督预训练,这直接导致了后面的深度学习研究都集中在有监督学习上;同时作者提出未来会研究视频数据(当前研究的一个很火方向),因为视频数据会提供时序信息,这是静态图像数据所缺失的。

在这里插入图片描述
在第一遍时,可以顺带看看论文中重要的图和表,如网络结构图,可能第一遍不一定能看懂。第一遍读完后,可以决定后面是否再度第二遍论文,如果是研究图片分类方向的话,则需要再读第二遍。


2.第二遍

首先是Introduction部分,分为5段。前3段主要是研究内容背景知识介绍,第4段介绍了本文主要贡献。本文训练了一个很大的卷积神经网络在ILSVRC比赛上取得了最好的结果,同时本文在GPU实现了2D卷积操作。本文训练的网络包含一些新的和不常见的特征来提高网络性能和减少训练时间,这部分在论文第3节进行了介绍。第4节介绍了新的技术来防止过拟合。整个网络包含5个卷积层和3个全连接层,同时发现网络深度是很重要的,即使移除任意一层卷积层,都会导致性能下降。

作者还强调了由于GPU内存的限制,在两块GPU上进行训练时需要5-6天时间,如果能有更快的GPU和更大的数据集,网络性能还能进一步提升。
在这里插入图片描述


然后是ImageNet Dataset部分,分为3段。介绍了整个数据集大约有1500万张图片,共有22000类。ILSVRC比赛共有1000类,每一类大约有1000张图片。在2010的比赛中,可以得到测试集数据标签,但是在2012年的比赛中则没有测试集标签。

由于ImageNet数据集图片精度并不相同,因此我们每一张图片下采样到256×256256\times256256×256。当短边尺寸小于256时,我们先上采样到256,然后再从图片中截取 256×256256\times256256×256 的图片作为输入。我们没有对图片进行任何的预处理,整个网络是在每个像素的原始RGB值进行训练(也就是端到端训练,这也是深度学习的一大优势)。

在这里插入图片描述


再然后是Architecture部分,分为5个小节。

第一个介绍的是ReLU激活函数,函数形式为 f(x)=max(0,x)f(x)=max(0,x)f(x)=max(0,x),形式比较简单。作者说这是一个非饱和的非线性函数,比其它激活函数训练要快(具体原因没解释),关于ReLU函数的具体介绍可以看参考文献[20]。作者做了一个实验,如图1所示,在将错误率降低到25%时,ReLUtanh函数训练时要快6倍。
在这里插入图片描述
第2小节-第4小节介绍的是多GPU训练,归一化处理、pooling处理,主要是偏工程实现,这些部分可先跳过,在读第3遍时再看。

第5小节是网络结构介绍,输入是 224×224×3224\times224\times3224×224×3 的图片,然后是5个卷积层,接着是3个全连接层,最后一层是softmax层,输出为1000个类别标签的预测概率分布。使用了两个GPU进行训练(现在训练网络一般可以不同分割模型),将网络模型切成两半分别在两个GPU中进行训练。第2个、第4个和第5个卷积层的输入为同一GPU上之前一层卷积层的输出,而第3个卷积层的输入为两个GPU上的第2个卷积层输出。每个全连接层的输入都为前一层网络的全部输出。可以看到,随着网络深度的增加,卷积层中图像大小在减少,而深度在不断增加。
在这里插入图片描述


接着是Reducing Overfitting部分,作者首先使用了数据增强,增加数据的多样性,然后使用了新的降低过拟合技术dropout。具体原理作者并没有解释,作者使用了50%的概率值来使每一个隐藏层神经元输出为0。这里dropout技术主要用在前两个全连接层。
在这里插入图片描述


下面是实验设置,使用SGD进行训练,同时使用了权重衰减(0.0005)。初始化时使用了均值为0标准差为0.01的高斯分布,第2、4、5层和全连接层偏差初始值为1,其余层为0。在训练时会手动改变学习率的值,当验证集上误差率不再变化时,将学习率除以10,学习率初始值为0.01。
在这里插入图片描述


下面是论文实验结果部分,可以看到在ILSVRC-2010/2012数据上作者都取得了最低的错误率,同时作者也在2009年版本的ImageNet全部数据上进行了训练,不过在ImageNet全部数据集上进行训练的研究比较少。
在这里插入图片描述

作者在训练时也发现了一些有意思的现象,就是两个GPU,一个GPU上和卷积核和图像颜色是有关的,一个和图像颜色是无关的,这个还待解释。另一个是图4所示,当最后一个隐藏层(4096)神经元欧几里得空间距离相近是,两张图片基本上是同一类(深度学习的解释性也是一个很重要的研究方向)。

在这里插入图片描述在这里插入图片描述

至此,论文解读到此结束,后面如果想复现本篇论文时,就需要再多读几遍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一步步编写操作系统 60 cpu的IO特权级2 什么是驱动程序

用户程序可以在由操作系统加载时通过指定整个eflags设置,操作系统如何设置自己的IOPL呢,即使内核IOPL为0也得写进去eflags寄存器中才生效。可惜的是,没有直接读写eflags寄存器的指令,不过可以通过将栈中数据弹出到eflags寄存器中来…

详解惯性导航论文 RINS-W: Robust Inertial Navigation System on Wheels

本文介绍一篇惯性导航定位论文 RINS-W,论文发表于 IROS2019。在本论文中作者提出了仅使用一个IMU进行长时间惯性导航的方法。方法主要包括两个部分: 检测器使用循环神经网络来检测IMU的运动状况,如零速或零横向滑移;使用Invarian…

一步步编写操作系统 61 任务状态段 TSS

I/O位图是位于TSS中的,它可以存在也可以不存在,它只是用来设置对某些特定端口的访问,没有它的话便默认为禁止访问所有端口。正是由于它可有可用,所以TSS的段界限TSS limit(即实际大小-1)并不固定。当TSS中不…

重读经典:《Deep Residual Learning for Image Recognition》

ResNet论文逐段精读【论文精读】这是李沐博士论文精读的第二篇论文,这次精读的论文是ResNet。ResNet 是 CVPR2016 的最佳论文,目前谷歌学术显示其被引用数已经达到了90000。 ResNet论文链接为:https://arxiv.org/abs/1512.03385。 1.第一遍 …

【CodeForces - 1131F 】Asya And Kittens(并查集,思维)

题干: Asya loves animals very much. Recently, she purchased nn kittens, enumerated them from 11 and nn and then put them into the cage. The cage consists of one row of nncells, enumerated with integers from 11 to nn from left to right. Adjacent…

详解道路标记数据集 CeyMo: See More on Roads -- A Novel Benchmark Dataset for Road Marking Detection

本文介绍一个新的道路标记检测数据集,论文收录于 WACV2022。Ceymo数据集总共包含2887张图片,标注了11类共4706个道路标记实例,图片分辨率为 192010801920\times108019201080。其中,对于每一个道路标记实例,作者采用了三…

动手学无人驾驶(7):车道线检测

最近在研究视觉语义地图,需要进行车道线检测,发现这篇车道线检测论文效果蛮好的 (Ultra Fast Structure-aware Deep Lane Detection)。论文作者在知乎上已经介绍过了:https://zhuanlan.zhihu.com/p/157530787&#xff…

Coursera自动驾驶课程第16讲:LIDAR Sensing

在第15讲《Coursera自动驾驶课程第15讲:GNSS and INS Sensing for Pose Estimation》 我们学习了自动驾驶定位中常用的两种传感器:IMU(惯性测量单元) 和GNSS(全球导航卫星系统)。 本讲我们将学习自动驾驶汽…

DB、ETL、DW、OLAP、DM、BI关系结构图

在此大概用口水话简单叙述一下他们几个概念: (1)DB/Database/数据库——这里一般指的就是OLTP数据库,在线事物数据库,用来支持生产的,比如超市的买卖系统。DB保留的是数据信息的最新状态,只有一…

Tarjan 算法 常用模板

可以求每个点属于第几个强连通分量&#xff1a;https://blog.csdn.net/dellaserss/article/details/8267192 int Tarjan(int u){int v;dfn[u]low[u]Index;stack[Top]u;Instack[u]1;for(int i0;i<G[u].size();i){vG[u][i];if(!dfn[v]){Tarjan(v);low[u]min(low[u],low[v]);}…

【HDU - 5012】Dice(模拟,bfs)

题干&#xff1a; There are 2 special dices on the table. On each face of the dice, a distinct number was written. Consider a 1.a 2,a 3,a 4,a 5,a 6 to be numbers written on top face, bottom face, left face, right face, front face and back face of dice A. S…

重读经典:《Generative Adversarial Nets》

GAN论文逐段精读【论文精读】这是李沐博士论文精读的第五篇论文&#xff0c;这次精读的论文是 GAN。目前谷歌学术显示其被引用数已经达到了37000。GAN 应该是机器学习过去五年上头条次数最多的工作&#xff0c;例如抖音里面生成人物卡通头像&#xff0c;人脸互换以及自动驾驶中…

一步步编写操作系统 62 函数调用约定

由于我们要将c语言和汇编语言结合编程啦&#xff0c;所以一定会存在汇编代码和c代码相互调用的问题&#xff0c;有些事情还是要提前交待给大家的&#xff0c;本节就是要给大家说下函数调用规约中的那些事儿。 函数调用约定是什么&#xff1f; 调用约定&#xff0c;calling co…

重读经典:《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》

ViT论文逐段精读【论文精读】这次李沐博士邀请了亚马逊计算机视觉专家朱毅博士来精读 Vision Transformer&#xff08;ViT&#xff09;&#xff0c;强烈推荐大家去看本次的论文精读视频。朱毅博士讲解的很详细&#xff0c;几乎是逐词逐句地讲解&#xff0c;在讲解时把 ViT 相关…

给不会调用C++STL库中二分函数lower_bound,upper_bound,binary_search同学的一些话!

lower_bound算法返回第一个大于等于给定值所在的位置。设置两个指针start和last&#xff0c;其中start指向数组的起始位置&#xff0c;last指向数组末尾位置之后的位置。当start和last指向相同位置时循环结束。mid指向[start,last)区间的中间位置&#xff0c;当中间位置元素值大…

详解IMU标定经典论文:A Robust and Easy to Implement Method for IMU Calibration without External Equipments

本文介绍一篇 关于IMU 标定的经典论文&#xff0c;论文收录于 ICRA14&#xff0c;在论文中作者介绍了如何不适用外部设备标定 IMU 加速度和角速度偏差、尺度系数、轴偏移参数。 论文链接&#xff1a;https://readpaper.com/paper/2021503353、https://readpaper.com/paper/221…

重读经典:《Momentum Contrast for Unsupervised Visual Representation Learning》

MoCo 论文逐段精读【论文精读】这次论文精读李沐博士继续邀请了亚马逊计算机视觉专家朱毅博士来精读 Momentum Contrast&#xff08;MoCo)&#xff0c;强烈推荐大家去看本次的论文精读视频。朱毅博士和上次一样讲解地非常详细&#xff0c;几乎是逐词逐句地讲解&#xff0c;在讲…

【HRBUST - 1623】Relation(思维模拟,拆解字符串)

题干&#xff1a; 一天&#xff0c;ikki在看书的时候发现书上有个类似于家谱状的插图&#xff0c;突然ikki想到了一个有趣的现象&#xff1a;有时候用某个人一连串 的关系描述另一个人的时候&#xff0c;最后可能还是他本身。例如&#xff1a;小明的爸爸的爸爸和小明的爷爷是同…

一步步编写操作系统 67 系统调用的实现1-2 68

接上文&#xff1a; 系统调用的子功能要用eax寄存器来指定&#xff0c;所以咱们要看看有哪些系统调用啦&#xff0c;在linux系统中&#xff0c;系统调用是定义在/usr/include/asm/unistd.h文件中&#xff0c;该文件只是个统一的入口&#xff0c;指向了32位和64位两种版本。在a…