數據分析與機器學習

數據分析與機器學習

物聯網基礎數據分析

  • 物聯網分析的目標是從大量的串流數據中發現事件。它涉及一系列關鍵分析功能,包含:
    • 數據預處理:
      • 過濾掉不感興趣的事件
      • 變性
      • 特徵提取
      • 分割
      • 數據格式轉換
      • 向數據添加屬性(如標籤)
    • 警報:當數據超出預設邊界條件時發出警報,例如溫度超過限制。
    • 窗口處理:創建數據的滑動或批次窗口(基於時間或長度),以在特定範圍內繪製規則和計數事件。
      • 例如查找一小時內的溫度峰值數量。
    • 數據流合併:將多個數據流合併為一個新的單一數據流。
      • 例如將包裹追蹤信標數據與卡車地理位置信息合併。
    • 數據關聯:處理物聯網數據中常見的丟失、亂碼和無序數據問題,通過關聯數據流來找到錯誤條件。
    • 數據引用:分析包需要與數據倉庫交互,將流數據與歷史數據或資料庫進行引用。
      • 例如追蹤遺失的藍牙標籤。
    • 時間事件序列:檢測一系列按順序發生的事件模式,類似於狀態機。
      • 例如監測機器健康狀況的溫度、振動和噪音序列。
    • 追蹤:監測事件發生的時間或地點,或不應該存在的位置。
      • 例如服務卡車的地理位置追蹤。
    • 時間相關數據:應用於預測性維護,通過分析時間相關的運行歷史數據來尋找模式。
      • 例如牲畜感測器數據分析動物運動以判斷是否生病。
    • 批次處理:通常比即時串流處理更全面深入,可將分析分叉到批次系統中。
      • 例如 Lambda 處理。
    • 離線/線上分析:即時處理用於即時決策,而更深層次的分析可能需要離線處理以消除誤報。
      • 例如智能城市視頻監控系統對車牌或標誌的識別。
    • 推理引擎:機器學習系統的第一級模型,用於即時分析。
    • 行動與反饋:將動作傳播回邊緣設備和感測器,實現雙向通信。
      • 例如機器溫度過高時發送信號使其減速。
    • 控制與管理:提供適當的工具來啟動、停止、報告、日誌記錄和調試這些分析工具。
  • 頂層雲管道
    • 雲端分析架構必須能夠接收不可預測和不可阻擋的數據流,並盡可能接近即時地提供數據解釋。
    • 典型的物聯網數據流從感測器經由多種媒介傳輸到雲端儀表板。
    • 在設計雲分析解決方案時,必須考慮擴展性,因為早期設計的選擇可能無法有效擴展到數千甚至數百萬個物聯網設備。
  • 雲端的分析(預測-回應)部分可採取以下形式:
    • 規則執行:定義行為並產生結果。
    • 流處理器:將感測器讀數等事件注入,處理路徑是圖形,可以在集群上並行複製和執行以實現擴展。
    • 複雜事件處理(CEP)查詢:基於 SQL 的查詢,為降低延遲而優化。
    • Lambda 架構:試圖通過並行執行批次處理和串流處理來平衡吞吐量和延遲。
    • 例如,紐約市 25 萬盞路燈在高峰時段每秒可產生高達 32.5 萬條訊息,這凸顯了雲服務處理積壓事件的挑戰,需要系統自動調整以應對需求增長。
      • 容量建模可使用特定公式進行預測。
  • 規則引擎
    • 規則引擎是對事件執行操作的軟體結構,也稱為業務規則管理系統(BRMS)。
    • 它們可以是有狀態的(維護事件歷史記錄並根據歷史採取行動),也可以是無狀態的(只檢查當前事件)。
    • Drools:一種由紅帽開發的 BRMS,支持前向和後向鏈接。
      • 前向鏈接:根據可用數據向前推斷,直到滿足規則鏈。
      • 後向鏈接:從操作開始,反向工作以證明前提。
    • Drools 的基本元素包括:
      • 會話
      • 入口點
      • when 語句(條件子句)
      • then 聲明(要採取的行動)
    • 規則有兩種模式:
      • 統計模式(數據格式、奇偶校驗、雜湊、值範圍)
      • 語義模式(有意義的事件,例如一小時內高溫值的計數)
    • Drools 支持創建複雜精細的規則,可能需要規則數據庫。
  • 數據獲取——流、處理和數據湖
    • 物聯網數據流通常是持續的、非同步的,可以是結構化或非結構化的,並要求盡可能接近即時處理。
      • 為優化即時需求,雲端需要保持數據流動並以管道方式移動數據,避免輪詢。
    • 串流數據框架:大多數支持內存中的操作以減少延遲,良好的消息佇列有助於此模式。
    • 數據流問題:數據丟失、格式不正確或失序等問題經常發生。
    • 串流系統要求:
      • 隨事件增長而擴展
      • 提供發布/訂閱 API
      • 接近即時延遲
      • 支持規則處理的可擴展性
      • 支持數據湖和數據倉庫
    • 開源工具:
      • Apache Spark:一種串流處理框架,對數據進行小批量處理,基於內存處理,適用於機器學習。
      • Apache Storm:旨在雲架構中盡可能接近即時處理數據,低延遲(亞秒級性能)。
      • Apache Kafka:從物聯網感測器獲取 MQTT 數據的分布式發布-訂閱消息傳遞系統,提供緩衝和按需擴展,能很好應對突發事件,每秒可支持 10 萬個事件流。
      • Apache Flume:用於收集、聚合和移動數據的分布式系統,與 Hadoop 緊密集成,可擴展性略低於 Kafka。
    • 數據湖:本質上是一個龐大的儲存設施,保存來自許多來源的原始、未過濾的數據。它是一個平面文件系統,通過元數據元素(標籤)組織元素。
      • Apache Hadoop:經典的數據湖模型。
      • 價值:可以儲存任何形式的數據(結構化或非結構化),假設所有數據都有價值並永久保存,為數據分析引擎提供了大量的持久數據,尤其有利於機器學習算法的訓練。
  • 複雜事件處理 (CEP)
    • CEP 是一種近乎即時分析實時串流數據的方法。
      • 它將數千個事件提煉為更高級別的抽象事件。
    • 優點:比流處理器具有更快的周轉時間(毫秒級)。
    • 缺點:冗餘性或動態彈性擴展性不如 Apache Spark。
    • 機制:
      • 使用類似 SQL 的查詢,但在傳入流中搜索模式或規則,而不是使用數據庫後端
      • 所有規則和數據都駐留在內存中。
    • 操作:
      • 滑動窗口
      • 連接
      • 序列檢測
    • 產業標準:Apache WSO2 CEP,每秒可處理超過 100 萬個事件,不需要儲存事件。
    • Siddhi 包:WSO2 可通過 Siddhi 擴展,提供:
      • 地理定位
      • 自然語言處理
      • 機器學習
      • 時間序列相關性和回歸
      • 數學運算
      • 字符串
      • 正則表達式
    • CEP 與規則引擎的選擇:
      • 如果判斷是簡單的無狀態,應使用簡單規則引擎
      • 如果系統保持時間概念或一系列狀態,則應使用 CEP 引擎
  • Lambda 架構
    • Lambda 架構旨在平衡延遲和吞吐量,結合了批次處理和串流處理。它包含三層:
      • 批次處理層:通常基於 Hadoop 集群,處理速度慢但最大化吞吐量和準確性。
      • 速度層:即時內存數據流,處理可能錯誤、丟失和無序的數據,Apache Spark 在此領域表現出色。
      • 服務層:儲存、分析和可視化批次處理和串流結果的複合層,典型組件包括 Druid、Apache Cassandra 和 Apache Hive。 Lambda 架構本質上比其他分析引擎更複雜,增加了運行成功所需的複雜性和資源。

物聯網中的機器學習

  • 機器學習的目標是從數據中進行預測或推斷。
    • 其歷史可追溯到 19 世紀早期,隨著 20 世紀 50 年代神經網絡的發展(如感知機),計算機學習逐漸統一。
    • 隨後,遺傳算法、隱馬爾可夫模型、模糊邏輯、支持向量機和循環神經網絡等在不同時期興起。
    • 2012 年,深度卷積神經網絡的突破性進展以及 GPU 的應用極大地推動了圖像識別領域的發展。
    • 如今,人工智能(AI)無處不在。
  • 物聯網為機器學習提供了大量的連續數據流。
    • 物聯網系統的價值在於將多個感測器的數據集合起來,理解一個更大的系統。
    • 機器學習在處理這些龐大、嘈雜且非人類可管理的數據時,能篩選出相關內容,例如:
      • 工廠優化
      • 預測性維護
  • 機器學習模型類型:
    • 監督學習:提供帶有標籤的訓練數據,解決分類和回歸問題。
    • 非監督學習:訓練數據無標籤,用於發現相似事物的集群,減少冗餘。
    • 半監督學習:混合了有標籤和未標籤的數據。
  • 機器學習的三個基本用途:
    • 分類
    • 回歸
    • 異常檢測
  • 分類
    • 分類是一種監督學習形式,用於將數據選擇為一個名稱、值或類別。
    • 二元分類:在兩個組或類別中選擇,例如咖啡和茶。
    • 多類分類:在兩個以上組或類別中選擇,例如水果分類。
    • 超平面:用於劃分數據的界線。
    • 線性分類器:超平面是一條直線,例如:
      • 支持向量機
      • 邏輯回歸
    • 非線性關係:在機器學習中很常見,線性模型可能導致高錯誤率,非線性模型傾向於過度擬合。
  • 回歸
    • 回歸模型用於預測連續值,例如預測房屋的平均售價。
    • 最小二乘法:最常用的回歸和數據擬合方法,使所有誤差的平方和小化。
      • 它容易受異常數據影響,建議在靠近感測器的地方清除異常值。
    • 線性回歸:通過擬合線性方程來建模兩個變數之間的關係,找到最佳擬合直線。
    • 邏輯回歸(Sigmoid 函數):用於對類或事件的概率進行建模,輸出是二進制概率(0或1)。
      • 例如預測冰箱保持食物冷凍的可能性。
  • 隨機森林
    • 隨機森林是「集成學習」中的一種決策樹模型。
    • 決策樹:考慮少量變數並產生分類輸出,但容易受雜訊影響並產生偏差。
    • 引導聚合(Bagging):通過同時訓練許多決策樹來減少結果偏差。
  • 隨機森林:在 Bagging 的基礎上,不僅隨機抽樣訓練數據,還隨機選擇變數子集。
    • 優點:大多數樹是準確的,且錯誤可能發生在不同的地方,利用「群體思維」或「多數決定」的法則,創建低方差模型。
  • 貝葉斯模型
    • 貝葉斯模型基於 1812 年的貝葉斯定理,描述了基於系統先驗知識的事件發生概率。
    • 貝葉斯定理:用於計算在事件 B 已發生情況下事件 A 發生的概率。
    • 貝葉斯網絡:貝葉斯定理在圖形概率模型(有向無環圖)形式下的擴展。
    • 適用性:適用於物聯網中無法完全觀測到的環境,以及數據不可靠的情況,受差樣本數據、雜訊數據和缺失數據的影響較小,並且能避免過度擬合問題。
    • 應用:用於發現感測器信號和時間相關序列中的畸變,以及在網絡中發現和過濾惡意數據包。
  • 卷積神經網絡 (CNN)
    • CNN 是一種人工神經網絡,在圖像分類和視覺識別方面被證明非常可靠和準確,常用於物聯網安全系統。
    • 輸入:固定位圖數據,如圖像。
    • 原理:通過可分解特徵(水平線、垂直線、曲線等)的加法集將圖像分類為標籤。
    • 層次結構:
      • 第一層(過濾器):識別圖像中的基本特徵,通過卷積算法與圖像值相乘,當特定特徵導致高激活值時激活。
      • 池化/最大池化層:從上一層獲取所有值,返回相鄰神經元的最大值,作為下一個卷積層的輸入,本質上是一種子採樣,降低維度,控制過度擬合。
      • 神經元:將所有輸入的權重與像素值相加,並通過激活函數(如 Sigmoid)強制其作為下一層的輸入,引入非線性。
      • 全連接層:最後一層,將圖像解析為標籤。
    • 訓練過程:
      • 前向傳播:數據通過網絡從輸入到輸出。
      • 反向傳播:根據損失函數計算誤差,將誤差梯度反向傳播回網絡以優化或糾正權重。
      • 學習率:控制梯度下降的步長,影響訓練速度和模型準確性。
      • 梯度消失/爆炸問題:權重更新時,梯度可能變得過小(消失)或過大(爆炸),阻礙訓練。ReLU 激活函數可緩解。
      • 批次大小(Batch Size):在調整權重前處理的訓練樣本數量。
      • 週期(Epoch):訓練在整個訓練數據集上的迭代次數。
    • 訓練結果不可預測,需要平衡學習率和週期數以達到最佳模型。
  • 循環神經網絡 (RNN)
    • RNN 是機器學習的另一個重要領域,特別適用於物聯網時間相關數據。
    • 與 CNN 的主要區別:RNN 不處理固定大小的數據塊,而是將向量作為輸入和輸出,且輸出受輸入的整個歷史影響,意味著 RNN 能夠理解時間特性或維持狀態。
    • 物聯網中的價值:特別適用於時間相關數據序列,例如描述圖像中的場景、情感分析、視頻流分類、工廠自動化系統的故障預測、感測器數據異常評估和音頻數據模式檢測。
    • 神經元結構:表現為自我循環,本質上是一個可以追溯到過去的狀態集合。
    • 挑戰:比 CNN 更難訓練,且容易出現「梯度消失問題」,因為 RNN 的深度可以追溯到許多迭代。
    • 解決方案:
      • ReLU 激活函數:提供 0 或 1 的結果,不易出現梯度消失。
      • 長短期記憶(LSTM):由閘門結構組成(遺忘門、輸入門、輸出門),控制信息流並保存狀態信息,解決了梯度消失問題,使 RNN 得以訓練。
        • LSTM 細胞在單元內存中捕獲錯誤,稱為「常數誤差傳播」,允許錯誤長時間反向傳播。
    • 應用案例:信號分析(例如檢測工業設備的異常波形以預測故障),以及醫療保健中的感測器融合(匯總多個傳感器數據預測患者健康狀況)。
    • 注意事項:RNN 雖然擅長推斷時間序列數據,但可能表現混亂且難以訓練。
  • 物聯網的訓練與推理
    • 神經網絡在感知、模式識別和分類方面具有顯著優勢,但主要取決於訓練以開發低損耗、無過度擬合且性能足夠的模型。
      • 在物聯網領域,延遲和資源限制是關鍵問題。
    • 訓練:
      • 資源密集:需要大量計算資源和硬件加速器(如 GPGPU 和 FPGA),因此應在雲端進行。
      • 雲端優勢:雲端可以提供計算資源來創建測試集,並允許一次訓練後部署到許多地方。
      • 邊緣報告:當模型失效或出現新數據需要重新訓練時,邊緣設備應向雲端報告。
      • 地域訓練:可以考慮基於偏置區域進行訓練,使特定區域的霧節點對環境模式更敏感。
      • 成功訓練模型通常需要數千到數百萬張圖像。
    • 推理:
      • 邊緣設備適用:邊緣設備更適合以推理模式運行經過訓練的模型,因為它們資源有限。
      • 模型大小:大型 CNN(如 AlexNet)參數眾多,佔用大量內存並執行大量浮點運算。
      • 邊緣優化技術:降低精度、修剪和對圖像數據進行首次運行啟發式分析,以及數據準備(如僅傳輸特定條件數據、縮減/裁剪數據、將數據強制轉換為灰度以減少流量)。

物聯網數據分析和機器學習比較與評估

  • 機器學習算法在物聯網中佔有一席之地,特別是在有大量串流數據需要產生有意義結論時。
    • 對於小規模感測器集合或延遲敏感的邊緣應用,簡單的規則引擎可能已足夠。
    • 當涉及大量非結構化數據和即時分析時,則需要考慮機器學習解決困難問題。
  • 部署機器學習分析的提示和提醒:
    • 訓練階段:
      • 隨機森林使用套袋技術創建集合,並最大化決策樹數量。
      • 注意過度擬合,可使用正規化或注入噪音來增強模型。
      • 不要在邊緣訓練。
      • 注意梯度下降問題,RNN 自然容易受到影響。
    • 現場模型:
      • 使用新的數據集更新模型,保持訓練集最新。
      • 運行在邊緣的模型可以由更大、更全面的雲模型加強。
      • 通過節點修剪和降低精度等技術,可在雲和邊緣優化神經網絡執行,損失最小。

results matching ""

    No results matching ""