深度学习基础--卷积网络

news2024/11/25 20:33:14

图像的三个特性指出了专门模型架构的必要性。 首先,图像是高维的,一个用于分类任务的典型图像含有 224×224 RGB 值(即,150528 个输入维度)。在全连接网络中,隐藏层的规模通常超过输入大小,因此,即便是对浅层网络而言,权重的总数也将超过 150528 的平方,达到 220 亿之多。这在所需的训练数据量、内存和计算量方面带来了显著的实际挑战。 其次,图像中相邻像素在统计学上是相关联的。但全连接网络无法识别“相邻”概念,对所有输入间的关系处理得同等无差。如果训练集和测试集图像的像素被以同样的方式随机置换,网络依旧能够被训练,且几乎不会有任何实际的区别。 第三,图像对几何变换的解释是稳定的。比如:若我们将一幅树的图像向左平移几个像素,它仍然是一幅树的图像。然而,这样的平移会改变网络接收的每一个输入。因此,全连接模型必须在每个位置单独学习代表树的像素模式:这无疑是效率低下的。 卷积层通过使用全图共享的参数,独立处理每一个局部图像区域。相比全连接层,卷积层使用更少的参数,能够利用相邻像素之间的空间关系,并且无需在每个位置重新学习像素的含义。一个主要由卷积层构成的网络称为卷积神经网络(CNN)。

1. 不变性与等变性

在之前的讨论中,我们提到图像的某些属性(比如树木的纹理)在经历变换后仍保持不变。本节将进一步明确这一概念,采用更加精确的数学表达。对于图像 x 的变换 t[x],如果函数 f[x]满足以下条件:
f [ t [ x ] ] = f [ x ] (10.1) f[t[x]]=f[x] \tag{10.1} f[t[x]]=f[x](10.1)
即函数 f[x]的输出与变换 t[x]无关,则称这个函数对该变换具有不变性。图像分类网络应该对图像的几何变换(如图 10.1a - b 所示)具有不变性,也就是说,即便图像经过平移、旋转、翻转或变形,网络 f[x]也能识别出图像中包含的对象相同。
若函数 f[x]对图像 x 在变换 t[x]下满足:
f [ t [ x ] ] = t [ f [ x ] ] (10.2) f[t[x]]=t[f[x]]\tag{10.2} f[t[x]]=t[f[x]](10.2)
这意味着,如果函数 f[x]的输出在变换 t[x]下以输入相同的方式发生变化,则称 f[x]对该变换具有等变性。针对每个像素的图像分割任务的网络对变换应当是等变的(如图 10.1c - f 所示);换句话说,如果图像被平移、旋转或翻转,网络 f[x]应返回一个经过相同变换处理的分割结果。
在这里插入图片描述

2. 适用于一维输入的卷积网络

卷积网络构建于一系列对平移显示等变性的卷积层之上。这些网络还通常融入池化
机制,以引入对平移的部分不变性。为了便于说明,我们先从较易于理解的一维(1D)
数据的卷积网络讲起。在第 10.3 节中,我们将讨论应用于图像数据的二维(2D)卷积。

2.1 一维卷积操作

卷积层利用卷积操作为基础,形成网络的一部分。在一维情况下,卷积把输入向量
x 转换成输出向量 z,其中每个输出 zi 都是周围输入的加权和。这些加权和在所有位置
上使用相同的权重,这组权重被称作卷积核或滤波器。定义输入被组合的区域大小为核
大小。对于核大小为三的情况,我们得到
z i = ω 1 x i − 1 + ω 2 x i + ω 3 x i + 1 (10.3) zi = ω_1x_{i−1} + ω_2x_i + ω_3x_{i+1}\tag{10.3} zi=ω1xi1+ω2xi+ω3xi+1(10.3)
这里的 ω = [ ω 1 , ω 2 , ω 3 ] T ω = [ω1, ω2, ω3]^T ω=[ω1,ω2,ω3]T 就是所谓的卷积核(参见图 10.2)。值得注意的是,卷积操作对
平移保持等变性。即如果输入 x 发生平移,对应的输出 z 也会以同样的方式进行平移。
在这里插入图片描述
严格而言,这其实是一种互相关操作而非真正的卷积,因为在真正的卷积中,权重相对于输入会进行翻转(即 x i − 1 x_{i−1} xi1 x i + 1 x_{i+1} xi+1的位置会互换)。尽管如此,这种(技术上不正确的)定义已成为机器学习领域的常规约定.

2.2 填充

方程 10.3 说明,通过对输入的前、当前和后位置进行加权求和,可以计算出每个输出。这引发了一个问题:对于序列的第一个和最后一个输出(分别缺少前一个和后一个输入)该如何处理?
解决此问题有两种典型方法。第一种是在输入序列的两端添加新值,之后按常规操作进行。零填充是指在输入的有效范围外假定其值为零(见图 10.2c)。其他方法包括视输入为周期性的或在边缘处进行反射处理。第二种方法是舍弃在输入范围之外的核覆盖区域的输出,这种方法的优点是不会在输入的边缘引入额外信息,但缺点是输出的尺寸会有所减小。

2.3 步长、核大小与扩张

在前面的示例中,每个输出是由最近的三个输入加权求和得到的。但实际上,这只是卷积操作大家族中的一种,通过步长、核大小和扩张率的不同进行区分。当我们在每个位置都计算输出时,这称为步长为一。但是,我们也可以将核按大于一的步长进行移动。例如,步长为二时,输出的数量大约减半(见图 10.3a–b)。
可以通过增加核大小来覆盖更大的区域(见图 10.3c)。但核大小通常保持为奇数,以便可以围绕当前位置居中。核大小的增加意味着需要更多的权重,这就引入了扩张或空洞卷积的概念,在这种卷积中,核的值之间插入了零。例如,我们可以将一个五元素的核通过将第二和第四个元素设为零,转换成三元素的扩张核。这样,我们仍然能够覆盖更大的输入区域,但仅需三个权重(见图 10.3d)。我们在权重之间插入的零的数量决定了扩张率。
在这里插入图片描述
卷积层计算输出的过程涉及将输入与卷积核进行卷积,加入偏置项β,然后将每个结果通过激活函数 a[⋅]。在核大小、步长和扩张率均为一的条件下,第 i 个隐藏单元 h i h_i hi的计算公式为:
h i = a [ β + ω 1 x i − 1 + ω 2 x i + ω 3 x i + 1 ] = a [ β + ∑ j = 1 3 ω j x i + j − 2 ] , (10.4) \begin{aligned} h_{i} &=a\left[\beta+\omega_{1} x_{i - 1}+\omega_{2} x_{i}+\omega_{3} x_{i + 1}\right]\\ &=a\left[\beta+\sum_{j = 1}^{3} \omega_{j} x_{i + j - 2}\right],\end{aligned}\tag{10.4} hi=a[β+ω1xi1+ω2xi+ω3xi+1]=a[β+j=13ωjxi+j2],(10.4)

这里,偏置β与核权重 ω 1 , ω 2 , ω 3 ω_1,ω_2,ω_3 ω1ω2ω3均为可训练参数。通过零填充,我们对于超出有效范围的输入 x 视作零处理。这实际上是全连接层的一种特例,全连接层对第 i 个隐藏单元的计算方式为: h i = a [ β i + ∑ j = 1 D ω i j x j ] (10.5) h_{i}=a\left[\beta_{i}+\sum_{j = 1}^{D} \omega_{i j} x_{j}\right]\tag {10.5} hi=a[βi+j=1Dωijxj](10.5)
对于 D 个输入 x 和 D 个隐藏单元 h,全连接层将需要 D 2 D^2 D2个权重 ω·· 和 D 个偏置β·。相比之下,卷积层仅需三个权重和一个偏置。通过将大多数权重设置为零并约束其他权重保持一致,全连接层也能够实现与卷积层相同的计算效果(参见图 10.4)。
在这里插入图片描述

2.5 Channels

单个卷积操作虽然可以提取信息,但同时也会导致信息的部分丢失,因为它通过对相邻输入的平均以及 ReLU 激活函数的非负限制进行处理。为了弥补这一缺陷,常常并行计算多个卷积,每个卷积生成一组新的隐藏变量,形成一个独特的特征图或通道。

如图 10.5a - b 所示,使用两个核大小为三,并采用零填充的卷积核进行说明。第一个卷积核通过计算最近三个像素点的加权和,并加上一个偏置后,通过激活函数生成了 h 1 h_1 h1 h 6 h_6 h6 的隐藏单元,形成了第一个特征通道。第二个卷积核则计算第一组不同的加权和,并通过另一个偏置和激活函数,生成了 h 7 h_7 h7 h 1 2 h_12 h12 的隐藏单元,这形成了第二个特征通道。

通常,输入层和隐藏层都包含多个通道,如图 10.5c 所展示。如果输入层具有 C i C_i Ci 个通道,并且采用了大小为 K 的卷积核,那么每个输出通道的隐藏单元就是通过对所有 C i C_i Ci 个通道及 K 个核位置进行加权求和计算的,这一过程使用了权重矩阵 Ω ∈ R C i × K Ω∈R^{C_i×K} ΩRCi×K和一个偏置完成。因此,如果下一层包含 C o C_o Co 个通道,那么我们需要 Ω ∈ R C i × C o × K Ω∈R^{C_i×C_o×K} ΩRCi×Co×K 的权重和 β ∈ R C 0 β∈R^{C_0} βRC0 的偏置。
在这里插入图片描述

2.6 卷积网络与感受野

深度网络包括多个全连接层序列,卷积网络则由多个卷积层序列构成。在卷积网络中,每个隐藏单元的接受字段指对该单元有贡献的原始输入区域。在核大小为三的卷积网络中,第一层隐藏单元接受字段大小为三,第二层的单元对第一层中最接近的三个位置进行加权求和,其接受字段大小扩展到五。随着层次增加,每个单元的接受字段相应扩大,使整个输入范围内的信息逐步整合。
在这里插入图片描述

2.7 示例:MNIST - 1D

对 MNIST - 1D 数据应用卷积网络。输入 x 为 40 维向量,输出 f 是 10 维向量经 softmax 层转换为类概率。采用包含三个隐藏层的网络,第一隐藏层 H1 的十五个通道采用核大小为 3、步长为 2 和“valid”填充计算得到 19 个空间位置,第二和第三隐藏层 H2 和 H3 计算方式相同,此时网络表示有四个空间位置和十五个通道,这些值被重塑为 60 维向量,通过全连接层映射到十个输出激活上。
该网络在含 4000 个样本的数据集上,采用无动量的 SGD、0.01 学习率和 100 批量大小训练 100000 步。与具有相同层数和隐藏单元数的全连接网络比较,卷积网络有 2050 个参数,全连接网络有 59065 个参数。卷积网络是全连接网络的特殊情况,后者可精确复制前者。两种模型都能完美适配训练数据,但卷积网络测试误差远低于全连接网络。这差异可能不仅是参数数量问题,卷积架构表现更好可能是因为其有更优的归纳偏差,即加入了先验知识以统一方式处理输入中的每个位置,数据是对模板随机位移生成的,这种处理方式合理。卷积网络通过位置间信息共享更精确识别各个类别,相当于一个正则化器,对全连接网络可能的大多数解决方案施加无限大惩罚。在这里插入图片描述
在这里插入图片描述

3 适用于二维输入的卷积网络

前文讨论了针对一维数据的卷积网络应用,这类网络适用于金融时间序列、音频和文本处理。然而,卷积网络更常见的应用是在二维图像数据上。此时,卷积核变为二维结构。一个 3x3 的卷积核 Ω ∈ R 3 ∗ 3 Ω ∈ R^{3*3} R33 对二维输入中的元素 xij 进行计算,生成一个隐藏单元层 h i j h_{ij} hij
在这里插入图片描述
这里 ω m n ω_{mn} ωmn 代表卷积核的各个元素,实质上是对一个 3x3 区域的输入进行加权求和。卷积核在二维输入上进行横向和纵向的平移操作(参见图 10.9),以在每个位置产生输出。
在这里插入图片描述
通常情况下,输入为 RGB 图像,该图像被处理为一个带有三个通道的二维信号(参见图10.10)。此时,一个 3x3 的卷积核拥有 3x3x3 权重,分别应用于每个 3x3 位置上的三个输入通道,生成一个高度和宽度与输入图像相同的二维输出(假设使用零填充)。为了产生多个输出通道,我们通过采用不同的卷积核权重重复此过程,并将结果合并成一个三维张量。若卷积核尺寸为 K × K,且输入通道数为 C i C_i Ci,则每个输出通道是 C i × K × K C_i ×K ×K Ci×K×K 个量的加权和加一个偏置。因此,计算 C o C_o Co 个输出通道需要 C i × C o × K × K C_i ×C_o ×K ×K Ci×Co×K×K个权重和 C o C_o Co 个偏置
在这里插入图片描述

4 下采样与上采样

图 10.7 中的网络通过采用步长为 2 的卷积操作在每层缩减表示尺寸以增大感受野。现在探讨用于减小二维输入尺寸的下采样方法和用于尺寸放大的上采样技术,后者在输出为图像时尤其有用,还将讨论在网络层间改变通道数的方法,这在网络两个分支合并时很重要。

4.1 下采样

缩减二维数据的表示有三种主流方法,通常是同时将两个维度都缩小一半。首先,可以选择每隔一个位置进行采样,当步长设置为 2 时,此方法会与卷积操作同时生效。第二种方法是最大池化,选取 2×2 区域内的最大值,能在一定程度上对平移变化保持不变,即使输入图像移动一个像素,许多最大值仍保持不变。最后一种是平均池化,取区域内值的平均。这些方法都是独立对每个通道进行下采样,输出的宽度和高度减半,但通道数不变。
在这里插入图片描述

4.2 上采样

提升网络层分辨率最简单的方法是将每个空间位置的所有通道内容复制四次(参见图 10.12a)。第二种方法是最大反池化,适用于之前通过最大池化进行下采样的场景,我们将值还原到其原始位置(参见图 10.12b)。第三种方法通过双线性插值在已有样本点之间插值填充缺失值(参见图 10.12c)。第四种方法可视为步长为 2 的下采样的逆过程。在该方法中,输出是输入的一半,并且对于 3x3 的核,每个输出是三个最近输入的加权和(参见图 10.13a)。而在转置卷积中,这一过程被反转(参见图 10.13c),输出数量是输入的两倍,且每个输入对三个输出有贡献。观察这种上采样机制相关的权重矩阵(参见图 10.13d),我们发现它实际上是下采样机制权重矩阵的转置(参见图 10.13b)
在这里插入图片描述

4.3 改变通道数

有时候,我们需要在两个隐藏层之间改变通道数,而不进一步进行空间池化。这通常是为了能够将该层的数据与另一并行处理的数据结合起来(详见第 11 章)。为此,我们采用核尺寸为 1 的卷积操作。输出层的每个元素通过对同一位置的所有通道进行加权求和来计算(参见图 10.14)。通过不同的权重重复此过程,我们可以生成所需数量的输出通道。相关的卷积权重尺寸为 1 × 1 × Ci × Co,因此称为 1 × 1 卷积。结合偏置和激活函数后,这等同于在每个位置的通道上执行全连接网络。

5.总结

在卷积层,每个隐藏单元的计算基于对邻近输入的加权求和、加偏置以及应用激活函数。由于每个空间位置的权重和偏置保持不变,因此相比全连接网络,卷积网络的参数量大大减少,且不随输入图像的大小而增加。为保证信息完整,采用不同的权重和偏置重复此操作,在每个空间位置生成多通道。
典型卷积网络结构包括卷积层与二倍因子降采样层的交替,随网络深入,空间维度通常以二的倍数减小,通道数以二的倍数增加。网络末端通常包含一个或多个全连接层,整合整个输入的信息以产出期望输出。若输出为图像,一个对称的“解码器”则将其上采样至原始尺寸。
卷积层的平移等变性引入了有效的归纳偏好,这在图像相关任务中相对全连接网络能够提升性能。我们探讨了图像分类、物体检测和语义分割网络,发现随着网络加深,图像分类性能提升。然而,后续实验表明,无限加深网络深度并不总是有益的;超过某个深度后,网络训练变得困难。这促成了残差连接的提出,将在下一章详细讨论。

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

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

相关文章

uniapp中使用uni.$emit和uni.$on在vue和nvue页面之间传值但是无法赋值的问题

背景:我们在vue页面和nvue页面之间进行传值可以使用uni.$emit和uni.$onsh事件监听实现,官网描述:uni-app官网 (dcloud.net.cn)https://uniapp.dcloud.net.cn/api/window/communication.html#emit 而且官网上也明确说明了: 一、问…

SLMi33x系列SLMi330HCG-DG具有主动保护功能 兼容光耦的单通道带保护功能的隔离驱动器

SLMi33x系列SLMi330HCG-DG优势和亮点:国内首款带DESAT保护功能并兼容光耦驱动的IGBT/SiC隔离驱动器,5kVrms隔离电压和高达10kV的隔离浪涌电压,CMTI超过100kV/us SLMi330HCG-DG内置快速去饱和(DESAT) 故障检测功能、米勒钳位功能、漏极开路故…

棋牌灯控箱计时计费管理系统软件网关端口设置方法 佳易王麻将馆计时收银会员管理系统操作教程

一、前言 棋牌灯控箱计时计费管理系统软件网关端口设置方法 佳易王麻将馆计时收银会员管理系统操作教程 1、佳易王计时计费软件可接配套的灯控器 2、计时开灯则打开对应的灯 3、结账后自动关灯。 二、软件程序功能图文 1、当前计费方式可以按单价或时间段 2、软件解压即可…

永成分歧式防爆器Y-FBQ型

永成分歧式防爆器Y-FBQ型 当努力成为生活的常态, 生活就时刻充满期待, 深知每份订单都是信任, 品质和专业是我晒单的底气。 用途 型号为Y-FBQ型,分歧式防爆器是安装在瓦斯抽放管路中的简易防爆装置。此款产品主要由进气管、出气…

HarmonyOS开发5.0【rcp网络请求】

一 概述 现在鸿蒙的网络还不成熟,所以咱们需要对网络请求框架二次封装,并且避免业务方直接引用到,预防当有比较新的成熟性价比高的框架的替换,这个过程肯定是不可避免的 1.1 第三方比如 [axios]的js库迁移过来的[httpclient]通过socket&am…

Linux s3c2440 开发板上的操作系统实现 ubuntu

使用s3c2440开发板 使用ubuntu 1.ubuntu中的tftp,和nfs Trivial File Transfer Protocol,简单文件 传输协议。 通过网络在客户端与服务器之间进行简单文件 传输。提供不复杂、开销不大的文件传输服务。 Network File System,网络文件系统。通过 网络…

OpenStack概论和部署

目录 1.1 云计算概述 1.1.1 什么是云计算 1.laaS 2.PaaS 3.Saas 1.1.2 0penStack 概述 1.OpenStack 起源 2.什么是 Openstack 3.OpenStack 优势 1.2 安装方式 1.2.1 在线安装 1.配置系统基本环境 2.为系统设置阿里的仓库 3:设置kvm源 4:设…

【HarmonyOS】头像圆形裁剪功能之手势放大缩小,平移,双击缩放控制(三)

【HarmonyOS】头像裁剪之手势放大缩小,平移,双击缩放控制(三) 一、DEMO效果图: 二、开发思路: 使用矩阵变换控制图片的放大缩小和平移形态。 通过监听点击手势TapGesture,缩放手势PinchGes…

安泰功率放大器在压电马达中的应用实例

压电马达是一种利用压电效应的装置,通过在压电陶瓷上施加电场,引发其形变从而产生机械振动。在这个领域,功率放大器的应用为提高效率、精准控制和创新性应用提供了可能。下面将深入介绍功率放大器在压电马达中的实际应用例子。 压电效应是指在…

三维数字图像相关法(3D-DIC)用于复合材料力学性能测试

三维数字图像相关法(3D-DIC技术),通过将物体表面随机分布的斑点或伪随机分布的人工散斑场作为变形信息载体,是应用于计算机视觉技术的一种图像测量方法,是一种非接触的,用于全场三维坐标、位移、应变及运动…

微信双开及多开!

在工作中大家可能会在pc端用到一台机器打开多个微信,但是现在windows更新之后,双击就只能打开一个了,以下有两种方式可以微信双开甚至多开。 第一种就是很简单的: ps: taskkill /f /im wechat.exe 这一步的用途就是先清除你电脑…

北京链家星河湾店·鸿鹄向阳杯羽毛球赛成功举办

9月10日,为了提高社区居民身体素质,促进社区居民间友好交流,北京链家星河湾店联合鸿鹄向阳俱乐部于在四季体育馆联合举办了羽毛球大赛,星河湾的社区居民积极参加,分组合作,在比赛中表现出团结合作不服输的精…

AbMole总RNA提取试剂 (免氯仿) AbMole Easy Trizol (Tcm Free)

AbMole Easy Trizol (Tcm Free) 是传统Trizol 的免氯仿升级版,广泛适用于从各类动物组织、植物材料、培养细胞、细菌等样品中提取Total RNA和Small RNA。与传统 Trizol 提取方法相比,本产品不需要使用氯仿进行分层,操作更简单,且全…

视频倒放怎么制作?4种方法教你制作倒放视频

视频倒放怎么制作?视频倒放,作为一种独具匠心的编辑手法,为视频创作开辟了新的维度。它不仅让常规画面变得非比寻常,还能以逆向视角展现时间流逝的奇幻效果,极大地丰富了视频的表现力和趣味性,是扩充视频创…

降本、创新、合作,谁才是连接器行业破除内卷的关键词?

如果用一个字来评价2024年的汽车行业,那就是「卷」。 ▲中国汽车保有量不断提升 图/Pixabay 长安汽车董事长朱华荣说:“汽车行业的卷,让中国品牌达到了新高度。” 吉利董事长李书福说:“中国汽车工业内卷程度全球第一,…

C++运算符重载实现日期类

目录 运算符重载 日期类头文件time.h time.h 日期类成员函数文件time.cpp 1.GetMonthDay函数 2.构造函数Date::Date(int year, int month, int day) 3.赋值函数Date& operator(const Date& d) 4.Date& Date::operator(int day)函数实现日期加天数的功能 5.前置…

用编程思想解决问题

1.是什么 分解法:将复杂的问题分解为一个个小又容易的问题,再逐一解决 先常后变:先使用常量来解决问题后使用变量来代替常量,使代码变得更灵活 例题一: 请你使用Switch分支结构根据输入的分数来定成绩所在区间&…

若依 ruoyi-vue 获取上一页路由 获取返回上一页路径 登录后跳转其他页面 登录进入后跳转至动态路由的第一个路由

参考文章:若依框架登录后跳转其他页面&获取不同的菜单&登录进入后跳转至动态路由的第一个路由 需求:登录成功,默认跳转至后端返回的动态路由的第一个路由 src/store/modules/permission.js 将动态路由的第一个路由存到缓存中 import cache …

多人开发小程序设置体验版的痛点

抛出痛点 在分配任务时,我们将需求分为三个分支任务,分别由前端A、B、C负责: 前端A: HCC-111-实现登录功能前端B: HCC-112-实现用户注册前端C: HCC-113-实现用户删除 相应地,我们创建三个功能分支: feature_HCC-111-实现登录功能feature_HCC-112-实现用户注册feature_HCC-1…

新手向教学,分分钟搭建个人定制化的 ChatgptGPT 聊天机器人

对话机器人变得越来越流行,它为用户提供了与技术互动的方式。OpenAI 的“GPT”模型让开发者能够创建复杂的对话机器人。 在本教程中,我们将使用 Python 和 OpenAI API 在运行 Ubuntu 的 DigitalOcean Droplet 上构建并部署你自己的终端 ChatGPT 机器人。…