为什么需要净化传感器数据,它为何对系统设计的各个层面都有广泛影响。
传感器是一条纽带,它将数字世界和物理世界迷人地连接在一起。但是,要获得有价值的可用数据并非易事。实际上,许多刚刚进入物联网领域的设计人员都对传感器数据的混乱没有足够的心理预期。
引导客户相信,他们看到的大量“错误”数据并不是因为传感器本身出了故障,成为物联网运动传感器公司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 一个传感器的例子
有些操作需要基于那些用来鉴别一段时间内趋势的数据立即进行动作,这类数据的提取非常关键,此外,清除已经丧失了价值的数据也很重要。考虑到存在多种类型的这种数据,而且有些情况下,需要多种数据类型来建模物理世界或判断某人是否应该立即进行医疗急救,这种数据提取和清除工作更加艰难了。
数据也可能一开始是干净的,但是经过更新或者病毒入侵后变脏了。Rambus研究员Helena Handschuh说:“在全球范围内,所有组件都需要尽可能安全,因此您希望从硬件中建立信任。组件安全启动后,通信数据本身就已经具备了某种程度的可信度。但是,有的系统也可能存在不安全的未知组件,这就需要对数据进行入侵检测和软件分析,以查看数据和组件是否存在任何损坏。在汽车中,我们希望检测出那些给出异常或奇怪数据的部件,这不仅是组件安全问题,还涉及到人身安全。”
脏数据肯定要清理掉,但是它在哪里变脏的以及是如何变脏的,决定了下一步采取的行动。是不是传感器本身产生了脏数据,设计人员需要一开始就考虑到这一点。“解决传感器问题需要大量的专业知识,”Kassovic说。 “它需要设计人员在硬件层面了解传感器,理解从传感器中提取的数据,具备软件(算法)开发的经验。”
例如,从数据理解层面上,不要将加速度计的数据与GPS数据混淆。“加速度计只测量身体的加速度,”她说。“大多数人都无法理解它为什么不能代替GPS,GPS给出的是身体在空间的绝对位置。每个应用都足够独特,需要一种独特的方法来最可靠地提取正确的最终数据。很多用户认为来自传感器的数据应该与他们的大学教科书完全相同,其实并非如此。
现实世界的传感器数据并不完美。当你打开你的物理、工程或计算机科学教科书时,会看到书本里充满了完美的运动曲线。但是,当您从现实世界中获取数据时,实际曲线看起来会和书中的完美曲线有很大不同。现实世界中充满了噪音和错误。”
每个应用都足够独特,需要一种独特的方法来最可靠地提取正确的最终数据。
理解数据
那么,对脏数据到底如何处理呢?第一步是理解和解读传感器输出的数据。传感器数据的准确度往往是相对的,而不是绝对正确。现实世界中的传感器读取数据并非完美。
传感器制造商关注的是噪声、滤波器和算法这些基本问题,并给系统设计人员提供了相应的帮助性工具。一些系统设计者和平台供应商则站在系统用户端的视角上,关注的是填入其数据库中的数据是否有效,它们提供了一个监测工具来帮助鉴别数据是否出现错误。
“我在模拟信号链路中发现了脏数据,数字链路的数据是干净的,”TT Electronics的Pohlen说道。“许多不同的源头都会诱发噪声。你可以在线束中拾取电噪声,性能变坏的元件也会产生电气噪声。”
在Pohlen眼中,由某种对实际感应机制的外部影响造成的噪声不算是脏数据。“比如,对于一个光传感器,如果有一个环境光源的话,不能因为它给出的数据不是你真正想要测量的,就认为那是脏数据,因为不管是不是自然光源,它确实正确地测量了光强度。”
未经校准的传感器通常会比校准过的传感器产生更多脏数据。“我们通常所说的脏数据基本上是指未经校准的原始传感器数据,以及信号上有很多噪声的数据。”意法半导体的Chowdhary说。“除了使用某些现象机制感应信号的物理元件,比如测量科里奥利加速度以检测设备、人或者手机的旋转,系统里还有信号调理单元。这些信号调理模块可以工作在不同条件下,也可以在低功耗模式下工作,以尽量降低传感器的电流消耗。但是,如果工作在低功耗模式,传感器数据的噪声就会增加,因为显而易见的是,用于信号调理的功耗越大,数据就越干净。”
“考虑到所有这些不同层面,我们可以给脏数据下个定义,即未经校准的传感器输出的数据以及受到噪声影响的传感器数据,无论噪声来自于信号调理模块还是外部干扰,”Chowdhary说。 他将外部干扰(例如当磁力计受外部磁场影响时)也归类到了脏数据中。
即便是在同一批传感器中,不同传感器也可能存在制造上的差异。一旦被部署到应用现场,传感器就可能会损坏。比如,地勤人员可能会损坏飞机的传感器,甚至包括至关重要的迎角传感器。传感器可能会老化、性能变差,所以需要定期重新校准。
可以站在企业的角度来理解数据。“在基于传感器的设备网络中,脏数据可能是由单个或者多个问题共同产生的。问题可能来自于时间序列跳跃、传感器单元本身的测量有误、日期/时间未及时校准、传感器之间的不恰当关联、跨域数据点的不正确聚合等。也可能是仅仅因为产生的数据不符合业务目标,不稳定或者无法使用,就被认为是脏数据。”Liaison Technologies公司产品营销总监Pratikh表示。这家公司帮助把可用数据放到一个平台上,以供企业使用。
其它人也对脏数据给出了自己的具体定义。“脏数据是那些由您的设备按照正确的格式报告,但是在某种程度上无效的数据。我们甚至无法对这些数据做出解释,”物联网系统集成商Bright Wolf的联合创始人James Branigan说。“你完全可以读取它,但是你会发现,某些数据实际上是完全无效的。”
在智能物联网和物联网中,脏数据的风险在于它会污染公司的大数据库,引发其它危险行为,而且也浪费钱。“脏数据之所以会成为一个问题,是因为在所有这些物联网系统中,当你在数据中寻找价值,在这些输入的数据上进行某些程序化分析时,你会把分析结果在部分程度上反馈到企业系统中,”Branigan说。“对这些数据处理分析并反馈后,会发生一些有趣的事情。但是,如果你把分析建立在糟糕的假设-脏数据-上,那么,垃圾输入必然导致垃圾输出。脏数据可能会给你带来真正的伤害,因为这些实际上无效的数据会导致一些自动化操作被禁能,从而产生实际的经济成本。”
Branigan发现了三种脏数据。“第一种来自传感器的物理故障。它既无法检测环境的变化,也无法检测自身的故障,虽然它仍将向你提供格式良好的数据,但是这种数据完全是垃圾。第二种来自设备运行的固件的软件错误。即使是较新版本的固件也可能产生格式良好但完全错误的数据。第三种脏数据真正可恶,你需要对具体的机器操作非常了解,才能理解如何解释进来的数据。如果不了解这些,你会把错误的数据解释为有效数据,但是系统其它部分却会给出不同的解释。”
那么,脏数据能否被洗白白呢?
数据清洗工具
有许多工具可以帮助清洗数据。“现在已经有了很多很棒的工具,比如大受欢迎的Matlab、Labview和Python。我们自己的MetaWear API可以在所有主要编码语言下帮助实现数据过滤器。我通常建议客户们使用它们最熟悉的工具,而不是强行兜售我们自己的API。Python是一个很棒的工具,它有许多机器学习库,开源、易用,而且有很好的文档记录。”MbientLab的Kassovic说。MbientLab还使用博世的FusionLab,因为它们不仅自己提供传感器,还销售提供博世的传感器。
MEMS市场领导者博世传感技术公司也会其传感器提供驱动程序和库,帮助传感器实现检测、解读、监控、感知情境并预测意图,负责MEMS产品组合业务开发的Marcellino Gemelli写道。意法半导体提供库、驱动程序和传感器设置工具,以及可帮助简化设计的微控制器。
寻找具备合适专业知识的专业人才并非易事。“你不能派一名软件工程师去干固件工程师的活。”Kassovic说。
在企业的角度来看,让数据科学家参与清洗数据将花费太多的时间。“现在,各种机器都在源源不断地产生数据,可能会产生比人类产生的脏数据还要复杂的新级别脏数据,这将成为脏数据清洗的重点对象。”Branigan说。“大数据市场里有很多数据清洗工具,但是这些工具都以数据科学家为中心。对于一个相对静态的数据集,数据科学家清洗它,分析它,然后可以找到一些有趣的东西。这种方式应对人类生成数据的速度确实很有效,但是很难甚至不可能应对机器生成数据的速度。你最终需要一个自动化的系统,它从设备上获得实时数据,流水化地进行分析,然后把分析结果输出到企业的某个业务系统中,以便自动化地执行业务操作。”
传感器转向数字化可能会有所帮助。“数字通信绝对有好处。那些你从中获取并收集优质数据的传感器,它的噪声是不是因为模拟才产生的?我看到传感器行业存在向数字化转变的自然趋势,你可以在其中内置一些错误检查功能。数字系统存在一定的噪声区间,如果这些噪声出现在数字电路通道中,谁会在乎它呢?因为数据要么是1,要么是0,基本不可能出现数据反转,你可以对数据传输加入校验机制,如果校验失败,你可以把数据丢掉。”Pohlen说。
“尽管原始数据可能被过滤、补偿、纠正,但是在大部分情况下,用户的操作也有一定的限制。”负责博世传感器MEMS产品组合的业务开发的Marcello Gemelli在最近的一篇文章中指出。
“克服这些挑战的第一步是实施和集成适当的清洗工具,”Liaison Technologies的Parikh说。“这些清洗工具不仅处理数据质量,还要从项目的角度验证数据源头身份、可信度、时间序列。每个项目都有各自独特的要求。项目实施者可以应用一些通用的技术手段,但是必须做好准备,根据需要进行大规模定制,以实现业务目标。”
Liaison Technologies提供数据清洗、过滤、管理以及重复数据删除检测等业务。“我们提供的一个关键功能是追踪数据的血统,即从数据原始源头到清洗过的结构化数据的链路跟踪。”
对于安全关键系统而言,冗余可能是一种优秀且昂贵的解决方案。TT电子公司的Pohlen表示,“每个人都希望达到更高的ASIL等级,但他们是否一定要承诺提供更多感应能力?同样,ASIL等级也可以归结为数据是否正确,以及在后端如何解读这些数据,除非您可以在传感器中进行某种自诊断,否则最好的方法是冗余。”
评论
查看更多