“深度学习”学习日记。卷积神经网络--卷积层

news2024/9/20 17:31:55

2023.2.3

CNN中出现一些新的概念:填充、步幅 等,此外各层中传递的数据是有形状的,与之前的全连接层神经网络完全不同;

一、全连接层存在的问题:

全连接层神经网络使用了Affine层,在相邻的神经元全部连接在一起,输出数量可以自己任意决定;

就是这样的结构导致数据的形状被忽略了,图像通常是(通道,高,长)的3维数据,比如MNIST数据集图像,通常是(1,28,28),但是在全连接神经网络中却被排列成(1,784)的形状作为输入。

3维图像,这个形状中应该含有重要的空间信息。比如,空间上临近的像素为相似的值RGB的各个通道之间分别有密切的关联性相距较远的像素之间关联等,3维形状中可能隐匿有值提取的本质模式。但是,因为全连接层对于这样的“忽略”,将全部输入数据作为相同的神经元(同一维度的神经元)处理,所以无法使用与形状相关的信息

CNN中,有时将卷积层的输入输出数据称为 特征图 。 其中,卷积层输入被称为 输入特征图,卷积层输出 称为 输出特征图。

二、卷积运算:

卷积层处理的就是卷积运算。卷积运算相当于图像处理中的“滤波器运算”。(滤波器也被称为 卷积核)

例子:卷积运算图例,来源于教材;

对于输入数据,卷积运算以一定的间隔划定滤波器的窗口并应用。这里所说的窗口时指例子中3×3的灰色部分。如图将各个位置的 卷积核 和输入的对应元素相乘,然后在求和(有时将这个计算称为 乘积累加运算)。然后,将这个结果保存到输出的对应位置。将这过程所有位置都进行一遍,就能得到卷积运算的输出。

在全连接神经网络中,除了权重参数,还存在偏置。CNN中,滤波器的参数就对应之前的权重,也存在偏置。(图例来源于教材)

 向滤波器中加上偏置,这个值也会加到滤波器的其他元素上。

三、填充:

在进行卷积层处理之前,有时要向输入数据的周围填入固定的数据(比如 0),这称为 填充 (Padding)。

 上个图例中,填充值为0,所以大小为4×4的图像与3×3的卷积核进行卷积运算,得到的输出特征图的大小是2×2。

而现在填充值为1,4×4的图像与3×3的卷积核进行卷积运算,得到的输出特征图的大小是4×4.

所以,使用填充的主要目的是为了调整输出大小。这在进行重复地多次地卷积运算的深度网络中也是一个问题。如果填充值为0,每次卷积运算都会压缩空间,那么到某个时候输出大小就有可能变为1,导致无法在应用卷积运算。为了避免出现这样的情况,就要使用填充,将保持空间大小不变的情况下将数据传递给下一层。

四、步幅:

应用滤波器(卷积核)的位置间隔为 步幅 (Stride)。

之前的例子的步幅是都是1,如果将步幅设置为2,则应用滤波器的窗口间隔为2,例子来源于教材;

 对输入大小为(7×7)的数据,以步幅为2应用滤波器,输出大小为(3×3)

可以观察到,增大步幅后,输出大小会变小。而增大填充后,输出大小会保存或者变大。

用公式表达:假设输入大小为(H,W),滤波器(卷积核)的大小为(FH,FW),输出大小为(OH,OF);

OH =\frac{H+2P-FH}{S}+1

OW=\frac{W+2P-FW}{S}+1

当OH和OW的值无法除尽时,需要采取相应报错对策,有时因为不同的深度学习神经网络,回想最接近的整数四舍五入,不进行报错二继续学习;

五、3维数据的卷积运算:

2维形状是(高,长),3维形状是(通道,高,长)

通道方向上有多个特征图,会按通道进行输入数据和滤波器的卷积运算,并将结构相加,从而得到输出。

例子:(来源于教材)

但是,需要注意的是,在3维数据的卷积运算中,输入数据和滤波器的通道数要设置成相同的值。

六、结合方块思考:

将数据和滤波器比作长方体来考虑3维卷积;(channel,height,width)→(c,h,w)

 像这个例子输出的是一张特征图,n个卷积核就会输出n张特征图,

 输入数据通过FN个滤波器以后,输出的特征图也变成了FN个。如果将这FN个特征图汇集在一起,就可以得到形状为(FN,OH,OW)的“方块”,他传递给下一层就是CNN的处理流。

有关于卷积运算,我们也要考虑滤波器(卷积核)的数量,比如写作(output_channel,input_channel,height,width)的书写顺序。

卷积运算核全连接层一样存在偏置:

这里的偏置的形状是(FN,1,1)最后的输出数据也要加上偏置值。另外,不同形状的方块相加时,可以基于Numpy的广播功能轻松实现。

七、批处理:

神经网络的推理处理中,进行了将数据打包的批处理,之前的全连接层神经网络的实现也使用了批处理,通过批处理,还能实现按粗粒高效化和学习时对mini-batch的对应;

同理,卷积运算也能够进行对应的批处理。为此,需要将各层传递的数据保存成4维数据。

保存形式(形状):(batch_num,channel,height,width)的顺序保存数据。

如图将N个数据进行卷积运算,批处理将N次的处理汇总成1次进行;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

php7.3.4 pdo方式连接sqlserver 设置方法

我这边用的php是7.3.4版本的,大家设置的时候看一下。一、首先要开启php的sqlsrv扩展1.下载SQLSRV58.EXE,我的php版本是7.3.4https://docs.microsoft.com/en-us/sql/connect/php/release-notes-php-sql-driver?viewsql-server-2017#previous-releases拷贝到浏览器打…

内网渗透(二)之基础知识-工作组介绍

系列文章 内网渗透(一)之基础知识-内网渗透介绍和概述 注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!! 工作组介绍 1、工作组的介绍 在一个大型单位里,可能有成百上千台计算机互相连接组成局域网,它…

Rancher 部署 MongoDB

文章目录前置部署创建 Headless开始部署测试前置 背景:在 K8S 集群用 bitnami 部署 MongoDB 有一定的学习成本,有兴趣可以参考 k8s 部署 mongodb 三种模式,且部署后发现 MongoDB 会随着时间推移占用越来越多的内存,暂没找到原有&…

计算机如何在本地硬盘安装WinPE系统

环境: 联想E14 Win 10专业版 U盘魔术师V6 30G硬盘分区 双硬盘:128G固+1T机 DiskGenius UltraISO 问题描述: 如何在本地硬盘安装WinPE系统 解决方案: 一、使用软件制作硬盘PE系统 1.机械磁盘先分区分一个30G分区 …

Java 中的Type类型及其实现【学习记录】

概述 在JDK1.5之前只有原始类型,此时所有的原始类型都通过字节码文件类Class进行抽象。Class类的一个具体对象就代表一个指定的原始类型。 JDK1.5加入了泛型类,扩充了数据类型,从只有原始类型基础上扩充了参数化类型、类型变量类型、通配符…

OpenStack使用Skyline Dashboard面板替换默认Horizon面板

书接上回 OpenStack Yoga安装使用kolla-ansible 忘记提示了。如果截止发稿今天,使用最新zed版本,在最后一步部署阶段会报错,好像是rabbitMQ重启失败。所以建议使用最新版再退一个版本 官方文档 skyline-apiserver/README-zh_CN.md at maste…

一文入门图像分类

文章目录一、卷积网络1.1 卷积的参数量1.2 卷积的计算量1.3 降低模型参数量和计算量的方法1.3.1 GoogLeNet 使用不同大小的卷积核1.3.2 ResNet 使用11卷积压缩通道数1.3.3 可分离卷积二、Transformer2.1 注意力机制 Attention Mechanism2.2 多头注意力 Multi-head (Self-)Atten…

基于SSM框架宠物管理系统

一、项目简介 本项目是一套基于ssm框架宠物管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse…

学习笔记:Java 并发编程⑥_线程池

若文章内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系博主删除。 视频链接:https://www.bilibili.com/video/av81461839配套资料:https://pan.baidu.com/s/1lSDty6-hzCWTXFYuqThRPw&am…

软件测试-移动端测试示例1-笔记

搭建环境移动端测试试验连接真机不方便,在此通过电脑端进行一个测试安装JDK环境参考一下文章https://blog.csdn.net/weixin_47260194/article/details/122595008?spm1001.2014.3001.5502Android SDK环境配置首先去到官网https://www.androiddevtools.cn/下载SDK&am…

【虹科新品】采用NVIDIA Jetson Orin NX系统的视觉边缘计算机

虹科是智能感知与机器视觉领域领先资源整合及技术服务落地供应商,已经和Gidel展开深度的技术合作,为用户提供图像采集卡、FPGA图像处理和高带宽图像采集等服务。目前已经陆续在国内完成了多家一线公司的汽车图像采集、AOI、晶圆半导体检测项目。Gidel推出…

JS 执行上下文和作用域

与JS 中的作用域一同出现的还有一个执行上下文(execution context)的概念,这两个概念容易混淆,今天就来聊聊他们。 作用域 作用域是指程序源代码中定义变量、函数的区域,它规定了变量和函数可以访问哪些数据以及他们…

C语言和汇编语言混合编程

ATPCS ATPCS的全称是ARM-Thumb Procedure Call Standard,其核心内容就是定义了ARM子程序调用的基本规则及堆栈的使用约定等。如ATPCS规定了ARM程序要使用满递减堆栈,入栈/出栈操作要使用STMFD/LDMFD指令,只要所有的程序都遵循这个约定&#…

前端开发环境部署问题

很多开发者到了一家新公司,公司发了一台新电脑,对环境安装比较困惑。今天带大家还原,拿到公司电脑,如何安装你需要的各种环境。 一、node按装 官网下载地址: http://nodejs.cn/download/ 根据自己需要下载对应的版本…

深度 | Web 3.0时代去中心化IM 的挑战与思考

前言 Web3.0时代的重要特点: 1、数据主权 用户将拥有自己的数据主权,用户所创造的数字内容,所有权和控制权都归属于用户,用户所创造的价值可以由用户自主支配。对于IM业务,就是用户的好友列表,聊天消息等…

windowXP系统无法正常访问vue3网页

开发完的vue3项目需要在XP系统环境使用 由于在立项时采用了开发成本较低速度较快的vue3技术栈,并没有考虑到工厂的设备仍然在试用二十年前的机器,导致项目上线后有部分人员打开页面展示白屏。 经过排查,发现由于vue3使用ES6的Proxy代理实现响…

Linux-目录结构及文件基本操作

目录1、Linux目录结构1.1 FHS标准1.2 目录路径2、Linux文件的基本操作2.1 新建2.2 复制2.3 删除2.4 移动文件与文件重命名2.5 查看文件2.6 查看文件类型2.7 编辑文件1、Linux目录结构 Linux的目录结构和Windows的目录结构在实现上是完全不同的 Windows以存储介质为主&#xff…

Vue-Cli 脚手架 搭建 Vue项目

本篇目开始进行Vue基于项目中的介绍,Vue-cli 是官方提高用于搭建基于 Vue、Webpack、ES6 项目目的脚手架工具,可以前往在线官网查看:—— 官方文档 | Vue CLI 。 安装npm 1. 检测是否安装了Node.js ,未安装请前往下载;…

【内网安全-隧道搭建】内网穿透_Ngrok上线(美版、国版二开)

目录 一、准备 1、意义: 2、项目: 二、内网穿透 1、简介: 三、Ngrok(入门上线) 1、简述: 2、Ngrok入门上线(国版二开) 3、相关工具: 2、Ngrok入门上线&#xff…

低代码开发平台|SRM-招投标管理搭建指南

1、简介1.1、案例简介本文将介绍,如何搭建SRM-招投标管理。1.2、应用场景企业根据采购需求创建招投标需求,选择供应商进行邀标,供应商报名再投标,投标结束评标人员对投标项目进行评估。2、设置方法2.1、表单搭建1)新建…