CNN家族的族谱!

没有过时的技术,只是看什么样的应用场景,某些场景下,老技术也能焕发光彩!

发展历程

CNN思想起源------喵星人的视觉系统

20世纪60年代左右,加拿大神经科学家David H. Hubel和Torsten Wisesel发现了猫的视觉中枢里存在感受野、双目视觉和其他功能结构,这一发现标志着神经网络结构首次在大脑视觉系统中被发现。因其在视觉系统中信息处理方面的杰出贡献,他们在1981年获得了诺贝尔生理学或医学奖。

1、CNN开山鼻祖--LeNet

LeNet神经网络由深度学习三巨头之一的Yan LeCun提出,他同时也是卷积神经网络 (CNN,Convolutional Neural Networks)之父。1998年,LeCun把Neocogniron的精华提取出来,再结合BP(BackPropagation)算法,提出了卷积神经网络算法LeNet-5,也是LeNet系列中效果最佳的版本。LeNet主要用来进行手写字符的识别与分类,并在美国的银行中投入了使用。LeNet的实现确立了CNN的结构,现在神经网络基本以此为基础。

当时受限于无合适的加速硬件,导致LeNet还不如传统机器学习算法,即手工设计特征的算子:SIFT,HOG,LBP以及SVM,它们以原理清晰性,模型可解释,数据需求小,计算需求小等优势深受欢迎。

通用GPU在2001年才开始兴起,在2006年深度学习理论被提出后 ,卷积神经网络的表征学习能力得到了关注,并随着数值计算设备的更新得到发展。

2、AlexNet一炮而红

2012 年,Alex与 Hinton 推出了 AlexNet,并在当年的 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)中以超过第二名10.9个百分点的绝对优势一举夺冠,引起了许多学者对深度学习的研究,使深度学习重回历史舞台。因此,2012年也被称为深度学习近代史的开局之年。

AlexNet是LeNet的一个更深和更广的版本,可以用来学习更复杂的对象。

主要特点:

  1. 非线性激活函数:ReLU,解决了训练过程中梯度消失问题,加速了训练收敛;
  2. 防止过拟合的方法:Dropout,Data augmentation,减缓模型的过拟合
  3. 大数据训练:百万级ImageNet图像数据
  4. 其他:GPU实现,LRN归一化层的使用(当时他们用了两张 GTX 580 3GB GPU,仍然训练了5~6天时间)

3、VGG使用重复元素的网络

2014 年,牛津大学计算机视觉组(Visual Geometry Group, VGG)提出了 VGG 模型(相关系列包括VGG-11/VGG-13/VGG-16/VGG-19,主要区别是网络深度不同),并在当年的 ImageNet Challenge 上获得图像分类任务第二名、定位(Localization)任务第一名。

主要特点:结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2),多个3X3卷积序列可以模拟更大的接收场的效果。同时验证了不断加深网络结构可以提升性能。

4、NIN网络中的网络

2014年,新加坡国立大学(NUS)的颜水成老师的团队提出了Network in Network(NiN)。

LeNet、AlexNet 和 VGG 在设计上的共同之处是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。其中,AlexNet 和 VGG 对 LeNet 的改进主要在于如何对这两个模块加宽和加深。

而NIN提出了另外个思路,即串联多个由卷积层和"全连接"层构成的小网络来构建个深层网络,核心思想是CNN原来的结构是完全可变的。

它的思想很简单但是很有效,使用1x1卷积给一个卷积层的特征提供了更多的组合性。

每个卷积之后使用空间MLP层,以便在另一层之前更好地组合特征,而没有使用原始像素作为下一层的输入。可以有效地使用非常少的参数,在这些特征的所有像素之间共享。

5、GoogLeNet/Inception含并行连接的网络

2014年,谷歌的Christian Szegedy提出了一种全新的深度学习结构GoogLeNet(名字中的L选择大写是为了致敬LeNet网络)。

Inception的核心思想是将channel分成若干个不同感受野大小的通道,除了能获得不同的感受野,Inception还能大幅的降低参数数量。

GoogLeNet系列包含Inception v1到v4,采用了Inception模块,其中大量采用了1X1的卷积核,主要作用是对数据进行降维,引入更多的非线性,提高泛化能力,因为卷积后要经过ReLU激活函数。

该网络获得2014年ImageNet图像分类冠军。

6、ResNet残差网络

2015年,国人作者何凯明提出的残差网络。

特点是容易优化,并且能够通过增加深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题 。

在此之前,深度学习因为网络无法继续有效加深而陷入发展停滞,可以说ResNet救活了深度学习。

7、Xception一种极端的Inception

2016年,Google 利用 Depthwise Separable Convolution 对 Inception V3 进行了改进,并结合 Residual Connection 设计了新的网络:Xception(Xception取义自Extreme Inception,即Xception是一种极端的Inception)。

8、DenseNet稠密连接网络

2016 年,DenseNet 横空出世。与 ResNet、Inception Net 不同,DenseNet 即没从网络的深度入手,也没从网络的宽度入手,而是对每层的 FeatureMap 进行特征复用,以此缓解梯度消失问题,加强网络中特征的传递,有效对特征进行复用,并在提高网络的表现效果的同时减少了网络的参数量。

9、MobileNet轻量化CNN

2017年左右,神经网络模型轻量化已经逐渐引起人们的关注,常见的手段分为两种:设计轻量化网络模型以及对已经训练好的复杂网络进行压缩(比如:降低精度、剪枝等等)。此时,Google 提出了一个轻量化模型:MobileNet(应用于移动端和嵌入式),成为后续人们常使用的 Baseline Model。

MobileNet的基本单元是深度级可分离卷积(depthwise separable convolution),其实这种结构之前已经被使用在Inception模型中。深度级可分离卷积其实是一种可分解卷积操作(factorized convolutions),其将一个标准卷积分解为两个更小的操作:逐深度(depthwise convolution)和逐点(pointwise convolution),因此减小了参数量,对应也减小了总计算量。深度可分离卷积的总计算量变小了,但深度可分离卷积的层数变多了。

10、ShuffleNet轻量化CNN

ShuffleNet是旷视科技提出的一种高效的移动端CNN模型,其和MobileNet和SqueezeNet等一样主要是想应用在移动端。

ShffuleNet的作者利用 Group Convolution和Depthwise Separable Convolution 结合,提出Pointwise Group Convolution以避免大量 Convoltuion,并利用Channel Shuffle 缓解由 Group Convolution 带来的副作用,并在 Residual Block 的基础上进行网络结构设计,使得网络的计算量减少的同时,仍能保持较高的性能。

总结

CNN(卷积神经网络)是以卷积为核心的一大类网络,而上述介绍的LeNet、AlexNet、VGG、GoogLeNet等网络就属于CNN。

1.卷积核方面:

大卷积核用多个小卷积核代替;

单一尺寸卷积核用多尺寸卷积核代替;

固定形状卷积核趋于使用可变形卷积核;

使用1X1卷积核。
2.卷积层通道方面:

标准卷积用depthwise卷积代替;

使用分组卷积;

分组卷积前使用channel shuffle;

通道加权计算。
3.卷积层连接方面:

使用skip connection,让模型更深;

densely connection,使每一层都融合上其它层的特征输出(DenseNet)

欢迎大家补充和指正!!!

相关推荐
DataCastle2 分钟前
2024“智衡屋” 智能感知挑战赛决赛即将来袭
人工智能
微学AI2 分钟前
计算机视觉的应用34-基于CV领域的人脸关键点特征智能提取的技术方法
人工智能·计算机视觉
5pace5 分钟前
动手学深度学习(李沐)PyTorch 第 2 章 预备知识
人工智能·pytorch·深度学习
jndingxin39 分钟前
OpenCV运动分析和目标跟踪(2)累积操作函数accumulateSquare()的使用
人工智能·opencv·目标跟踪
火眼99881 小时前
《使用 LangChain 进行大模型应用开发》学习笔记(四)
人工智能·笔记·langchain·ai编程
小草cys1 小时前
GPT-4o在matlab编程中性能较好,与智谱清言相比
人工智能
罗小罗同学1 小时前
困扰霍金和蔡磊等人的渐冻症,能否在医学AI领域寻找到下一个解决方案?|个人观点·24-09-22
数据库·人工智能·医学图像处理·医学人工智能·渐冻症
kolaseen1 小时前
tensorflow同步机制
人工智能·python·深度学习·机器学习·tensorflow
waterHBO2 小时前
TensorFlow 笔记
人工智能·笔记·tensorflow
橙子小哥的代码世界2 小时前
深度学习03-神经网络02-激活函数
人工智能·深度学习·神经网络