https://antkillerfarm.github.io/

CNN进化史

计算机视觉


6大关键技术:

图像分类:根据图像的主要内容进行分类。数据集:MNIST, CIFAR, ImageNet

物体定位:预测包含主要物体的图像区域,以便识别区域中的物体。数据集:ImageNet

物体识别:定位并分类图像中出现的所有物体。这一过程通常包括:划出区域然后对其中的物体进行分类。数据集:PASCAL, COCO

语义分割:把图像中的每一个像素分到其所属物体类别,在样例中如人类、绵羊和草地。数据集:PASCAL, COCO

实例分割:把图像中的每一个像素分到其所属物体实例。数据集:PASCAL, COCO

关键点检测:检测物体上一组预定义关键点的位置,例如人体上或者人脸上的关键点。数据集:COCO

CNN简史

AlexNet

2012年,ILSVRC比赛冠军的model——Alexnet(以第一作者Alex命名)的结构图如下:

换个视角:

AlexNet的caffe模板:

https://github.com/BVLC/caffe/blob/master/models/bvlc_alexnet/deploy.prototxt

其中的LRN(Local Response Normalization)层也是当年的遗迹,被后来的实践证明,对于最终效果和运算量没有太大帮助,因此也就慢慢废弃了。

虽然,LeNet-5是CNN的开山之作(它不是最早的CNN,但却是奠定了现代CNN理论基础的模型),但是毕竟年代久远,和现代实用的CNN相比,结构实在过于原始。

AlexNet作为第一个现代意义上的CNN,它的意义主要包括:

1.Data Augmentation。包括水平翻转、随机裁剪、平移变换、颜色、光照变换等。

2.Dropout。

3.ReLU激活函数。

4.多GPU并行计算。

5.当然最应该感谢的是李飞飞团队搞出来的标注数据集合ImageNet。

注:ILSVRC(Large Scale Visual Recognition Challenge)大赛,在2016年以前,一直是CV界的顶级赛事。但随着技术的成熟,目前的科研重点已经从物体识别转移到了物体理解领域。2017年将是该赛事的最后一届。WebVision有望接替该赛事,成为下一个目标。

VGG

Visual Geometry Group是牛津大学的一个科研团队。他们推出的一系列深度模型,被称作VGG模型。

VGG的结构图如下:

该系列包括A/A-LRN/B/C/D/E等6个不同的型号。其中的D/E,根据其神经网络的层数,也被称为VGG16/VGG19。

从原理角度,VGG相比AlexNet并没有太多的改进。其最主要的意义就是实践了“神经网络越深越好”的理念。也是自那时起,神经网络逐渐有了“深度学习”这个别名。

GoogleNet

GoogleNet的进化道路和VGG有所不同。VGG实际上就是“大力出奇迹”的暴力模型,其他地方不足称道。

而GoogleNet不仅继承了VGG“越深越好”的理念,对于网络结构本身也作了大胆的创新。可以对比的是,AlexNet有60M个参数,而GoogleNet只有4M个参数。

因此,在ILSVRC 2014大赛中,GoogleNet获得第一名,而VGG屈居第二。

上图是GoogleNet的结构图。从中可以看出,GoogleNet除了AlexNet的基本要素之外,还有被称作Inception的结构。

上图是Inception的结构图。它的原理实际上就是将不同尺寸的卷积组合起来,以提供不同尺寸的特征

原始的GoogleNet也被称作Inception-v1。在后面的几年,GoogleNet还提出了几种改进的版本,最新的一个是Inception-v4(2016.8)。

论文:

《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》

Inception系列的改进方向基本都集中在构建不同的Inception模型上。

GoogleNet的另一个改进是减少了全连接层(Full Connection, FC),这是减少模型参数的一个重要改进。事实上,在稍后的实践中,人们发现去掉VGG的第一个FC层,对于效果几乎没有任何影响。

SqueezeNet

GoogleNet之后,最有名的CNN模型当属何恺明的Deep Residual Network。DRN在《深度学习(五)》中已有提及,这里不再赘述。

DRN之后,学界的研究重点,由如何提升精度,转变为如何用更少的参数和计算量来达到同样的精度。SqueezeNet就是其中的代表。

论文:

《SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size》

代码:

https://github.com/DeepScale/SqueezeNet

Caffe版本

https://github.com/vonclites/squeezenet

TensorFlow版本

SqueezeNet最大的创新点在于使用Fire Module替换大尺寸的卷积层。

上图是Fire Module的结构示意图。它采用squeeze层+expand层两个小卷积层,替换了AlexNet的大尺寸卷积层。其中,Nsqueeze<NexpandN_{squeeze},N表示每层的卷积个数。

这里需要特别指出的是:expand层采用了2种不同尺寸的卷积,这也是当前设计的一个趋势。

这个趋势在GoogleNet中已经有所体现,在ResNet中也间接隐含。

上图是ResNet的展开图,可见展开之后的ResNet,实际上等效于一个多尺寸交错混编的复杂卷积网。其思路和GoogleNet实际上是一致的。

参见:

http://blog.csdn.net/xbinworld/article/details/50897870

最新SqueezeNet模型详解,CNN模型参数降低50倍,压缩461倍!

http://www.jianshu.com/p/8e269451795d

神经网络瘦身:SqueezeNet

http://blog.csdn.net/shenxiaolu1984/article/details/51444525

超轻量级网络SqueezeNet算法详解

参考

http://mp.weixin.qq.com/s/ZKMi4gRfDRcTxzKlTQb-Mw

计算机视觉识别简史:从AlexNet、ResNet到Mask RCNN

http://mp.weixin.qq.com/s/kbHzA3h-CfTRcnkViY37MQ

详解CNN五大经典模型:Lenet,Alexnet,Googlenet,VGG,DRL

https://zhuanlan.zhihu.com/p/22094600

Deep Learning回顾之LeNet、AlexNet、GoogLeNet、VGG、ResNet

http://www.leiphone.com/news/201609/303vE8MIwFC7E3DB.html

Google最新开源Inception-ResNet-v2,借助残差网络进一步提升图像分类水准

https://mp.weixin.qq.com/s/x3bSu9ecl3dldCbvS1rT1g

站在巨人的肩膀上,深度学习的9篇开山之作

http://mp.weixin.qq.com/s/2TUw_2d36uFAiJTkvaaqpA

解读Keras在ImageNet中的应用:详解5种主要的图像识别模型

https://zhuanlan.zhihu.com/p/27642620

YJango的卷积神经网络——介绍

https://www.zybuluo.com/coolwyj/note/202469

ImageNet Classification with Deep Convolutional Neural Networks

http://simtalk.cn/2016/09/20/AlexNet/

AlexNet简介

http://simtalk.cn/2016/09/12/CNNs/

CNN简介

http://www.cnblogs.com/Allen-rg/p/5833919.html

GoogLeNet学习心得

https://mp.weixin.qq.com/s/I94gGXXW_eE5hSHIBOsJFQ

无需数学背景,读懂ResNet、Inception和Xception三大变革性架构

https://mp.weixin.qq.com/s/iN2LDAQ2ee-rQnlD3N1yaw

变形卷积核、可分离卷积?CNN中十大拍案叫绝的操作!

https://mp.weixin.qq.com/s/ToogpkDo-DpQaSoRoalnPg

没看过这5个模型,不要说你玩过CNN!

GAN

概况

GAN是“生成对抗网络”(Generative Adversarial Networks)的简称,由2014年还在蒙特利尔读博士的Ian Goodfellow引入深度学习领域。

注:Ian J. Goodfellow,斯坦福大学本硕+蒙特利尔大学博士。导师是Yoshua Bengio。现为Google研究员。
个人主页:
http://www.iangoodfellow.com/

论文:

《Generative Adversarial Nets》

教程:

http://www.iangoodfellow.com/slides/2016-12-04-NIPS.pdf

通俗解释

对于GAN来说,最通俗的解释就是“伪造者-鉴别者”的解释,如艺术画的伪造者和鉴别者。一开始伪造者和鉴别者的水平都不高,但是鉴别者还是比较容易鉴别出伪造者伪造出来的艺术画。但随着伪造者对伪造技术的学习后,其伪造的艺术画会让鉴别者识别错误;或者随着鉴别者对鉴别技术的学习后,能够很简单的鉴别出伪造者伪造的艺术画。这是一个双方不断学习技术,以达到最高的伪造和鉴别水平的过程。

从上面的解释可以看出,GAN实际上一种零和游戏上的无监督算法

深度学习(六)——CNN进化史相关推荐

  1. 【深度学习】CNN神经网络应用(用于亚洲大黄蜂分类)

    [深度学习]CNN神经网络应用(用于亚洲大黄蜂分类) 文章目录 1 概述 2 假设条件 3 网络结构 4 数据集和参数 5 Asian hornet classification experiment ...

  2. [caffe]深度学习之CNN检测object detection方法摘要介绍

    [caffe]深度学习之CNN检测object detection方法摘要介绍  2015-08-17 17:44 3276人阅读 评论(1) 收藏 举报 一两年cnn在检测这块的发展突飞猛进,下面详 ...

  3. [Python人工智能] 三十.Keras深度学习构建CNN识别阿拉伯手写文字图像

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了生成对抗网络GAN的基础知识,包括什么是GAN.常用算法(CGAN.DCGAN.infoGAN.WGAN). ...

  4. [Python图像识别] 四十七.Keras深度学习构建CNN识别阿拉伯手写文字图像

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  5. 深度学习目标检测法进化史,看这一篇就够了

    作者 | 黄浴,奇点汽车美研中心首席科学家兼总裁 来源 | 转载自知乎专栏自动驾驶的挑战和发展 本文将介绍自动驾驶中的深度学习目标检测的基本概念和方法,并对几个主要 Anchor free 方法进行了 ...

  6. 【深度学习】CNN图像分类:从LeNet5到EfficientNet

    深度学习 Author:louwill From:深度学习笔记 在对卷积的含义有了一定的理解之后,我们便可以对CNN在最简单的计算机视觉任务图像分类中的经典网络进行探索.CNN在近几年的发展历程中,从 ...

  7. 深度学习《CNN架构续篇 - 梯度下降的优化》

    骚话一下: 今天是2020年10月2号,继续学习.本文依然是<CNN架构>的延续博文,重点介绍优化的新的梯度下降算法. 一:梯度下降的种类 说到梯度下降的方法,确实是求最优解的比较好的途径 ...

  8. 深度学习《CNN架构》

    摘要:今天来写第一篇深度学习的博文,也是学习CNN的第一篇. 骚话一下: 今天是2020年10月1号,是祖国的71岁生日,也是传统节日中秋节,而我由于工作的安排身在海外不得回家,怀念祖国的乡土,倍加思 ...

  9. 使用Keras进行深度学习(二): CNN讲解及实践

    前言:现今最主流的处理图像数据的技术当属深度神经网络了,尤其是卷积神经网络CNN尤为出名.本文将通过讲解CNN的介绍以及使用keras搭建CNN常用模型LeNet-5实现对MNist数据集分类,从而使 ...

  10. 【深度学习】CNN在大规模图像数据集上的应用(基于keras和MNIST)

    [深度学习]详解CNN实现手写数字识别(keras) 文章目录 1 MNIST数据集 2 导入数据 3 MLP 4 简单CNN 5 改进CNN 6 训练API的介绍 7 通道和卷积核辨析 1 MNIS ...

最新文章

  1. 如何成为Android开发高手
  2. Windows Server 2008 使用WDS自动部署操作系统
  3. Github上删除仓库、项目方法演示
  4. 塔菲尔曲线斜率的大小_分段函数函数值(自变量)大小(范围)的六种题型
  5. 传统公司部署OpenStack(t版)简易介绍(二)——Keystone组件部署
  6. android数据存储心得,android学习心得 轻量级存储SharePreferences
  7. Luogu P2319 [HNOI2006]超级英雄
  8. struct和typedef struct用法
  9. springboot增删改查案例_大神基于SpringBoot开发一个Restful服务,实现增删改查功能...
  10. CAD如何将样条曲线转换成多段线
  11. 基于docker的php调用基于docker的mysql数据库的方法
  12. springboot开发者工具包,自动监听内容改变,自动更新重启
  13. dll.dll病毒及解决办法
  14. Honeywell 1900 条码阅读器
  15. ok6410linux开发环境搭建,OK-6410的裸机开发环境配置
  16. emqx配置ssl/tsl实现双向认证
  17. 【洛谷习题】皇后游戏
  18. Resultful接口实现后端文件下载
  19. 2022-2028年中国电子商务行业市场深度分析及投资前景展望报告
  20. 动词ing基本用法_动词ing的用法

热门文章

  1. java 大特性_java三大特性
  2. Vue(ts) - ref $refs 之el-input获取焦点
  3. Vue面试题 70道题目及答案
  4. 本机的计算机管理员,c# 获得本机计算机名字,获得本机当前系统登陆用户和管理员权限,Environment...
  5. 抽签小程序(C语言随机数),C# 抽签小程序
  6. 如何用python批量下载数据_使用Python批量下载数据
  7. QT: 使用qtchooser修改ubuntu默认的qmake版本
  8. java junit autowired_写Junit测试时用Autowired注入的类实例始终为空怎么解?
  9. 使用bakefile编译C工程代码
  10. ES5新增对象的属性和方法