简介
卷积神经网络(CNN)是常用的神经网络之一,主要用来处理图像数据,但是近来随着对于CNN的创新,也有使用CNN处理文本信息,语音信息的相关工作,这里简单介绍一下自己学习过程中的理解。
相关概念
Feature Map 和 Channel
图像在CNN中的存在形式,可以认为是Feature Map(特征图)的叠加组合。如果图片是灰度图,那么图片的维度为 1*N*N,其中N为图片的高和宽,灰度图只有一个Feature Map,即Channel=1;如果图片是彩色图片,那么图片的维度为3*N*N,代表彩色图片有三个Feature Map,即Channel=3,分别是RGB通道。
卷积核
卷积核(Kernel),也称过滤器(Filter),是CNN中用来对图像进行特征提取。每个卷积核具有高、宽、深三个属性,其中高和宽代表卷积核的大小,通常情况下高宽相等(常设置为3*3,5*5等),深是由上一层的输入来决定,卷积核的深就是上一层传入的Feature Map的个数,所以只需要指定卷积核的长宽即可。
每层卷积层可以设置多个卷积核,有几个卷积核,就会输出几个Feature Map。
卷积核运算过程:
以上图为例,我们的原始输入图片是6*6的彩色图片,所以其维度为3*6*6(通道数*高*宽),我们使用一个卷积核,卷积核的高宽为3,因为输入图片的Channel为3,所以卷积核的深度为3 。卷积核的深度和输入图片的Channel一一对应,也就是说卷积核中深度1st提取Channel 1st的特征(对应到图片中,第一个黄色的卷积核提取图片红色通道的特征,以此类推),之后将三张新得到的Feature Map进行算术求和,得到一张Feature Map,也就是等式右边的4*4矩阵(关于输出的矩阵大小,下面进行介绍)。
所以,无论输入的图片的Channel是多少,经过一个卷积核的操作之后,都会得到一张深度为1的Feature Map,在卷积层中设置多少个Filter,卷积层输出的Feature Map的深度就是多少。
在实际过程中,我们设置多个不同的卷积核,来提取图像中的特征,是因为对于一张图片,我们希望得到多个角度上的描述