中文 英语

训练神经网络跌倒

这是一个早期尝试将人工智能放在物联网系统上的警示故事,该系统可以检测老年人何时跌倒。

受欢迎程度

谁知道坠落会这么复杂?MbientLab首席执行官劳拉·卡索维奇(Laura Kassovic)在ARMTech Con观众面前说:“我不想再研究跌倒检测系统了。”当她向观众展示最近发布的Apple Watch Series 4时,观众笑了。

“苹果4内置了跌倒探测传感器。这可能是一个很好的系统,”她说。“但我仍然需要评估它。”

总部位于旧金山的初创公司MbientLab为物联网可穿戴设备制造运动检测传感器,通常用于医疗保健和健身应用。Kassovic说:“我们主要是为Smith and Nephew这样的医疗公司生产传感器。他们的传感器已用于临床试验和研究,数据已提交给FDA。“我们的传感器提供的数据是很好的数据。”

学会跌倒
几年前,MbientLab帮助一位客户为养老院设计了一个跌倒检测系统。该系统将由病人佩戴的设备和放置在设施周围的集线器组成。当佩戴者摔倒时,它必须探测到,并发出求救信号。腕戴式传感器必须轻便、舒适、防水(用于淋浴),而且足够吸引人,不会被患者丢弃。所有这些都需要7天的电池,USB充电。

客户想要一个加速度计、陀螺仪和压力传感器。MbientLab选择了博世BMI 160(16位惯性测量单元)和BMP 280(绝对气压传感器),最初使用的是Arm Cortex M0(后来是M4),带有来自北欧的低功率BLE收发器。该系统是基于Intel Edison软件开发的。卡索维奇说:“那时候爱迪生风靡一时。“所以,我们不得不在不幸的英特尔爱迪生(Intel Edison)基础上继续发展,该公司现在已经被关闭了。然后我们使用Javascript库,因为当时它们有最好的BLE支持。”

图1:MbientLab设计的养老院跌倒检测系统。(MbientLab /手臂TechCon)

机器学习
该系统必须经过训练,才能从传入的数据中识别出什么是跌倒。MbientLab选择训练循环神经网络(RNN),特别是LTSM(长短期记忆),它的计算强度较小。“我们使用循环神经网络,因为它有记忆。这意味着无论何时你训练它,它都有记忆,因为当前输入会受到之前输入的影响,这是正常的。因为如果你在做一个语音识别算法,前一个音节会影响下一个音节。它们一起构成了一个单词,所以你需要记住整个单词是什么。”

当一个人倒下的时候,教导这个制度是困难的部分。“老人不会像漫画里那样——踩在香蕉皮上滑倒。他们不是这样倒下的。”卡索维奇说道。“他们通常倾向于做一些事情,比如从床上滚下来,或者因为失去平衡而慢慢地倒在厨房柜台上。这是一个非常缓慢的下落,这让它变得非常困难,因为这不是一次坠落,可能是五到六种不同类型的坠落。我们必须获得每种类型的数据。”

MbientLab的客户决定雇佣一家独立的数据科学公司来收集数据来训练系统,以便让Kassovic的团队专注于系统的设计和制造。这家数据科学公司的成果将是用C代码训练数据。

卡索维奇说:“我们不能把奶奶推下楼梯。”因此,客户的数据科学公司使用特技,让人们像老年人一样摔倒,同时佩戴传感器,并通过iPhone将收集到的数据传输到云端。这些数据将用于训练系统。

这就是事情开始出错的时候。“永远不要雇佣数据科学家来做固件工程师的工作,”卡索维奇说。嵌入式系统101说要从小处考虑:你的系统是受限的。然而,这些数据科学家习惯于在功能强大、内存丰富的“花哨系统”上处理数据。数据团队使用Python来清理数据,然后为推理算法编写了一个C程序,以检测跌倒事件。他们提供给卡索维奇团队的算法非常庞大。它花了太长时间来做出推断,而且对可穿戴系统来说太耗电了。

卡索维奇说:“基本上,他们第一次给我们代码时,甚至都没有编译。”

数据科学家犯的下一个错误是基本的,但很重要。“当他们在140亿核的机器上训练它时,他们有我们在M0上没有的优秀的老式浮点数。因此,他们训练了整个网络,由此产生的算法是浮点数,有浮点数,或者使用浮点数。卡索维奇说。“我们不得不对他们大喊大叫。他们基本上用光了我们所有的内存。”系统总是崩溃,每当有新数据进来时,算法需要超过10毫秒才能运行。

使用所有的传感器也是一个问题。“最大的问题是,由于它使用了所有的传感器,算法会在大约一天内耗尽我们设备上的电池,这并不理想。他们只需要去掉几个节点,因为这个东西就像人类已知的最大的算法……这很荒谬,”卡索维奇说。

该装置在海平面以上的任何地方也无法工作。数据团队同样位于加利福尼亚州旧金山,位于海平面,在帕斯卡运行他们的训练数据。该系统在旧金山可行,但在丹佛行不通。MbientLab告诉数据科学团队,使用相对高度(以米为单位)来训练他们的网络,而不是绝对帕斯卡,“因为这是我听过的最愚蠢的事情,”卡索维奇说。

“我们最终告诉他们他们有多少内存和闪存,他们不能重复,运行时必须是多少。所以,每次我们重新训练网络时,他们会给我们更多的代码,我们强迫他们告诉我们关于它的一切,比如它适合吗?这样更好吗?准确率比以前提高了吗?然后我们会说,好吧,我们将继续把它作为产品发布。这将是发放给养老院的新固件。”目前,大约有七家养老院以订阅模式使用这种探测器。

图2所示。MbientLab首席执行官在2018年的Arm TechCon上展示了他们如何收集关于摔倒的数据来训练RNN。(新利体育下载注册Semiengineering.com)

这个项目发生在三年前。现在工具好多了。卡索维奇说:“我想说的是,一定要利用ARM工具,因为基本上它们为你提供了外部训练网络的工具,然后你需要在内部做的所有事情,就像固件级别一样,把它输入系数,基本上就完成了,这挺不错的。”“如果你不打算使用Apple 4 Watch,那就使用你可以使用的工具,这会让它变得更容易。”

有关的故事

硬件推理

为神经形态计算集成忆阻器

主流芯片架构的巨大变化

神经网络如何思考(MIT)



Baidu