为什么需要净化传感器数据,它为何对系统设计的各个层面都有广泛影响。
传感器是一条纽带,它将数字世界和物理世界迷人地连接在一起。但是,要获得有价值的可用数据并非易事。实际上,许多刚刚进入物联网领域的设计人员都对传感器数据的混乱没有足够的心理预期。
引导客户相信,他们看到的大量“错误”数据并不是因为传感器本身出了故障,成为物联网运动传感器公司MbientLab的日常工作。之所以数据错误,是因为集成了这些传感器的系统设计中缺少一些进行数据清理的关键步骤。
“我每天都在应对这些抱怨。”MbientLab首席执行官Laura Kassovic在最近的一次演讲中表示。她同时还警告工程师,必须正确理解通过机器学习训练物联网的难度。“多年来,工具和硬件都取得了长足进步,但是,对于数据处理的基本理解仍然没有多少改进。”
“我对用户尝试使用传感器来解决问题、研究复杂课题非常欢迎,”Laura Kassovic表示。“这是一种勇敢的行为,很有趣,思路很开放,但是也很难。很多人没有使用正确的方法,未能解决实际问题,就把失败归咎于我们的传感器,我对此感到很无奈。要知道,传感器不会撒谎,它没有任何偏见,传感器的数据始终是正确的。用户滥用或误解了传感器数据,却把锅甩给了传感器!”
实际上,传感器并非总是易于使用,传感器生成的所有数据也并非都很有价值。关键在于,要搞清楚哪些数据有价值,分离出这些数据,然后把其它垃圾数据丢弃掉。
Synopsys公司董事长兼联席首席执行官Aart de Geus表示,“大多数传感数据都不是系统价值的关键。但是也有一些例外,比如人造眼睛。有一些可以归类到人工智能设备的范畴,比如可以进行各种测量的手表。这些测量数据能够反映什么问题?可以预测心脏病的发作吗?如果可以,这类数据的价值非常高,你愿意为此付多少钱?如果它能在一分钟之前提示你,你可以给你的妻子写下临别遗言‘谢谢你,我爱你’。如果你有一个小时的提前提示时间,你可以打电话给急救中心,如果有几个小时,数据的价值和风险将会再次改变。”
在各种应用中,数据以各种不同的形式出现,在某一个应用场景中被认为是干净的数据,到另一个场景中可能还需要进行进一步的清理。有些数据的清理工作可以在本地完成,而其它数据可以在数据中心里进行清理。
“假如说你有一个面部识别应用,只允许某些授权员工进入这栋大楼,”Geus说。“你每个月都要更新边缘设备中的AI网络,保证AI网络可以识别所有面孔。因为随时都会有大量的人进入这栋楼,所以这个工作不轻松。不过,这个安全级别并不是太高,并不是所有数据都需要随时更新。”
而在其它一些应用中,数据需要实时进行清理。最近就有一个现成的惨痛案例。10月29日,印尼狮航一架波音MAX 8飞机坠毁,所有机上人员全部遇难。现在的调查可能正在朝着将传感器定为罪魁祸首的方向前进。恢复的黑匣子数据显示,在飞行过程中,两个迎角传感器(AOA)数据不一致。显然有一半数据都不正确,这足以误导这架飞机的防失速系统,使飞机转头向下,直至机毁人亡。
判断这次飞行事故中到底发生了什么,现在还为时尚早。“可能不仅仅是一个传感器的问题,毕竟这个数据处理系统有很多环节,”意法半导体战略平台和物联网卓越中心主任Mahesh Chowdhary说。“先是一个传感部分,然后经过一个连接部分,最后到达计算部分。有一些算法可以查看传感器数据并确定飞机的方向。多个功能必须协调一致地同步工作,以提供有关飞机方向的信息。”
在传感器提供的大量数据中,并非所有数据都有用,而且,即便是我们认为有价值的数据也可能被污染了,或者不准确。从看似简单的物联网系统,到更复杂的安全关键系统,当传感器系统设计失效时,我们能单纯地把数据-特别是被污染的脏数据-认定为罪魁祸首吗?你怎么判断传感器坏了,数据不对?也许是算法的逻辑或者读取数据的固件出了故障了呢?为了拣择出真正的失效原因,必须首先对什么是“脏数据”达成一致。
“这是一个模棱两可的领域。传感器目前工作正常吗?嗯,不好说,它没有按照你想象的那样工作,那么,是用户造成的错误还是传感器本身的故障?我发现,目前对于脏数据的定义是非常模糊的一个概念。有时候,因为用户系统存在缺陷,如果您的传感器工作正常的话,用户系统就没法正常工作了。”TT Electronics的产品线总监Robert Pohlen说道,这是一家设计传感器并帮助客户创建各种基于传感器的系统的公司。
数据处理路径
要搞清楚干净数据和脏数据之间的区别,很重要的一点是,看看数据是如何从A点到达B点的。
概括来说,传感器的原始数据需要进行后端处理。基础传感器将原始信号从一种形式的能量转换成模拟信号或者数字信号,可能需要施加外部电源,也可能不需要。最初的原始转换来源于现实世界的模拟信号:力、热、光、磁、声音。经过传感器转换后,沿着传感器内部或者印刷电路板上的信号路径继续前行,如果有需要,模拟信号可以经过调节、放大环节转换成数字信号。然后,将数据发送到微处理器或者其它类型的计算单元中,通过算法进一步过滤噪声,并以应用所需要的方式提取相关信息。
计算体系架构刚刚开始着手研究怎么有效地进行这种数据处理,有些数据需要在边缘设备上进行预处理,其它数据则发送到更强大的服务器中进行清理。
“边缘计算将发挥巨大作用,”Achronix总裁兼首席执行官Robert Blake说。“基础构建模块都有了,我们现在需要弄清楚,怎么有效地移动任意格式的传感器数据,数据移动过程中涉及的内存层次结构如何设计,以使得可以实现最佳计算性能。一句话,就是如何提高传感器数据的计算效率。”
图1 一个传感器的例子
有些操作需要基于那些用来鉴别一段时间内趋势的数据立即进行动作,这类数据的提取非常关键,此外,清除已经丧失了价值的数据也很重要。考虑到存在多种类型的这种数据,而且有些情况下,需要多种数据类型来建模物理世界或判断某人是否应该立即进行医疗急救,这种数据提取和清除工作更加艰难了。