CNN(卷积神经网络)简介

若将一张图像每一个点都输入一个神经元,这非常容易过拟合,参数也太大。一般将每个感受野(receptive field)传入神经元。

卷积(Convolution)过程🔗

考虑RGB三个通道,假设每个感受野的大小为$$3 \times 3$$输入一组神经元,每个感受野的步长(stride)为$$2$$,若超出了,做填充(padding)。
对于不同感受野输入的神经元,可以共享参数,共享参数的神经元叫过滤器(filter),而这个操作就叫卷积(Convolution)。
即使用每个过滤器在图像上进行计算,能得出一张新的图片(通道数为过滤器个数)。

池化(Pooling)过程🔗

池化将图片缩小,目的是通过减小输入减小参数。池化的方法有很多最简单的就是在一个神经元输出中选择一个数作为输出。(现在由于算力的增加,Pooling可以不再使用)

Flatten(变平)过程🔗

使用Flatten函数把输出的矩阵变为向量,然后在经过一层神经网络并归一化(Softmax)。

ℹ️ 注意

一般来说,CNN不能够很好地处理缩放或旋转图片后的问题,这需要我们将训练资料做数据增强(Data Augmentation)。