為什么需要凈化傳感器數據,它為何對系統設計的各個層面都有廣泛影響。
傳感器是一條紐帶,它將數字世界和物理世界迷人地連接在一起。但是,要獲得有價值的可用數據并非易事。實際上,許多剛剛進入物聯網領域的設計人員都對傳感器數據的混亂沒有足夠的心理預期。
引導客戶相信,他們看到的大量“錯誤”數據并不是因為傳感器本身出了故障,成為物聯網運動傳感器公司MbientLab的日常工作。之所以數據錯誤,是因為集成了這些傳感器的系統設計中缺少一些進行數據清理的關鍵步驟。
“我每天都在應對這些抱怨。”MbientLab首席執行官Laura Kassovic在最近的一次演講中表示。她同時還警告工程師,必須正確理解通過機器學習訓練物聯網的難度?!岸嗄陙?,工具和硬件都取得了長足進步,但是,對于數據處理的基本理解仍然沒有多少改進。”
“我對用戶嘗試使用傳感器來解決問題、研究復雜課題非常歡迎,”Laura Kassovic表示?!斑@是一種勇敢的行為,很有趣,思路很開放,但是也很難。很多人沒有使用正確的方法,未能解決實際問題,就把失敗歸咎于我們的傳感器,我對此感到很無奈。要知道,傳感器不會撒謊,它沒有任何偏見,傳感器的數據始終是正確的。用戶濫用或誤解了傳感器數據,卻把鍋甩給了傳感器!”
實際上,傳感器并非總是易于使用,傳感器生成的所有數據也并非都很有價值。關鍵在于,要搞清楚哪些數據有價值,分離出這些數據,然后把其它垃圾數據丟棄掉。
Synopsys公司董事長兼聯席首席執行官Aart de Geus表示,“大多數傳感數據都不是系統價值的關鍵。但是也有一些例外,比如人造眼睛。有一些可以歸類到人工智能設備的范疇,比如可以進行各種測量的手表。這些測量數據能夠反映什么問題?可以預測心臟病的發作嗎?如果可以,這類數據的價值非常高,你愿意為此付多少錢?如果它能在一分鐘之前提示你,你可以給你的妻子寫下臨別遺言‘謝謝你,我愛你’。如果你有一個小時的提前提示時間,你可以打電話給急救中心,如果有幾個小時,數據的價值和風險將會再次改變。”
在各種應用中,數據以各種不同的形式出現,在某一個應用場景中被認為是干凈的數據,到另一個場景中可能還需要進行進一步的清理。有些數據的清理工作可以在本地完成,而其它數據可以在數據中心里進行清理。
“假如說你有一個面部識別應用,只允許某些授權員工進入這棟大樓,”Geus說?!澳忝總€月都要更新邊緣設備中的AI網絡,保證AI網絡可以識別所有面孔。因為隨時都會有大量的人進入這棟樓,所以這個工作不輕松。不過,這個安全級別并不是太高,并不是所有數據都需要隨時更新。”
而在其它一些應用中,數據需要實時進行清理。最近就有一個現成的慘痛案例。10月29日,印尼獅航一架波音MAX 8飛機墜毀,所有機上人員全部遇難?,F在的調查可能正在朝著將傳感器定為罪魁禍首的方向前進。恢復的黑匣子數據顯示,在飛行過程中,兩個迎角傳感器(AOA)數據不一致。顯然有一半數據都不正確,這足以誤導這架飛機的防失速系統,使飛機轉頭向下,直至機毀人亡。
判斷這次飛行事故中到底發生了什么,現在還為時尚早?!翱赡懿粌H僅是一個傳感器的問題,畢竟這個數據處理系統有很多環節,”意法半導體戰略平臺和物聯網卓越中心主任Mahesh Chowdhary說?!跋仁且粋€傳感部分,然后經過一個連接部分,最后到達計算部分。有一些算法可以查看傳感器數據并確定飛機的方向。多個功能必須協調一致地同步工作,以提供有關飛機方向的信息?!?/p>
在傳感器提供的大量數據中,并非所有數據都有用,而且,即便是我們認為有價值的數據也可能被污染了,或者不準確。從看似簡單的物聯網系統,到更復雜的安全關鍵系統,當傳感器系統設計失效時,我們能單純地把數據-特別是被污染的臟數據-認定為罪魁禍首嗎?你怎么判斷傳感器壞了,數據不對?也許是算法的邏輯或者讀取數據的固件出了故障了呢?為了揀擇出真正的失效原因,必須首先對什么是“臟數據”達成一致。
“這是一個模棱兩可的領域。傳感器目前工作正常嗎?嗯,不好說,它沒有按照你想象的那樣工作,那么,是用戶造成的錯誤還是傳感器本身的故障?我發現,目前對于臟數據的定義是非常模糊的一個概念。有時候,因為用戶系統存在缺陷,如果您的傳感器工作正常的話,用戶系統就沒法正常工作了。”TT Electronics的產品線總監Robert Pohlen說道,這是一家設計傳感器并幫助客戶創建各種基于傳感器的系統的公司。
數據處理路徑
要搞清楚干凈數據和臟數據之間的區別,很重要的一點是,看看數據是如何從A點到達B點的。
概括來說,傳感器的原始數據需要進行后端處理。基礎傳感器將原始信號從一種形式的能量轉換成模擬信號或者數字信號,可能需要施加外部電源,也可能不需要。最初的原始轉換來源于現實世界的模擬信號:力、熱、光、磁、聲音。經過傳感器轉換后,沿著傳感器內部或者印刷電路板上的信號路徑繼續前行,如果有需要,模擬信號可以經過調節、放大環節轉換成數字信號。然后,將數據發送到微處理器或者其它類型的計算單元中,通過算法進一步過濾噪聲,并以應用所需要的方式提取相關信息。
計算體系架構剛剛開始著手研究怎么有效地進行這種數據處理,有些數據需要在邊緣設備上進行預處理,其它數據則發送到更強大的服務器中進行清理。
“邊緣計算將發揮巨大作用,”Achronix總裁兼首席執行官Robert Blake說?!盎A構建模塊都有了,我們現在需要弄清楚,怎么有效地移動任意格式的傳感器數據,數據移動過程中涉及的內存層次結構如何設計,以使得可以實現最佳計算性能。一句話,就是如何提高傳感器數據的計算效率。”
圖1 一個傳感器的例子
有些操作需要基于那些用來鑒別一段時間內趨勢的數據立即進行動作,這類數據的提取非常關鍵,此外,清除已經喪失了價值的數據也很重要??紤]到存在多種類型的這種數據,而且有些情況下,需要多種數據類型來建模物理世界或判斷某人是否應該立即進行醫療急救,這種數據提取和清除工作更加艱難了。
數據也可能一開始是干凈的,但是經過更新或者病毒入侵后變臟了。Rambus研究員Helena Handschuh說:“在全球范圍內,所有組件都需要盡可能安全,因此您希望從硬件中建立信任。組件安全啟動后,通信數據本身就已經具備了某種程度的可信度。但是,有的系統也可能存在不安全的未知組件,這就需要對數據進行入侵檢測和軟件分析,以查看數據和組件是否存在任何損壞。在汽車中,我們希望檢測出那些給出異常或奇怪數據的部件,這不僅是組件安全問題,還涉及到人身安全?!?br/>
臟數據肯定要清理掉,但是它在哪里變臟的以及是如何變臟的,決定了下一步采取的行動。是不是傳感器本身產生了臟數據,設計人員需要一開始就考慮到這一點?!敖鉀Q傳感器問題需要大量的專業知識,”Kassovic說。 “它需要設計人員在硬件層面了解傳感器,理解從傳感器中提取的數據,具備軟件(算法)開發的經驗。”
例如,從數據理解層面上,不要將加速度計的數據與GPS數據混淆?!凹铀俣扔嬛粶y量身體的加速度,”她說。“大多數人都無法理解它為什么不能代替GPS,GPS給出的是身體在空間的絕對位置。每個應用都足夠獨特,需要一種獨特的方法來最可靠地提取正確的最終數據。很多用戶認為來自傳感器的數據應該與他們的大學教科書完全相同,其實并非如此。
現實世界的傳感器數據并不完美。當你打開你的物理、工程或計算機科學教科書時,會看到書本里充滿了完美的運動曲線。但是,當您從現實世界中獲取數據時,實際曲線看起來會和書中的完美曲線有很大不同?,F實世界中充滿了噪音和錯誤?!?/p>
每個應用都足夠獨特,需要一種獨特的方法來最可靠地提取正確的最終數據。
理解數據
那么,對臟數據到底如何處理呢?第一步是理解和解讀傳感器輸出的數據。傳感器數據的準確度往往是相對的,而不是絕對正確。現實世界中的傳感器讀取數據并非完美。
傳感器制造商關注的是噪聲、濾波器和算法這些基本問題,并給系統設計人員提供了相應的幫助性工具。一些系統設計者和平臺供應商則站在系統用戶端的視角上,關注的是填入其數據庫中的數據是否有效,它們提供了一個監測工具來幫助鑒別數據是否出現錯誤。
“我在模擬信號鏈路中發現了臟數據,數字鏈路的數據是干凈的,”TT Electronics的Pohlen說道。“許多不同的源頭都會誘發噪聲。你可以在線束中拾取電噪聲,性能變壞的元件也會產生電氣噪聲。”
在Pohlen眼中,由某種對實際感應機制的外部影響造成的噪聲不算是臟數據。“比如,對于一個光傳感器,如果有一個環境光源的話,不能因為它給出的數據不是你真正想要測量的,就認為那是臟數據,因為不管是不是自然光源,它確實正確地測量了光強度?!?/p>
未經校準的傳感器通常會比校準過的傳感器產生更多臟數據。“我們通常所說的臟數據基本上是指未經校準的原始傳感器數據,以及信號上有很多噪聲的數據?!币夥ò雽w的Chowdhary說?!俺耸褂媚承┈F象機制感應信號的物理元件,比如測量科里奧利加速度以檢測設備、人或者手機的旋轉,系統里還有信號調理單元。這些信號調理模塊可以工作在不同條件下,也可以在低功耗模式下工作,以盡量降低傳感器的電流消耗。但是,如果工作在低功耗模式,傳感器數據的噪聲就會增加,因為顯而易見的是,用于信號調理的功耗越大,數據就越干凈?!?/p>
“考慮到所有這些不同層面,我們可以給臟數據下個定義,即未經校準的傳感器輸出的數據以及受到噪聲影響的傳感器數據,無論噪聲來自于信號調理模塊還是外部干擾,”Chowdhary說。 他將外部干擾(例如當磁力計受外部磁場影響時)也歸類到了臟數據中。
即便是在同一批傳感器中,不同傳感器也可能存在制造上的差異。一旦被部署到應用現場,傳感器就可能會損壞。比如,地勤人員可能會損壞飛機的傳感器,甚至包括至關重要的迎角傳感器。傳感器可能會老化、性能變差,所以需要定期重新校準。
可以站在企業的角度來理解數據。“在基于傳感器的設備網絡中,臟數據可能是由單個或者多個問題共同產生的。問題可能來自于時間序列跳躍、傳感器單元本身的測量有誤、日期/時間未及時校準、傳感器之間的不恰當關聯、跨域數據點的不正確聚合等。也可能是僅僅因為產生的數據不符合業務目標,不穩定或者無法使用,就被認為是臟數據?!盠iaison Technologies公司產品營銷總監Pratikh表示。這家公司幫助把可用數據放到一個平臺上,以供企業使用。
其它人也對臟數據給出了自己的具體定義?!芭K數據是那些由您的設備按照正確的格式報告,但是在某種程度上無效的數據。我們甚至無法對這些數據做出解釋,”物聯網系統集成商Bright Wolf的聯合創始人James Branigan說。“你完全可以讀取它,但是你會發現,某些數據實際上是完全無效的?!?/p>
在智能物聯網和物聯網中,臟數據的風險在于它會污染公司的大數據庫,引發其它危險行為,而且也浪費錢。“臟數據之所以會成為一個問題,是因為在所有這些物聯網系統中,當你在數據中尋找價值,在這些輸入的數據上進行某些程序化分析時,你會把分析結果在部分程度上反饋到企業系統中,”Branigan說?!皩@些數據處理分析并反饋后,會發生一些有趣的事情。但是,如果你把分析建立在糟糕的假設-臟數據-上,那么,垃圾輸入必然導致垃圾輸出。臟數據可能會給你帶來真正的傷害,因為這些實際上無效的數據會導致一些自動化操作被禁能,從而產生實際的經濟成本。”
Branigan發現了三種臟數據?!暗谝环N來自傳感器的物理故障。它既無法檢測環境的變化,也無法檢測自身的故障,雖然它仍將向你提供格式良好的數據,但是這種數據完全是垃圾。第二種來自設備運行的固件的軟件錯誤。即使是較新版本的固件也可能產生格式良好但完全錯誤的數據。第三種臟數據真正可惡,你需要對具體的機器操作非常了解,才能理解如何解釋進來的數據。如果不了解這些,你會把錯誤的數據解釋為有效數據,但是系統其它部分卻會給出不同的解釋?!?/p>
那么,臟數據能否被洗白白呢?
數據清洗工具
有許多工具可以幫助清洗數據?!艾F在已經有了很多很棒的工具,比如大受歡迎的Matlab、Labview和Python。我們自己的MetaWear API可以在所有主要編碼語言下幫助實現數據過濾器。我通常建議客戶們使用它們最熟悉的工具,而不是強行兜售我們自己的API。Python是一個很棒的工具,它有許多機器學習庫,開源、易用,而且有很好的文檔記錄。”MbientLab的Kassovic說。MbientLab還使用博世的FusionLab,因為它們不僅自己提供傳感器,還銷售提供博世的傳感器。
MEMS市場領導者博世傳感技術公司也會其傳感器提供驅動程序和庫,幫助傳感器實現檢測、解讀、監控、感知情境并預測意圖,負責MEMS產品組合業務開發的Marcellino Gemelli寫道。意法半導體提供庫、驅動程序和傳感器設置工具,以及可幫助簡化設計的微控制器。
尋找具備合適專業知識的專業人才并非易事。“你不能派一名軟件工程師去干固件工程師的活?!盞assovic說。
在企業的角度來看,讓數據科學家參與清洗數據將花費太多的時間。“現在,各種機器都在源源不斷地產生數據,可能會產生比人類產生的臟數據還要復雜的新級別臟數據,這將成為臟數據清洗的重點對象?!盉ranigan說。“大數據市場里有很多數據清洗工具,但是這些工具都以數據科學家為中心。對于一個相對靜態的數據集,數據科學家清洗它,分析它,然后可以找到一些有趣的東西。這種方式應對人類生成數據的速度確實很有效,但是很難甚至不可能應對機器生成數據的速度。你最終需要一個自動化的系統,它從設備上獲得實時數據,流水化地進行分析,然后把分析結果輸出到企業的某個業務系統中,以便自動化地執行業務操作。”
傳感器轉向數字化可能會有所幫助。“數字通信絕對有好處。那些你從中獲取并收集優質數據的傳感器,它的噪聲是不是因為模擬才產生的?我看到傳感器行業存在向數字化轉變的自然趨勢,你可以在其中內置一些錯誤檢查功能。數字系統存在一定的噪聲區間,如果這些噪聲出現在數字電路通道中,誰會在乎它呢?因為數據要么是1,要么是0,基本不可能出現數據反轉,你可以對數據傳輸加入校驗機制,如果校驗失敗,你可以把數據丟掉。”Pohlen說。
“盡管原始數據可能被過濾、補償、糾正,但是在大部分情況下,用戶的操作也有一定的限制?!必撠煵┦纻鞲衅鱉EMS產品組合的業務開發的Marcello Gemelli在最近的一篇文章中指出。
“克服這些挑戰的第一步是實施和集成適當的清洗工具,”Liaison Technologies的Parikh說?!斑@些清洗工具不僅處理數據質量,還要從項目的角度驗證數據源頭身份、可信度、時間序列。每個項目都有各自獨特的要求。項目實施者可以應用一些通用的技術手段,但是必須做好準備,根據需要進行大規模定制,以實現業務目標。”
Liaison Technologies提供數據清洗、過濾、管理以及重復數據刪除檢測等業務?!拔覀兲峁┑囊粋€關鍵功能是追蹤數據的血統,即從數據原始源頭到清洗過的結構化數據的鏈路跟蹤?!?/p>
對于安全關鍵系統而言,冗余可能是一種優秀且昂貴的解決方案。TT電子公司的Pohlen表示,“每個人都希望達到更高的ASIL等級,但他們是否一定要承諾提供更多感應能力?同樣,ASIL等級也可以歸結為數據是否正確,以及在后端如何解讀這些數據,除非您可以在傳感器中進行某種自診斷,否則最好的方法是冗余。”