6-1 从全连接层到卷积

news2024/11/15 23:45:29

我们之前讨论的多层感知机十分适合处理表格数据,其中行对应样本,列对应特征。 对于表格数据,我们寻找的模式可能涉及特征之间的交互,但是我们不能预先假设任何与特征交互相关的先验结构。 此时,多层感知机可能是最好的选择,然而对于高维感知数据,这种缺少结构的网络可能会变得不实用。

例如,在之前猫狗分类的例子中:假设我们有一个足够充分的照片数据集,数据集中是拥有标注的照片,每张照片具有百万级像素,这意味着网络的每次输入都有一百万个维度。 即使将隐藏层维度降低到1000,这个全连接层也将有 1 0 6 × 1 0 3 = 1 0 9 10^{6}\times 10^{3}=10^{9} 106×103=109个参数。 想要训练这个模型将不可实现,因为需要有大量的GPU、分布式优化训练的经验和超乎常人的耐心。


(在这个例子中,假设我们有一个标记好的图像数据集,其中每张图像具有百万级别的像素。这意味着每次输入到网络中的数据维度是一百万维,即每张图像由一百万个像素值组成

文中提到的“每次输入都有一百万个维度”指的是每张图片被视为一个具有一百万个数值的向量,每个数值代表一个像素点的信息。在深度学习中,每一个输入维度通常对应于一个神经网络的输入节点

接着,文中提到假设将隐藏层的维度降低到1000,这里的“隐藏层维度”指的是这一层中包含的神经元(或节点)数量。简单来说,这就是这层可以学习到的不同特征的数量

最后,“这个全连接层也将有 1 0 6 × 1 0 3 = 1 0 9 10^{6}\times 10^{3}=10^{9} 106×103=109个参数”这句话描述的是在一个全连接的神经网络层中,输入层和隐藏层之间的参数数量。全连接层意味着每个输入节点都与下一层的每个节点相连。这里的参数通常是指权重,每个连接都有一个权重。所以,如果输入层有一百万个节点,隐藏层有1000个节点,那么总的连接数(即权重数)就是一百万乘以一千,即一千亿个权重

这一千亿个权重(参数)的数量非常庞大,这也说明了为什么在实际应用中,处理这样大规模的数据和网络结构需要极大的计算资源和优化方法。)


有些读者可能会反对这个观点,认为要求百万像素的分辨率可能不是必要的。 然而,即使分辨率减小为十万像素,使用1000个隐藏单元的隐藏层也可能不足以学习到良好的图像特征,在真实的系统中我们仍然需要数十亿个参数。 此外,拟合如此多的参数还需要收集大量的数据。 然而,如今人类和机器都能很好地区分猫和狗:这是因为图像中本就拥有丰富的结构,而这些结构可以被人类和机器学习模型使用。 卷积神经网络(convolutional neural networks,CNN)是机器学习利用自然图像中一些已知结构的创造性方法

不变性

想象一下,假设我们想从一张图片中找到某个物体。 合理的假设是:无论哪种方法找到这个物体,都应该和物体的位置无关 理想情况下,我们的系统应该能够利用常识:猪通常不在天上飞,飞机通常不在水里游泳。 但是,如果一只猪出现在图片顶部,我们还是应该认出它。 我们可以从儿童游戏”沃尔多在哪里”( 图6.1.1)中得到灵感: 在这个游戏中包含了许多充斥着活动的混乱场景,而沃尔多通常潜伏在一些不太可能的位置,读者的目标就是找出他。 尽管沃尔多的装扮很有特点,但是在眼花缭乱的场景中找到他也如大海捞针。 然而沃尔多的样子并不取决于他潜藏的地方,因此我们可以使用一个“沃尔多检测器”扫描图像。 该检测器将图像分割成多个区域,并为每个区域包含沃尔多的可能性打分。 卷积神经网络正是将空间不变性(spatial invariance)的这一概念系统化,从而基于这个模型使用较少的参数来学习有用的表示
请添加图片描述
现在,我们将上述想法总结一下,从而帮助我们设计适合于计算机视觉的神经网络架构。

  1. 平移不变性(translation invariance)不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应,即为“平移不变性”

平移不变性意味着当一个物体在图像中移动时,无论它出现在图像的哪个位置,神经网络对该物体的识别应保持不变。这是通过神经网络的设计实现的,特别是在卷积神经网络中,通过使用卷积层来实现。卷积层通过在整个图像上滑动同一卷积核(或滤波器),提取图像的特征。由于同一卷积核被用于图像的每个部分,因此无论物体在图像中的哪个位置,相同的特征都会被相同方式处理,从而实现平移不变性。这是处理图像时非常重要的属性,因为它允许模型以更泛化的方式识别物体,不受其在图像中位置的影响。

  1. 局部性(locality)神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系,这就是“局部性”原则。最终,可以聚合这些局部特征,以在整个图像级别进行预测

局部性原则指的是神经网络在处理图像时应该首先关注图像的小部分或局部区域,而不是立即尝试理解图像中远距离区域间的关系。这也是通过卷积层实现的,其中卷积核只覆盖图像的一小块区域。这样,网络可以先识别小范围内的简单特征(如边缘和角点),然后逐层组合这些局部特征,逐渐构建出更复杂的表示,最终能够识别整个图像中的复杂对象。通过这种方式,网络可以有效地捕捉到重要的局部模式,而不会被图像中不相关的信息干扰。


多层感知机的限制

(下面这节描述的是如何将一个多层感知机(MLP)用于处理具有空间结构的二维图像数据,而非仅处理一维的数值数据

下面我将逐步解释这个过程:

  1. 二维图像作为输入 输入数据 X X X是一个二维图像,这意味着它具有空间维度(例如,宽度和高度)。在这里, X X X可以表示为一个矩阵,或在编程中用二维张量来处理。
  2. 隐藏表示 隐藏表示 H H H也是一个矩阵或二维张量,并且具有与输入图像 X X X相同的形状。这表示 H H H在每个位置 ( i , j ) (i,j) (i,j)都有一个与输入图像中对应位置相关的隐藏值
  3. 空间结构的重要性 文章提到输入和隐藏表示都“拥有空间结构”。这意味着图像的每个像素位置不仅仅是独立的数据点,而是与其周围的像素在空间上是相关的。这种空间关系在处理图像时非常重要,因为图像中物体和特征的识别依赖于像素间的这种空间关系。
  4. 权重的变化 在传统的多层感知机中,每个输入节点与每个输出节点之间通常通过一个权重矩阵连接。这种结构适合处理一维数据,但对于保持图像的空间结构则不够有效。因此,文中提到需要使用一个四阶权重张量 W W W替换传统的权重矩阵。
  5. 四阶权重张量 四阶权重张量 W W W可以理解为一个高维数组,其中包含了更多的维度来适应图像处理的需要。在图像处理中,每个“隐藏神经元”(即 H H H中的每个元素)需要接收到来自 X X X中每个像素的信息。为了实现这一点,权重张量 W W W不仅记录了从输入到输出的连接强度,而且还能够处理输入数据的空间关系。这使得模型可以更有效地捕捉图像中的空间和视觉模式。

总的来说,这段话描述的是如何通过扩展多层感知机的结构,使用更复杂的权重形式来适应对具有空间结构的数据(如图像)的处理,使每个输出节点能够有效地接收并处理来自每个输入节点的信息,同时保持输入数据的空间特性。)

首先,多层感知机的输入是二维图像 X X X,其隐藏表示 H H H在数学上是一个矩阵,在代码中表示为二维张量。 其中 X X X H H H具有相同的形状。 为了方便理解,我们可以认为,无论是输入还是隐藏表示都拥有空间结构

使用 [ X ] i , j [X]_{i,j} [X]i,j [ H ] i , j [H]_{i,j} [H]i,j分别表示输入图像隐藏表示中位置 ( i , j ) (i,j) (i,j)处的像素。 为了使每个隐藏神经元都能接收到每个输入像素的信息,我们将参数从权重矩阵(如同我们先前在多层感知机中所做的那样)替换为四阶权重张量 W W W( W W W是全连接层的权重)。假设 U U U包含偏置参数,我们可以将全连接层形式化地表示为:

(以前是变成一维向量,现在是二维,所以现在是遍历 k k k l l l这两个维度来求和。)
请添加图片描述
其中,从 W W W V V V的转换只是形式上的转换,因为在这两个四阶张量的元素之间存在一一对应的关系。我们只需重新索引下标 ( k , l ) (k,l) (k,l),使 k = i + a k=i+a k=i+a l = j + b l=j+b l=j+b,由此可得 [ V ] i , j , a , b = [ W ] i , j , i + a , j + b [V]_{i,j,a,b}=[W]_{i,j,i+a,j+b} [V]i,j,a,b=[W]i,j,i+a,j+b索引 a a a b b b通过在正偏移和负偏移之间移动覆盖了整个图像。对于隐藏表示中任意给定位置 ( i , j ) (i,j) (i,j)处的像素值 [ H ] i , j [H]_{i,j} [H]i,j,可以通过在 x x x中以 ( i , j ) (i,j) (i,j)为中心对像素进行加权求和得到,加权使用的权重为 [ V ] i , j , a , b [V]_{i,j,a,b} [V]i,j,a,b

上面描述的是如何使用一个二维卷积核来在多层感知机中处理图像数据,这里的重点是用来计算隐藏层 H H H的公式。

公式的解释如下:

  • [ H ] i , j [H]_{i,j} [H]i,j 表示隐藏层在位置 ( i , j ) (i,j) (i,j)的值。
  • [ U ] i , j [U]_{i,j} [U]i,j 是一个偏置项,为每个位置 ( i , j ) (i,j) (i,j)提供一个基础值。
  • W i , j , k , l W_{i,j,k,l} Wi,j,k,l 是一个四阶权重张量,表示输入像素 ( k , l ) (k,l) (k,l)对于隐藏层位置 ( i , j ) (i,j) (i,j)的影响权重
  • [ X ] k , l [X]_{k,l} [X]k,l 是输入图像在位置 ( k , l ) (k,l) (k,l)的像素值。

隐藏层的每个位置 ( i , j ) (i,j) (i,j)的值是通过一个加权和计算的,加权和中包括了所有输入像素的影响,具体公式为:
请添加图片描述
这里的求和操作遍历所有的输入像素 [ W ] i , j , k , l × [ X ] k , l [W]_{i,j,k,l} \times [X]_{k,l} [W]i,j,k,l×[X]k,l
表示输入像素 ( k , l ) (k,l) (k,l)对隐藏层位置 ( i , j ) (i,j) (i,j)的贡献。

上面还提到了一种简化形式的权重表示,用 V i , j , a , b V_{i,j,a,b} Vi,j,a,b替换 W i , j , k , l W_{i,j,k,l} Wi,j,k,l,并且假设:
请添加图片描述
这里的 a a a b b b表示相对于中心位置 ( i , j ) (i,j) (i,j)的偏移量。因此,简化后的卷积公式变为:
请添加图片描述
这实际上是一个典型的卷积操作,其中 V i , j , a , b V_{i,j,a,b} Vi,j,a,b卷积核,而 [ X ] i + a , j + b [X]_{i+a,j+b} [X]i+a,j+b输入图像在卷积核覆盖的区域内的像素。这种表示方式在实际的图像处理和神经网络中被广泛使用,因为它可以有效地利用图像的局部空间关系,同时减少模型中的参数数量。


平移不变性

请添加图片描述
不管探测的 ( i , j ) (i,j) (i,j)移动到哪里, [ V ] a , b [V]_{a,b} [V]a,b是不变的。

这段内容进一步阐释了之前提到的卷积操作,特别是引入了平移不变性的概念,并且讨论了权重共享对于减少模型复杂度的重要性。

  • 平移不变性 平移不变性意味着当输入图像中的特征在空间上发生平移时,网络的响应方式应该是一致的。也就是说,无论一个特征出现在输入图像的哪个位置,卷积网络都应该能够以相同的方式识别它。这种属性在处理图像和其他形式的空间数据时非常重要,因为它允许模型在不同位置检测到相同的特征

  • 权重共享 在卷积神经网络中,同一个卷积核(包含权重 V a , b V_{a,b} Va,b)在整个输入图像上滑动,用于提取特征。这意味着相同的权重被用来处理输入数据的不同部分,这样做极大地减少了模型的参数数量,因为不需要为每个像素或区域学习一个独立的权重集。权重共享也有助于提高模型的训练效率和泛化能力。

其实这里也可以叫做二维的交叉相关。即输出的像素是等于输入的对应像素以它为中心作偏移,和模式 [ V ] a , b [V]_{a,b} [V]a,b作内积。

二维卷积就是全连接,或者说是一个矩阵乘法,但是我的权重的一些东西是重复的,不是每一个元素都可以自由变换。我们也知道说,当我们把一个模型的取值范围做了限制的话,我们就把模型的复杂度降低了,也就是说,我不要存那么多元素了。

局部性

请添加图片描述
a a a b b b都只从 − Δ -\Delta Δ Δ \Delta Δ之间变换。

简而言之, (6.1.3)是一个卷积层(convolutional layer),而卷积神经网络是包含卷积层的一类特殊的神经网络。 在深度学习研究社区中, V V V被称为卷积核(convolution kernel)或者滤波器(filter),亦或简单地称之为该卷积层的权重,通常该权重是可学习的参数。 当图像处理的局部区域很小时,卷积神经网络与多层感知机的训练差异可能是巨大的:以前,多层感知机可能需要数十亿个参数来表示网络中的一层,而现在卷积神经网络通常只需要几百个参数,而且不需要改变输入或隐藏表示的维数。 参数大幅减少的代价是,我们的特征现在是平移不变的,并且当确定每个隐藏活性值时,每一层只包含局部的信息。 以上所有的权重学习都将依赖于归纳偏置。当这种偏置与现实相符时,我们就能得到样本有效的模型,并且这些模型能很好地泛化到未知数据中。 但如果这偏置与现实不符时,比如当图像不满足平移不变时,我们的模型可能难以拟合我们的训练数据。

请添加图片描述
卷积是一个特殊的全连接层。

卷积

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

“沃尔多在哪里”回顾

回到上面的“沃尔多在哪里”游戏,让我们看看它到底是什么样子。卷积层根据滤波器 V V V选取给定大小的窗口,并加权处理图片,如图6.1.2中所示。我们的目标是学习一个模型,以便探测出在“沃尔多”最可能出现的地方
请添加图片描述

通道

请添加图片描述

在多通道输入与多通道输出的卷积中,每个输入通道都通过一个卷积核(或多个)进行处理,然后所有的结果会被整合到输出通道中。这种结构允许网络学习从不同的特征组合中提取信息
请添加图片描述
在这种设置中,每个输出通道的值是通过对所有输入通道进行卷积运算并累加得到的。这意味着,每个输出通道可以看作是从所有输入通道中提取特征的一个“过滤器”。公式中的卷积核尺寸、步长(通常由卷积操作外部定义)和填充方式都会影响输出特征图的维度。

这种多通道到多通道的卷积方式在实际应用中极其重要,因为它允许网络捕捉跨通道的复杂模式,这对于图像处理(例如,颜色和纹理信息的整合)、视频处理和其他多维信号处理任务至关重要。

通过这样的结构,卷积神经网络能够构建从简单到复杂的信息层次,逐步抽象输入数据中的高级特征,这对于深度学习模型的成功执行各种任务(如图像识别、语音识别和自然语言处理)是基础。

小结

  • 图像的平移不变性使我们以相同的方式处理局部图像,而不在乎它的位置。

  • 局部性意味着计算相应的隐藏表示只需一小部分局部图像像素。

  • 在图像处理中,卷积层通常比全连接层需要更少的参数,但依旧获得高效用的模型

  • 卷积神经网络(CNN)是一类特殊的神经网络,它可以包含多个卷积层

  • 多个输入和输出通道使模型在每个空间位置可以获取图像的多方面特征

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

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

相关文章

程序员面试题------N皇后问题算法实现

N皇后问题是一个著名的计算机科学问题,它要求在NN的棋盘上放置N个皇后,使得它们之间不能相互攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。这个问题可以看作是一个回溯算法问题,通过逐步尝试不同的放置位置&#xf…

手持气象设备:掌握天气的便捷伙伴

在这个快速变化的时代,手持气象设备成为了我们日常生活中重要的小帮手。它小巧轻便,易于携带,让我们随时随地都能掌握天气变化,为出行、户外活动提供准确参考。 手持气象设备内置了高精度传感器,能够迅速感知并显示当前…

PCB学习

教你怎么检查电路原理图_原理图检视主要内容-CSDN博客https://blog.csdn.net/chenhuanqiangnihao/article/details/113664734

继全球蓝屏后,微软 Azure 云服务因安全错误导致全球宕机

7月30日,微软Azure云服务全球宕机约8小时。该事件由一次DDoS攻击引起,成功触发系统保护机制,但这些防御机制中的实施错误反而进一步放大了影响,最终造成一次大宕机事件。据英国广播公司报道,此次中断持续了大约 10 个小…

5步教你学会古诗词生成AI绘画

本文由 ChatMoney团队出品 首先,打开时下最热门的两个AI工具,mj和chatgpt这两个都是我们在创作AI古诗词绘画中一定要用到的,这里我用的是chatmoneyAI系统 第一步:我们要先使用ChatGPT来生成我们所想要展示古诗的关键词。那么我们…

代码随想录算法训练营第二十一天| 39. 组合总和, 40.组合总和II, 131.分割回文串

今天是回溯算法学习的第二天,主要的学习内容包括:1.组合问题的重复使用 2.组合问题的去重 3.分割问题的处理方法。 39. 组合总和 题目链接:39. 组合总和 - 力扣(LeetCode) 这个组合问题的特点是,集合内的…

Java:基于TextRank算法的自动摘要(自动生成事件摘要)

TextRank 是一种用于文本摘要的自然语言处理算法。它的工作原理类似于 Google 搜索引擎的 PageRank 算法,即根据文本中每个单词出现的频率和被引用的次数来评估它的重要性。 所谓自动摘要,就是从文章中自动抽取关键句。何谓关键句?人类的理解…

最好用的复制粘贴软件pastemate功能简介

这应当是windows下最好用的复制粘贴软件,遥遥领先的复制粘贴软件。 效增PasteMate - 下载页面 windows下界面最优美,操作最方便的复制粘贴神器,学生党论文必备,效率神器 pastemate 1.搜索功能,能够按文本、图片、文件…

C# 构建观测者模式(或者为订阅者模型)

前言: 观测者模型的基本理念,就是,我有一个公共的事件,定义好他的事件的触发、数据接口。然后,通过增加订阅者(实例)来订阅这个事件的,或者说观察这个事件。如果事件发生&#xff0…

软件测试的挑战和压力

软件测试过程中可能会遇到很多挑战,比如: 1. 需求不明确或不稳定。如果需求文档不完整、不清晰或不一致,或者需求在开发过程中频繁变更,那么测试人员就很难设计和执行有效的测试用例,也很难判断测试结果是否符合预期。…

5年经验的软件测试人员,碰到这样的面试题居然会心虚......

我们这边最近的面试机会比较多,但是根据他们的反馈,结束后大部分都没音信了,因为现在企业面试问的非常多,范围非常广,而且开放性的问题很多,很多人即便面试前刷了成百上千道面试题,也很难碰到一…

C语言——指针数组

文章目录 🍊自我介绍🍊前言🍊含义🍊输出指针数组中的值🍊指针数组工程的用法(模拟linux的内核代码) 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞关注评论收藏&…

实习中学到的一点计算机知识(MP4在企业微信打不开?)

我在实习中,常有同事向我反馈说我在微信发的视频格式打不开。这就导致我还要一帧帧的盯着某一个时刻来截图,今天查了一下资料尝试修改视频后缀来解决视频的播放问题。 在网上下载mp4的格式,在本地都能播放,怎么可能发上企业微信就…

使用CLI脚手架搭建Vue2项目

一、配置前端的环境 1、下载安装Node.js 网址:Node.js 中文网 (nodejs.com.cn) 参考:【简明图文教程】Node.js的下载、安装、环境配置及测试_node下载安装-CSDN博客 推荐安装路径C盘改为D盘 2、配置nodejs及环境变量【安装的时候勾选Add to PATH就不…

[算法]归并排序(C语言实现)

一、归并排序的定义 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 二、归并排序的算法原理 归并排序的算法可以用递归法和非递归法来实现…

2024新版python安装教程【附图片】

Python的安装步骤因操作系统而异,但大致可以分为下载、安装和验证三个主要步骤。以下是Windows系统中Python的详细安装步骤: Windows系统 下载Python安装包 访问Python官网(https://www.python.org/)。点击页面头部的“Download…

【优秀python django系统案例】基于python的医院挂号管理系统,角色包括医生、患者、管理员三种

随着信息技术的迅猛发展,传统的医院挂号管理方式面临着效率低下、排队时间长、信息不对称等诸多问题。这些问题不仅影响患者的就医体验,也加重了医院工作人员的负担。在此背景下,基于Python的医院挂号管理系统应运而生。该系统旨在通过信息化…

OZON饰品产品什么好卖,OZON热销饰品有哪些

在OZON平台上,饰品产品的销售情况受多种因素影响,包括市场需求、季节变化、消费者偏好以及流行趋势等。以下是一些可能热销的OZON饰品产品类别及具体推荐: OZON热销饰品地址:D。DDqbt。COm/74rDTop1 发带套装 Утика Ком…

Idea常用快捷键:设置自动导包、格式化、抽取方法

Idea设置自动导包 【File】→【Setting】(或使用快捷键【Crlt Shift S】)打开Setting设置。点击【Editor】→【General】→【Auto Import】。勾选自定导包的选项,并确定,如下: Addunambiguousimportsonthefly:添加明确的导入 …

CSP-J 2022基础知识答案与解析

1.以下哪种功能没有涉及 C语言的面向对象特性支持:( )。 (2 分) A.C中调用 printf 函数 B.C中调用用户定义的类成员函数 C.C中构造一个 class 或 struct D.C中构造来源于同一基类的多个派生类 解析:printf是继承自C的&#…