相关链接

001-卷积神经网络(CNN)-什么是卷积运算

卷积为什么有效?

前面说到在利用基本的神经网络做计算时,会出现参数爆炸的现象,一张 1000*1000*3 的图像,在包含 1000 个隐层的情况下,会有 3 亿个参数需要训练,这无疑是一个很大的问题。那么卷积运算就出现了,因为它的参数真的很少,且很固定。

普通的神经网络计算,权值矩阵 (w) 中的参数的个数是随着输入矩阵的增加而增加的。而在卷积计算中,引入了过滤矩阵(或卷积核),卷积核中的参数的个数,是我们要利用神经网络训练的参数的个数。比如有一个 6*6 的卷积核,那么在本次卷积中,需要确定的参数的个数也就是 36 个。无论是多大的图片,无论图片的大小怎么改变,最终需要确定的只有 36 个参数,这也是神经网络中的一个重要的思想-参数共享

彩色 (RGB) 图像如何进行卷积计算

前面进行卷积运算时,我们讨论的都是一个简单的二维矩阵,可以认为它是只含有一个通道的图像(黑白图像等),那么彩色图像的卷积应该怎么计算呢?

  1. 一个 6*6*3 的图像,那么为了进行卷积运算,其卷积核也应该是具有三个通道 (channel) 的。这样才能保证计算

  1. 计算方法与二维的类似,输入矩阵与过滤矩阵每一层的对应位置的数相乘并相加,最终得到一个数字,也就是做了三次的二维的运算,最终将结果相加起来得到最终的结果
  2. 最终输出的结果矩阵,因为只有一个过滤矩阵,所以最终的结果矩阵一定是一个一维的

一定要保证过滤矩阵的通道个数与输入图像的通道个数是相同的,否则无法正确的进行卷积运算。

卷积神经网络中的卷积层是什么?

上面就是基本的卷积计算的运算法则,总结下来一句话:对应位置相乘并相加,算完移位,继续卷积

那根据卷积计算,就可以构造单层卷积网络了,卷积网络与上图的不同是,它是由多个过滤层构成的。

过滤器的作用就是利用不同的卷积核,来提取图像中的某些特征,如

1 0 -1
1 0 -1
1 0 -1

就可以用来提取图像中的垂直边界或垂直特征。对图像利用多个过滤器进行卷积运算,将最终的结果组合到一起组成一个新的多维度矩阵,这就是卷积神经网络中的一次卷积运算。

上图中的 6 x 6 x 3 的输入矩阵,分别经过两个 Fliter 进行卷积运算之后,得到两个 4 x 4 x 1 的矩阵,将这两个矩阵组合到一起,也就是最终的 4 x 4 x 2 的输出矩阵,这将作为整个网络下一步操作的输入(卷积,池化等)

基本上到这里就能看懂许多文献上的卷积层了

如上图中就是小猫图像,做了三次卷积操作,每次卷积操作的过滤器的数量都会增加,但是过滤器的维度会下降,这是为什么呢?

下一节将介绍

  • 卷积神经网络的符号约定
  • 池化层
  • 全连接层