×
FPGA/DSP > 可编程逻辑 > 详情

Z1上搭建二值神经网络(BNN)

发布时间:2020-05-16 发布时间:
|

机器学习与CNN

机器学习(Machine Learning)以及其中的深度学习(Deep Learning)在最近几年的科技行业非常地吸引眼球,取得了爆发式的发展——仅仅在过去两年间,机器学习技术所取得的发展成就,就已超越了之前45年的总和,并且依然维持着高速的发展轨迹,而这些方法是实现人工智能应用的重要手段。未来的视觉识别、语音识别和自然语言处理将会大大改变我们的日常生活。在具体的实现过程中,卷积神经网络(Convolutional Neural Networks,CNN)受到了科学家们的青睐,已成为当前语音分析和图像识别领域的研究热点。

CNN采用的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。当网络的输入是多维图像时其优点表现得更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。

CNN所面临的挑战与BNN的问世

当前,CNN技术所面临的一大挑战在于如何在高速运转下降低功耗,以及如何能够更为易于使用。在最近举办的第25届国际可编程门阵列(FPGA)技术研讨会(the 25th International Symposium on Field Programmable Gate Arrays)上的一篇论文就提出了一种快速可扩展的二值神经网络(Binarized Neural Networks,BNN)框架,其在CNN基础上进行了优化,不仅降低了功耗而且使得系统运行更快。文中指出:

“大量研究发现传统的卷积神经网络(CNN)会产生大量的冗余。这种使用浮点计算的神经网络要求大存储空间和大计算量,严重阻碍了其在移动端设备上的应用。二值神经网络(BNN)设法让计算主要在正1或负1间进行,几十倍地降低了网络大小和计算量,但一直以来难以达到高预测准确率。最新的进展大幅提高了二值神经网络的预测准确率并接近实用水平。相比浮点型计算,FPGA器件更适合这种二值化操作,而且表现出不俗的性能。”

图1 :全连接二值化神经网络(BNN)层示例

该篇论文随后介绍了作者所开发的用于生成BNN的技术,并且将之实例化应用于FPGA中。论文中所发表的基于Zynq Z-7045 SoC器件所完成的测试结果令人印象深刻:

“从纯图像吞吐量来看,我们的设计相比其它任何已有方案都表现得更为优异。针对MINST数据集,我们的SFC-max设计与LFC-max设计分别实现了超过48倍/6倍FPS于现今最为接近的最高吞吐量设计。相比于Alemdar et al.所执行的网络,我们的SFC-max design的精度要比之低,但我们的LFC-max design比之最接近的精确设计表现得更为优异:分别是6倍吞吐量以及1.9倍FPS/W之于前者的表现。针对其它数据集,我们的CNV-max design相比TrueNorth更为卓越,分别取得了17倍FPS于CIFAR-10数据集,以及8倍FPS于SVHN数据集的表现。同时,我们的吞吐量9.44倍高于Ovtcharov et al.的设计,2.2倍于Hegde et al.的最快结果。”

从以上可见,对于图片分类应用,BNN虽然降低了一定精度但是性能显著提升,功耗也大幅度降低。

PYNQ让BNN触手可及

更加令人兴奋的是,由于其高度可扩展性,上述二值神经网络(BNN)目前已经能够在价廉物美的Digilent PYNQ-Z1开发板上轻松搭建!基于上述论文,位于爱尔兰的Xilinx研究实验室(Xilinx Research Labs),联合挪威科技大学(Norwegian U. of Science and Technology,NTNU),与悉尼大学(U. of Sydney)于近日最新共同发布了面向PYNQ-Z1的开源二值神经网络(BNN)一直框架,适合更多爱好者以及入门者学习。PYN1-Z1是由迪芝伦(DIGILENT)公司设计开发的ZYNQ 7020开发板卡,国内市场官方定价:?2,478(学术价格:?998)。

正如Xilinx研究实验室的科学家Giulio Gambardella所述:“PYNQ-Z1不同的机器学习数据集(dataset)的测试结果显示:对于MNIST数据集PYNQ-Z1能实现每秒168000张图片的分类,延迟102微妙,准确率达98.4%;对于CIFAR-10、SVHN、GTSRB数据集PYN1-Z1能实现每秒1700张图片的分类,延迟2.2毫秒,准确率分别为80.1%、96.69%和97.66%,系统功耗均保持在2.5W左右。”

图2 :迪芝伦(DIGILENT)PYNQ-Z1板卡,基于Xilinx Zynq Z-7020 SoC


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
FPGA的电机测速系统电路设计