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

假设你有 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%的人还看了以下文章

  • MVC(JSP+JavaBean+Servlet)+MYSQL入门实例:实现用户登陆

    MVC(JSP+JavaBean+Servlet)+MYSQL实现用户登陆模块,具体功能: 客户在登陆页面Login.html输入用户名和密码,提交表单,由Servlet(LoginValidate.java)调用JavaBean(LoginDBO.java)验证用户名和密码,最后调用视图returnMessage.jsp显示,如果成功显示成功信息,不成功显…

    2018年11月27日 编程开发
    8.1K0
  • 2个pycharm使用技巧:更改文件、文件夹名称,更换pip为清华源

    pycharm怎么重命名文件、文件夹名称 1.右键单击文件名称,在弹出的界面选择refacto下的rename选项 2.在弹出的界面输入新的名称即可 pycharm更换pip清华源 永久使用 直接在Pycharm打开终端Terminal,选择Command Prompt,将下列语句复制进去,回车执行 pip config set global.index-u…

    2023年10月3日
    6840
  • java中类、接口、方法、变量命名时的大小写问题

    类或者接口 一个单词:首字母大写 举例:Student,Demo 多个单词:每个单词首字母大写 举例:HelloWorld,StudentName 方法或者变量 一个单词:首字母小写 举例:name,main 多个单词:从第二个单词开始,每个单词首字母大写 举例:studentAge,showAllNames() 常量 全部大写 一个单词:大写 举例:PI …

    2020年11月15日
    3.1K0
  • Python开发环境搭建

    今天学习在计算机上配置Python开发环境。 虽然使用Python自带的Vim编辑器+命令行的方式比较酷,然而一个优秀的IDE确实能让开发速度提升不少。 Python开发环境一在Eclipse中搭建Python开发环境 基本软件需求:1. Eclipse(https://www.eclipse.org/downloads/)2. Python解释器(www.…

    2019年3月15日
    5.5K1
  • HTML5- Canvas入门(一)画线

    canvas是一个H5的标签: <canvas> </canvas> canvas本身没有任何的绘图能力,所有的绘图工作都是通过js来实现的。通常我们在js通过getElementById来获取要操作的canvas(这意味着咱得给canvas设个id): <canvas id=”myCanvas”></canvas&…

    2022年7月9日
    6670
  • servlet共享变量实现计数器功能(servlet入门)

    servlet类中定义的成员变量,被所有的客户线程共享。 要求利用servlet共享变量实现计数器功能。 Count.java package com.servlet; import java.io.I.*; import javax.servlet.*; import javax.servlet.http.*; public class Count ext…

    2018年11月27日
    2.0K0

发表回复

登录后才能评论

评论列表(3条)

  • 江山如画的头像
    江山如画 2023年10月14日 上午10:55

    传统的机器学习方法包括监督学习、无监督学习和半监督学习,其中监督学习是学习给定标签的数据集。请问标签为离散的类型,称为分类,标签为连续的类型,称为什么?(D)
    A.给定标签 B.离散 C.分类 D.回归

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

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

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

    答案为A