Lecture 3 Convolutional Neural Network (CNN)

Lecture 3: Image as input

文章目录

  • Convolutional Neural Network (CNN)
    • Image Classification
    • Observation and Simplification
      • Observe and Simplify 01
        • Receptive Field - Typical Setting
      • Observe and Simplify 02
        • Parameter Sharing - Typical Setting
      • Observe and Simplify 03
    • Benefit of Convolutional Layer

Convolutional Neural Network (CNN)

Image Classification

Lecture 3 Convolutional Neural Network (CNN)_第1张图片

如上图所示,假设所有的输入图片的大小都是 100 × 100 100\times 100 100×100,输出一个 one-hot 向量 y ′ y' y,用交叉熵来计算标签值 y ^ \hat y y^ 和输出值 y ′ y' y 间的损失。

如下图所示,计算机在处理图片时,将图片视作三维的 Tensor(图片的宽、高、channel,三个 channel 代表了 RGB 三种颜色、宽和高就代表了图片的解析度也就是像素个数),将图片拉直成向量后就能作为模型的输入,向量中的数值代表了某个位置的某一颜色的强度。

Lecture 3 Convolutional Neural Network (CNN)_第2张图片

如果选择全连接网络(Fully Connected Network)作为模型,那么输入向量的总长度就是 100 × 100 × 3 100\times 100\times 3 100×100×3。假设第一层神经元(Neuron)的个数是 1000 1000 1000,那么第一次的权重(weight)的个数就是 3 × 100 × 100 × 1000 = 3 × 10 7 3\times 100\times 100\times 1000 = 3\times {10}^7 3×100×100×1000=3×107 个。

Lecture 3 Convolutional Neural Network (CNN)_第3张图片

Observation and Simplification

我们尝试观察图片中的特点,并基于我们的发现在全连接网络上进行简化工作。

Observe and Simplify 01

观察

Lecture 3 Convolutional Neural Network (CNN)_第4张图片

我们期待模型能够识别物体(object)的一些特定的模式(pattern)或特征,从而学会分辨物体。如上图所示,模型学习到了鸟的喙、眼和足,从而识别出这是一只鸟。

因此,当模型需要学习一些特定的模式或特征时,我们不需要让每一个神经元都看过一整张图片。一些特定的模式或特征往往比完整的图片要小得多。是否可以只将关键的模式或特征作为输入呢?

简化

我们可以划定一个区域,称作感受野(Receptive Field),每个神经元只关心自己感受野中的数值。如下图所示,一个神经元只负责感受野中的 3 × 3 × 3 = 27 3\times 3 \times 3=27 3×3×3=27 个数值,因此总共需要 27 27 27 个权重再加上一个 b i a s bias bias 即可作为下一个神经元的输入。

Lecture 3 Convolutional Neural Network (CNN)_第5张图片 Lecture 3 Convolutional Neural Network (CNN)_第6张图片

关于感受野(Receptive Field):

  • 多个神经元可以作用于同一个感受野;
  • 不同的感受野可以重叠;
  • 不同的神经元可以有不同大小的感受野;
  • 神经元可以只作用于某些通道;
  • 感受野不一定得是正方形。

Receptive Field - Typical Setting

Lecture 3 Convolutional Neural Network (CNN)_第7张图片

如上图所示,是一个经典的感受野设定:

  • 感受野包含了所有的通道(all channels),一般讨论 kernel size的时候,我们只说宽和高,默认包含了所有的通道,比如一个大小为 3 × 3 3\times 3 3×3 的卷积核;
  • 通常会有一组神经元作用于同一个感受野,比如 64 64 64 128 128 128 个;
  • 通过移动卷积核可以得到一个新的感受野,而移动的这一段距离叫做步长(Stride),步长不会设置得很大,我们希望不同的感受野之间要有重叠,比如 s t r i d e = 2 stride=2 stride=2
  • 如果移动卷积核超出了范围,那么我们需要填充(padding),比如补 0 0 0

Observe and Simplify 02

观察

同样一种模式或特征可能出现在图片的不同位置上,如下图中鸟喙的例子。这些作用于图中鸟喙部分的神经元,他们的作用是一样的,只是作用的感受野位置不同。那么是否每个感受野都需要一个检测鸟喙的神经元呢?当让是不需要的,这样参数量就太大了。

Lecture 3 Convolutional Neural Network (CNN)_第8张图片

简化

我们希望不同感受野的神经元间能够共享参数(parameter sharing)。如下图所示,两个作用于不同感受野的神经元,它们的参数是相同的;而作用于同一感受野的不同神经元之间是不会共享参数的。

Lecture 3 Convolutional Neural Network (CNN)_第9张图片

Parameter Sharing - Typical Setting

Lecture 3 Convolutional Neural Network (CNN)_第10张图片

每个感受野都有一组神经元;不同感受野的神经元共享同一组参数;作用于不同感受野且共享参数的神经元,将这样的共享的参数叫做 filter (滤波器)。

Observe and Simplify 03

观察

对图片进行下采样(subsample)不会改变图中的物品,比如去掉图片中的偶数行和奇数列。

Lecture 3 Convolutional Neural Network (CNN)_第11张图片

简化

Pooling 池化,Pooling 可以减少计算量,让图片越来越小。

Lecture 3 Convolutional Neural Network (CNN)_第12张图片 Lecture 3 Convolutional Neural Network (CNN)_第13张图片

Benefit of Convolutional Layer

Lecture 3 Convolutional Neural Network (CNN)_第14张图片

你可能感兴趣的:(2022,Spring,李宏毅ML,cnn,深度学习,神经网络)