当前位置: 首页 > news >正文

货运代理网站模板手机网站免费的

货运代理网站模板,手机网站免费的,wordpress seo联接插件,wordpress邮件设置密码来源#xff1a;海豚数据科学实验室编辑#xff1a;王萌(深度学习冲鸭公众号)我们都知道卷积的重要性#xff0c;但你知道深度学习领域的卷积究竟是什么#xff0c;又有多少种类吗#xff1f;研究学者 Kunlun Bai 发布了一篇介绍深度学习的卷积文章#xff0c;用浅显易懂… 来源海豚数据科学实验室编辑王萌(深度学习冲鸭公众号)我们都知道卷积的重要性但你知道深度学习领域的卷积究竟是什么又有多少种类吗研究学者 Kunlun Bai 发布了一篇介绍深度学习的卷积文章用浅显易懂的方式介绍了深度学习领域的各种卷积及其优势。如果你听说过深度学习中不同种类的卷积比如 2D / 3D / 1x1 /转置/扩张Atrous/空间可分/深度可分/平展/分组/混洗分组卷积并且搞不清楚它们究竟是什么意思那么这篇文章就是为你写的能帮你理解它们实际的工作方式。在这篇文章中我会归纳总结深度学习中常用的几种卷积并会试图用一种每个人都能理解的方式解释它们。希望本文能帮助你构建起对卷积的直观认知并成为你研究或学习的有用参考。本文目录1.卷积与互相关2.深度学习中的卷积单通道版本多通道版本3.3D 卷积4.1×1 卷积5.卷积算术6.转置卷积去卷积、棋盘效应7.扩张卷积8.可分卷积空间可分卷积深度可分卷积9.平展卷积10.分组卷积11.混洗分组卷积12.逐点分组卷积卷积与互相关在信号处理、图像处理和其它工程/科学领域卷积都是一种使用广泛的技术。在深度学习领域卷积神经网络CNN这种模型架构就得名于这种技术。但是深度学习领域的卷积本质上是信号/图像处理领域内的互相关cross-correlation。这两种操作之间存在细微的差别。无需太过深入细节我们就能看到这个差别。在信号/图像处理领域卷积的定义是其定义是两个函数中一个函数经过反转和位移后再相乘得到的积的积分。下面的可视化展示了这一思想信号处理中的卷积。过滤器 g 经过反转然后再沿水平轴滑动。在每一个位置我们都计算 f 和反转后的 g 之间相交区域的面积。这个相交区域的面积就是特定位置出的卷积值。这里函数 g 是过滤器。它被反转后再沿水平轴滑动。在每一个位置我们都计算 f 和反转后的 g 之间相交区域的面积。这个相交区域的面积就是特定位置出的卷积值。另一方面互相关是两个函数之间的滑动点积或滑动内积。互相关中的过滤器不经过反转而是直接滑过函数 f。f 与 g 之间的交叉区域即是互相关。下图展示了卷积与互相关之间的差异。信号处理中卷积与互相关之间的差异在深度学习中卷积中的过滤器不经过反转。严格来说这是互相关。我们本质上是执行逐元素乘法和加法。但在深度学习中直接将其称之为卷积更加方便。这没什么问题因为过滤器的权重是在训练阶段学习到的。如果上面例子中的反转函数 g 是正确的函数那么经过训练后学习得到的过滤器看起来就会像是反转后的函数 g。因此在训练之前没必要像在真正的卷积中那样首先反转过滤器。3D 卷积在上一节的解释中我们看到我们实际上是对一个 3D 体积执行卷积。但通常而言我们仍在深度学习中称之为 2D 卷积。这是在 3D 体积数据上的 2D 卷积。过滤器深度与输入层深度一样。这个 3D 过滤器仅沿两个方向移动图像的高和宽。这种操作的输出是一张 2D 图像仅有一个通道。很自然3D 卷积确实存在。这是 2D 卷积的泛化。下面就是 3D 卷积其过滤器深度小于输入层深度核大小通道大小。因此3D 过滤器可以在所有三个方向图像的高度、宽度、通道上移动。在每个位置逐元素的乘法和加法都会提供一个数值。因为过滤器是滑过一个 3D 空间所以输出数值也按 3D 空间排布。也就是说输出是一个 3D 数据。在 3D 卷积中3D 过滤器可以在所有三个方向图像的高度、宽度、通道上移动。在每个位置逐元素的乘法和加法都会提供一个数值。因为过滤器是滑过一个 3D 空间所以输出数值也按 3D 空间排布。也就是说输出是一个 3D 数据。与 2D 卷积编码了 2D 域中目标的空间关系类似3D 卷积可以描述 3D 空间中目标的空间关系。对某些应用比如生物医学影像中的 3D 分割/重构而言这样的 3D 关系很重要比如在 CT 和 MRI 中血管之类的目标会在 3D 空间中蜿蜒曲折。转置卷积去卷积对于很多网络架构的很多应用而言我们往往需要进行与普通卷积方向相反的转换即我们希望执行上采样。例子包括生成高分辨率图像以及将低维特征图映射到高维空间比如在自动编码器或形义分割中。在后者的例子中形义分割首先会提取编码器中的特征图然后在解码器中恢复原来的图像大小使其可以分类原始图像中的每个像素。实现上采样的传统方法是应用插值方案或人工创建规则。而神经网络等现代架构则倾向于让网络自己自动学习合适的变换无需人类干预。为了做到这一点我们可以使用转置卷积。转置卷积在文献中也被称为去卷积或 fractionally strided convolution。但是需要指出「去卷积deconvolution」这个名称并不是很合适因为转置卷积并非信号/图像处理领域定义的那种真正的去卷积。从技术上讲信号处理中的去卷积是卷积运算的逆运算。但这里却不是这种运算。因此某些作者强烈反对将转置卷积称为去卷积。人们称之为去卷积主要是因为这样说很简单。后面我们会介绍为什么将这种运算称为转置卷积更自然且更合适。我们一直都可以使用直接的卷积实现转置卷积。对于下图的例子我们在一个 2×2 的输入周围加了 2×2 的单位步长的零填充上应用一个 3×3 核的转置卷积。上采样输出的大小是 4×4。将 2×2 的输入上采样成 4×4 的输出有趣的是通过应用各种填充和步长我们可以将同样的 2×2 输入图像映射到不同的图像尺寸。下面转置卷积被用在了同一张 2×2 输入上输入之间插入了一个零并且周围加了 2×2 的单位步长的零填充所得输出的大小是 5×5。将 2×2 的输入上采样成 5×5 的输出观察上述例子中的转置卷积能帮助我们构建起一些直观认识。但为了泛化其应用了解其可以如何通过计算机的矩阵乘法实现是有益的。从这一点上我们也可以看到为何「转置卷积」才是合适的名称。在卷积中我们定义 C 为卷积核Large 为输入图像Small 为输出图像。经过卷积矩阵乘法后我们将大图像下采样为小图像。这种矩阵乘法的卷积的实现遵照C x Large Small。下面的例子展示了这种运算的工作方式。它将输入平展为 16×1 的矩阵并将卷积核转换为一个稀疏矩阵4×16。然后在稀疏矩阵和平展的输入之间使用矩阵乘法。之后再将所得到的矩阵4×1转换为 2×2 的输出。卷积的矩阵乘法将 Large 输入图像4×4转换为 Small 输出图像2×2现在如果我们在等式的两边都乘上矩阵的转置 CT并借助「一个矩阵与其转置矩阵的乘法得到一个单位矩阵」这一性质那么我们就能得到公式 CT x Small Large如下图所示。卷积的矩阵乘法将 Small 输入图像2×2转换为 Large 输出图像4×4这里可以看到我们执行了从小图像到大图像的上采样。这正是我们想要实现的目标。现在。你就知道「转置卷积」这个名字的由来了。转置矩阵的算术解释可参阅https://arxiv.org/abs/1603.07285扩张卷积Atrous 卷积扩张卷积由这两篇引入https://arxiv.org/abs/1412.7062https://arxiv.org/abs/1511.07122这是一个标准的离散卷积扩张卷积如下当 l1 时扩张卷积会变得和标准卷积一样。扩张卷积直观而言扩张卷积就是通过在核元素之间插入空格来使核「膨胀」。新增的参数 l扩张率表示我们希望将核加宽的程度。具体实现可能各不相同但通常是在核元素之间插入 l-1 个空格。下面展示了 l 1, 2, 4 时的核大小。扩张卷积的感受野。我们基本上无需添加额外的成本就能有较大的感受野。在这张图像中3×3 的红点表示经过卷积后输出图像是 3×3 像素。尽管所有这三个扩张卷积的输出都是同一尺寸但模型观察到的感受野有很大的不同。l1 时感受野为 3×3l2 时为 7×7。l3 时感受野的大小就增加到了 15×15。有趣的是与这些操作相关的参数的数量是相等的。我们「观察」更大的感受野不会有额外的成本。因此扩张卷积可用于廉价地增大输出单元的感受野而不会增大其核大小这在多个扩张卷积彼此堆叠时尤其有效。论文《Multi-scale context aggregation by dilated convolutions》的作者用多个扩张卷积层构建了一个网络其中扩张率 l 每层都按指数增大。由此有效的感受野大小随层而指数增长而参数的数量仅线性增长。这篇论文中扩张卷积的作用是系统性地聚合多个比例的形境信息而不丢失分辨率。这篇论文表明其提出的模块能够提升那时候2016 年的当前最佳形义分割系统的准确度。请参阅那篇论文了解更多信息。可分卷积某些神经网络架构使用了可分卷积比如 MobileNets。可分卷积有空间可分卷积和深度可分卷积。1、空间可分卷积空间可分卷积操作的是图像的 2D 空间维度即高和宽。从概念上看空间可分卷积是将一个卷积分解为两个单独的运算。对于下面的示例3×3 的 Sobel 核被分成了一个 3×1 核和一个 1×3 核。Sobel 核可分为一个 3x1 和一个 1x3 核在卷积中3×3 核直接与图像卷积。在空间可分卷积中3×1 核首先与图像卷积然后再应用 1×3 核。这样执行同样的操作时仅需 6 个参数而不是 9 个。此外使用空间可分卷积时所需的矩阵乘法也更少。给一个具体的例子5×5 图像与 3×3 核的卷积步幅1填充0要求在 3 个位置水平地扫描核还有 3 个垂直的位置。总共就是 9 个位置表示为下图中的点。在每个位置会应用 9 次逐元素乘法。总共就是 9×981 次乘法。具有 1 个通道的标准卷积另一方面对于空间可分卷积我们首先在 5×5 的图像上应用一个 3×1 的过滤器。我们可以在水平 5 个位置和垂直 3 个位置扫描这样的核。总共就是 5×315 个位置表示为下图中的点。在每个位置会应用 3 次逐元素乘法。总共就是 15×345 次乘法。现在我们得到了一个 3×5 的矩阵。这个矩阵再与一个 1×3 核卷积即在水平 3 个位置和垂直 3 个位置扫描这个矩阵。对于这 9 个位置中的每一个应用 3 次逐元素乘法。这一步需要 9×327 次乘法。因此总体而言空间可分卷积需要 452772 次乘法少于普通卷积。具有 1 个通道的空间可分卷积我们稍微推广一下上面的例子。假设我们现在将卷积应用于一张 N×N 的图像上卷积核为 m×m步幅为 1填充为 0。传统卷积需要 (N-2) x (N-2) x m x m 次乘法空间可分卷积需要 N x (N-2) x m (N-2) x (N-2) x m (2N-2) x (N-2) x m 次乘法。空间可分卷积与标准卷积的计算成本比为因为图像尺寸 N 远大于过滤器大小Nm所以这个比就变成了 2/m。也就是说在这种渐进情况Nm下当过滤器大小为 3×3 时空间可分卷积的计算成本是标准卷积的 2/3。过滤器大小为 5×5 时这一数值是 2/5过滤器大小为 7×7 时则为 2/7。尽管空间可分卷积能节省成本但深度学习却很少使用它。一大主要原因是并非所有的核都能分成两个更小的核。如果我们用空间可分卷积替代所有的传统卷积那么我们就限制了自己在训练过程中搜索所有可能的核。这样得到的训练结果可能是次优的。2、深度可分卷积现在来看深度可分卷积这在深度学习领域要常用得多比如 MobileNet 和 Xception。深度可分卷积包含两个步骤深度卷积核 1×1 卷积。在描述这些步骤之前有必要回顾一下我们之前介绍的 2D 卷积核 1×1 卷积。首先快速回顾标准的 2D 卷积。举一个具体例子假设输入层的大小是 7×7×3高×宽×通道而过滤器的大小是 3×3×3。经过与一个过滤器的 2D 卷积之后输出层的大小是 5×5×1仅有一个通道。用于创建仅有 1 层的输出的标准 2D 卷积使用 1 个过滤器一般来说两个神经网络层之间会应用多个过滤器。假设我们这里有 128 个过滤器。在应用了这 128 个 2D 卷积之后我们有 128 个 5×5×1 的输出映射图map。然后我们将这些映射图堆叠成大小为 5×5×128 的单层。通过这种操作我们可将输入层7×7×3转换成输出层5×5×128。空间维度即高度和宽度会变小而深度会增大。用于创建有 128 层的输出的标准 2D 卷积要使用 128 个过滤器 现在使用深度可分卷积看看我们如何实现同样的变换。首先我们将深度卷积应用于输入层。但我们不使用 2D 卷积中大小为 3×3×3 的单个过滤器而是分开使用 3 个核。每个过滤器的大小为 3×3×1。每个核与输入层的一个通道卷积仅一个通道而非所有通道。每个这样的卷积都能提供大小为 5×5×1 的映射图。然后我们将这些映射图堆叠在一起创建一个 5×5×3 的图像。经过这个操作之后我们得到大小为 5×5×3 的输出。现在我们可以降低空间维度了但深度还是和之前一样。深度可分卷积——第一步我们不使用 2D 卷积中大小为 3×3×3 的单个过滤器而是分开使用 3 个核。每个过滤器的大小为 3×3×1。每个核与输入层的一个通道卷积仅一个通道而非所有通道。每个这样的卷积都能提供大小为 5×5×1 的映射图。然后我们将这些映射图堆叠在一起创建一个 5×5×3 的图像。经过这个操作之后我们得到大小为 5×5×3 的输出。在深度可分卷积的第二步为了扩展深度我们应用一个核大小为 1×1×3 的 1×1 卷积。将 5×5×3 的输入图像与每个 1×1×3 的核卷积可得到大小为 5×5×1 的映射图。因此在应用了 128 个 1×1 卷积之后我们得到大小为 5×5×128 的层。深度可分卷积——第二步应用多个 1×1 卷积来修改深度。通过这两个步骤深度可分卷积也会将输入层7×7×3变换到输出层5×5×128。下图展示了深度可分卷积的整个过程。深度可分卷积的整个过程所以深度可分卷积有何优势呢效率相比于 2D 卷积深度可分卷积所需的操作要少得多。回忆一下我们的 2D 卷积例子的计算成本。有 128 个 3×3×3 个核移动了 5×5 次也就是 128 x 3 x 3 x 3 x 5 x 5 86400 次乘法。可分卷积又如何呢在第一个深度卷积步骤有 3 个 3×3×1 核移动 5×5 次也就是 3x3x3x1x5x5 675 次乘法。在 1×1 卷积的第二步有 128 个 1×1×3 核移动 5×5 次即 128 x 1 x 1 x 3 x 5 x 5 9600 次乘法。因此深度可分卷积共有 675 9600 10275 次乘法。这样的成本大概仅有 2D 卷积的 12%所以对于任意尺寸的图像如果我们应用深度可分卷积我们可以节省多少时间让我们泛化以上例子。现在对于大小为 H×W×D 的输入图像如果使用 Nc 个大小为 h×h×D 的核执行 2D 卷积步幅为 1填充为 0其中 h 是偶数。为了将输入层H×W×D变换到输出层(H-h1)x (W-h1) x Nc所需的总乘法次数为Nc x h x h x D x (H-h1) x (W-h1)另一方面对于同样的变换深度可分卷积所需的乘法次数为D x h x h x 1 x (H-h1) x (W-h1) Nc x 1 x 1 x D x (H-h1) x (W-h1) (h x h Nc) x D x (H-h1) x (W-h1)则深度可分卷积与 2D 卷积所需的乘法次数比为现代大多数架构的输出层通常都有很多通道可达数百甚至上千。对于这样的层Nc h则上式可约简为 1 / h²。基于此如果使用 3×3 过滤器则 2D 卷积所需的乘法次数是深度可分卷积的 9 倍。如果使用 5×5 过滤器则 2D 卷积所需的乘法次数是深度可分卷积的 25 倍。使用深度可分卷积有什么坏处吗当然是有的。深度可分卷积会降低卷积中参数的数量。因此对于较小的模型而言如果用深度可分卷积替代 2D 卷积模型的能力可能会显著下降。因此得到的模型可能是次优的。但是如果使用得当深度可分卷积能在不降低你的模型性能的前提下帮助你实现效率提升。分组卷积AlexNet 论文https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf在 2012 年引入了分组卷积。实现分组卷积的主要原因是让网络训练可在 2 个内存有限每个 GPU 有 1.5 GB 内存的 GPU 上进行。下面的 AlexNet 表明在大多数层中都有两个分开的卷积路径。这是在两个 GPU 上执行模型并行化当然如果可以使用更多 GPU还能执行多 GPU 并行化。图片来自 AlexNet 论文这里我们介绍一下分组卷积的工作方式。首先典型的 2D 卷积的步骤如下图所示。在这个例子中通过应用 128 个大小为 3×3×3 的过滤器将输入层7×7×3变换到输出层5×5×128。推广而言即通过应用 Dout 个大小为 h x w x Din 的核将输入层Hin x Win x Din变换到输出层Hout x Wout x Dout。标准的 2D 卷积在分组卷积中过滤器会被分为不同的组。每一组都负责特定深度的典型 2D 卷积。下面的例子能让你更清楚地理解。具有两个过滤器分组的分组卷积上图展示了具有两个过滤器分组的分组卷积。在每个过滤器分组中每个过滤器的深度仅有名义上的 2D 卷积的一半。它们的深度是 Din/2。每个过滤器分组包含 Dout/2 个过滤器。第一个过滤器分组红色与输入层的前一半[:, :, 0:Din/2]卷积而第二个过滤器分组橙色与输入层的后一半[:, :, Din/2:Din]卷积。因此每个过滤器分组都会创建 Dout/2 个通道。整体而言两个分组会创建 2×Dout/2 Dout 个通道。然后我们将这些通道堆叠在一起得到有 Dout 个通道的输出层。1、分组卷积与深度卷积你可能会注意到分组卷积与深度可分卷积中使用的深度卷积之间存在一些联系和差异。如果过滤器分组的数量与输入层通道的数量相同则每个过滤器的深度都为 Din/Din1。这样的过滤器深度就与深度卷积中的一样了。另一方面现在每个过滤器分组都包含 Dout/Din 个过滤器。整体而言输出层的深度为 Dout。这不同于深度卷积的情况——深度卷积并不会改变层的深度。在深度可分卷积中层的深度之后通过 1×1 卷积进行扩展。分组卷积有几个优点。第一个优点是高效训练。因为卷积被分成了多个路径每个路径都可由不同的 GPU 分开处理所以模型可以并行方式在多个 GPU 上进行训练。相比于在单个 GPU 上完成所有任务这样的在多个 GPU 上的模型并行化能让网络在每个步骤处理更多图像。人们一般认为模型并行化比数据并行化更好。后者是将数据集分成多个批次然后分开训练每一批。但是当批量大小变得过小时我们本质上是执行随机梯度下降而非批梯度下降。这会造成更慢有时候更差的收敛结果。在训练非常深的神经网络时分组卷积会非常重要正如在 ResNeXt 中那样。图片来自 ResNeXt 论文https://arxiv.org/abs/1611.05431第二个优点是模型会更高效即模型参数会随过滤器分组数的增大而减少。在之前的例子中完整的标准 2D 卷积有 h x w x Din x Dout 个参数。具有 2 个过滤器分组的分组卷积有 (h x w x Din/2 x Dout/2) x 2 个参数。参数数量减少了一半。第三个优点有些让人惊讶。分组卷积也许能提供比标准完整 2D 卷积更好的模型。另一篇出色的博客已经解释了这一点https://blog.yani.io/filter-group-tutorial。这里简要总结一下。原因和稀疏过滤器的关系有关。下图是相邻层过滤器的相关性。其中的关系是稀疏的。在 CIFAR10 上训练的一个 Network-in-Network 模型中相邻层的过滤器的相关性矩阵。高度相关的过滤器对更明亮而相关性更低的过滤器则更暗。图片来自https://blog.yani.io/filter-group-tutorial分组矩阵的相关性映射图又如何在 CIFAR10 上训练的一个 Network-in-Network 模型中相邻层的过滤器的相关性动图分别展示了有 1、2、4、8、16 个过滤器分组的情况。图片来自 https://blog.yani.io/filter-group-tutorial上图是当用 1、2、4、8、16 个过滤器分组训练模型时相邻层的过滤器之间的相关性。那篇文章提出了一个推理「过滤器分组的效果是在通道维度上学习块对角结构的稀疏性……在网络中具有高相关性的过滤器是使用过滤器分组以一种更为结构化的方式学习到。从效果上看不必学习的过滤器关系就不再参数化。这样显著地减少网络中的参数数量能使其不容易过拟合因此一种类似正则化的效果让优化器可以学习得到更准确更高效的深度网络。」AlexNet conv1 过滤器分解正如作者指出的那样过滤器分组似乎会将学习到的过滤器结构性地组织成两个不同的分组。本图来自 AlexNet 论文。此外每个过滤器分组都会学习数据的一个独特表征。正如 AlexNet 的作者指出的那样过滤器分组似乎会将学习到的过滤器结构性地组织成两个不同的分组——黑白过滤器和彩色过滤器。未来智能实验室的主要工作包括建立AI智能系统智商评测体系开展世界人工智能智商评测开展互联网城市云脑研究计划构建互联网城市云脑技术和企业图谱为提升企业行业与城市的智能水平服务。  如果您对实验室的研究感兴趣欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”
http://www.yutouwan.com/news/132638/

相关文章:

  • 公司个人怎么制作网站黄山旅游攻略及费用
  • 网站开发浏览器的使用桂林医院网站建设
  • 网站建设要规避的张家港网站制作哪家好
  • 如何做电影下载网站wordpress 图片路径加密
  • 手机移动开发网站电子商务网站的开发语言
  • 上海网站备案最好的线上编程培训机构
  • 网站模型怎么做的上海公司牌照价格走势
  • 商丘做网站公司新站seo快速收录网页内容页的方法青岛房产网官网网址
  • 怎么做菠菜网站2015年做哪些网站能致富
  • vscode网站开发网站关键词在哪里做
  • 去国外做网站wordpress谷歌网站地图
  • 网站定制价格c2c电子商务网站策划
  • 电子商务之网站建设互联网行业推广员资格证明图片
  • thinkphp做的教育网站上海室内设计事务所
  • 芜湖网站 建设鄂州网站制作人才招聘
  • 国外网站如何搭建网页做高效能的父母网站
  • 2014做网站互联网技术应用就业方向
  • 好听好记的网站域名wordpress 后台菜单修改
  • 外贸行业网站推广网站主题咋做
  • 化妆培训网站模板电子商务网站开发这书不出版了吗
  • 广州网站优化页面老薛主机 wordpress 本地 上线
  • 企业网站的基本功能有哪些网站建设策划优点
  • 海口网站制作价格水墨风logo一键制作
  • 成都筑巢网站建设wordpress不显示标题
  • 化妆品网站建设策划书织梦cms网站搬家
  • 郴州网站建设的公司梧州论坛 红豆社区
  • 网站建设公司工资设置骏域建网站
  • 企业网站建设费用 珠海清远市企业网站seo
  • html 网站开发网络搞钱路子
  • 做任务游戏能赚钱的网站南县中国建设银行网站