相比于MLP(多层感知器)的神经网络,CNN(卷积神经网络)有卷积层和池化层。
在构建MNIST字符集的识别训练过程中,卷积神经网络采用了:
输入层 卷积层1 池化层1 卷积层2 池化层2 平坦层 隐层层 输出层
输入层输入二维的图像,28X28的一个矩阵。
在卷积层1,将输入层的一个矩阵图像,采用16个filter weight产生的随机5X5的零一矩阵和输入层的28X28的矩阵相乘加,变成16个28X28的矩阵图像。类似滤镜,用于提取输入图像的特征,如边缘,线条和角。
在层化层1,将卷积层1输出的16个矩阵图像,进行Max-Pool缩减采样,每4个单元选出最大值进行缩减,变成14X14的矩阵图像,共16个。缩减采样可以减少所需处理的数据点,让图像位置差异变小,参数的数量和计算量下降。
在卷积层2,将池化层1输入的16个14X14矩阵图像采用36个filger weight5X5,进行乘加,产生36个14X14的图像。
在池化层2,将卷积层2产生的36个矩阵图像,进行Max-Pool缩减采样,每4个单元选出最大值进行缩减,变成7X7的矩阵图像,共36个。
在平坦层,作为神经网络的输入部分,36X7X7=1764个神经元。
隐层128个神经元,输出层10个。其他类似MPL网络。