Coursera 笔记

Module 01 · Foundations of Convolutional Neural Networks

One Layer of a Convolutional Network单层卷积网络

Coursera ↗

在本视频中,我们将通过一个例子来演示如何构建卷积神经网络的一层。我们已经在前一个视频中看到,如何将一个 3D 卷积体与两个不同的过滤器进行卷积,得到两个不同的 4x4 输出。


构建卷积神经网络的一层

1.1卷积操作的输出

假设,我们将图像与第一个过滤器进行卷积,得到第一个 4x4 输出;然后用第二个过滤器卷积,得到另一个 4x4 输出。最终,要将这个过程转化为卷积神经网络的一层,我们需要对每个输出添加偏置。对于每个输出,我们会加上一个实际的偏置数值,并应用非线性激活函数(如 ReLU)。

  • 第一个输出:添加偏置后应用非线性激活,得到一个 4x4 输出。
  • 第二个输出:同样添加偏置,应用非线性激活后得到另一个 4x4 输出。

1.2堆叠输出形成新卷积体

  • 将两个 4x4 输出堆叠起来,形成一个 4x4x2 的输出卷积体。

这样,我们就完成了一层卷积神经网络的构建。将一个 6x6x3 的输入,通过这层卷积操作,得到 4x4x2 的输出。


与标准神经网络的对比

2.1标准神经网络的前向传播

在传统的神经网络中,前向传播步骤通常是:

  • 公式:z1=w1×a0+b1z_1 = w_1 \times a_0 + b_1
  • 激活:a1=g(z1)a_1 = g(z_1)

对于卷积神经网络来说,卷积操作实际上类似于标准神经网络中的 加权求和。你正在通过卷积操作计算一个线性函数,并加上偏置项,之后应用非线性激活函数,从而得到输出。

2.2卷积与线性函数

在卷积操作中,你将过滤器与输入图像的每个区域进行元素级的相乘,然后累加所有乘积,这样就得到了卷积操作的输出。这个输出就相当于标准神经网络中的 w1×a0w_1 \times a_0。

  • 卷积是一个线性操作。
  • 在加上偏置并应用激活函数后,我们得到了卷积神经网络的激活(类似于标准神经网络中的 a1a_1)。

练习:计算卷积层的参数

假设我们有 10 个过滤器,每个过滤器的尺寸为 3x3x3,并且这是卷积神经网络中的一层。那么,这一层的参数量是多少呢?

3.1计算每个过滤器的参数

每个过滤器的尺寸为 3x3x3,所以每个过滤器有 27 个参数。此外,每个过滤器还有一个偏置(一个实数),所以每个过滤器的总参数数为 28 个。

3.2计算总参数量

如果有 10 个过滤器,那么总参数量为:

结论:这一层的总参数量是 280。无论输入图像的尺寸如何(即使是 1000x1000 或 5000x5000),参数的数量依然是 280。这就是卷积神经网络的一个重要特性:参数量固定,不受输入图像尺寸的影响。


卷积神经网络的优势

  • 减少过拟合的风险:由于卷积神经网络的参数量固定,即使面对大尺寸图像,网络的表现仍然非常稳健。这是卷积神经网络一个重要的优势,它使得网络对大尺寸数据更加适应,且不容易过拟合。

卷积层的符号化表示

为了更好地描述卷积神经网络的一层,我们使用以下符号:

  • f[l]f^{[l]}:表示过滤器的尺寸。
  • p[l]p^{[l]}:表示填充(Padding)的大小。
  • s[l]s^{[l]}:表示步幅(Stride)。

5.1输入和输出的尺寸

  • 输入的尺寸为 nh[l−1]×nw[l−1]×nc[l−1]n_h^{[l-1]} \times n_w^{[l-1]} \times n_c^{[l-1]},其中 nhn_h 和 nwn_w 是上一层的高度和宽度,ncn_c 是上一层的通道数。
  • 输出的尺寸为 nh[l]×nw[l]×nc[l]n_h^{[l]} \times n_w^{[l]} \times n_c^{[l]}。

5.2计算输出的尺寸

使用以下公式计算输出的高度和宽度:

5.3卷积层参数

  • 过滤器尺寸:每个过滤器的尺寸为f[l]×f[l]×nc[l−1]f^{[l]} \times f^{[l]} \times n_c^{[l-1]}。
  • 过滤器总数:这一层的过滤器数量为 nc[l]n_c^{[l]}。
  • 参数量:过滤器的总参数量为 f[l]×f[l]×nc[l−1]×nc[l]f^{[l]} \times f^{[l]} \times n_c^{[l-1]} \times n_c^{[l]},并且每个过滤器有一个偏置。

总结与下步计划

在本视频中,我们通过详细的步骤,介绍了卷积神经网络的一层如何构建。通过理解卷积操作的过程、计算参数量,以及卷积层的符号表示,你可以更好地理解卷积神经网络的工作原理。

接下来,我们将继续深入研究如何将多层卷积神经网络堆叠在一起,构建更深的网络。在下一个视频中,我们将展示如何将这些卷积层组合成一个完整的卷积神经网络。