这是在使用 32 位浮点精度的微控制器上训练深度学习模型的尝试。我们通过构建一个机器人来实现这一点,该机器人学习如何使用深度强化学习以最小距离跟随最近的障碍物。训练过程的演示可以在这里找到。
训练过程的演示可以在这里找到。该项目的灵感来自于Pete Warden ( Google TensorFlow)、Neil Tan (ARM) 在微控制器上运行神经网络所做的工作。
实时机器学习 (RTML) 是指主动解释和学习实时到达的数据。它要求代理人根据先前的知识解决不熟悉的问题,并经常做出实时决策。我们在嵌入式系统的开发和部署环境中讨论 RTML。
目前,地球上活跃着近 150 亿个嵌入式处理器,它们收集并有时处理大量数据。这些数据中的大部分都被丢弃了,因为这些微型计算机通常不具备在其上运行复杂解释任务的硬件功能。出于这个原因,数据通过无线网络发送到功能更强大的中央计算机进行处理。但是这种形式的基于云的架构(其中边缘设备仅执行数据收集)可能由于以下原因而变得不利:
这就是深度学习的力量所在。深度学习算法实现中最大最密集的操作是矩阵乘法,硬件高效实现已经存在并且完全受算术限制。即使使用现有技术,微处理器和 DSP 也能够在不到一毫瓦的情况下处理数千万或数亿次计算,而且更高效的低能耗加速器即将出现。经过训练后,这些模型能够运行复杂的推理任务并保持对噪声的稳健性,这是实时数据的典型特征。通过在边缘设备中加入深度学习功能使边缘设备更智能,将解决所有源于数据交换的问题,并使其成为从现实世界数据中快速做出重要决策的合适且可靠的候选者。设备在部署到现场后还可以进行持续改进。
以下是深度学习框架如何在资源受限的嵌入式系统上开发和运行的一些更广泛的方法:
在本项目中,我们重点介绍第一种方法,并简要介绍第二种方法。据我们所知,这将是第一个开发用于在具有平台独立性的嵌入式系统上训练和运行推理的深度学习库。
有关策略梯度网络的精彩介绍,请参阅本教程。所有用于矩阵操作和实施深度学习算法的库都是用 C++ 自定义编写的。
对于这个项目,网络构建如下:
训练在每一集之后进行,其中网络对 5 个动作进行采样,执行它们并存储计算出的奖励。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !