李宏毅ML-卷积神经网络CNN
文章目录
- 李宏毅ML-卷积神经网络CNN
- Image Classification
- Convolutional Layer
- 1. Neural Version Story
- Receptive Field
- Parameter Sharing
- 2. Filter Version Story
- Filter
- Parameter Sharing
- 3. Summary of Two Versions
- Pooling Layer
- The Whole CNN
- Drawback of CNN
Image Classification
图像分类任务:把图片全部都 resize 成相同的尺寸喂入模型中,得到每一个类别的预测概论
y
′
y\prime
y′,然后使用交叉熵的方法,将
y
′
y\prime
y′ 转换成
y
^
\widehat{y}
y
,
y
^
\widehat{y}
y
中值为 1 的类别即为模型预测的类别。
Convolutional Layer
1. Neural Version Story
Receptive Field
类似于人的观察方式,CNN 中间层的一个神经元侦测一张图片中的某一 pattern,结合多个神经元所侦测的 pattern,可以判断出输入图片是鸟。
图片中的一个 pattern 由一个 receptive field 侦测,一个 receptive field 可以由多个神经元守卫,神经元之间守卫的 receptive field 可以有相交部分。
Parameter Sharing
一个 pattern 在不同的图片中会出现在不同 receptive field 中,所以让每个神经元之间共享参数。
但负责守卫同一个 receptive field 的不同神经元之间不共享参数。
尽管全连接层的弹性很好,但是图片的特征过多,全部学习会导致过拟合;
在引入了 Receptive Field 之后,神经元只需要对图片中某一个 pattern 进行处理;
参数共享使得同一个 pattern 出现在图片中的不同位置时得到的结果一致;
由此算作是一个 convolution layer,有 convolution layer 的 network 叫作 CNN.
虽然 CNN 的 model bias 会偏大,但其针对了“图片是由一个个 pattern 组成的”这个特点,减少计算量,不断增加限制,以使在 image classification 上取得了很好的效果。
2. Filter Version Story
Filter
每一个 Filter 负责侦测某一 Pattern,使用 Filter 将原图片进行卷积操作,图片通过一个 Filter 得到一个 Feature Map,不断提取图像特征,最后得到图像的 Feature Maps.
Parameter Sharing
每一个 Filter 的参数也是共享的。这也对应了每一个 Neuron 的参数也是共享的。
3. Summary of Two Versions
有关 Convolutional Layer 的两个版本介绍,其实都是一个道理。只是将 Neuron 换成了 Filter。
Pooling Layer
由于 GPU 的内存并不是很大,太大的计算量会使用模型不 work,所以图片通过池化层后,对特征图进行稀疏处理,减少数据运算量。
The Whole CNN
Drawback of CNN
CNN 不适用于预测放大/缩小和旋转过的图片。因此,我们在制作数据集时,需要做 data augmentation.