相关专题:⭐ 李宏毅2020机器学习资料汇总


4. CNN

Convolutional Neural Network(P17)

首先,李宏毅老师介绍了为什么要用CNN来处理图像。

Q:明明 DNN 也可以处理图像,那么为什么要用 CNN 呢?

A:普通的 DNN 用的是全连接层,参数数量特别多。因此,可以根据图像特征,将DNN 简化为CNN,基于以下几个观察(特性):

  1. 一些模式(pattern)远比整张图像小得多,一个神经元只需要发现这些模式,而不需要看整张图像。如:人脸识别中,一些负责识别眼睛,一些负责识别鼻子,一些负责识别嘴巴等等。将一些小区域与少量参数相关联。
  2. 同样的模式可能出现在图像的不同区域。如:人脸识别中,鼻子在图上的位置可能不同,可能在正中间,可能偏上,也可能偏下。用同一组的参数做几乎同样的事情。
  3. 对图片做下采样,不会改变图中的物体。下采样让图像变小,减少参数。

卷积层针对特性1和特性2,最大池化(Max Pooling)层针对特性3。

AlphaGO下围棋也用到了CNN,因为围棋棋盘也满足1和2这两个特性。

李宏毅老师先整体介绍了 CNN 的流程,然后分别介绍卷积操作和最大池化操作。

整体的 CNN 如下所示:
一张图像多次经过卷积层+池化层,然后展平,通过一个全连接的前向传播神经网络(分类器)来进行分类。
⭐ 李宏毅2020机器学习课程笔记(二)

卷积(convolution)操作中有一些过滤器(filter),也被称为卷积核,相当于神经网络中的神经元,需要被学习。
过滤器就是一些矩阵,它负责提取图像中的特征,进行特征映射(feature map)
⭐ 李宏毅2020机器学习课程笔记(二)
注:卷积操作听起来很复杂,实际上比矩阵乘法简单很多,就是两个大小为M×NM \times N的矩阵中对应位置的元素相乘,再把乘积累加,建议看视频理解。
下图中 3=1×1+0×(1)+0×(1)+0×(1)+1×1+0×(1)+0×(1)+0×(1)+1×13=1\times1+0\times(-1)+0\times(-1)+0\times(-1)+1\times1+0\times(-1)+0\times(-1)+0\times(-1)+1\times1⭐ 李宏毅2020机器学习课程笔记(二)
CNN 做卷积相当于 DNN 的全连接层去掉一些权重,比如:3×33\times3 的过滤器相当于它只连接了 9 个输入,而不是全连接。
⭐ 李宏毅2020机器学习课程笔记(二)
因此,一个卷积核就是几个神经元的共享参数,使得 CNN 相比 DNN 来说,参数减少了。

最大池化层(Max Pooling)进行下采样。
⭐ 李宏毅2020机器学习课程笔记(二)
如:上图划分 2×22\times2 的区域进行下采样,选择每个 2×22\times2 的区域中最大的值作为这个区域的值。
⭐ 李宏毅2020机器学习课程笔记(二)

之后,李宏毅老师介绍了 Keras 中如何搭建CNN(因为这是之前的视频,所以用的是Keras,2020年的作业中用到的是PyTorch)以及输入的图像经过 CNN 的每一层后的大小。

虽然用到的工具不同,但是计算 CNN 中的参数以及图像经过 CNN 的每一层后的大小的方式相同。

例如:

  1. 输入图像大小为 1×28×281\times28\times28(单通道的灰度图,长为28像素,宽为28像素)。
  2. 它经过第一个卷积层,卷积层有25个卷积核,每个卷积核大小为 3×33\times3,那么输出的图像大小为 25×26×2625\times26\times26,每个卷积核有 3×3=93\times3=9 个参数,那么总共有 25×3×3=22525\times3\times3=225个参数。
  3. 它经过第一个最大池化层,输出的图像大小为 25×13×1325\times13\times13.
  4. 它经过第二个卷积层,卷积层有50个卷积核,每个卷积核大小为 3×33\times3,那么输出的图像大小为 50×11×1150\times11\times11,每个卷积核有 25×3×3=22525\times3\times3=225 个参数,那么总共有 50×25×3×3=1125050\times25\times3\times3=11250个参数。
  5. 它经过第二个最大池化层,输出的图像大小为 50×5×550\times5\times5.⭐ 李宏毅2020机器学习课程笔记(二)

之后,李宏毅老师介绍了 CNN 每一层可能学到的东西(一些奇怪的模式),最后,介绍了 CNN 的一些应用,如:Deep Dream、Deep Style、AlphaGo、语音识别、文本处理等。


Graph Neural Network (1_2) (选学)(P18)

Graph Neural Network (2_2) (选学)(P19)

* 2020新增内容,由助教讲授
仍然讲得有点懵逼,就凑合着听听吧。


5. RNN

Recurrent Neural Network (Part I)(P20)

相关文章: