卷积神经网络 数据维度计算公式:输入输出关系、输出维度

假设你有 5 个大小为 7×7、边界值为 0 的卷积核,同时卷积神经网络第一层的深度为 1。

此时如果你向这一层传入一个维度为 224x224x3 的数据,那么神经网络下一层所接收到的数据维度是( )。

A.218*218*5

B.217*217*8

C.217*217*3

D.220*220*5

在进行深度学习训练时,优化器会对模型的参数进行优化,以寻找到一组最优解。一个简单的卷积神经网络,可以分为卷积池化层和全连接层,全连接层中的参数可以用神经元连接的权重W来表示,而卷积层的参数往往是用卷积核参数来表示。

2D卷积

卷积神经网络 数据维度计算公式:输入输出关系、输出维度
卷积神经网络 数据维度计算公式:输入输出关系、输出维度

卷积神经网络(Convolutional Neural Network,CNN)

卷积
神经网络不再对每个像素信息做处理,而是对图片每一小块像素区域做处理,这种做法加强了信息的连续性。神经网络能够看到一个图形而不是一个点,同时加深神经网络对图片的理解。

具体:批量过滤器在图片上滚动收集图片上的信息,每一次收集的都是像素区域,再整理总结,再滚动收集……

图像拥有长宽高,其中高表示图片的颜色信息黑白高度1 彩色高度3

批量过滤器,每次长宽压缩,高度增加,对输入图片更深的理解

convolution卷积层:主要作用是保留图片的特征
pooling池化层:主要作用是把数据降维,可以有效的避免过拟合
Full connected 全连接层:根据不同任务输出我们想要的结果
classifier 分类预测

卷积核(滤波器,convolution kernel)

是可以用来提取特征的图像和卷积核卷积,就可以得到特征值,就是destination value特征提取。

卷积神经网络 数据维度计算公式:输入输出关系、输出维度

卷积核放在神经网络里,就代表对应的权重(weight)

卷积核和图像点乘(dot product),就代表卷积核里的权重单独对相应位置的Pixel作用

卷积运算方式及各部分介绍
从左到右,每隔x列Pixel,向右移动一次卷积核进行卷积,当已经到最右,从上到下,每隔x行pixel,向下移动一次卷积核,移动完成,再继续如上所述,即先从左到右,再从上到下,直到所有pixels都被卷积核过一遍,则完成输入图片的第一层卷积层的特征提取。

这里的x叫作stride,就是步长,如果x = 2,就是相当每隔两行或者两列进行卷积。

补0(zero padding)
分量的pixel外面围一圈0,称之为补0(zero padding),同样是stride x=1的情况下,补0比原来没有添0的情况下进行卷积,从左到右,从上到下都多赚了2次卷积,这样第一层卷积层输出的特征图(feature map)仍然为5×5,和输入图片的大小一致,而没有添0的第一层卷积层输出特征图大小为3×3。

优点:
获得的更多更细致的特征信息,如获得更多的图像边缘信息。
控制卷积层输出的特征图的size,从而达到控制网络结构的作用,如果没有做zero-padding第二层卷积层的卷积核是3×3,那么第二层卷积层输出的特征图就是1×1。

卷积神经网络 数据维度计算公式:输入输出关系、输出维度

池化(Pooling)

​ Pooling 层主要的作用是下采样,通过去掉 Feature Map 中不重要的样本,进一步减少参数数量。

通常情况下,池化区域是2*2大小,然后按一定规则转换成相应的值,例如取这个池化区域内的最大值(max-pooling)、平均值(mean-pooling)等,以这个值作为结果的像素值。

最大池化(max-pooling)保留了每一小块内的最大值,也就是相当于保留了这一块最佳的匹配结果(因为值越接近1表示匹配越好)。也就是说,它不会具体关注窗口内到底是哪一个地方匹配了,而只关注是不是有某个地方匹配上了。

除了 Max Pooing 之外,常用的还有 Average Pooling ——取各样本的平均值。
对于深度为D的 Feature Map,各层独立做 Pooling,因此 Pooling 后的深度仍然为D。

通过加入池化层,图像缩小了,能很大程度上减少计算量,降低机器负载。

激活函数RelU (Rectified Linear Units)

常用的激活函数有sigmoid、tanh、relu等等,前两者sigmoid/tanh比较常见于全连接层,后者ReLU常见于卷积层。激活函数的作用是用来加入非线性因素,把卷积层输出结果做非线性映射。

在卷积神经网络中,激活函数一般使用ReLU(The Rectified Linear Unit,修正线性单元),它的特点是收敛快,求梯度简单。计算公式也很简单,max(0,T),即对于输入的负值,输出全为0,对于正值,则原样输出。

全连接层(Fully connected layers)

全连接层在整个卷积神经网络中起到“分类器”的作用,即通过卷积、激活函数、池化等深度网络后,再经过全连接层对结果进行识别分类。
卷积层的计算细节

卷积神经网络 数据维度计算公式:输入输出关系、输出维度

卷积层尺寸的计算原理

○输入矩阵格式:四个维度,依次为:样本数、图像高度、图像宽度、图像通道数

○输出矩阵格式:与输出矩阵的维度顺序和含义相同,但是后三个维度(图像高度、图像宽度、图像通道数)的尺寸发生变化。

○权重矩阵(卷积核)格式:同样是四个维度,但维度的含义与上面两者都不同,为:卷积核高度、卷积核宽度、输入通道数、输出通道数(卷积核个数)

◎输入矩阵、权重矩阵、输出矩阵这三者之间的相互决定关系

卷积核的输入通道数(in depth)由输入矩阵的通道数所决定。(红色标注)

输出矩阵的通道数(out depth)由卷积核的输出通道数所决定。(绿色标注)

输出矩阵的高度和宽度(height, width)这两个维度的尺寸由输入矩阵、卷积核、扫描方式所共同决定。计算公式如下。(蓝色标注)

卷积神经网络 数据维度计算公式:输入输出关系、输出维度
  • 注:以下计算演示均省略掉了 Bias ,严格来说其实每个卷积核都还有一个 Bias 参数。
    标准卷积计算举例

以 AlexNet 模型的第一个卷积层为例,

  • 输入图片的尺寸统一为 227 x 227 x 3 (高度 x 宽度 x 颜色通道数),
  • 本层一共具有96个卷积核,
  • 每个卷积核的尺寸都是 11 x 11 x 3。
  • 已知 stride = 4, padding = 0,
  • 假设 batch_size = 256,
  • 则输出矩阵的高度/宽度为 (227 – 11) / 4 + 1 = 55
卷积神经网络 数据维度计算公式:输入输出关系、输出维度

125jz网原创文章。发布者:江山如画,转载请注明出处:http://www.125jz.com/11125.html

(7)
上一篇 2022年9月22日 上午10:33
下一篇 2022年9月22日 下午5:15

99%的人还看了以下文章

  • itbegin编程教学云课堂使用介绍

    进入https://www.itbegin.com/apps    点击右上角 登录 登录后,点击院校通–院校 点击进入个人中心 点击“web开发技术课堂”,进入相应课程 点击:我的预习,可以看到预习的知识点,时间要求。请同学们一定要在结束时间前完成任务! 点击查看,可以看到需要预习的知识点,预习以观察,查看效果为主。 如要求:观察各标签的使用及…

    2018年3月14日
    3.9K0
  • SyntaxError: Non-UTF-8 code starting with ‘xc1′,’xc4′,’xc7’,解决方法

    phython编程入门,新手学习phython会遇到*.py文件运行时,出现如下错误: SyntaxError: Non-UTF-8 code starting with ‘\xc7’ in file E:\Pythondemo\2.py on l ine 1, but no encoding declared; see http://python.org/…

    2019年8月23日
    4.1K0
  • 详解如何在myeclipse中运行JSP,Run As none applicable(图)

    在MyEclipse中打开JAVA Project时想运行单个JAVA文件,如Hello.java文件,可以在Hello.java右键Run As 后面出现java Application,点击即可运行。 在myEclipse中打开web project,想运行单个JSP文件或项目,在jsp文件上右键Run As 没有”run on server…

    2020年2月23日
    7.7K0
  • java实现上位机与下位机串口通信实例(含java串口通信jar包下载及代码)

      串口通信在工程应用中很常见。 上位机与下位机 在上位机与下位机通讯过程中常通过有线的串口进行通信,在低速传输模式下串口通信得到广泛使用。 通常上位机指的是PC,下位机指的是单片机或者带微处理器的系统。下位机一般是将模拟信号经过AD采集将模拟量转换为数字量,下位机再经过数字信号处理以后将数字信号通过串口发送到上位机,相反上位机可以给下位机发送一些指令或者信…

    2023年1月7日 编程开发
    1.2K0
  • python 期末复习-综合练习题

    十八、分别使用for循环和while循环求1+2+3+4+……+856的和 要求: 1、新建一个“sum.py”文件。 2、编写程序。 3、调试程序。 4、排除错误。 十九、输入一个数,判断奇数偶数 要求: 1、新建一个“number.py”文件 2、编写程序。 3、调试程序。 4、排除错误。 二十、分别使用for循环和while循环输出1到100之间的偶数…

    2023年6月15日
    6840
  • Ubantu为应用程序添加桌面图标

    按要求配置应用程序参数,为应用程序添加桌面图标,实现系统快捷启动。 Ubuntu桌面的左边(默认在左边)有一个启动器,类似于window的任务栏。在Ubuntu18中叫dock(船坞),有时候又叫收藏夹。本文统一叫做启动器 在使用 Ubuntu 操作系统进行开发过程中,由于Ubuntu 系统其操作方式主要通过命令行终端进行交互,故启动软件也一般通过终端键入应…

    2022年9月1日 编程开发
    5000

发表回复

登录后才能评论

评论列表(2条)

  • 江山如画
    江山如画 2022年10月14日 上午8:50

    在 CNN 中使用 1×1 卷积时,下列哪一项是正确的( D)。
    A. 它可以帮助降低维数
    B. 可以用于特征池
    C. 由于小的内核大小,它会减少过拟合
    D. 都正确

  • 江山如画
    江山如画 2022年9月22日 下午2:22

    答案为A