专栏首页PPV课数据科学社区全连接网络到卷积神经网络逐步推导(组图无公式)

全连接网络到卷积神经网络逐步推导(组图无公式)

摘要: 在图像分析中,卷积神经网络(Convolutional Neural Networks, CNN)在时间和内存方面优于全连接网络(Full Connected, FC)。这是为什么呢?卷积神经网络优于全连接网络的优势是什么呢?卷积神经网络是如何从全连接网络中派生出来的呢?卷积神经网络这个术语又是从哪里而来?这些问题在本文中一一为大家解答。

在图像分析中,卷积神经网络(Convolutional Neural Networks, CNN)在时间和内存方面优于全连接网络(Full Connected, FC)。这是为什么呢?卷积神经网络优于全连接网络的优势是什么呢?卷积神经网络是如何从全连接网络中派生出来的呢?卷积神经网络这个术语又是从哪里而来?这些问题在本文中一一为大家解答。

1.介绍

对于图像分析而言,具体可以将其划分为很多类型的任务,比如分类、对象检测、识别、描述等。对于图像分类器而言,即使在诸如遮挡、照明变化、视觉等变化的情况下,也应该能够以高精度的性能工作。以特征工程为主要步骤的传统图像分类方法不适合在丰富环境中工作,即使是该领域的专家也不能给出一组能够在不同变化下达到高精度的特征,无法保证手工所选的特征是否合适。在这个问题的启发下,特征学习的思想应运而生,通过自主学习来获得合适的图像特征,这也是人工神经网络(ANN)对于图像分析任务鲁棒性的原因之一。基于梯度下降算法(GD)等学习算法,ANN可以自动学习到图像特征,将原始图像输入人工神经网络后,ANN能够自动地生成描述它的特征。

2.基于全连接网络的图像分析

现在一起看看人工神经网络是如何对进行处理的,以及CNN为什么在时间和内存上相较于全连接网络更高效。如图1所示,输入的是一个3x3大小的灰度图。例子中使用小尺寸的图像是为了方便讲解,而不是表明ANN只能处理小尺寸的图像。

图像1

在输入ANN时,图像会转变为像素矩阵。由于ANN使用的是一维向量,而不是二维矩阵,所以将输入的二维灰度图转换成一维向量,其中每个像素点代表一个输入神经元节点。

图像2

每个像素被映射为向量元素,向量中的每个元素又代表ANN中的神经元。由于图像有3x3=9个像素点,那么输入层(Input Layer)将有9个神经元。由于ANN结构通常水平延伸,因此每层被表示为列向量。 输入层与隐藏层(Hidden Layer)相连,输入层的输出又输入给隐藏层,隐藏层学习如何将图像像素转换为代表性特征。假设在图3中有一个具由16个神经元的单个隐藏层。

图像3

由于网络是全连接网络,这意味着第i层的每个神经元与第i-1层中的所有神经元相连。即隐藏层中的每个神经元都与输入层中9个神经元相连。换句话说,每个输入像素与隐藏层中的16个神经元相连,其中每条连接都具有相应的参数(权重)。通过将每个像素与隐藏层中的所有神经元相连,如图4所示,该网络具有9x16=144个参数(权重)。

图像4

3.大量参数

上面例子中的参数数目似乎还可以接受,但是随着输入图像尺寸变大以及隐藏层数量增加,网络参数将大大增加。 例如,若网络具有两个隐层,分别有90和50个神经元,那么输入层和第一隐藏层之间的参数数目是9x90=810,两个隐藏层之间的参数数目为90x50=4500,该网络的参数总数为810+4500=5310。对于这样简单的网络结构就有这么多的参数数量,显然是不合适的;另外一种情况是输入图像尺寸较大,比如32x32大小的图像(1024个像素),如果网络使用单个隐藏层(含有500个神经元),则总共有1024x500=512000个参数(权重),这对于只含单个隐藏层的网络而言是一个巨大的数字。因此,必须有一个解决方案来减少网络参数,那么针对于此,卷积神经网络(CNN)应运而生,虽然它网络模型通常比较大,但大大降低了参数数量。

4.神经元组群

即使是很小的全连接网络,网络参数数目变得非常大的原因在于其层与层之间神经元每条连接上都是不同的参数。因此,可以考虑给一组神经元提供相同的参数,如图5所示,一组神经元内的神经元都将分配同一个参数。

图像5

这样处理以后,网络参数数量大大降低。以图4为例,比如每4个连续神经元作为一组,其结果是参数数量减少了4倍。每个输入神经元将具有16/4=4个参数。整个网络将具有144/4=36个参数,参数数量减少了75%。可以看到,其效果很好,但仍然有可优化的地方。

图像6

图7显示了每个像素到每个组中第一个神经元的连接,但每组中的每个像素与每个神经元还是相互连接,该网络仍然是全连接网络。

图像7

为了简单起见,只挑选出一组并忽略其它组,如图8所示。从图中可以看到,每个组仍然与输入层所有的9个神经元有所连接,因此具有9个参数。

图像8

5.像素空间相关性

之前所述内容使得每个神经元接受所有像素,若存在接受4个输入的函数f(x1,x2,x3,x4),则这意味着要基于所有这4个输入来进行决定。如果只有2个输入,但其输出结果与使用4个输入的结果相同,那么将不必使用所有的这4个输入,只需给出对结果有影响的2个输入即可。借鉴该思想,每个神经元接受输入的9个像素,若能使用更少的像素获得相同或更好的结果就大大降低了参数数量,因此可以朝着这个方向优化网络参数。 通常,在图像分析中,输入图像被转换为像素矩阵,像素矩阵中的每个像素与它周围的像素高度相关,两个像素之间的距离越远,二者越不相关。例如,如图9所示,面部的像素与面部周围的像素相关,但它与天空、地面等像素的相关性较低。

图像9

基于这样的假设,上述示例中的每个神经元只接受彼此空间相关的像素,而不是将所有9个像素点都应用到每个输入神经元中,因此可以选择4个空间相关像素,如图10所示。对于像素矩阵位置(0,0),那么空间上最相关的像素是坐标点(0,1)、(1,0)以及(1,1)。同一组中的所有神经元共享相同的权重,那么每组中的4个神经元将只有4个参数而不是9个。总的参数变为4x4=16。与图4中的全连接网络相比,减少了128个参数(减少了88.89%)。

图像10

6.卷积神经网络(CNN)

由于CNN使用权重共享,使用较少的参数,这使得CNN网络结构一般层数比较多,这是全连接网络无法具有的特性。 现在只有4个权重分配给同一组中的所有神经元,那么这4个权重如何涵盖9个像素点呢?让我们看看这是如何处理的吧! 图11展示了图10中的一个网络,并为每条连接添加了权重标记。在神经元内部,4个输入像素中的每一个都与其相应的权重相乘,如图11中公式所示。

图像11

假设这里每次移动的步长设置为1(步长可以自己设置),每次相乘后将像素点索引移动一位,权重矩阵与另外一组像素相乘。以此类推,直到整个像素矩阵都与权重矩阵进行了相乘运算。整个过程与卷积运算相同,组的权重与图像矩阵之间进行卷积运算,这也是CNN有“卷积”一词的原因。

图像12

剩余的神经元组也会进行同样的操作,从像素矩阵的左上角开始,直到像素矩阵的右下角都与权重矩阵相乘。

7.参考

Aghdam, Hamed Habibi, and Elnaz Jahani Heravi. Guide to Convolutional Neural Networks: A Practical Application to Traffic-Sign Detection and Classification. Springer, 2017.

END.

云栖社区翻译

作者信息

Ahmed Gad,教师、专注于深度学习、计算机视觉 个人主页:https://www.linkedin.com/in/ahmedfgad/ 文章原标题《Derivation of Convolutional Neural Network from Fully Connected Network Step-By-Step》

本文分享自微信公众号 - PPV课数据科学社区(ppvke123)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 全连接网络到卷积神经网络逐步推导(组图无公式)

    摘要: 在图像分析中,卷积神经网络(Convolutional Neural Networks, CNN)在时间和内存方面优于全连接网络(Full Connec...

    朱晓霞
  • 反向传播算法推导-卷积神经网络

    原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

    SIGAI学习与实践平台
  • 反向传播算法推导-卷积神经网络

    在SIGAI之前的公众号文章“反向传播算法推导-全连接神经网络”中,我们推导了全连接神经网络的反向传播算法。其核心是定义误差项,以及确定误差项的递推公式,再根据...

    SIGAI学习与实践平台
  • 大话卷积神经网络CNN(干货满满)

    本文创作的主要目的,是对时下最火最流行的深度学习算法的基础知识做一个简介,本人看过许多教程,感觉对小白不是特别友好,尤其是在踩过好多坑之后,于是便有了写这篇文章...

    我是管小亮
  • 零基础入门深度学习 | 第四章:卷积神经网络

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习这个超热的技术,会不会感...

    用户1332428
  • 深度学习之卷积神经网络

    纵观过去两年,“深度学习”领域已经呈现出巨大发展势头。在计算机视觉领域,深度学习已经有了较大进展,其中卷积神经网络是运用最早和最广泛的深度学习模型,所以今天就和...

    企鹅号小编
  • 【专知-PyTorch手把手深度学习教程02】CNN快速理解与PyTorch实现: 图文+代码

    【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视...

    WZEARW
  • 【深度学习最精炼中文讲义】前馈与卷积神经网络详解,复旦邱锡鹏老师《神经网络与深度学习》报告分享02(附报告pdf下载)

    【导读】复旦大学副教授、博士生导师、开源自然语言处理工具FudanNLP的主要开发者邱锡鹏(http://nlp.fudan.edu.cn/xpqiu/)老师撰...

    WZEARW
  • 卷积神经网络

    在机器学习中,分类器将类别标签分配给数据点。例如,图像分类器针对图像中存在哪些对象产生类别标签(例如,鸟,飞机)。一个卷积神经网络,或CNN的简称,是一种类型的...

    算法发
  • iOS 10 和macOS中的神经网络

    用户1737318
  • 毕业设计之「神经网络与深度学习概述」(二)

    首先,来说一下卷积的概念,从数学角度来看,可以简单的认为卷积是一种数学运算,在通信领域,卷积也被应用在滤波上,因此通常将卷积和滤波同等看待,卷积核也经常被称为滤...

    石璞东
  • 深度学习之卷积神经网络

    纵观过去两年,“深度学习”领域已经呈现出巨大发展势头。在计算机视觉领域,深度学习已经有了较大进展,其中卷积神经网络是运用最早和最广泛的深度学习模型,所以今天就和...

    商业新知
  • 基础 | 如何通过DCGAN实现动漫人物图像的自动生成?

    基于生成对抗网络(GAN)的动漫人物生成近年来兴起的动漫产业新技术。传统的GAN模型利用反向传播算法,通过生成器和判别器动态对抗,得到一个目标生成模型。由于训练...

    公众号机器学习与生成对抗网络
  • 机器学习、深度学习 知识点总结及面试题

    一、反向传播思想: 1、计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,根据梯度方向更新权值。 (1)将训练集数据输入到ANN的输入层,经过隐...

    两只橙
  • 机器学习、深度学习 知识点总结及面试题

    1、反向传播思想: 计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,根据梯度方向更新权值。 (1)将训练集数据输入到ANN的输入层,经过隐藏...

    机器学习AI算法工程
  • 机器学习、深度学习 知识点总结及面试题

    1、计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,根据梯度方向更新权值。

    两只橙
  • GNN 系列(二):图神经网络的“开山之作”GCN模型

    这是我们介绍图神经网络的第一篇文章,取自Kipf et al. 2017,文章中提出的模型叫Graph Convolutional Network(GCN),个...

    Coggle数据科学
  • 面试宝典之深度学习面试题(上)

    金三银四是一年找工作的最好时机,都忙着找工作。找工作就少不了面试,面试就少不做被问各面试题。为了避免大家少走弯路,乘此机会,小编就将平时手里搜集的一些面试题整理...

    小小詹同学
  • GNN教程:第六篇Spectral算法细节详解!

    图神经网络的逐层Spectral更新公式简单优雅而高效,以GCN为例,节点Embedding是由自身和邻居节点Embedding的聚合之后再进行非线性变换而得到...

    Datawhale

扫码关注云+社区

领取腾讯云代金券