HelloEdge:微控制器上的关键字定位
目录
Microcontroller Systems (微控制器系统)
Abstract
1、关键词识别(KWS)是在智能设备上实现基于语音的用户交互的关键组件。为了获得良好的用户体验,它需要实时响应和高准确度。
2、近年来,与传统的语音处理算法相比,神经网络具有更高的准确度,因此成为KWS体系结构的一个有吸引力的选择。
3、由于KWS应用程序的常开特性,其功率预算非常有限,通常在内存和计算能力有限的微型微控制器上运行。KWS的神经网络体系结构的设计必须考虑这些约束条件。在这项工作中,我们对在资源受限的微控制器上运行KWS进行了神经网络体系结构评估和探索。
4、我们训练各种神经网络结构,用于文献中发表的关键词识别,以比较它们的准确性和内存/计算需求。我们证明,在不牺牲准确度的情况下,优化这些神经网络架构以适应微控制器的内存和计算约束是可能的。
5、我们进一步探索了深度可分离卷积神经网络(DS-CNN),并将其与其他神经网络结构进行了比较。DS-CNN的准确率为95.4%,比参数数量相近的DNN模型高出约10%。
研究内容
关键词识别(KWS)是在智能设备上实现基于语音的用户交互的关键组件。关键字识别系统的低功耗要求使微控制器成为在常开系统中部署KWS的明显选择。
在微控制器上部署基于神经网络的KWS面临以下挑战:
Limited memory footprint内存占用有限:典型的微控制器系统只有几十到几百KB的可用内存。整个神经网络模型,包括输入/输出、权重和激活,都必须符合这个小的内存预算。
Limited compute resources有限的计算资源:由于KWS始终处于开启状态,实时性要求限制了每个神经网络推理的操作总数。
这些微控制器资源限制,加上KWS的高准确度和低延迟要求,需要对资源受限的神经网络体系结构进行探索,以找到适合KWS的精益神经网络结构,这是我们工作的主要重点。
提出的方法&模型架构
深度可分离卷积被提出作为标准三维卷积操作[29]的有效替代方案,并被用于在计算机视觉领域实现紧凑的网络结构[10,30]。DS-CNN首先使用一个单独的二维滤波器对输入特征图中的每个通道进行卷积,然后使用逐点卷积(即1x1)来组合深度维度中的输出。通过将标准的三维卷积分解为二维卷积,然后再分解为一维卷积,深度可分离卷积在参数数量和操作数量上都更有效,这使得即使在资源受限的微控制器设备中,也可以实现更深更广的体系结构。在这项工作中,我们采用了基于MobileNet[10]实现的深度可分离CNN,如图4所示。最后使用一个全连接层的平均池来提供全局交互,并减少最后一层中的参数总数。
Figure 4: Depthwise separable CNN architecture.
文章贡献
•我们首先在谷歌语音命令数据集[9]上对文献[5,6,7,8]中流行的KWS神经网络模型进行训练,并在准确性、内存占用和每次推理的操作数方面对其进行比较。
•此外,受资源高效的MobileNet[10]在计算机视觉领域的成功启发,我们利用深度可分离卷积和点卷积实现了一个新的KWS模型。该模型在准确度、模型大小和操作次数等方面均优于其他现有模型。
•最后,我们对资源受限的神经网络体系结构进行探索,并在典型微控制器的一组计算和内存约束下,对不同的网络体系结构进行综合比较。
前提知识
KWS系统流程
典型的KWS系统由特征提取器和基于神经网络的分类器组成,如图1所示。
- 使用LFBE或MFCC进行特征提取将时域语音信号转换为一组频域频谱系数,从而实现输入信号的维度压缩。
- 提取的语音特征矩阵被送入分类器模块,分类器模块生成输出类的概率。
- 在现实场景中,关键字需要从连续的音频流中识别,后验处理模块平均每个输出类的输出概率,提高预测的总体置信度。
图1:关键字识别管道
KWS的传统语音识别技术发展
KWS的传统语音识别技术使用隐马尔可夫模型(HMMs)和维特比解码[11,12]。虽然这些方法达到了合理的准确度,但它们很难训练,并且在推理过程中计算成本很高。
采用大边际问题公式[13]或递归神经网络(RNN)[14]的判别模型,这些方法在准确性方面明显优于基于HMM的KWS,但RNN它们存在较大的检测延迟。
- 中介绍了基于全连接层的深度神经网络(DNN)的KWS模型,该模型具有校正线性单元(ReLU)激活函数,其性能优于HMM模型,且检测延迟非常小。DNN的主要缺点是忽略了输入语音特征中的局部时间和频谱相关性。
为了利用这些相关性,在[6]中探索了基于卷积神经网络(CNN)的KWS的不同变体,其显示出比DNN更高的准确度。CNN在建模时变信号(例如语音)时的缺点是忽略了长期的时间依赖性。
结合CNN和RNN的优点,研究了基于卷积递归神经网络(CRNN)的KWS,并证明了模型对噪声的鲁棒性。
Microcontroller Systems (微控制器系统)
典型的微控制器系统由处理器内核、片上SRAM块和片上嵌入式闪存(Flash)组成。
表1显示了一些商用微控制器开发板,这些板具有Arm Cortex-M处理器核心,在不同频率(frequencies)(16 MHz到216 MHz)下运行不同的计算能力,包括广泛的片上内存(SRAM:8 KB到320 KB;Flash:128 KB到1 MB)。SRAM的大小限制了软件可以使用的内存大小。
表1:典型的现成Arm Cortex-M微控制器开发平台。
数据集
谷歌语音命令数据集[9]
结果
表2总结了在谷歌语音命令数据集[9]上训练的文献[5,6,7,8]中KWS网络架构的准确性、内存需求和每次推理的操作。
表2:神经网络模型的准确度。CNN-1,CNN-2是来自[6]的(cnn-trad-fpool3, cnn-one-fstride4)架构。
不同神经网络架构提供了有用的见解:
•尽管DNN不能达到最佳准确度,而且往往占用大量内存,但它们的操作/推理次数较少,因此非常适合计算能力有限的系统(例如,为了提高能效,系统以较低的工作频率运行)。
•另一方面,CNN实现了比DNN更高的准确度,但代价是大量操作和/或内存需求。
•LSTMs和CRNNs在保持良好准确度的同时,实现了内存和操作之间的平衡。
表3中针对小型、中型和大型微控制器系统的神经网络的三组约束条件。
表3:本研究中考虑的KWS模型的神经网络(NN)类,假设每秒10次推断和8位权重/激活。
图5显示了之前工作[5,6,7,8]中神经网络模型的每次推理操作数(operations per inference)、内存需求(memory requirement)和测试准确度(test accuracy)。
图5:在语音命令数据集[9]上训练的先前工作[5,6,7,8]中的NN模型的操作数与内存与测试准确度之比。
除了LSTM模型之外,其他模型的内存/计算资源太多,不适合具有80KB/6MOps内存/计算限制的边界框。CNN-2、CRNN和DNN模型适用于M和L边界框,但与CNN-1模型相比,CNN-1模型根本不适合任何一个边界框。
表5:超参数搜索的最佳神经网络汇总。存储8位权重和激活所需的内存如表所示。
Conclusions
硬件优化的神经网络结构是在内存和计算受限的微控制器上获得有效结果的关键。从微控制器系统部署的角度出发,我们对谷歌语音命令数据集上发表的文献中的各种关键词识别神经网络架构进行了训练,以比较它们的准确性和内存需求与每次推理的操作。我们将经过代表性训练的32位浮点KWS模型量化为8位定点版本,证明这些模型可以轻松量化部署,而不会损失任何准确度,甚至不需要重新训练。此外,受MobileNet启发,我们使用深度可分离卷积层训练了一个新的KWS模型。基于典型的微控制器系统,我们推导了神经网络的三组内存/计算约束,并进行了资源约束神经网络体系结构探索,以找到在这些约束下实现最大准确度的最佳网络。在所有三组内存/计算约束条件下,与这些约束条件下的其他模型架构相比,深度可分离CNN模型(DS-CNN)实现了94.4%、94.9%和95.4%的最佳准确度,这表明DS-CNN模型具有良好的可扩展性。