基于FPGA的手写字识别神经网络实现方法
基于FPGA的手写字识别神经网络实现方法(任务书,开题报告,论文18000字)
摘要
本文研究了基于FPGA的手写数字识别神经网络算法实现方法。通过BP神经网络的数学模型,利用Matlab神经网络工具箱和MNIST数据集进行网络构建和参数训练,对权重和阈值的位宽进行合理调整解决精度冗余问题,使用阶跃函数替换训练过程中的sigmoid函数解决实现过程复杂的问题。经过对改进方法验证合理性,对经过验证的网络结构使用Verilog硬件描述语言完成模块化设计以及仿真分析过程。最终实现的神经网络识别正确率达到92.8%以上时仅使用3538个Flip Flops和2677个LUT,总资源消耗情况均控制在20%以内,同时具有整体识别准确率稳定,单一数字识别无明显差异化的特点,在50M的主系统时钟下神经网络整体功耗预估仅0.179W,低功耗特点明显。
关键词:神经网络;激活函数;手写数字识别;
Abstract
This paper studies the implementation method of handwritten digital recognition neural network based on FPGA. Through the mathematical model of BP neural network, the Matlab neural network toolbox and MNIST data set are used for network construction and parameter training. The weight and threshold bit width are adjusted reasonably to solve the precision redundancy problem. The step function is used to replace the training process. The sigmoid function solves the complex problem of the implementation process. After verifying the rationality of the improved method, the Verilog hardware description language is used to complete the modular design and simulation analysis process for the verified network structure. When the final neural network recognition accuracy rate reaches 92.8% or more, only 3538 Flip Flops and 2677 LUTs are used, and the total resource consumption is controlled within 20%. At the same time, the overall recognition accuracy is stable, and the single digital recognition has no obvious difference. The overall power consumption of the neural network under the 50M main system clock is estimated to be only 0.179W, and the low power consumption is obvious.
Key Words:Neural network; activation function; handwritten digit recognition;
目录
第1章绪论 1
1.1课题背景与研究意义 1
1.2神经网络相关技术及发展现状 1
1.2.1神经网络可视化开发发展现状 1
1.2.2 FPGA发展现状 2
1.3课题主要工作与论文结构 2
第2章神经网络模型及算法概述 4
2.1神经元模型 4
2.1.1生物神经元模型 4
2.2.2人工神经元数学模型 5
2.2神经网络模型 5
2.2.1 BP神经网络介绍 5
2.2.2BP神经网络算法 6
2.2.3BP算法流程 7
2.3本章小结 7
第3章基于Matlab的算法仿真与改进 8
3.1Matlab算法实现需要考虑的问题 8
3.1.1初始权重与阈值的选取 8
3.1.2学习速率的选取 9
3.1.3激活函数的选取 9
3.2基于神经网络工具箱的训练过程 10
3.3针对FPGA的改进方法 11
3.3.1样本数据的处理 12
3.3.2权重和阈值的调整 13
3.3.3激活函数的替换 14
3.4改进后算法验证 15
3.5本章小结 16
第4章基于FPGA的BP神经网络设计 17
4.1模块划分 17
4.2各模块的设计实现 18
4.2.1乘加(Mac)单元的设计实现 18
4.2.2加法树(AddTree)单元设计实现 18
4.2.3激活函数(Fun)单元设计实现 19
4.2.4状态控制单元设计实现 20
4.2.5整体网络结构组成 20
4.3功能仿真与验证 20
4.3.1乘加(Mac)单元仿真结果 21
4.3.2加法树(AddTree)单元仿真结果 21
4.3.3激活函数(Fun)单元仿真结果 22 [资料来源:Doc163.com]
4.3.4整体网络功能仿真结果 22
4.4逻辑综合结果 22
4.5本章小结 25
第5章性能评估与测试分析 26
5.1测试平台组成 26
5.2测试结果分析 26
5.3本章小结 27
第6章总结与展望 28
6.1总结 28
6.2展望 28
参考文献 30
致谢 32