朱书眉
摘要:文章介绍了卷积神经网络中的卷积层、池化层和全连接层,分析了利用TensorFlow实现基于卷积神经网络的手写体数字识别,比较卷积神经网络和传统BP神经网络对手写体数字的识别效果。
关键词:卷积神经网络;TensorFlow;手写体数字识别
中图分类号:TP391.4 文献标识码:A 文章编号:1007-9416(2018)11-0044-01
卷积神经网络(Convolutional Neural Network,CNN)是机器学习中一种较为经典的前馈人工神经网络。近年来,由于不断提出的CNN模型在ImageNet挑战赛中的出色表现,CNN已成为众多学科的研究热点,在计算机视觉领域取得较大突破[1-2]。手写体数字识别是模式识别中的一个重要研究课题,在财税、金融、数据统计领域有广泛的应用前景[3]。
1 卷积神经网络
CNN主要由输入层、隐层、全连接层和输出层组成,隐层包括卷积层和池化层,两者交替连接而成。
1.1 卷积层和池化层
卷积层将前一层的特征图与若干参数可调的卷积模板展开卷积运算,并利用激活函数输出得到该层的输出特征图,如式(1)所示。
式中表示l-1层特征图被j个卷积所覆盖的元素;是l层卷积核中的元素;b指代偏置;是第j个卷积核覆盖的区域;表示激活函数。
池化层对上层特征做降采样处理,将其分为n*n个图像小块,对每块采用最大值法或均值法,加上偏置后通过激活函数输出,如式(2)所示。
式中,是l-1层图像塊降采样后得到的输出;是l-1层输出,也是l层的输入元素。
1.2 全连接层
图像经过卷积和池化后输出高级特征,再经由全连接层对这些输入特征加权求和,加上偏置后通过激活函数得到最终输出,如式(3)所示。
式中,是前一层输出特征图;是全连接层的权重系数。
2 实验分析
实验利用TensorFlow框架构造CNN模型,对比CNN和BP神经网络在MNIST数据集上的识别精度。该数据集由70000张(0-9)手写数字灰度图片组成,包括60000张训练图片和10000张测试图片,每张大小为28*28像素。实验运行于Win10系统,TensorFlow版本为1.71-gpu,显卡型号为Nvida GTX 960M 8G。
2.1 实验设计
CNN设置两个卷积层和两个池化层,第一个卷积层有32个卷积核,大小为5*5,经卷积后得到32个特征图;第一个池化层的采样核大小为2*2,且采用最大值法采样;第二个卷积层有64个卷积核,大小为5*5,经卷积后得到64个特征图;第二个池化层的采样核大小为2*2,采用最大值法采样;全连接层使用1024个神经元;激活函数使用relu函数。
训练流程:(1)使用softmax计算损失函数;(2)使用adam优化器来以0.0001的学习率进行微调;(3)计算准确率;(4)循环5000次,每次选择50个样本进行更新。
2.2 结果与分析
实验结果如图1、2所示,CNN一次更新50个样本,经过2500次迭代后,精度稳定在0.95附近;BP神经网络一次更新所有样本,随着迭代次数的增加精度不断提高,最终稳定在0.83附近。本次实验表明,CNN相比于BP神经网络识别精度提高约12个百分点。
3 结语
本文介绍了CNN的重要组成部分:卷积层、池化层和全连接层,然后在MNIST数据集上比较了CNN和BP神经网络对手写数字的识别效果,实验表明CNN在识别精度上远胜于BP神经网络。如何避免过拟合现象、提高网络的学习能力将是CNN今后亟待解决的问题。
参考文献
[1]Girshick R. Fast R-CNN[J].Computer Science,2015.
[2]Wang J, Yang Y, Mao J, et al. CNN-RNN: A Unified Framework for Multi-label Image Classification[C]// Computer Vision and Pattern Recognition. IEEE, 2016:2285-2294.
[3]Schaetti N, Salomon M, Couturier R. Echo State Networks-Based Reservoir Computing for MNIST Handwritten Digits Recognition[C]// Computational Science and Engineering. IEEE,2017.
Handwritten Digit Recognition Based on Convolutional Neural Network
ZHU Shu-mei
(Tongda College of Nanjing University of Posts and Telecommunications , Yangzhou Jiangsu 225127)
Abstract:This paper introduces the convolution layer, pooling layer and full connection layer of convolution neural network, and analyses the recognition of handwritten numerals based on convolution neural network by using TensorFlow, The recognition effect of convolution neural network and traditional BP neural network is compared.
Key words:convolution neural network; TensorFlow; handwritten digit recognition