目录
前言
- 这篇博客不够详细,因为没有介绍卷积操作的具体计算;
- 但是它介绍了 CNN 各层次的功能,提供了一个全局的视野。
参考博客
1 什么是 CNN
卷积神经网络 CNN 通常被用于图像处理,比如下图的手写数字辨识过程:
可以看出,整个过程由以下几层组成:
- 输入层:输入图像等信息;
- 卷积层:用于提取图像的底层特征;
- 池化层:防止过拟合,即将数据的维度减小;
- 全连接层:汇总卷积层和池化层得到的图像的底层特征和信息;
- 输出层:根据全连接层的信息得到概率最大的结果。
其中最重要的就是卷积层,这也是卷积神经网络名称的由来。接下来,我们将对这些层进行详细的介绍。
个人理解:上图中的红色方框表明,黑色线所指向位置的元素是由红色方框内的元素计算出来的。
2 输入层
CNN 的输入层用于将输入的图像转换为由像素值构成的二维矩阵,并存储该二维矩阵以等待后续操作。与人眼不同,计算机能够处理的图像是一个二维矩阵,该二维矩阵是由图像的每一个像素的像素值组成的。如下图所示,手写数字 8 8 8 的图像被计算机读取为一个二维矩阵:
图 (a) 是一个灰度图像,这是因为其每个像素值的范围在 [ 0 , 255 ] [0,255] [0,255] 之间,表示其颜色的强弱程度。除灰度图像外还有黑白图像,黑白图像的每个像素值要么是 0 0 0,要么是 255 255 255。而日常生活中最常见的是 R G B \mathrm{RGB} RGB 图像,这种图像有三个通道,分别是:红色、绿色、蓝色。每个通道的每个像素值的范围也是在 [ 0 , 255 ] [0,255] [0,255] 之间,表示其颜色的强弱程度。
由于灰度图像的值范围较小、颜色较单一,因此比较好操作,所以我们通常处理的都是灰度图像。在某些情况下, R G B \mathrm{RGB} RGB 图像在输入神经网络之前也会被转化为灰度图像,这就是因为处理三个通道的计算量非常大。不过随着计算机性能的高速发展,现在有些神经网络也可以直接处理