为什么传感器数据需要清洗,以及为什么这对系统设计的各个方面都有广泛的影响。
传感器提供了与物理世界的惊人连接,但提取可用数据并不是那么简单。事实上,许多首次参与物联网设计的人对传感器数据的混乱程度毫无准备。
每天物联网运动传感器公司MbientLab努力巧妙地告诉客户,他们看到的海量数据并不是因为传感器有故障。相反,包含这些传感器的系统设计在数据清理过程中遗漏了一些关键步骤。
“我每天都在与之斗争,”他说MbientLab首席执行官劳拉·卡索维奇最近的演讲中,警告工程师使用机器学习训练物联网可穿戴设备有多么困难。她说,这些年来,工具和硬件都有所改进,但对处理数据的基本理解仍然落后。
她说:“我赞扬用户尝试使用传感器来解决问题和研究复杂的主题。”“这很勇敢,很有趣,很狂野,也很艰难。我的问题是那些把他们的失败归咎于我们的传感器,而不是他们的方法和未能解决真正的问题的人。传感器不会撒谎。传感器没有偏见。传感器数据总是正确的。只有用户才有可能滥用或误解传感器数据。”
传感器然而,它们并不总是容易使用。并非所有传感器产生的数据都有价值。关键是要找出真正的价值在哪里,并分离出这些数据并丢弃其余的数据。
“大多数传感技术都很便宜,”他说Aart de Geus的董事长兼联合首席执行官Synopsys对此.“但也有一些例外,比如人工眼睛。但也有一些属于人工智能范畴,比如可以测量各种数据的手表。你能得到什么样的见解?你能预测心脏病发作吗?如果你能做到,那就很有价值了。你愿意为什么付多少钱?如果你有一分钟的时间,你可以写下对你妻子的“谢谢”,就这样。如果你有一个小时,你可以叫医疗直升机。如果你还有几个小时,价值和风险又会发生变化。”
数据在许多应用程序中以各种形式出现。在一种情况下被认为是干净的应用程序可能需要比另一种应用程序更多的工作。其中一些可以在本地完成,而其他数据可以在数据中心进行清理。
德赫斯说:“假设你有一个面部识别应用程序,只有特定的员工被允许进入这座大楼。“每个月你都会更新边缘设备中的AI网络,它会在所有的表面上都是最新的。它可能会做很多工作,因为有很多人一直在进来,但不是所有的东西都必须一直更新。”
在其他情况下,可能需要实时擦洗数据。10月29日,狮航(Lion Air)一架新型波音MAX 8飞机坠毁,机上人员全部遇难,这一悲剧案例可能会被归为“传感器干的”一类。从飞行中恢复的黑匣子显示两个攻角(AOA)传感器中的一个数据不一致。有一半数据显然是错误的,这足以触发这架飞机的防失速系统做出机头向下的动作,飞行员一路挣扎着坠入爪哇海。
现在判断这个案子的真相还为时过早。“这不仅仅是一个传感器。这一体系有多个方面,”中国农业科学院院长马赫什•乔杜里(Mahesh Chowdhary)表示意法半导体的战略平台和物联网卓越中心。“有传感部分,连接部分,然后是计算部分。有一些算法可以查看传感器数据并确定飞机的方向。多个特征必须协调、同步地协同工作,才能提供有关飞机方向的信息。”
但并不是所有的数据都是好的,即使是被认为有价值的数据也可能被损坏或不准确。从看似简单的物联网系统到更大的安全关键系统,当传感器系统设计失败时,数据——尤其是脏数据——往往是罪魁祸首吗?你怎么知道传感器或数据是坏的?还是算法中的逻辑或读取数据并对其进行处理的固件出现了故障?首先,就什么是脏数据达成一致将有所帮助。
“这是一个模棱两可的领域。传感器工作正常吗?是啊,但不是你想要的那样。所以,是用户错误还是传感器错误?我发现脏数据的整个概念非常模糊,因为即使你让传感器正常工作,它也不会像用户预期的那样工作,”TT Electronics的产品线总监罗伯特·波伦(Robert Pohlen)说。TT Electronics是一家设计传感器并帮助客户创建各种基于传感器的系统的公司。
数据处理路径
要理解干净数据和脏数据之间的区别,重要的是要理解数据如何从A点到B点。
说来自传感器的数据经过后处理是一种保守的说法。一个基本的换能器将一种形式的能量转换为另一种形式的能量,有或没有外部电源的帮助,以产生或模拟或者数字信号。最初的转换源于真实世界的模拟信号——声音、光、温度、磁力、压力等等。在这条线上的某个地方,无论是在传感器内部还是在印刷电路板上,模拟信号都会被调节(如果需要的话,也会被放大)并转换为数字信号。在此之后,数据通常被发送到微芯片或其他处理器,通过算法进行进一步过滤,以清除噪声,并以有用的形式提取相关信息。
计算架构才刚刚开始掌握这种数据优先的方法,其中一些数据需要在边缘进行预处理,而其他数据可以发送到更强大的服务器进行清理。
“边缘计算将是一个大游戏,”Robert Blake说,总裁兼首席执行官Achronix.“基本面都在那里。我们知道所有的基本构件是什么。我们需要弄清楚如何以任何格式有效地移动数据,注意如何将数据移动到最少距离的内存层次结构,以使其到达计算。这些是如何获得更高效计算的基础。”
对于从可能用于识别趋势的数据中提取需要立即采取行动的数据,以及删除没有价值的数据,这也是至关重要的。当您考虑到有许多不同类型的数据时,这就更加困难了,在某些情况下,可能需要多种数据类型来导航物理世界或形成关于某人是否即将遭受医疗紧急情况的结论。
数据也可能一开始是干净的,但最终会因为更新或病毒而变得肮脏。“在全球范围内,所有的组件都需要尽可能的安全,所以你想要从硬件上建立信任。Rambus的家伙。“一旦安全启动,通信数据就已经有了某种信任。但也有不安全的未知组件,这需要对更大的数据集进行入侵检测和软件分析。这允许您查看是否有任何损坏。在汽车场景中,您希望检测哪个部分提供了异常或奇怪的数据。这是一个安全问题,但也是一个安全问题。”
脏数据需要处理,但是在哪里以及如何变得脏决定了需要采取的行动。如果传感器本身产生肮脏的原始数据,设计师需要从一开始就考虑到这一点。“解决传感器问题需要大量的专业知识,”Kassovic说。“这需要在硬件层面了解传感器,理解从传感器中提取的数据,并具有软件(算法)开发的经验。”
例如,不要将加速度计的数据与GPS的数据混淆。“加速度计只能测量物体的加速度,”她说。“大多数人不明白的是,这不是GPS的替代品,GPS输出物体在空间中的绝对位置。每个应用程序都是独一无二的,因此需要一种独特的方法来最优地提取正确的最终指标。我总是感到困惑的是,有那么多用户认为来自传感器的数据应该和他们的大学课本一模一样。真实世界的传感器数据并不完美。当你打开你的物理、工程或计算机科学教科书时,你会发现里面到处都是运动中的完美曲线。当你从现实世界中获取数据时,这些相同的曲线看起来会非常不同。现实世界中有噪音和错误。”
每个应用程序都是独一无二的,因此需要一种独特的方法来最优地提取正确的最终指标。
理解数据
那么,究竟如何处理脏数据呢?第一步是理解和解释传感器的输出。传感器数据往往是相对的,而不是绝对的,现实世界中的传感器读数并不总是完美的。
传感器制造商看到了噪声、滤波器和算法的基本问题,并提供了帮助工具。处理数据的系统用户端上的一些系统设计人员和平台供应商可能会看到正确地填充其数据库的有效数据。他们提供了一个监视的眼睛和工具来提供帮助。
“我在模拟方面看到了脏数据,而不是在数字方面。脏数据是有噪声的数据。噪音将是我最大的担忧,”TT Electronics的波伦说。“噪音可能来自很多不同的来源。你可能只是从线束中接收到电子噪音,或者是由部件坏掉引起的。”
噪音在波伦看来,由某种外部影响对实际传感机制造成的数据并不是脏数据。“你知道,例如,这是一个光传感器,你有一个环境光源。我不认为这是肮脏的数据,因为这真的不是你真正想要测量的,但它是正确的测量。”
未校准的传感器比校准的传感器产生更多的脏数据。ST的Chowdhary说:“使用未经校准的原始传感器数据进行计算,通常是指脏数据,或者是有很多噪音的数据。”“除了传感器的物理部分使用一些现象,如测量科里奥利加速度,例如检测设备的旋转,用户的旋转,或手机的旋转,你还有信号调理块。这些信号调节模块在低功耗模式下的不同条件下运行,在低功耗模式下,设计师的目标是在可以使用该模块的情况下最小化传感器的电流消耗。如果你这样做,传感器数据上的噪声就会上升,因为你对信号调理施加的功率越大,你的数据就越干净。
Chowdhary说:“考虑到这些不同的方面,脏数据是未经校准的传感器数据,是受输入噪声影响的传感器数据,无论噪声是纯粹的信号调理块还是来自外部干扰。”他把外部干扰,比如当磁力计受到外部磁场影响时,归入肮脏数据类别。“你知道,数据可以全部集中在一起,并被归类为脏数据。”
即使是在一批传感器中,传感器也可能在制造过程中存在变化和问题。一旦进入现场,传感器可能会损坏或堵塞。地勤人员会损坏飞机的传感器,甚至是AOA传感器。零件可能会坏掉或磨损。传感器需要重新校准。
从试图理解数据的企业角度来看,“在基于传感器的设备网络中,脏数据可能是一个或多个问题的产物。问题可能由但不限于时间序列圈数、传感器单元测量、日期/时间校准、传感器的不适当关联、跨区域数据点的不适当聚合等引起。脏数据也可以很简单,即产生的数据不符合业务目标,因此不稳定、不可用或无效。联络技术公司(Liaison Technologies)的产品营销总监普拉提克·帕里克(Pratik Parikh)说。该公司帮助将可用数据放到一个平台上,供企业使用。
其他人对这个术语有具体的定义。“脏数据是由设备报告的格式良好的数据,但在某种程度上是无效的。它不会立即被标记出来,因为这是我们甚至无法解释的垃圾,”物联网系统集成商Bright Wolf的联合创始人詹姆斯·布拉尼根(James Branigan)说。“你完全可以把它读进去,但在某个时候你会发现这些数据实际上是完全无效的。”
在IIoT而且物联网在美国,脏数据的风险正在污染公司的数据湖和其他风险行为。而且还浪费钱。“这是个问题的原因是,在所有这些物联网系统中,当你在数据中寻找价值时,你会对这些传入的数据进行编程分析,你会以某种方式将这些分析输出连接到你的企业系统,”Branigan说说.“作为所有这一切的输出,将会发生一些有趣的事件。如果你把这个有趣的事件建立在错误的假设上——输入的肮脏数据——你就会陷入经典的垃圾输入,垃圾输出。脏数据可能会给你带来真正的伤害,你会开始产生真正的经济成本,因为这些自动化操作是由实际上无效的数据启动的。”
Branigan看到了三个脏数据问题。“第一,传感器有物理问题。要么是环境发生了变化,要么是传感器出现了无法自我检测的错误,它会给你提供格式良好但完全是垃圾的数据。”下一个类别涉及到设备上运行的固件是否有软件错误。即使更新版本的固件“也会导致不同的问题,其中格式良好的数据报告是完全错误的。第三类,这是非常邪恶的,你需要非常具体的机器操作知识,以理解如何解释输入的数据。如果没有这些知识,你可能会把一个数据包解释为有效的,而系统的其他部分并不打算这样解释它。”
那么,肮脏的数据是否清晰如泥?也许这个词太笼统了,没有什么用?
帮忙打扫家务
有很多工具可以帮助清理数据。“现在有很多很棒的工具。Matlab, Labview和Python是最流行的。我们自己的MetaWear api支持所有主要编码语言的过滤器。我通常建议我们的用户使用他们最熟悉的工具。Python是一个很好的工具,因为它有许多可用的机器学习库,这些库是开源的,易于使用,并且有良好的文档,”MbientLab的Kassovic说。MbientLab还使用了博世的FusionLab,因为他们提供了一个博世传感器。
Bosch-Sensortec公司还为他们的传感器提供了驱动程序和库,希望传感器系统能够检测、解释、监控、感知环境和预测意图,写Marcellino Gemelli,他负责博世Sensortec MEMS产品组合的业务开发。ST提供了用于设置传感器的库、驱动程序和工具,以及有助于简化设计的微控制器。
找到拥有正确专业知识的正确的人有很长的路要走。卡索维奇说:“我坚信,今天你不能派一个软件工程师去做固件工程师的工作。
在企业方面,让数据科学家参与清理数据将花费太多时间。“有了机器生成的数据,人类生成的数据之外可能会发生全新类型的肮脏。这就是清理脏数据的重点所在。”“大数据市场上有很多大数据清理工具,但这些工具都是以数据科学家为中心的。你得到一个相当静态的数据集,你需要去清理它,你需要去分析它,寻找一些有趣的东西。按照人类生成数据的速度,这种方法确实很有效。以机器生成数据的速度,这种方法无法扩展。这根本不可能。你最终会有这些摄入系统,从设备上获取实时反馈,通过它们进行流式分析,然后将这些输出连接到一些企业系统,以便自动进行操作。”
转向数字化可能会有所帮助。“转向数字通信肯定会有所帮助。所有的事情都被考虑到,比如传感器,你假设传感器得到了良好的数据,你收集的数据是什么,因为模拟而有噪声吗?我认为自然的趋势是向数字化发展,你可以内置错误检查。在数字系统中有噪声存在的空间。如果这个噪声在线路上,谁在乎呢因为它不是高就是低然后你要进行某种错误检查。如果是这样的话,你可以直接把数据扔掉。”
“尽管原始数据可能会被过滤、补偿和修正,但在大多数情况下,用户对这些数据的使用是有明确限制的,”负责博斯克- sensortec MEMS产品组合业务开发的Marcello Gemelli在最近的一篇文章中写道。
“克服这些挑战的第一步是实施和整合适当的卫生工具,”联络技术公司的帕里克说。“这些卫生工具不仅要处理数据质量,还要从项目的角度验证身份、信任、时间序列和每个数据点。每个项目都有独特的需求。项目实现者可以而且应该使用通用技术特性,但必须准备好根据需要进行大规模定制以实现业务目标。”
Liaison Technologies提供数据清理、过滤、管理以及重复数据删除检测。“我们提供的关键功能之一是跟踪数据沿袭,这使我们能够跟踪数据从原始引入到经过清理的结构化格式。客户可以跟踪和监控数据沿袭,如果需要进行课程连接,则可以在对业务逻辑进行适当更改后重放数据。”
冗余可能是一个很好的,但昂贵的解决方案的安全关键系统。“每个人都想获得更高的ASIL评级,但他们一定想要拥有更多的传感功能吗?TT Electronics的波伦说。“同样,这一切都归结于它可能是正确的数据,也可能是不正确的数据,但在后端,你如何解释这些数据。除非你的传感器有某种自我诊断功能,否则最好的方法就是冗余。”
Ed Sperling对本文也有贡献。
有关的故事
MEMS、传感器的安全性
对于无处不在的MEMS和传感器来说,安全性是一个持续存在的问题。
数据vs物理
来自几乎无处不在的传感器阵列的数据激增,正在改变数据处理地点和方式的动态
在仅基于一对传感器的失速检测后运行“机头向下”程序是一个多么糟糕的主意。
显然,其他传感器没有被参考,比如人工地平线、高度、陀螺仪等等。
这不是第一次传感器故障导致的
100条人命,怎么可能再次发生呢?
我在这里可能是在与潮流作斗争,但看到“数据”这个词一直作为单数使用是令人分心的。
数据是复数的。
基准是单数。