在Cortex-M微控制器上实现高效的全量化深度神经网络训练
摘要
本文探讨了在Cortex-M微控制器上进行深度神经网络(DNN)的设备上训练问题。由于微控制器处理速度慢、吞吐量受限、浮点支持有限和内存受限,DNN训练的实现和执行面临挑战。本文提出了一种方法,通过完全量化训练(FQT)和动态部分梯度更新,在微控制器上实现DNN的高效训练。该方法在多个视觉和时间序列数据集上展示了其可行性,并提供了关于训练精度、内存开销、能量和延迟之间权衡的实际硬件洞察。
原理
本文提出的方法核心在于完全量化训练(FQT)和动态稀疏梯度更新。FQT通过在训练过程中对权重和中间特征张量进行量化,减少了内存需求和计算复杂性。动态稀疏梯度更新则通过仅更新部分梯度,进一步降低了计算开销,同时保持了训练性能。这两种技术的结合使得在资源受限的微控制器上进行DNN训练成为可能。
流程
- 数据预处理:输入数据通过预处理步骤,准备用于DNN的训练。
 - 前向传播:数据通过DNN的各层进行前向传播,计算输出和损失。
 - 量化:在前向传播过程中,权重和中间特征张量被量化为8位整数。
 - 反向传播:计算损失的梯度,并通过网络反向传播这些梯度。
 - 动态梯度更新:根据梯度的大小,动态选择更新哪些梯度,减少不必要的计算。
 - 权重更新:使用量化后的梯度更新网络权重。
 - 重复步骤:重复上述步骤,直到达到预定的训练周期或满足其他停止条件。
 
应用
本文提出的方法适用于需要在资源受限设备上进行模型适应和微调的场景,如物联网设备、可穿戴设备和嵌入式系统。通过在设备上直接训练DNN,可以减少与远程服务器的通信,提高隐私保护,节省能源,并实现零停机时间的训练。这种方法的灵活性和高效性使其在各种应用中具有广泛的前景。
