— Posted in 電腦資訊

[轉錄]物聯網真正要智慧化,必須仰賴以「機器學習」為主的分析

來源:https://buzzorange.com/techorange/2016/08/19/iot-machine-learning/

Posted on 2016/08/19 劉建志 劉建志

先前幾篇文章從物聯網基本概念、物聯網架構出發到裝置管理平台的介紹,接下來就來談談物聯網的最重要功能–“智慧”。

物聯網(Internet of Thing, IoT)廣義定義是萬物皆可連接到網路,並可互相溝通或交換訊息,以達到某種便利人類生活的目的。先前的文章介紹到裝置管理平台為止,它一直聚焦在透過一個中央的裝置管理平台將裝置連接到網路、裝置間使用哪一種或哪些的通訊協定溝通、用裝置管理平台如何管控這些裝置等議題。

等到這裡為止都屬於硬體架構設計範疇(雖然裝置管理平台本身是軟體),然而如何讓物體本身成為智慧物件(Smart object)就是純軟體的範疇了。相信很多讀者都聽過機器學習深度學習這些熱門名詞,其中機器學習(Machine Learning, ML)之所以熱門,就是大部分專家都認為機器學習是成就智慧物件的核心關鍵,因此機器學習方法堪稱是”物聯”、”智慧”的核心技術

物聯網核心仰賴以機器學習為主的分析

物聯網的應用非常的廣泛,只要物體可以透過感應器(Sensor)收集監測到的訊號或資訊,提供到裝置管理平台再連結到應用程式處理後,反饋出特定的決策再指示原始物件做進一步動作的領域都是可能的應用場域,例如:智慧門鎖(透過家庭成員的進出時間判定物流配送最佳時間)、智能冰箱(監控冰箱裡的食物保存狀態、甚至決定何時補貨)、智能汽車(透過路徑分析節省能源或交通時間、監控車輛使用狀態,決定何時進場維修)、智慧農業(監控農田環境狀態,決定何時灑水或施肥)、智能家居(有效的節能與生活輔助)、智能供應鏈客製化、智慧城市、智能工廠(提升生產效率或降低耗損)等,這些智慧或智能的核心都倚賴以機器學習為主的預測分析(Predictive analytics)

資料分析的議題除了以機器學習為核心外,還有資料超載與新的因素加入時系統如何快速回應等問題。試想,物聯網中的連網的裝置無時無刻都在收集資料,時間久了自然會造成資料超載問題,僅僅依靠人力必然無法進行即時的分析和利用。

另一方面,資料科學家通過分析大量的資料來辨認模式並人工定義規則,儘管已預建良好的應變系統,應用方案實際實施環境中隨時出現新的因素卻可能影響正確行動的判斷。如何確保物聯網系統在快速變化的環境中,仍然能夠做出最佳回應也是一項很有挑戰性的課題。

機器學習先驅亞瑟·塞穆爾(Arthur Samuel)說:「機器學習使電腦賦有學習能力,不需要顯示的程式指令就能創建演算法,從資料中學習並做出預測」。如圖一(Figure 1)所示,從感應器所蒐集到的資料(Data),經整理後變成資訊(Information),再透過機器學習之類的方法將之轉化成有用的知識(Knowledge),最後就會蛻變成可執行的智能(Wisdom),這樣才真正讓物件有了智慧。

Screen-Shot-2016-08-19-at-4.35.59-PM-1024x591
給一個簡單的物聯網應用定義一個規則—比如當溫度太高時,就把冷氣壓縮機啟動——該規則非常簡單。 然而確定多個感應器的輸入與外部因素之間的相關性卻不是想當然爾的結論。舉個例子說明:根據自動販賣機的銷售狀況、庫存水準、當地的天氣預報和促銷廣告等感應器資料,系統必須決定何時派遣一輛卡車去補充自動販賣機內的商品。如果判斷時間錯誤以致出現貨品空窗期或擺放不合適的商品,都可能導致不同的銷售失敗。

好的物聯網平台層都應該提供具備機器學習功能的數據分析系統,幫助連結到這個物聯網平台的各種物聯網應用方案能夠分析感應器資料尋找相關性並做出最佳回應,解決類似上面自動販賣機補貨時間與內容的議題。這個系統還必須不斷監控它的預測準確度持續訓練完善既有的演算法提高決策的正確性與速度

目前,主要有兩類的機器學習方法:

1、監督式學習(Supervised learning):它是指在一組實例的基礎上開發一種演算法。例如,一個簡單的智慧零售為例可能是一個產品每天的銷售記錄。該演算法計算的是一種相關性,有關每個產品在一天之中到底有多少有可能會順利出售。這個資訊有助於確定何時傳送卡車來補充自動販賣機器。過去常見的監督式學習方法為支持向量機(Support Vector Machine, SVM),現在流行的監督式學習方法就是眾口傳頌的深度學習法(Deep learning)

2、非監督式學習(Unsupervised Learning):不提供人為定義標籤(如銷售/天),系統需要自己去分析探索關鍵因素。它主動提供所有對分析相關的資料,而讓系統去主動識別不那麼明顯的相關性,例如,價格折扣、本地事件和天氣狀態(例如:下雨與否)都可能影響自動販賣機的銷售數量。常見的非監督式學習法包含有主成份分析(Principal Component Analysis, PCA)關聯規則學習(Association rule learning)分群(Clustering)演算法及同樣是最紅火的深度學習法(Deep learning)

按照Industrial Internet Consortium (IIC)提出的Industrial Internet Reference Architecture (IIRA)的定義,一個物聯網應用方案(IoT solution)可以分成三個層次:各項硬體感應器的裝置層(Edge tier)、串連裝置層與企業層的平台層(Platform tier)企業層(Enterprise tier)

物聯網中設備記錄文件(Machine log)以及感應器產生的數據由裝置層中的閘道器(Gateway)收集轉換,經由網路傳入位於雲端或是企業內部私有雲中的數據分析系統,數據分析的前端模組執行即時串流數據處理,由於每個單位時間都持續由裝置層中的分散的設備節點動態產生大量數據,因此前端模組必須具有即時接收處理串流數據的能力,此時資料可經由分散處理的分析引擎與分散儲存的資料庫達成計算資源動態規劃支援。

數據分析系統資料處理過程需進行資料清理(Data cleaning)異質性資料彙整等資料前處理工作(Data pre-processing),關於異質性資料分析將另以專文說明。這裡可參考以下工作原則進行(1)補足原始數據不完整的欄位,如時間位置或說明。(2)同時過濾有錯誤的數據。(3)並且對數據的單位和坐標進行轉換。(4)幾種基本的分析模式也可以在此階段運行,如加總、相關性。(5)同時生成並處理事件。這些結果倒入控制面板(Dashboard)以圖像化的方式呈現給用戶。(6)處理後的數據置於資料庫中長期保存以利後續的進一步分析。較爲複雜的預測建模(Predictive analytics)分析需要統計機率建模與機器學習,則採批次分析模組進行。

預測建模分析核心精神是基於統計模型的回歸分析模式,採用大量歷史數據提供建模,同時需要引入許多的外部數據,例如產業領域知識,供機器學習中特徵工程(Feature engineering)使用。文字以及影像等非結構化資料特性則另外藉由特定模組處理,產生對應的半結構化資料(Semi-structure)以供後續建模所需特徵工程使用。

目前物聯網資料分析的來源數據可能包含廠房設備的狀態例如輸入電流、震動,環境因素如溫度、影像和語言文字,或是用戶行爲等線上的數據。同時導入多種外部訊息用以輔助數據分析,例如政府公開資料、天氣溫濕度、新聞事件、大眾輿論、人機互動等交互使用。因此好的數據分析系統應具備以下幾個重要特徵:

(1)在領域專家協助下,基於場域知識庫建置需求,以規則與事例建構專家系統,以自動化的規則處理方法以彙整運用大量的知識。

(2)統計專家結合領域知識對數據探索分析,然後進行特徵工程抽取出適當的特徵,導入機器學習,先進的非監督學習演算法可以自動化分析得到帶有最多訊息量的特徵,應用於預測建模過程特徵工程使用。

(3)機器學習:實作並整合各種演算法,持續評估運算效能,以統計採樣驗證模型的精確度,自動化混合多種演算法並且調整參數,達到最佳化的預測結果。

數據分析系統除了實作各種機器學習的演算法,為了滿足不同產業、不同場域或主題的物聯網應用方案,還需要因應不同產業或場域應用提出不同評估驗證方式,以確保或提升各種預測建模方法的預測精確度和適用性。現階段期待一個數據分析與預測系統能夠通用性地解決各行各業、各別廠商數據分析需求。

例如:應用於線上串流數據即時分析、進而預測即將發生的設備異常狀態診斷、或是產能設備參數最佳化、以及客制化生產的配方提供,恐怕還需等若干年後數據分析方法有更突破性進展才有可能實現。因為單靠機器學習雖然可達到一定的效果,仍舊有學習成效上限存在,目前業界採用的方法是除了機器學習外,再搭配領域專家根據領域知識來制定相關有效的規則來輔助機器學習,或需資料科學家分析大量的資料後所得出的有用訊息回饋給機器學習,以求達到更高效的均衡問題解決方案。

不少有志於物聯網應用方案研發的廠商往往選擇自行開發整體方案,宣稱有能力自行建置數據分析/預測系統,往往做出來的數據分析系統只是最基本的統計分析,缺乏真正使得整個物聯網應用方案”智慧”的能力。看了本文的說明後,往後需求方在評估上門推銷的”智慧”物聯網方案時,應該要詢問方案提供廠商這些基本問題,才不致花錢買到不”智慧”的物聯網應用方案。至於有意投入開發物聯網應用方案的廠商,最好在規劃研發之初審慎思考是否有能力開發這個核心系統,否則就應該覓妥優秀的數據分析/預測團隊合作。

參考來源:

https://zh.wikipedia.org/wiki/%E7%89%A9%E8%81%94%E7%BD%91
http://www.cse.wustl.edu/~jain/cse570-15/ftp/iot_ml.pdf
http://internetofthingsagenda.techtarget.com/blog/IoT-Agenda/Smarter-IoT-applications-incorporate-machine-learning
圖一http://techscripts.org/nov_2014/nov201401.pdf

(本文經專欄作者劉建志授權刊登,並同意TechOrange 編寫導讀與修訂標題,原文標題為〈物聯網的智慧關鍵 — 數據分析與預測系統〉,首圖來源:didy b, CC licensed)