介紹卷积神经网络(CNN)模型

1 CNN的基本结构

​ 一个常见的CNN例子如下图:

这是一个图像识别的CNN模型。最左边的船就是我们的输入层,计算机可理解为若干个矩阵。

接下来就是卷积层(Convolution Layer),这是CNN特有的。卷积层所使用的激活函数是ReLU。

ReLU(x)=max(0,x)。在卷积层后面是池化层(Pooling layer),这个也是CNN特有的,池化层没有激活函数。

上图中卷积层+池化层出现了两次,其实这些次数可以根据模型的需要来变换,也可灵活使用卷积层+卷积层,或者卷积层+卷积层+池化层的组合,常见的CNN都是若干卷积层+池化层的组合。

若干个卷积层+池化层后面是全连接层(Fully Connected Layer,简称FC),全连接层其实就是DNN结构。接下来我们主要介绍卷积层和池化层。

2 卷积介绍

在微积分中卷积的表达式为:

离散形式是:

这个式子用矩阵表示为:

其中*表示卷积。

若是二维的卷积,则可表示为:

在CNN中,虽然也说成卷积,但此卷积和严格意义数学中的卷积定义稍有不同,比如对二维的卷积,在CNN中定义为:

其中,W是卷积核,X是输入。如果X是一个二维输入的矩阵,而W也是一个二维的矩阵。若X是多维张量,则W也是一个多维张量。X和W的维数保持相同。

3 CNN中的卷积层介绍

将卷积公式 应用于CNN的卷积层,即对输入的图像的不同局部的矩阵和卷积核矩阵各个位置元素相乘再相加。

下图中,输入是一个二维的3×4矩阵,卷积核也是二维的,大小为2×2。假设卷积是一次移动一个像素进行卷积,首先对输入的左上角的2×2局部进行卷积,即采用卷积核对其进行元素相乘再相加,得到一个具体的数字。再向右将卷积核移动一个像素的大小,同样相乘再相加得到另一个数字。

将卷积核依次向右向下移动进行卷积后得到输出矩阵S的各个元素,由于卷积核在输入上能进行六次卷积运算,S矩阵最终是一个2×3的矩阵。

动态的卷积过程:

绿色的是输入为5×5大小的矩阵,卷积核为3×3大小的矩阵,卷积的步幅设为一个像素,如下图所示:

上述举例均是二维卷积。若输入时多维的,比如输入是三个矩阵时,又或者对应RGB的彩色图像时,该如何卷积呢?有个动态的例子展示输入为三维的卷积过程:
点击此处
例子中将输入原本时3个5×5的矩阵扩展成了3个7×7的矩阵(即在原本矩阵周边加了1的padding)。在本例中,使用了两个卷积核W0和W1,每个卷积核分别是3×3×3的张量,可理解为3×3是卷积核的大小,最后的3是卷积核的维数,此处维数须和输入矩阵维数相同。这个例子中,卷积运算的步幅为2,即就是每次卷积会移动2个像素的位置。

最终卷积的过程和二维矩阵类似,上面是矩阵的卷积,即两个矩阵对应位置的元素相乘后相加。此处是张量的卷积,即两个张量(卷积核)的3个子矩阵卷积后,再把卷积的结构相加后加上偏倚量b。

7×7×3的张量和3×3×3的卷积核张量W0卷积的结果是一个3×3的矩阵,由于此处用到了两个卷积核W0和W1,因此最后卷积的结果是两个3×3的矩阵,或者说卷积的结构是一个3×3×2的张量。

再简要复述上面过程,输入是7x7x3的张量,卷积核是两个3x3x3的张量。卷积步幅为2,最后得到了输出是3x3x2的张量。如果把上面的卷积过程用数学公式表达出来就是:

其中,n为输入矩阵的个数,或者可以说成张量的最后一维的维数。X_k代表第第k个输入矩阵。W_k代表卷积核的第k个子卷积核矩阵。s(i,j)即卷积核W对应的输出矩阵的对应位置的元素的值。

对于卷积后的输出,一般会通过ReLU激活函数,将输出的张量中的小于0的位置对应的元素值都变为0。

4 CNN中的池化层

池化层相比卷积层要简单一些,池化,即就是对输入张量的各个子矩阵进行压缩。假如是2×2的池化,那么就是将子矩阵的每2×2个元素变成一个元素,这样使输入矩阵的的维度就会减小。

若想将输入子矩阵的每n×n元素变成一个元素,那么就需要一个池化标准。常见的池化标准有两个:MAX和AVERAGE。即用对应区域的最大值或者平均值来作为池化后的元素值。

下面的例子采用取最大值MAX的池化方法,同时采用的是2×2的池化,步幅为2。

首先,对红色2×2的区域进行池化,由于此2×2区域的最大值是6。那么对应的池化输出位置的值为6,由于步幅为2,此时移动到绿色的位置取进行池化,输出的最大值为8。同样的方法,可以得到黄色区域和蓝色区域的输出值。最终,我们输入的4×4矩阵在池化后变成了2×2的矩阵,进行了压缩。

5 CNN模型小结

理解了CNN模型中的卷积层和池化层,就基本理解了CNN的基本原理。后期再讨论关于CNN模型的前向传播算法和反向传播算法。

介紹卷积神经网络(CNN)模型结构相关推荐

  1. 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。

    在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...

  2. 卷积神经网络(CNN)模型结构

    在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...

  3. 【经典卷积神经网络CNN模型 之 VGG16Net】模型实验,强烈建议使用GPU来跑,经试验,若使用CPU,普通PC理论上需要超过100小时

    声明:仅学习使用~ 建议回顾基础知识: 包含但不限于 [模型实验]几个 经典卷积神经网络CNN模型 回顾:分组卷积–AlexNet,使用3x3卷积核----VGG,使用多种卷积核结构----Googl ...

  4. 一文总结经典卷积神经网络CNN模型

    一般的DNN直接将全部信息拉成一维进行全连接,会丢失图像的位置等信息. CNN(卷积神经网络)更适合计算机视觉领域.下面总结从1998年至今的优秀CNN模型,包括LeNet.AlexNet.ZFNet ...

  5. 基于卷积神经网络(CNN)模型的垃圾分类设计与实现

    本篇博客主要内容如下: 目录 项目背景 数据集介绍 模型构建与训练 结果分析 结果对比分析 项目背景 如何通过垃圾分类管理,最大限度地实现垃圾资源利用,减少垃圾处置量,改善生存环境质量,是当前世界各国 ...

  6. 【图像识别】基于卷积神经网络CNN手写数字识别matlab代码

    1 简介 针对传统手写数字的随机性,无规律性等问题,为了提高手写数字识别的检测准确性,本文在研究手写数字区域特点的基础上,提出了一种新的手写数字识别检测方法.首先,对采集的手写数字图像进行预处理,由于 ...

  7. 卷积神经网络(CNN)前向传播算法

    在卷积神经网络(CNN)模型结构中,我们对CNN的模型结构做了总结,这里我们就在CNN的模型基础上,看看CNN的前向传播算法是什么样子的.重点会和传统的DNN比较讨论. 1. 回顾CNN的结构 在上一 ...

  8. 深度学习之卷积神经网络CNN

    转自:https://blog.csdn.net/cxmscb/article/details/71023576 一.CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连 ...

  9. 白话机器学习-卷积神经网络CNN

    一 背景 在卷积神经网络CNN 出现之前,图像对于人工智能来说就是一个灾难,主要是有两个原因: 图像需要处理的数据量太大,导致成本很高,效率很低: 图像在数值化的过程中很难保留原有的特征,导致图像处理 ...

最新文章

  1. 一个案例说出python的十余个语法知识点
  2. Redis常用命令之操作SortedSet(有序集合)
  3. Oracle常用运维命令整理
  4. 牛客网刷题(纯java题型 31~60题)
  5. 风靡全球的GANs:一文看尽这“混世魔王”的“三生三世”
  6. http://www.cnblogs.com/ITtangtang/archive/2012/05/21/2511749.html
  7. vue+echarts 实时跟新数据 仪表盘多个渲染
  8. 亿图图示专家 ((EDraw Max)V5.6 绿色特别版
  9. 解决IDM下载城通网盘,一个网站不允许请求同一个文件两次,即使设置了快捷键也无用的问题
  10. docker-compose 部署 mindoc文档服务器(支持在线markdown文件编辑)
  11. 微信h5界面隐藏刷新功能_隐藏微信H5页面下拉出现的网址
  12. 云溪云原生分布式数据库安全功能以及实现介绍
  13. [Unity]Mesh Baker3.1.0使用教程
  14. 按键精灵 获取网页flash游戏 句柄 以360浏览器为例
  15. 计算机语言输入不见了,电脑输入法为什么不见了
  16. 【MySQL】测试题01
  17. MapGuide 初步
  18. 核心期刊《微生物学杂志》
  19. 用Delphi自制英语复读机
  20. 批处理、分时、实时各个操作系统特点

热门文章

  1. flashplayer_10_ax_debug10.2.exe 安装错误。您尝试安装的adobeflasplayer不是最新版本
  2. 杭电OJ1214圆桌会议换座位
  3. (未完成)随机游走模型
  4. 修炼功法错了,再怎么努力修炼效率还是很低!
  5. 感恩节,感谢有你,感谢有AI!|中机智库编辑器
  6. Algebra:Chapter 0 - 等价关系,划分,商
  7. 【三维深度学习】多视角立体视觉网络MVSNet
  8. 计算机专业口号 十六个字,励志的计算机专业军训口号
  9. ESD监控系统、防静电闸机的应用案例
  10. Pygame游戏之 合金弹头