构建图像着色神经网络 - 第 3 部分:卷积神经网络

Image generated by 稳定扩散

构建图像着色神经网络 - 第 3 部分:卷积神经网络

您好,欢迎回到本系列的第三部分,我们正在尝试使用神经网络对黑白图像进行着色。如果您还没有检查我们分析自动编码器和人工神经网络基础知识的前 2 部分,请确保在继续之前检查(下面的链接)。

整个系列由以下4个部分组成:

  1. 第1部分 : 概述了生成模型的基础知识和 自动编码器 .
  2. 第2部分 : 展示人工的基本概念 神经网络 .
  3. 第 3 部分(当前) : 介绍基本知识 卷积神经网络 .
  4. 第 4 部分 :描述实际模型的实现。

免责声明:这绝不是一个教程。它提供了一些基本知识,但主要目标是展示如何构建这样的模型。

在上一篇文章中,我们已经展示了人工神经网络是什么,它是如何工作的,以及我们如何训练它来解决特定问题。在当前文章中,我们将为完全相同的问题提供答案,但针对的是卷积神经网络。

卷积神经网络

人工神经网络的基本形式在输入数据是“结构化”且维数相对“少”的情况下工作得非常好。但是,有些输入数据(例如图像)被认为是“非结构化”的,但它们包含过多的维度。让我们考虑一下我们有 256x256 像素的彩色图像的场景。输入的尺寸为 256x256x3 = 196,608,因为我们有 3 个通道:红色、绿色和蓝色。如果我们创建一个简单的线性神经网络,接收这些图像作为输入并生成相同大小的图像,我们将需要 196,608² 个参数!现在应该很清楚,这样的网络需要大量的内存,更不用说过度的训练时间了。

尽管图像可以表示为一个非常高维的向量,但它具有一些特殊的特性。第一个叫做 地方性 并且本质上意味着图像中的对象确实具有局部空间支持。也就是说,相邻像素看起来非常相似,或者它们以某种方式相关。第二个叫 翻译不变性, 这表明物体的外观通常与它们的位置无关。例如,无论人脸在图像上的位置如何(即上、右、下、左),人脸看起来都是一样的。

如何利用这些特性来构建可管理的神经网络?为了在神经网络中加入局部性的概念,我们必须调整层之间发生的操作。更具体地说,我们需要从计算显式神经元之间的乘积转向利用矩形区域,也称为感受野或内核,在执行卷积操作时传递输入。请注意,输入和感受野之间的卷积会导致图像尺寸更小。由于这可能一开始可能很难消化,因此下图展示了上述范式转变:

Dot product between neurons and input

Dot product formula

Convolution between receptive field and input

Convolution formula

通过强制在输入中共享感受野的权重 wᵢ,在已建立的过程中引入平移不变性假设可以轻松实现。

话虽如此,一个 卷积神经网络 或者 CNN 是一种特定类型的 ANN,其中层之间的基本操作是卷积而不是乘法。卷积发生在感受野和输入之间,感受野的数量和大小是可配置的,权重是可训练的。在 CNN 中,我们通常出于不同的原因使用不同类型的感受野。例如,某些字段应用于检测边缘或模糊或锐化图像的图像。然而,在一般情况下,感受野的权重被初始化然后训练,就像在传统的前馈神经网络中训练神经元的权重一样。只是为了更清楚一点,在面部识别任务中,一些感受野最终可能会识别眼睛,而另一些则是鼻子或头发或其他任何东西。所有这些的结合为我们提供了一个完整的人脸识别模型。

配置

现在我们已经解释了感受野背后的直觉,让我们看看它们可以应用于输入的不同方式。实际上,有 4 个可配置参数会影响卷积过程。

填充

填充处理包含可以在输入周围添加的零的帧的大小。通过使用填充,我们可以更好地控制输出分辨率,因为感受野会更加关注图像的边缘。从某种意义上说,填充有助于保持输入分辨率。

Padding example

跨步

应用卷积时,stride 处理感受野的步长。步幅为 1 表示感受野一次移动 1 步,而步幅为 2 表示在输入上移动 2 步。步幅有助于降低空间分辨率以进行更好的处理。

Stride example

汇集

与 stride 类似,还有另一种称为池化的技术具有相同的目的,即在不丢失有价值的细节的情况下加快处理速度。池化有很多变体,例如平均池化和最大池化。在第一种情况下,我们计算感受野上的平均输入,这与应用权重固定为 1/k² 的 akxk 跨步卷积相同。在第二种情况下,我们计算并保持感受野上的最大输入。

扩张

膨胀处理感受野的扩展。 1 的膨胀意味着 3x3 的感受野将保持 3x3,而 2 的膨胀意味着相同的场将被转换为 5x5 的场,因为它是通过在权重之间添加“洞”来扩展的。 Dilation 试图模拟较大的感受野,同时保持较少的权重。例如,一个扩张为 2 的 3x3 字段有 9 个可训练权重(带有 1 个通道),而一个扩张为 1 的 5x5 字段有 25 个可训练权重。

Dilation example

转置卷积

卷积层在输入是“非结构化”(如图像)的判别任务中非常有用。然而,在我们的任务中,我们必须建立一个生成模型来创建新图像。更正式地说,在图像着色任务中,我们必须增加维度来实现我们的目标。我们可以做到这一点 转置卷积 这与卷积正好相反。卷积层会降低分辨率,而转置层会增加分辨率。它们的作用对于生成模型和自动编码器至关重要,因为解码器是转置卷积层的混合物。

结论

总而言之,为了训练 CNN,无论有无转置层,都必须指定层数,并为每一层确定感受野的数量、它们的大小以及填充、步幅和扩张选项。然后,就像在简单的 ANN 中一样训练网络,不同之处在于在 CNN 中我们调整了感受野的权重。

通读本部分后,您将掌握了解图像着色攻击计划所需的所有基础知识。这就是我们将在本系列的下一篇也是最后一篇文章中要做的事情。所以,敬请期待!

[

Mlearning.ai 提交建议

如何成为 Mlearning.ai 上的作家

媒体网

](/mlearning-ai/mlearning-ai-submission-suggestions-b51e2b130bfb)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/33168/36541308

posted @ 2022-09-13 08:37  哈哈哈来了啊啊啊  阅读(30)  评论(0编辑  收藏  举报