Design-Time Optimization of Deep Neural Networks for Intermittent Learning on Microcontrollers
本文提出了一种硬件感知、多目标的优化框架,通过准确预测每层能耗和检查点开销,使设计阶段能够为能源自给式微控制器上的可靠、间歇性设备端学习选择深度神经网络。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图教一个微小的、由电池驱动的机器人去识别朋友的声音,或者察觉一个损坏的机器零件。这个机器人生活在遥远的森林里,或者漂浮在海上的浮标上,仅靠太阳能或风能供电。问题在于大自然是变幻莫测的:太阳可能会躲进云层,或者风可能会停息,导致机器人的电池在执行任务的中途耗尽。在人工智能的世界里,这是一个噩梦。通常情况下,如果计算机在学习过程中断电,它会忘掉刚刚学到的所有东西,你必须从头开始。这篇论文解决的正是一个这样的难题:我们如何教这些微小的、对能量渴求的机器人,即使在电力供应不稳定且不断开关的情况下也能进行学习?作者们正致力于研究“微型计算机”(微控制器)、“能量采集”(从环境中汲取能量)以及“间歇计算”(一种保存进度以便在断电后能从中断处精准恢复的技术)这三个领域的交汇点。
由雅各布·舒伯特(Jakob Schubert)及其团队领导的研究人员意识到,为这些机器人设计一个聪明的“大脑”,就像是在不知道明天会下多少雨的情况下试图盖一座房子。如果你建造一座沉重、复杂的房子(一个深度神经网络),它可能非常擅长学习,但如果房子的某一层所需的建造能量超过了机器人电池一次能承载的量,那么当电力闪烁时,整个工程就会崩溃。传统的测试方法涉及制造出机器人,将其投入实地,然后等待电力耗尽以观察结果。这既缓慢、昂贵又令人沮丧。
作者并没有等待电力失效,而是为能量消耗创造了一个“水晶球”。他们构建了一个数学模型,可以在机器人甚至还没被制造出来之前,就能精确预测机器人学习过程中每一步将消耗多少能量。他们称之为“设计时优化”(Design-Time Optimization)。这就像一位游戏设计师,可以通过电脑程序模拟跳跃的物理过程,以观察角色是否能跳过缝隙,而无需真正去建造一个蹦床。他们的模型观察了神经网络的“成分”(它需要多少次计算以及它会触及多少内存),并以惊人的准确度估算了能量成本。
这里是聪明之处:他们不仅预测了查看数据(推理)需要多少能量,还预测了从数据中学习(训练)需要多少能量。这至关重要,因为学习要消耗更多的能量。他们还考虑了“检查点保存”(checkpointing)的开销——即每当电池电量变低时,为了将机器人的进度保存到一种特殊的、非易失性存储器(类似于一种不需要电也能保持开启状态的数字笔记本)中,所需要的额外能量。
团队在一种名为 Cortex-M4 微控制器(具体为 nRF52840)的特定微型计算机上测试了他们的想法。他们利用这个能量“水晶球”,在数千种可能的机器人大脑设计中进行搜索,以寻找那些既足够聪明能识别异常情况(如损坏的机器轴承),又足够小巧能适应机器人微小且间歇性能量预算的设计。他们发现,他们的预测模型表现得相当出色,网络层的加权误差约为 16.6%,而内存保存部分的误差仅为 0.9%。
结果令人印象深刻。通过使用他们的模型来挑选合适的设计,他们能够找到一个比未经优化的版本节省约 94% 能量,同时仍能正确完成工作的机器人大脑。他们证明了,一个在纸面上看起来很高效的设计,如果其中某一个步骤需要过多的瞬时功率,实际上可能会失败;但他们的模型可以在这些“能量陷阱”发生之前就识别出来。简而言之,他们证明了你不需要通过制造和测试数百个原型,只需使用一个智能计算器来预测学习过程中每一步的电力需求,就能为那些在野外运行、依赖太阳能或风能的智能自学习机器人进行设计。这填补了复杂人工智能与在现实世界中依靠太阳能或风能运行的严酷现实之间的鸿沟。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。