基于FPGA的边缘设备开发深度神经网络检测程序.docx
《基于FPGA的边缘设备开发深度神经网络检测程序.docx》由会员分享,可在线阅读,更多相关《基于FPGA的边缘设备开发深度神经网络检测程序.docx(7页珍藏版)》请在第一文库网上搜索。
1、基于FPGA的边缘设备开发深度神经网络检测程序机器学习是使用算法解析数据,从中学习,然后做出决策或预测的过程。机器不是准备程序代码来完成任务,而是使用大量数据和算法“训练”以自行执行任务。机器学习正在使用粒经囱络(NN)算法发生革命性变化,神经网络算法是我们大脑中发现的生物神经元的数字模型。这些模型包含像大脑神经元一样连接的层。许多应用程序都受益于机器学习,包括图像分类/识别、大数据模式检测、ADAS.欺诈检测、食品质量保证和财务预测。作为机器学习的算法,神经网络包括由多个层组成的广泛的拓扑结构和大小;第一层(“输入层”)、中间层(“隐藏层”)和最后一层(“输出层”)。隐藏层对输入执行各种专用
2、任务并将其传递到下一层,直到在输出层生成预测。一些神经网络相对简单,只有两层或三层神经元,而所谓的深度神经网络(DNN)可能包含多达IOOO层。为特定任务确定正确的NN拓扑和大小需要与类似网络进行实验和比较。设计高性能机器学习应用程序需要网络优化,这通常使用修剪和量化技术完成,以及计算加速,使用ASIC或FPGA执行。在本文中,我们将讨论DNN的工作原理、为什么FPGA在DNN推理中越来越受欢迎,并考虑使用FPGA开始设计和实现基于深度学习的应用程序所需的工具。开发DNN应用程序的设计流程设计DNN应用程序是一个三步过程。这些步骤是选择正确的网络,训练网络,然后将新数据应用于训练模型进行预测(
3、推理)。如前所述,DNN模型中有多个层,每一层都有特定的任务。在深度学习中,每一层都旨在提取不同层次的特征。例如,在边缘检测神经网络中,第一个中间层检测边缘和曲线等特征。然后将第一个中间层的输出馈送到第二层,第二层负责检测更高级别的特征,例如半圆或正方形。第三个中间层组装其他层的输出以创建熟悉的对象,最后一层检测对象。在另一个示例中,如果我们开始识别停车标志,则经过训练的系统将包括用于检测八边形形状、颜色以及其中的字母“S”、T”、“0”和“P”的层秩序和孤立。输出层将负责确定它是否是停车标志。DNN学习模型有四种主要的学习模型:监督:在这个模型中,所有的训练数据都被标记了。NN将输入数据分类
4、为从训练数据集中学习的不同标签。无监督:在无监督学习中,深度学习模型被交给一个数据集,而没有明确说明如何处理它。训练数据集是没有特定期望结果或正确答案的示例集合。然后,NN会尝试通过提取有用的特征并分析其结构来自动找到数据中的结构。半监督:这包括带有标记和未标记数据的训练数据集。这种方法在难以从数据中提取相关特征时特别有用,并且标记示例对于专家来说是一项耗时的任务。强化:这是奖励网络以获得结果并提高性能的行为。这是一个迭代过程:反馈的轮次越多,网络就越好。这种技术对于训练机造特别有用,机器人会在诸如驾驶自动驾驶汽车或管理仓库库存等任务中做出一系列决策。训练与推理在训练中,未经训练的神经网络模型
5、从现有数据中学习新的能力。一旦训练好的模型准备好,它就会被输入新数据并测量系统的性能。正确检测图像的比率称为推理。在图1给出的示例中(识别猫),在输入训练数据集后,DNN开始调整权重以寻找猫;其中权重是每个神经元之间连接强度的度量。如果结果错误,错误将被传播回网络层以修改权重。这个过程一次又一次地发生,直到它得到正确的权重,这导致每次都得到正确的答案。如何实现高性能DNN应用使用DNN进行分类需要大数据集,从而提高准确性。然而,一个缺点是它为模型产生了许多参数,这增加了计算成本并且需要高内存带宽。优化DNN应用程序有两种主要方法。首先是通过修剪冗余连接和量化权重并融合神经网络来缩小网络规模的网
6、络优化。修剪:这是DNN压缩的一种形式。它减少了与其他神经元的突触连接数,从而减少了数据总量。通常,接近零的权重会被移除。对于分类2等任务,这有助于消除冗余连接,但精度会略有下降。量化:这样做是为了使神经网络达到合理的大小,同时实现高性能的准确性。这对于内存大小和计算数量必然受到限制的边缘应用程序尤其重要。在此类应用中,为了获得更好的性能,模型参数保存在本地内存中,以避免使用PCIe或其他互连接口进行耗时的传输。在该方法中,执行通过低位宽数的神经网络(INT8)来逼近使用浮点数的神经网络(FTP32)的过程。这极大地降低了使用神经网络的内存需求和计算成本。通过量化模型,我们稍微损失了精度和准确
7、度。但是,对于大多数应用程序来说,不需要32位浮点。优化DNN的第二种方法是通过计算加速,使用ASIC或FPGAo其中,后一种选择对机器学习应用程序有很多好处。这些包括:电源效率:FPGA提供了一种灵活且可定制的架构,它只允许使用我们需要的计算资源。在ADAS等许多应用中,为DNN配备低功耗系统至关重要。可重构性:与ASIC相比,FPGA被认为是原始可编程硬件。此功能使它们易于使用,并显着缩短了上市时间。为了赶上每天发展的机器学习算法,拥有对系统重新编程的能力是非常有益的,而不是等待SoC和ASIC的长时间制造。低延迟:与最快的片外存储器相比,FPGA内部的B1ockRAM提供的数据传输速度至
8、少快50倍。这是机器学习应用程序的游戏规则改变者,低延迟是必不可少的。性能可移植性:您无需任何代码修改或回归测试即可获得下一代FPGA设备的所有优势。灵活性:FPGA是原始硬件,可以针对任何架构进行配置。没有固定的架构或数据路径可以束缚您。这种灵活性使FPGA能够进行大规模并行处理,因为数据路径可以随时重新配置。灵活性还带来了任意对任意I/O连接能力。这使FPGA无需主机CPU即可连接到任何设备、网络或存储设备。功能安全:FPGA用户可以在硬件中实现任何安全功能。根据应用程序,可以高效地进行编码。FPGA广泛用于航空电子设备、自动化和安全领域,这证明了这些设备的功能安全性,机器学习算法可以从中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 边缘 设备 开发 深度 神经网络 检测 程序