论文部分内容阅读
图像分类是人工神经网络的研究领域之一,手写数字识别又是图像分类的一个重要应用。人工神经网络是根据生物脑学习和记忆的功能,仿照脑细胞处理信号的方式去设计,能处理大量数据运算和训练更新自身参数的系统,具有并行处理数据的特点。神经网络通常采用软件串行处理方式实现,缺点是训练速度较慢,耗时长;其另一种实现方式是硬件实现,可克服软件处理慢的缺点。FPGA作为一种可编程逻辑器件,具有并行处理能力和可重复配置的优点,且内嵌丰富的乘法器和存储器资源,适合神经网络算法的实现,可提高网络训练速度,满足实时性的要求。因此成为研究神经网络硬件实现的一种理想器件。神经网络是由若干人工神经元按照一定规则相互连接起来的,具有并行分布结构、非线性激活函数、归纳学习、适应性的特点。BP网络在语音识别、图像分类和信号处理等领域应用是最为广泛的神经网络模型之一,具有快速和大规模处理的能力。手写数字识别系统根据BP算法训练更新神经元的权重和偏置,实现手写数字样本识别。本文用FPGA实现BP神经网络的训练和识别功能,并应用于手写数字识别,主要研究内容如下。研究手写数字BP神经网络架构和BP网络算法原理,参考python语言程序,研究手写数字识别BP神经网络的训练和识别实现原理。设计用FPGA实现BP神经网络的电路结构图,分析运算处理的时序过程。用Verilog代码实现手写数字BP神经网络的识别功能和训练功能,利用Quartus II软件进行综合编译,并调用ModelSim进行RTL级仿真。本系统主要包括样本数据和标签输入模块、S型函数运算模块、数据的串并行转换模块、各层网络前向和后向运算模块、训练和识别判决模块,以及状态机控制模块。本系统采用的学习系数是30,迭代次数为2次,小批量数据是10个。硬件系统选用的系统时钟是50MHz,训练的时间是590ms,识别准确率是90.2%,与python语言实现的系统进行比较,大大提高了训练速度,保证了识别准确率,为进一步实现硬件BP神经网络的应用奠定了研究基础。