Coursera 笔记

Module 01 · Foundations of Convolutional Neural Networks

Simple Convolutional Network Example简单卷积网络示例

Coursera ↗

在上一视频中,我们了解了卷积神经网络中单层卷积层的构建模块。现在,我们将通过一个深度卷积神经网络(ConvNet)的具体示例,帮助你更好地理解卷积神经网络的工作原理,并加深对我们在上个视频末尾引入的符号的理解。📊

任务介绍: 图像分类

假设我们有一个图像,并希望进行图像分类或图像识别。具体来说,输入是一个图像 x,我们的目标是判断这是否是一只猫,输出是0或1,属于分类问题。让我们构建一个卷积神经网络(ConvNet),用于完成这个任务。

图像尺寸和初始参数

为了简化计算,我们假设使用一个较小的图像,尺寸为 39 x 39 x 3。这里,39 是图像的高度和宽度,3 是图像的通道数(即RGB三个颜色通道)。因此,在第0层(输入层),有:

  • nH[0]=39n_H^{[0]} = 39
  • nW[0]=39n_W^{[0]} = 39
  • nC[0]=3n_C^{[0]} = 3

第1层卷积层

假设第一层使用 3x3 的卷积核(滤波器),并使用步幅(stride)为1,且没有填充(padding)。我们使用 10个滤波器。
根据公式:

  • nH[1]=nW[1]=39+0−31+1=37n_H^{[1]} = n_W^{[1]} = \frac{39 + 0 - 3}{1} + 1 = 37
  • nC[1]=10n_C^{[1]} = 10

因此,第一层的输出激活尺寸为 37 x 37 x 10。

第2层卷积层

接下来,我们使用一个 5x5 的滤波器,步幅为2,没有填充,并且使用 20个滤波器。
输出尺寸为:

因此,第二层的输出激活尺寸为 17 x 17 x 20。

第3层卷积层

再来一层卷积层,使用 5x5 的滤波器,步幅为2,且使用 40个滤波器。
输出尺寸为:

因此,第三层的输出激活尺寸为 7 x 7 x 40。

展平层(Flatten)

最后,将 7x7x40 的特征图展平成一个长向量。计算得:

这样,卷积网络的输出就是一个 1960维的向量,然后可以将这个向量传递给 逻辑回归单元 或 softmax单元,进行最终的分类预测。

综上所述

整个过程如下:

  1. 输入图像:39 x 39 x 3
  2. 卷积层1:3x3滤波器,步幅1,10个滤波器,输出为 37 x 37 x 10
  3. 卷积层2:5x5滤波器,步幅2,20个滤波器,输出为 17 x 17 x 20
  4. 卷积层3:5x5滤波器,步幅2,40个滤波器,输出为 7 x 7 x 40
  5. 展平:将 7 x 7 x 40 展平为 1960 维向量
  6. 分类:使用 softmax 或 逻辑回归 单元输出预测结果

超参数的选择

设计卷积神经网络时,最重要的工作之一是选择合适的超参数。比如:

  • 卷积核大小(滤波器尺寸)
  • 步幅(stride)
  • 填充(padding)
  • 滤波器数量(filters)

这些选择会影响网络的性能和计算效率。在本视频和后续的视频中,我们会给出一些建议和指导,帮助你选择合适的超参数。

卷积神经网络的层类型

在一个典型的卷积神经网络中,通常有三种主要的层:

  1. 卷积层(Conv Layer):用于提取特征。
  2. 池化层(Pooling Layer):常见的池化层包括最大池化(Max Pooling)和平均池化(Average Pooling),用来减少空间维度,同时保留重要信息。
  3. 全连接层(Fully Connected Layer,FC):通常用于分类任务,将前面的卷积特征映射到类别标签。

虽然可以仅通过卷积层设计出一个有效的网络,但大多数神经网络架构会结合池化层和全连接层。幸运的是,池化层和全连接层的定义相对简单,我们将在接下来的两集视频中快速介绍这些层。

总结

至此,你已经见识了一个完整的卷积神经网络(ConvNet)的工作原理,恭喜你!🎉

接下来,我们将深入探讨如何实现池化层(Pooling Layer)和全连接层(FC),并讨论如何训练这些网络,使用的是 反向传播算法(Backpropagation),你已经对此有所了解。在下一视频中,我们将介绍如何实现卷积神经网络中的池化层。


学习要点总结:

  • 卷积神经网络的层次通常是卷积层、池化层、全连接层。
  • 在设计网络时,超参数的选择至关重要。
  • 卷积神经网络的常见模式是随着网络深度的增加,图像的空间维度会逐渐减小,而特征的通道数通常会逐渐增加。

希望通过这些示例和讲解,你能够更好地理解卷积神经网络的结构和运作原理。继续加油!🚀