首页 > 编程语言 > 详细

CNN目标检测系列算法发展脉络——学习笔记(一):AlexNet

时间:2020-02-25 20:18:45      阅读:70      评论:0      收藏:0      [点我收藏+]

  在咨询了老师的建议后,最近开始着手深入的学习一下目标检测算法,结合这两天所查到的资料和个人的理解,准备大致将CNN目标检测的发展脉络理一理(暂时只讲CNN系列部分,YOLO和SSD,后面会抽空整理)。

  目标检测的发展大致起始于2000年前后(具体我也没去深究,如果有误还请大佬们指正 ●ˇ∀ˇ● ),早期受限于算力,目标检测发展的不温不火,直到半导体技术的进步,以及Hinton团队的榜样作用,图像的目标检测才开始有了突飞猛进的发展。

  就我个人理解,从2012年至今的目标检测的发展,并没有在算法上呈现出本质性的突破,更多的是将前人已经提出的算法/技巧,进行了巧妙的组合与优化,然后在高速设备上进行快速的验证与迭代,才有了目标检测如今繁荣的发展现状。(当然,也可能是因为小弟对学术界的发展所知甚少,而导致了一种以偏概全的理解??emm。。。)

  接下来的几篇博客会按照 AlexNet --> R-CNN -->FastRCNN -->FasterRCNN --> MaskRCNN 的顺序来整理,今天的内容是ALexNet,因为我的目的在于简析目标检测发展脉络,把握算法的改进路线,所以不会特别详细的讲解算法原理(好吧,我就是懒的写怎么滴~( ̄▽ ̄)~*),只挑与“改进/发展”相关的部分内容简析,以作为我对目标检测领域的综述性学习笔记。

AlexNet

  说起AlexNet,相信大家一定不陌生,在2012年一举夺得了ImageNet和ILSVRC竞赛双冠,并且在ILSVRC中的top-5测试的error rate为15.3%, 远远甩开第二名的26.2%(此处应有掌声,啪啪啪~(* ̄3 ̄)╭),如此压倒性优势的胜利给工业界带来了不小的冲击,同时也使得深度神经网络再次进入业界的视线。

  因为本文是以综述为主,所以就不详细讲架构了,感兴趣的可以网上搜索一下,很多大佬们讲解的都很到位,这里主要提一下该模型的特点/改进。

  子曾经曰过:“没图说个xx”。。。所以这里先上图,以下就是AlexNet的网络架构

 

技术分享图片

 

  结合对论文的阅读,小弟总结了该模型的四个主要特点:

  (一)该模型在全连接层使用了Dropout进行正则化

  我在查资料时发现网上有人说Dropout是Hinton在2014年提出的理论,但实际上在2012年的AlexNet中就已经用到了该技术。

  当时提出该方法的起因就在于,AlexNet在输出层使用了两个的Dense层,分析如下。

  根据上面的模型图,第六层采用了(6*6*256)的Filter,在不考虑卷积和线性回归偏置值的情况下,最后两个Dense层的参数的数量 = 4096*4096+6*6*256*4096,大致为5400万个参数,而论文中提到过,整个模型的参数量在6000万作用,也就是说,最后两个Dense层的参数占整个模型参数量的90%以上,因此只要对这两层的参数量加以限制,就可以大大降低整个模型的复杂度,从而降低过拟合,同时也提高了训练速度。而Hinton对参数量的限制手段,就是Dropout,现如今,该方法也成为当前深度学习领域的常客。

  (二)使用ReLU作为激活函数

  在Hinton之前,常用的激活函数是tanh或者sigmoid(如下图),但是二者在BP神经网络层数较深时,会产生梯度消失的现象,而使用ReLU则可以有效的避免此问题(实际上ReLU也有可能会出现梯度消失,但比较少见)。话说回来,ReLU还可以解决梯度爆炸问题,堪称激活函数中的完美女神有木有(咳咳,因为小弟是男生,所以ReLU是女神嘿嘿~)。

技术分享图片

  (三)局部响应归一化(LRN)

  本来想好好夸一夸LRN,但是我在查阅了资料后发现这玩意儿的作用极其有限,很鸡肋,现在大家基本都用BN,但是原论文里里面为LRN单独划出一节,强调了其可以降低错误率(莫非Hinton大佬为了水论文的字数???狗头保命??),所以这里稍微提一嘴,就不细说了。

技术分享图片 

  (四)重叠池化

  相较于LeNet中的非重叠池化,AlexNet中使用了部分重叠的池化操作,在一定程度上降低了模型过拟合的可能。

  对于重叠池化,我的理解是,重叠池化后的特征图的相邻元素之间具有一定的关联性,因为相邻元素与该元素的感受野有重叠,所以可以避免对某一特定区域的过拟合(小弟拙见,如果大佬们有更合适的解释,还请在评论里给出)。

 

AlexNet小结:R-CNN的基石,唤醒DNN的跨世纪模型,21世纪深度学习热潮的导火索,其中的一些Trick给了后来者带来了诸多启发。

 

PS:本文提及的一些概念,如正则化、梯度爆炸、BN、过拟合等等,是一些深度学习领域的常见名词,怕显得啰嗦,所以这里就不作解释了(明明是因为懒??~)

PPS:其实小弟原本的计划是,从AlexNet到MaskR-CNN的内容作为一篇综述写完,但是发现自己太懒了。。。从上面“精简”的文字里就能看出来。。。所以强行把标题改成了“AlexNet”哈哈哈哈  →_→,后面的内容抽空慢慢补上吧( ̄︶ ̄)↗ 

CNN目标检测系列算法发展脉络——学习笔记(一):AlexNet

原文:https://www.cnblogs.com/snailt/p/12362387.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!