目录

  • 四、CNN的崛起
    • 4.1 SVM vs NN
    • 4.2 ILSVRC
      • 4.2.1 分类任务描述
      • 4.2.2 SVM 的覆灭
    • 4.3 CNN 的发展

四、CNN的崛起

4.1 SVM vs NN

虽然反向传播算法的提出,使得神经网络的学习可以端到端的进行,加速网络的训练速度。然而在随后的科学研究中,人们逐渐意识到反向传播算法的一些局限性,尤其是在面对高维非线性关系的数据集时,其损失函数是非凸函数,且 sigmoid 激活函数在反向传播过程中很容易达到饱和状态,对于多层网络的训练极其低效。“梯度消失问题” 成为反向传播算法的致命因素,因此对于通过反向传播算法训练多层神经网络的想法犹如天方夜谭。

而在上世纪 90 年代,以统计学为基础的支持向量机(SVM)算法却成为那个时代的明星。尤其是在 1992 年,Bernhard E. Boser, Isabelle M. Guyon 和 Vladimir N. Vapnik](https://en.wikipedia.org/wiki/Vladimir_N._Vapnik) 提出了一种通过将核技巧应用于最大间隔超平面来创建非线性分类器的方法,再到 1993-1995 年由 Corinna Cortes 和 Vapnik 提出软间隔方法,使得 SVM 如虎添翼,成为现成的最好用的方法之一,而神经网络也因此被打入冷宫,浅层的神经网络难以与 SVM 等理论更完备的算法抗衡,而多层神经网络的训练却难以突破。

虽然在这个时期,LeCun 等人提出了著名的 LeNet-5 卷积神经网络架构,并且在手写数字识别领域取得非常不错的成绩,然而却生不逢时。直到 2006 年,Hinton 在《Science》期刊发文中提出了深度信念网络(DBN),其核心架构包括预训练(Pretainging)、组合(Unrolling) 和微调(Fine-tuning)三个阶段。

【图 1】

预训练的过程是逐层进行的,每一层实际都是一个受限玻尔兹曼机(RBMs)。而组合阶段则是将预训练阶段的 RBMs 拆开并重组为深度自动编码机,微调阶段则是利用反向传播算法对网络参数进行更新。在这个过程中,预训练的目的在于寻找更好地网络初始值参数,而不是盲目的随机初始化。然而这仅仅是一种直观上的理解。

这篇论文论文提出的训练方法尽管在目前很少再被关注,然而其有效的训练方式在 MNIST 数据集上打败了 SVM 不可战胜的神话,将学术界的注意力重新带回了神经网络的研究领域中,从此开启了深度学习之旅,也正因为此,2006 年通常被认为是深度学习元年。

然而,SVM 的光环并未因此迅速退去,深度学习的研究也并未因此而马上取得飞速发展。

4.2 ILSVRC

ImageNet 是一个按照 WordNet 层级结构组织的图像数据库,用于计算机视觉领域的相关研究。截止目前,该项目已包含超过 0.14 亿张图片,是视觉研究领域非常重要的开源数据集之一。该项目始于 2006 年,由李飞飞教授主导,其初衷是想要扩展和改进可用于训练 AI 算法的数据集。他们在 2009 年佛罗里达州举办的计算机视觉和模式识别会议(CVPR)上公开展示了该数据集,并于 2010 年开始,连续开展了 8 年大规模视觉识别挑战赛(ILSVRC),截止到 2017 年,最后一届比赛中,冠军队伍在图像分类中的错误率为 2.25%,已经远低于人类(5.1%),而图片标签数据来自于人类标注,因此已无法确定错误率来自于模型的真实误判还是人类对数据标签的错误标记,因此比赛终止于此。比赛虽然终止,却开启了深度学习在 CV 领域上的研究大门,随着在 CV 领域的重大突破,深度学习也不断被引入其他领域中,如 NLP、语音识别、自动驾驶等等众多研究领域中,并纷纷带来突破性进展。

4.2.1 分类任务描述

在本系列章节中,我们只关注于图像分类任务,对于每一张图片,我们要求算法产生 5 个候选分类标签,并根据置信度降序排列。一张图片可能包含很多不同的对象,但是会对其中 n n n 个主要对象进行标注,作为该图片的真实标签 g k , k = 1 , . . . , n g_k, k=1,..., n gk​,k=1,...,n。而算法要求给出 5 个不同的识别标签 l j , j = 1 , . . . , 5 l_j, j=1,..., 5 lj​,j=1,...,5则算法在图片上的误差为 e = 1 n ⋅ ∑ k min ⁡ j d ( l j , g k ) e=\frac{1}{n}\cdot \sum_k \min_j d(l_j, g_k) e=n1​⋅∑k​minj​d(lj​,gk​)。其中,如果 l j = g k l_j=g_k lj​=gk​,则 d ( l j , d k ) = 0 d(l_j, d_k)=0 d(lj​,dk​)=0,否则 为 1。算法的总体误差是基于所有测试图像的平均误差。而一般情况下 n = 1 n=1 n=1,通俗的讲,如果算法识别的 5 个结果中包含正确答案则判定为识别正确,否则判定为识别错误。

4.2.2 SVM 的覆灭

在 2010 年,第一届 ILSVRC 中,Yuangqing Lin 等人的 NEC-UIUC 团队以 28.2% 的误差率斩获冠军,其采用的方法是 Locality-constrained Linear Coding(LLC) + SVM 组合方式1,LLC 是一种图像分类特征提取的编码方式,SVM 是一种高效的分类器。在 2011 年第二届大赛中, Florent Perronnin 和 Jorge Sanchez 的 XRCE 小组以 25.7% 的误差率获得冠军,他们使用的是 FV + PQ + SVM 组合方式2,其中,FV(Fisher Vectors)是一种图像特征提取器,PQ(Product Quantization)是一种图像压缩算法。因此在前两届的比赛中,其主要思想均是利用一些精心设计的特征提取器提取图片特征,进而利用强大的 SVM 算法进行分类。

直到 2012 年,在第三届 ILSVRC 中,由 Alex Krizhevsky、IIya Sutskever 和 Geoffrey Hinton 组成的 SuperVision 团队提出了 AlexNet ,以 16.4% 的误差率获得冠军,而亚军团队仍然沿袭诸如 SIFT + FV +SVM 等特征提取+分类器组合模式,其误差率为 26.2%,落后冠军队伍近 10 个百分比。

AlexNet 无疑是这一届比赛中的黑马,彻底破灭 SVM 不可战胜的神话,也使深度学习这把大火真正的熊熊燃烧了起来。AlexNet 相比较 LeNet-5,是时代的宠儿,LeNet-5 虽然已经具备相对完善的 CNN 组织架构和训练方法,却生不逢时。而 AlexNet 包含众多的训练技巧以避免梯度消失问题及其他优化问题,GPU 等硬件加速器的支持可以使反向传播算法以更快地速度进行, ImageNet 大规模图像数据集的开源竞赛,使得该领域的研究不再局限于初级的手写体数字识别,而是泛化到高清的复杂化场景图片研究,深度学习最重要的性质在于端到端的全流程自动化训练,这降低了对传统机器学习算法中特征工程的需求以及依赖于人类经验手工特征提取的相关工作,因此这也必然符合科学探索的趋势。因此 AlexNet 真可谓是占尽了天时地利人和,深度学习时代也因此而崛起!

4.3 CNN 的发展

从 2012 年,AlexNet 斩获 ILSVRC 冠军,CNN 重新回到了人们的视野,基于神经网络的大量训练技巧也逐渐被提出,其随着 GPU 等机器硬件的发展及大规模数据集的开源,使得网络可以从最初的几层到几十层甚至几百、几千层深。在网络发展的早期,人们认为深度网络的层级结构随着深度的增加可以提取更高级更负责的特征,且随着更深的网络在 ImageNet 上取得更低的错误率,从实验角度证明这一理论的正确性。随着深度的提升,当网络达到上百层的深度时,网络的识别精度不再提升甚至会降低,由此开启了残差网络的发展阶段,残差网络允许网络层之间跳跃连接,将低层数据直接传输到更高层中,这一举措突破网络层次的瓶颈,可以轻松将网络深度增加到几百、几千层。然而网络层次的加深,模型的精度并未出现质的提升,模型的参数量却翻了几番,模型大小也达到几百 MB 甚至几个 GB。这种不成正比的投入产出比,迫使人们重新思考,以牺牲一定的精度重构轻量化模型,网络发展达到第三阶段。随着各种网络架构的提出以及大量高效的训练方法或技巧的运用,网络层的堆叠构造犹如搭建积木,人们开始放弃由人工搭建网络架构,转而由算法自动构建,由此进入网络架构搜索(NAS)第四阶段的发展。

我们本系列章节将按照 CNN 网络在不同时期的四个发展阶段展开,介绍其中一些经典的网路结构及训练方法和技巧等。如果说,深度学习的出现解放了 hand-craft 特征提取时代,进而人们工作的重点是网络架构的设计、超参的选择,那么如今网络已经在这方面逐步取代人类的经验,那么我们接下来的工作重点又该是什么呢?

CNN 开展的四个不同阶段:

  • 深度发展阶段:在该阶段,网络深度不断被加深,例如 VGG、InceptionV1-V3
  • 残差网络阶段:在该阶段,网络允许存在跳跃连接,使信息的传递更加灵活,也避免了需要训练机制上的限制,如 ResNet 家族网络
  • 轻量化阶段:在该阶段初期网络识别精度略有降低,以牺牲精度换取架构轻量化,而后逐渐在精度上得到提高,如 MobileNet 系列网络
  • NAS 阶段:该阶段,网络以元学习机制自动构建高效网络架构,其网络参数量及识别精度也在不断超越人类架构,这将成为现代 CNN 网络发展的主流。

  1. http://image-net.org/challenges/LSVRC/2010/ILSVRC2010_NEC-UIUC.pdf ↩︎

  2. http://image-net.org/challenges/LSVRC/2011/ilsvrc11.pdf ↩︎

1.4 CNN的崛起相关推荐

  1. 《Towards Viewpoint Invariant 3D Human Pose Estimation》--深度图领域人体姿态估计的CNN算法

    <Towards Viewpoint Invariant 3D Human Pose Estimation>–深度图领域人体姿态估计的CNN算法 这篇文章是ECCV 2016的一篇3D人体 ...

  2. Google又放大招:高效实时实现视频目标检测 | 技术头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 作者 | 陈泰红,算法工程师,研究方向为机器学习.图像处理 来源 | 极市平台(ID:extrememart) ...

  3. Google又发大招:高效实时实现视频目标检测

    首发于极市平台微信号:Google又发大招:高效实时实现视频目标检测 作者:陈泰红 如有兴趣可以**点击加入极市CV专业微信群**,获取更多高质量干货 图像目标检测是图像处理领域的基础.自从2012年 ...

  4. 音视频技术开发周刊 93期

    『音视频技术开发周刊』由LiveVideoStack团队出品,专注在音视频技术领域,纵览相关技术领域的干货和新闻投稿,每周一期.点击『阅读原文』,浏览第93期内容,祝您阅读愉快. 架构 Nodejs+ ...

  5. Something about Giraffe (II)

    先解決老師留的幾個問題再說吧,23333 XD. Giraffe 是一個將 Deep Reinforcement Learning 和 Neural Network 结合到一起的Chess AI 程式 ...

  6. Deep Learning 【Nature review】

    如今,机器学习的技术在我们的生活中扮演着越来越重要的角色.从搜索引擎到推荐系统,从图像识别到语音识别.而这些应用都开始逐渐使用一类叫做深度学习(Deep Learning)的技术. 传统机器学习算法的 ...

  7. 67页综述深度卷积神经网络架构:从基本组件到结构创新

    点击我爱计算机视觉标星,更快获取CVML新技术 本文为52CV群友王广胜对上个月更新的CNN综述文章A Survey of the Recent Architectures of Deep Convo ...

  8. 移动端70+fps!谷歌新出高效实时视频目标检测

    本文转载自极市平台(extrememart). 作者简介 陈泰红:算法工程师,研究方向为机器学习.图像处理 图像目标检测是图像处理领域的基础.自从2012年CNN的崛起,深度学习在Detection的 ...

  9. [读书笔记] Deep learning by Yann LeCun1,2, Yoshua Bengio3 Geoffrey Hinton4,5 on nature

    部分摘抄自https://blog.csdn.net/amds123/article/details/70666617 摘要 Deep learning allows computational mo ...

最新文章

  1. Naive Operations (线段树 分析复杂度)
  2. 获取当前横竖屏_Chrome扩展程序一键生成网页骨架屏
  3. Win7下快速预览各种类型的文本文件
  4. iOS事件的响应和传递机制
  5. 1103: 平均学分绩点(函数专题)
  6. 如何生成有向图_八十六、从拓扑排序探究有向图
  7. 227 用栈模拟汉诺塔问题
  8. 王道考研操作系统笔记(第五章)附:王道考研408所有PPT和思维导图
  9. 怎么用matlab进行博弈论计算,博弈论的Matlab算法包
  10. matlab是计算机模拟吗,MATLAB计算机模拟,MATLAB calculator simulate,音标,读音,翻译,英文例句,英语词典...
  11. 加盟代理小程序为创业者带来另一条出路
  12. 多多视频如何快速涨粉(赚钱变现)
  13. Django介绍,mvc设计模式及mvt设计模式介绍及对比
  14. react入门-列表渲染(动态获取数据)
  15. 创建收发文件的服务器端 客户端,TCP/IP网络编程 Chap.5 基于TCP的服务器端/客户端(2)...
  16. linux下不解包查看tar包文件内容
  17. PHP 第三方登录学习笔记
  18. jzoj 1420. 佳肴
  19. 【自然语言处理】【数据增强】PromDA:应用于低资源NLU任务的、基于prompt的数据增强方法
  20. 程序员求职攻略(《程序员面试笔试宝典》)之面试笔试技巧?

热门文章

  1. 【因果学习】因果推断分析
  2. RPM包安装或者安装源码包
  3. php开发使用predis(thinkphp框架,composer,windows环境练习)
  4. C语言实现贪吃蛇(使用链表,适合初学者)
  5. 计算机电源越高越好吗,台式电脑电源功率越大越好吗?组装电脑选购电源功率瓦数指南...
  6. 金融科技的价值和风险
  7. 【机器人仿真Webots教程】-Webots安装
  8. 同步IO(阻塞IO、非阻塞IO), 异步IO的理解
  9. java常见的加密方式
  10. C++游戏界面不流畅的问题