意法半导体近期发布的 STM32Cube.AI v7.2 带来了对深度量化神经网络的支持功能,从而可以在现有微控制器上运行更准确的机器学习应用软件。STM32Cube.AI 于 2019 年推出,用于把神经网络转换为适合STM32 MCU 的代码。该解决方案依附于 STM32CubeMX,这是一个帮助开发人员初始化STM32芯片的图形界面软件。同时,STM32Cube.AI 还用到 X-CUBE-AI软件包,其中包含用于转换训练好的神经网络的程序库。开发人员可以参照我们的入门指南,从STM32CubeMX内部开始使用 X-CUBE-AI并体验新功能。 目前,新增加的深度量化神经网络支持已经出现在我们与施耐德电气合作开发的人数统计应用软件中。
1.神经网络是什么?
最简单的神经网络就是一系列网络层。在神经网络中有一个输入层和一个输出层,以及介于两者之间的一个或多个隐藏层。因此,深度学习是指三层以上的神经网络,其中“深度”这个词表示有多个中间层。每一层都包含多个节点,每个节点都连接到下层的一个或多个节点。简而言之,信息通过输入层进入神经网络,穿过隐藏层,然后,从一个输出节点出来。
2.量化神经网络和二值化神经网络分别是什么?
开发人员在节点内使用权重和偏差两种参数来决定信息在神经网络上的传播方式。在数据通过网络时,这两个参数将会影响数据。权重是系数。当权重越复杂,网络输出越准确,但算量也随即增大。每个节点还用激活函数来确定如何转换输入值。因此,为了提高网络性能,开发人员可以使用权重精度较低的量化神经网络。最高效的量化神经网络是权重值和激活函数值只用+1 和 -1两个数值的二值化神经网络 (BNN)。因此,BNN神经网络对算力的要求非常低,然而准确度也最差。
3.为什深度量化神经网络很重要?
业界面临的挑战是找到一种简化神经网络的方法,以便在微控制器上运行推理运算,同时又不把准确度降到让神经网络毫无用处的程度。为了解决这个问题,意法半导体和意大利萨勒诺大学的研究人员在深度量化神经网络DQNN上展开合作。DQNN网络只用较小的权重值(1 位到 8 位),并且可以包含混合结构,即只有一部分层是二值化,而另一部分层则用位宽更高的浮点量化器。意法半导体和该大学的研究人员发表的研究论文论述了哪种混合结构可以产生最佳的结果,同时RAM 和 ROM的存储占用空间最低。
STM32Cube.AI 的新版本是这些研究活动的直接成果。7.2 版确实支持深度量化神经网络,充分利用二值化层的高效,同时不会丧失运算准确性。开发人员可以先用 QKeras 或 Larq 等开发框架训练神经网络模型,然后再通过 X-CUBE-AI处理训练好的神经网络。改用DQNN网络有助于节省内存占用空间,让工程师能够选用成本效益更好的芯片,或用一个微控制器代替多个元器件设计整个系统。因此,STM32Cube.AI 继续为边缘计算平台带来更强大的推理能力。
1.如何开发人数统计演示软件?
意法半导体和施耐德电气最近推出了双方合作利用 DQNN开发的一个人数统计演示软件。该系统通过处理热传感器图像数据,在 STM32H7 上运行推理算法,来确定是否有人越过一条假想线,以及是从哪个方向进出的。元器件的选择非常引人注目,因为它宣扬物料成本相对较低。施耐德没有选用更昂贵的处理器,而是使用深度量化神经网络来大幅降低内存和 CPU 的占用,从而缩减了应用系统面积,并为成本效益更高的解决方案打开大门。两家公司都在 2022 年 3 月的 TinyML 展会期间展示了该演示软件。
2.如何克服边缘机器学习的炒作问题?
意法半导体是第一家提供类似STM32Cube.AI 解决方案的 MCU厂商,根据 MLCommons 基准测试,我们的工具的性能继续名列前茅。从学术论文到软件发布,最新的发展历程表明,意法半导体之所以表现出色,是因为我们优先考虑有意义的影响实际应用的研究活动。我们关心的是让 AI 变得实用且可用,而不只是一个时髦术语。Gartner的市场分析师预计,嵌入式 AI 开发企业将很快经历“幻灭低谷期”。通过争做业界龙头,以研究为动力,专注实际应用和精心优化,意法半导体克服了这一问题。