图像卷积、步长、填充、特征图、多通道卷积、权重共享、感受野、池化

news/2024/11/28 18:54:26/

图像卷积、步长、填充特征图、多通道卷积权重共享、感受野、池化

卷积神经网络的一些基本概念:图像卷积、步长、填充特征图、多通道卷积权重共享、感受野、池化

1.图像卷积、步长、填充

图像卷积:卷积核矩阵在一个原始图像矩阵上 “从上往下、从左往右”滑动窗口进行卷积计算,然后将所有结果组合到一起得到一个新的矩阵的过程。(图1.13)

图1.13
  • 用一个相同的卷积核对整幅图像进行进行卷积操作,相当于对图像做一次全图滤波符合卷积核特征的部分得到的结果比较大不符合卷积核特征的部分得到的结果比较小,因此卷积操作后的结果可以较好地表征该区域符合卷积核所描述的特征的程度

  • 一次完整的卷积会选出图片上所有符合这个卷积核特征

    如果将大量图片作为训练集,则卷积核最终会被训练成有意义的特征。例如,识别飞机,卷积核可以是机身或者飞机机翼的形状等。

步长(Stride):卷积核在图像上移动的步子,不同的步长会影响输出图的尺寸。

更大的步长意味着空间分辨率的快速下降。

图1.14

图1.14:输入图都是5×5,卷积核大小都是3×3。

Stride=1,卷积后的结果=3×3

Streide=2,卷积后的结果=2×2

填充(Padding):为了更好地控制输入和输出图的大小,一般会对输入进行填充操作。

填充操作就是在原来输入图的边界外进行扩充,使其变得更大,卷积后的结果也会更大

通常会设计卷积网络层时小心地进行填充,从而精确地控制输入图和输出图的大小关系。

图1.15:无填充和有填充卷积的对比结果。

没有填充:输入为3×3的图,输出为2×2的图,分辨率降低。

有填充:在原图周围填充一行或一列的0,输出为4×4,分辨率没有降低。

2.特征图与多通道卷积

特征图:

图1.13

图1.13展示的是单个图像的卷积,而一个卷积神经网络,其每一层都是由多个图组成的,将其成为特征图或者特征平面,如图1.16所示。

图1.16

特征平面(Frature Map)包含高度、宽度和通道共三个维度,形状为C×H×W。

多通道卷积

在卷积神经网络中,要实现的是多通道卷积,假设输入特征图大小是Ci×Hi×Wi,输出特征图大小是C0×H0×W0,则多通道卷积如图1.17所示。

图1.17

其中,每个出书特征图都由Ci个卷积核与通道数为Ci 的输入特征图进行逐通道卷积,然后将结果相加,一共需要Ci×C0个卷积核,每Ci 个为一组,共C0组。

3.权重共享

当对每组进行卷积时,不同的通道使用不同的卷积核。但当卷积核在同一幅图的不同空间位置进行卷积时,采取的是权重共享的模式,这是卷积神经网络非常重要的概念。

局部连接:思想来自生理学的感受野机制和图像的局部统计特性

权重共享:可以使得图像在一个局部区域学习到的信息应用到其他区域,使同样的目标在不同的位置能够提取到同样的特征

局部连接和权重共享结构大大降低了参数量

卷积神经网络某一层的参数量由输入通道数N、输出通道数M和卷积核的大小r决定。

一层连接的参数量=N×M×r×r

4.感受野(Receptive Field)

可以将感受野理解为视觉感受区域的大小。

在卷积神经网络中,感受野是特征平面上的一个点(即神经元)在输入图上对应的区域,如图1.18所示。

图1.18

如果一个神经元的大小受到输入层N×N的神经元区域的影响,那么可以说该神经元的感受野是N×N,因为它反映了N×N区域的信息。

图1.18:Conv2中的像素点为5,是由Conv1的2×2的区域得来的,而该2×2区域是由原始图像的5×5区域计算而来,因此该像素的感受野是5×5。可以看出,感受野越大,得到的全局信息就越多。

5.池化(Pooling)

图1.18中,从原图到Conv1再到Conv2,图像越来越小,每过一级项相当于一次降采样,这就是池化。

池化通过步长不为1的卷积来实现,也可以通过插值采样实现,本质上没有区别,只是权重不同。

池化作用:

  • 池化层可以对输入的特征图进行压缩,一方面使特征图变小,简化网络计算的复杂度

    PS:池化操作会使特征图缩小,有可能影响网络的准确度,对此可以通过增加特征图的深度来弥补精度的缺失

  • 另一方面可以提取主要特征,有利于降低过拟合风险

    池化层在一定程度上保持尺度不变形

    eg:一辆车图像缩小了50%后仍然能认出这是一辆车,说明处理后的图像仍然包含原始图像的最重要的特征。

    图像压缩时去掉的只是一些冗余信息,留下的信息则是具有尺度不变性的特征,其最能表达图像的特征。

    在这里插入图片描述

常见池化分类
(图1.19)
平均池化(Average Pooling)最大池化(Max Pooling)
概念计算池化区域所有元素的平均值作为该区域池化后的值池化区域的最大值作为该区域池化后的值
特点能够保留整体数据的特征,能较好的突出背景信息能更好地保留纹理特征

套用卷积通用公式:
o u t p u t = [ ( i n p u t − f i l t e r S i z e + 2 ∗ p a d d i n g ) / s t r i d e ] + 1 output=[(input-filterSize+2*padding)/stride]+1 output=[(inputfilterSize+2padding)/stride]+1
PS:公式是向下取整

参考文献:
1.《深度学习之图像识别 核心算法与实战案例 (全彩版)》言有三 著

出版社:清华大学出版社 ,出版时间:2023年7月第一版(第一次印刷)

ISBN:978-7-302-63527-7


http://www.ppmy.cn/news/1353681.html

相关文章

从本次战疫,作为普通人可以学到的东西

前人不忘,后事之师。 从本次疫情的控制,可以学到什么? 早发现,早隔离,早识别,早就诊。 定位传染源,传播途径,传播方法,确定潜伏期,检测方法,确认…

ZYNQ:PL-CAN总线功能应用

流程背景 前期基本实现PS端的CAN总线功能,现阶段的主要目的是实现PL端的CAN总线功能,需要采用CAN IP。 PL系统搭建 PL外设时钟源 搭建完vivado系统后,需要在sdk编程。但是在配置PL-CAN时,意识到CAN时钟值不清楚&…

Fiddler抓包(网页、手机、MUMU模拟器)

前置条件:电脑上下载安装好了Fiddler,有浏览器 一、网页抓包 1、fiddler下载安装证书 Tools-Options 勾选下面两个框 点击下面的选项,信任证书 会弹出弹窗,点击yes(这个时候注意,DO_NOT_TRUST_FiddlerRo…

java 宠物医院系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 宠物医院系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

D. Lucky Permutation 置换环,仅有一个连续的逆序的理解

Problem - D - Codeforces D. Lucky Permutation(置换环)-CSDN博客 如果环中,有相邻的两个点,那么可以通过减少一次交换,使得其贡献出一个逆序对。 感觉这个博客对于最后逆序说的还是不太好理解,这个结…

C++学习:pair

pair的定义和结构 在C中,pair是一个模板类,用于表示一对值的组合。它位于头文件中。pair类的定义如下: pair类模板有两个模板参数,T1和T2,分别表示第一个值和第二个值的类型。 pair类有两个成员变量,first和second&…

SpringBoot 整合 Redis 全面教程:从配置到使用

Redis 是一种高性能的键值存储数据库,而 Spring Boot 是一个简化了开发过程的 Java 框架。将两者结合,可以轻松地在 Spring Boot 项目中使用 Redis 来实现数据缓存、会话管理和分布式锁等功能。 一、添加 Redis 依赖 在 pom.xml 文件中添加 Redis 相关…

【制作100个unity游戏之25】3D背包、库存、制作、快捷栏、存储系统、砍伐树木获取资源、随机战利品宝箱9(附带项目源码)

效果演示 文章目录 效果演示系列目录前言箱子库存源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第25篇中,我们将探索如何用unity制作一个3D背包、库存、制作、快捷栏、存…