来源:DeepHub IMBA
本文约1600字,建议阅读5分钟本文与你讨论每个机器学习工程师都应该知道的十大CNN架构。
卷积神经网络(CNN或ConvNet)是理解图像内容的最佳学习算法之一,并且在图像分割,分类,检测和检索相关任务中表现出出色。有许多公司,例如Google,Microsoft,AT&T,NEC和Facebook,已经建立了活跃的研究小组来探索CNN的新架构。
什么是CNN?
CNN被设计用于图像识别任务,最初是用于手写数字识别的挑战(Fukushima 1980,LeCun 1989)。CNN的基本设计目标是创建一个网络,其中网络早期层的神经元将提取局部视觉特征,而后期层的神经元将这些特征组合起来以形成高阶特征。
在几乎每个CNN中,您都会看到三种主要的图层类型。
卷积层
卷积层由一组过滤器(也称为内核)组成,这些过滤器在输入数据上滑动。每个内核都有一个宽度,一个高度和一个宽度×高度权重,用于从输入数据中提取特征。在训练时,内核中的权重使用随机值进行初始化,并将根据训练集进行学习。
池化层
池化层(或下采样层)用于减少特征图的维数,从而从特征图中保存最相关的信息。在池化层中,过滤器会在输入数据上滑动并应用池化操作(最大,最小,平均)。最大池是文献中使用最多的。
全连接层
是由三种类型的层组成的多层感知器:输入层,隐藏层和输出层。输入层接收CNN生成的要素。隐藏层是一系列具有权重的神经元,将在训练步骤中学习。一个MLP由一个或多个隐藏层组成。
输出层也是神经元序列。但是,它具有不同的激活函数。例如softmax函数用于生成问题范围内每个类别的概率。
主要CNN架构
多年来,已经开发出CNN架构的变体,从而在深度学习领域取得了惊人的进步。LeNet是CNN的第一个成功应用,由Yann Lecun在1990年代开发。最著名的是LeNet体系结构,该体系结构用于读取邮政编码,数字等。最新的工作称为LeNet-5,它是一个5层的CNN,其在独立字符识别中的准确度达到99.2%。
在本文中,我们将讨论每个机器学习工程师都应该知道的十大CNN架构。
AlexNet
2012年,Alex Krizhevsky以84.6%¹的测试准确度赢得了ImageNet大规模视觉识别挑战赛的冠军。Krizhevskyus使用GPU训练AlexNet,从而可以更快地训练CNN模型,并引起了人们的兴趣,并开始了基于CNN的新工作。
设计中使用五个卷积层,最大池层,ReLU作为激活函数,三个全卷积层和dropout。
VGG-16
牛津的模型以92.7%的精确度赢得了2013年的ImageNet竞赛²。它使用一堆卷积层进行嵌套,在最小的几层中插入了具有小的接收场的卷积层,而只有少数几层具有大的接收场。
VGG-19
该模型与VGG-16类似,但是深度达到了19层。
Google Net
Google的网络以93.3%的准确度赢得了2014年ImageNet竞赛。它由22层和一个新引入的构建模块(称为inception )组成。所以该网络也被称作inception net
Inception
Inception网络是CNN分类器发展的重要里程碑。在CNN诞生之前,它只是将堆叠的卷积层越来越深,希望获得更好的性能。它使用三种不同大小的滤波器(1x1、3x3、5x5)对输入执行卷积。
ResNet
微软的模型以96.4%的准确度赢得了2016年ImageNet竞赛。
由于引入了残差块及更深的层数(152层),因此众所周知。其余的块通过引入跳过连接来解决如何训练一个更深的网络结构的问题。有人已经通过残差块达到了1000层的网络深度。
Shuffile Net
它是一种极其高效的CNN架构,专为具有10–150 MFLOP(每秒兆浮点运算)的计算能力的移动设备而设计。在保持准确性的同时,利用逐点分组卷积和通道混洗来降低计算成本。与Image Net分类上的Mobile Net系统相比,它获得了更低的top-1错误。
Squeeze Net
对于相同精度的AlexNet,SqueezeNet可以快三倍,而小500倍。
压缩(squeeze)模块仅包含1x1过滤器,这意味着它的工作方式类似于在同一位置的特征点上工作的完全连接图层。顾名思义,其好处之一就是减少了特征图的深度。减小厚度意味着压缩后下一层中只需要3x3卷积核进行计算。它提高了速度,因为3x3卷积核的计算量是1x1的卷积核的9倍。
Dense Net
DenseNet以前馈方式将每一层连接到其他每一层。它具有L层L(L + 1)/ 2个直接连接。对于每一层,将所有其他层的特征图用作输入,并将其特征图用作所有后续层的输入。DenseNets具有几个引人注目的优势:它们减轻了消失梯度的问题,增强了特征传播,鼓励了特征重用,并大大减少了参数数量。
ENet
Efficient Net能够实时执行像素级语义分割。ENet速度提高了18倍,所需的FLOP(每秒浮点运算)减少了75倍,参数减少了79倍,并提供了与现有模型相似或更高的精度。Enet是语义分割中最快的模型。
作者:
Trung Anh Dang
原文地址:
https://medium.com/@dangtrunganh/top-10-cnn-architectures-every-machine-learning-engineer-should-know-68e2b0e07201
编辑:黄继彦
校对:林亦霖
来源:oschina
链接:https://my.oschina.net/u/4257499/blog/4906385