好久不见!我又肥来啦!
接着上一次的内容,我们聊到了RNN及RNN的一些变体的相关知识,那再讲了RNN,我们再来简单聊一下CNN吧!
CNN卷积神经网络
1.卷积
- 首先,想要了解什么是卷积神经网络,这其中“卷积”二字可以说是囊括了CNN的主要思路与内涵。
- 如果我们就按照 “给定输入,经过卷积步骤,得到输出” 的形式来理解的话,我们先举一个机器视觉方面的例子:(老师课上的例子)
- 如果要从数学的角度来看的话,我认为可以把卷积理解为一种特殊的加权运算。我们再来举一个更加具体的例子:
1.我们知道,一张图像是由许多个像素点构成的,所以一张图像在经过一定的处理后,我们其实就可以把它简单地看作是一个矩阵。比如我们先给定下述的输入图像(矩阵)和卷积核:
2.我们可以发现,一个3x3的卷积核矩阵如果要嵌套到6x6的输入矩阵中,是可以有多种嵌套形式的,如下图给出的两种形式(共16种): 3.然后,我们将上述的两种例子中从6x6输入矩阵中分割出的3x3小矩阵和卷积核矩阵相乘(对应位置相乘),并求和,得到: 4.接着,我们把2中提到的所有可能的嵌套形式都按照3中的规则进行计算,我们就可以得到如下的一个4x4的结果矩阵(可能有算错,数字都是自己编的): 5.最后,我们得到的结果矩阵其实并不一定就是我们要的卷积结果,因为很多时候我们得到的数字往往是不规范的,在此简单举个例子(就举个二值化的吧,黑白的比较简单),假设我们设定一个阈值,矩阵中的元素值若大于等于0,我们把像素点的灰度值设置为0(黑色),矩阵中的元素值若大于0,我们把像素点的灰度值设置为255(白色)0(黑色),将整个图像呈现出明显的黑白效果。得到(我简单手画的,不管了…,不太严谨哈,都没用电脑):
2.CNN卷积神经网络
- 卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络仿造生物的视知觉(visual perception)机制构建,能够进行平移不变分类。
- 卷积神经网络具有以下特点:
1.局部卷积 2.参数共享 3.多卷积核 4.池化操作 5.多层处理 (其实接下来要讲的东西和前面讲的会有挺多内容覆盖的,但会比前面的内容会更严谨些,多了些术语)
3.CNN特点介绍
(1)局部卷积
- 可以把卷积想象成作用于输入矩阵的一个滑动窗口函数,按照卷积核的size在输入矩阵上一点一点地挪动(就类似于前面我讲的一个个嵌入,但好像“滑动”更加生动形象哈)。这个滑动窗口又称作卷积核(啊这,这波是属于先斩后奏了哈,现在才介绍啥是卷积核)、滤波器或是特征检测器。
- 对于给定的输入图像,输出特征图中每个像素实际上是输入图像中局部区域中像素的加权平均,其权值由卷积核定义。
(2)参数共享
- 参数共享其实很好理解,我们前面的例子中,每一次的加权我们使用的都是同一组加权数,也就是同一个卷积核,这就是参数共享。
(3)多卷积核
- 那既然有参数共享,那当然也可以有参数不共享,也就是我们说的使用多个卷积核。
- 每个卷积核都会对输入图像进行卷积处理,生成另一幅图像。不同卷积核生成的不同图像可以理解为是该输入图像的不同通道。
(4)池化操作
- 池化处理也叫作降采样处理(down‐pooling),是对不同位置的特征进行聚合统计。通常是取对应位置的最大值(最大池化)、平均值(平均池化)等。
- 池化的优点:
1)降维; 2)克服过拟合; 3)在图像识别领域,池化还能提供平移和旋转不变性。
(5)多层处理
- 一般而言,在图像处理中,一层卷积及降采样往往只学到了局部的特征。层数越多,学到的特征越全局化。因此通过这样的多层处理,低级的特征组合形成更高级的特征表示。
|