CNN属于DNN的特例之一,比之后者,最主要的区别在于卷积层与池化层的加入,而除去这2中层,其他与一般的深度神经网络还是基本一致的。
1.卷积层
对于实例的特征,将其原本的向量形式转化为m*n的矩阵形式,另外引入一个a*a的矩阵称为卷积核。特征矩阵与卷积核的相应位置分别相乘然后作和,将此值投影到一个新的特征矩阵上。卷积核从特征矩阵的左上角开始,每次向右或向下移动一定步长(stride)并求此位置的值,并投影到新矩阵上(位置移动方式与卷积核相同),直至移动至右下角。
示例图中绿色部分为原特征矩阵,黄色部分为卷积核,粉色部分为新特征矩阵。
当输入矩阵与卷积核深度(图的张数)不为1时,使卷积核的第一张对应到输入矩阵的每一张,每张的元素作和后再将求和,每次得到新矩阵中一个位置的元素;与此相同,卷积核的第二张及其余张分别得到新矩阵的1张图,最终得到与卷积核深度相同的新特征矩阵。
2.池化层
将原特征矩阵变为各个分块尺寸相同的m*n分块矩阵,将分块矩阵内的m*n个元素进行特定处理后得到一个新元素,投影到一个新特征矩阵中,对每个分块矩阵都进行如此处理。处理方式一般有2中:取最大元素、取各元素的均值。
通过卷积与池化,可以将特征数特别大的实例化为特征数大大减小的实例。