当前位置:首页 > 智能硬件 > 人工智能AI
[导读] CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。我下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的

CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。我下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中探讨日后的CNN变革方向。

注:水平所限,下面的见解或许有偏差,望大牛指正。另外只介绍其中具有代表性的模型,一些著名的模型由于原理相同将不作介绍,若有遗漏也欢迎指出。

一、卷积只能在同一组进行吗?-- Group convolution

Group convoluTIon 分组卷积,最早在AlexNet中出现,由于当时的硬件资源有限,训练AlexNet时卷积操作不能全部放在同一个GPU处理,因此作者把feature maps分给多个GPU分别进行处理,最后把多个GPU的结果进行融合。

分组卷积的思想影响比较深远,当前一些轻量级的SOTA(State Of The Art)网络,都用到了分组卷积的操作,以节省计算量。但题主有个疑问是,如果分组卷积是分在不同GPU上的话,每个GPU的计算量就降低到 1/groups,但如果依然在同一个GPU上计算,最终整体的计算量是否不变?找了pytorch上有关组卷积操作的介绍,望读者解答我的疑问。

pytroch github

关于这个问题,知乎用户朋友 @蔡冠羽 提出了他的见解:

我感觉group conv本身应该就大大减少了参数,比如当input channel为256,output channel也为256,kernel size为3*3,不做group conv参数为256*3*3*256,若group为8,每个group的input channel和output channel均为32,参数为8*32*3*3*32,是原来的八分之一。这是我的理解。

我的理解是分组卷积最后每一组输出的feature maps应该是以concatenate的方式组合,而不是element-wise add,所以每组输出的channel是 input channels / #groups,这样参数量就大大减少了。

二、卷积核一定越大越好?-- 3×3卷积核

AlexNet中用到了一些非常大的卷积核,比如11×11、5×5卷积核,之前人们的观念是,卷积核越大,recepTIve field(感受野)越大,看到的图片信息越多,因此获得的特征越好。虽说如此,但是大的卷积核会导致计算量的暴增,不利于模型深度的增加,计算性能也会降低。于是在VGG(最早使用)、IncepTIon网络中,利用2个3×3卷积核的组合比1个5×5卷积核的效果更佳,同时参数量(3×3×2+1 VS 5×5×1+1)被降低,因此后来3×3卷积核被广泛应用在各种模型中。

三、每层卷积只能用一种尺寸的卷积核?-- IncepTIon结构

传统的层叠式网络,基本上都是一个个卷积层的堆叠,每层只用一个尺寸的卷积核,例如VGG结构中使用了大量的3×3卷积层。事实上,同一层feature map可以分别使用多个不同尺寸的卷积核,以获得不同尺度的特征,再把这些特征结合起来,得到的特征往往比使用单一卷积核的要好,谷歌的GoogleNet,或者说Inception系列的网络,就使用了多个卷积核的结构:
       一个输入的feature map分别同时经过1×1、3×3、5×5的卷积核的处理,得出的特征再组合起来,获得更佳的特征。但这个结构会存在一个严重的问题:参数量比单个卷积核要多很多,如此庞大的计算量会使得模型效率低下。这就引出了一个新的结构:

四、怎样才能减少卷积层参数量?-- Bottleneck

发明GoogleNet的团队发现,如果仅仅引入多个尺寸的卷积核,会带来大量的额外的参数,受到Network In Network中1×1卷积核的启发,为了解决这个问题,他们往Inception结构中加入了一些1×1的卷积核

根据上图,我们来做个对比计算,假设输入feature map的维度为256维,要求输出维度也是256维。有以下两种操作:

256维的输入直接经过一个3×3×256的卷积层,输出一个256维的feature map,那么参数量为:256×3×3×256 = 589,824

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

该实验室的创新技术能够增强人工智能边缘解决方案,提高神经网络能力

关键字: 人工智能 神经网络

机器学习将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对机器学习的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 机器学习 神经网络 支持向量机

深度学习需要大量的计算。它通常包含具有许多节点的神经网络,并且每个节点都有许多需要在学习过程中必须不断更新的连接。换句话说,神经网络的每一层都有成百上千个相同的人工神经元在执行相同的计算。

关键字: 机器学习 神经网络 TensorFlow

人工神经网络(Artificial Neural Network,即ANN )是从信息处理角度对人脑神经元网络进行抽象,是20世纪80年代以来人工智能领域兴起的研究热点,其本质是一种运算模型,由大量的节点(或称神经元)之...

关键字: 人工智能 信号 神经网络

许多人工智能计算机系统的核心技术是人工神经网络(ANN),而这种网络的灵感来源于人类大脑中的生物结构。通过使用连接的“神经元”结构,这些网络可以通过“学习”并在没有人类参与的情况下处理和评估某些数据。神经网络提供了位于托...

关键字: 人工智能 神经网络 神经元

1956年,美国Dartmouth大学举办的一场研讨会中提出了人工智能这一概念。

关键字: 人工智能 吸尘器 神经网络

米尔 MYD-Y6ULX-V2 开发板,基于 NXP i.MX6UL/i.MX6ULL处理器,该开发板被米尔称之为经典王牌产品。本次测试目标是在此开发板上进行神经网络框架ncnn的移植与测试开发,测试ncnn在此开发板上...

关键字: 米尔电子 嵌入式 神经网络

人工智能的不断发展和越来越广泛的应用,将相应地需要更先进和可扩展的基础设施来支持其开发和部署。人工智能基础设施投资的一个关键领域将是专门的数据基础设施,如矢量数据库,其设计用于存储和处理现代ML模型生成的大量数据。Lib...

关键字: 人工智能 神经网络 智慧名城

AutoEncoder的基本思想是利用神经网络来做无监督学习,就是把样本的输入同时作为神经网络的输入和输出。本质上是希望学习到输入样本的表示(encoding)。早期AutoEncoder的研究主要是数据过于稀疏、数据高...

关键字: 自编码器 机器学习 神经网络

深度学习是近10年机器学习领域发展最快的一个分支,由于其重要性,三位教授(Geoffrey Hinton、Yann Lecun、Yoshua Bengio)因此同获图灵奖。深度学习模型的发展可以追溯到1958年的感知机(...

关键字: 深度学习 神经网络 机器学习
关闭
关闭