邊緣 AI 的應用日益普及,開發者需要一套系統化的流程來建構專案。從釐清問題、評估邊緣 AI 的適用性開始,到選擇合適的演算法和硬體平台,每個環節都至關重要。本文除了提供建構流程的框架,也以野生動物監測案例示範如何運用 BLERP 模型分析問題,評估邊緣 AI 方案的可行性。此外,文章也探討了機器學習和規則式系統的優缺點,幫助開發者根據專案需求選擇最佳方案。最後,文章也強調了倫理設計在邊緣 AI 開發中的重要性,提醒開發者在追求效能的同時,也需兼顧社會責任。

瞭解與構建問題

接下來的五章將提供一個使用邊緣 AI 的路線圖。我們將建立最佳實踐,用於:

  • 透過邊緣 AI 的視角來看待想要解決的問題
  • 建立允許訓練模型和評估演算法的資料集
  • 設計利用邊緣 AI 技術的應用程式
  • 透過迭代過程開發有效的應用程式
  • 測試邊緣 AI 應用程式,佈署它們,並在現場進行監控

本章中,我們將首先介紹一個高層次的、通用的邊緣 AI 專案工作流程。這應該能讓您瞭解所有內容如何組合在一起。然後,我們將學習如何評估專案,以確保它們適合邊緣 AI,接著走過識別哪些型別的演算法和硬體對於給定問題有意義的過程,並開始思考規劃我們的實作。

邊緣 AI 工作流程

像任何複雜的工程專案一樣,一個典型的邊緣 AI 專案涉及多個工作軌道,其中一些是平行執行的。圖 6-1 以上下文顯示了它們。

圖 6-1. 邊緣 AI 工作流程,分組為「發現」和「測試和迭代」階段

此過程可以大致分為兩個部分——在圖表中標記為發現和測試和迭代。第一部分「發現」涉及深入瞭解您要解決的問題、您擁有的資源以及可能的解決方案空間。這是您進行前期工作以確定您想要實作的目標(以及什麼是現實的)的地方。

第二部分「測試和迭代」是一個不斷改進的過程,將您從初始原型帶到生產就緒的應用程式。它跨越開發前後——在機器學習中,您的應用程式永遠不會真正完成,但需要在佈署在現場後進行監控、支援和迭代。這種持續改進發生在您專案的所有部分平行——應用程式、資料集、演算法和硬體。

此過程最重要的部分是回饋迴圈(參見圖 6-2),它實作了持續改進。您可以在專案的不同方面之間建立的回饋越多,您的專案就越成功。例如,您的模型在不同型別的資料上的效能結果可以反饋到資料收集過程中,幫助您構建一個多樣化和代表性的資料集,涵蓋潛在輸入的整個空間。

圖 6-2. 應用程式、資料集、演算法和硬體之間可能的回饋範例;四個部分將隨著專案的進行而變化和演變,任何一個方面的變化都需要反映在另一個方面

提示 管理風險是任何技術專案(可以說是任何專案)的成功的核心任務。邊緣 AI 專案由於其硬體和軟體的結合以及對複雜演算法和資料驅動開發的依賴而具有獨特的風險。在工作流程的每個階段,我們將學習可以用來將風險降至最低並提高成功機會的技術。

負責任的 AI 在邊緣 AI 工作流程中的重要性

正如我們所瞭解的那樣,AI 應用程式特別容易傳播社會危害。有許多型別的問題可能導致在現實世界中表現出乎意料地差。這使得仔細分析潛在風險及其造成危害的可能性成為邊緣 AI 開發工作流程中的關鍵部分。

僅在專案開始時進行一次倫理審查或在結束時進行最終審查是不夠的。由於在專案過程中將會有新的資訊出現,並且將會做出許多具有下游影響的決定,因此需要在整個過程中進行風險分析,讓您有時間在需要時進行修正。

理解問題與邊緣 AI 的關聯

評估一個專案是否適合使用邊緣 AI 需要深入瞭解問題本身以及邊緣 AI 能夠提供的優勢和限制。這包括考慮資料的來源、模型的複雜度、硬體的限制以及預期的應用場景等因素。

#### 內容解密:

在評估專案時,需要考慮多個因素,包括但不限於資料品質、演算法選擇、硬體限制以及預期結果。透過仔細分析這些因素,可以更好地理解如何使用邊緣 AI 來解決特定的問題。

識別適合的演算法和硬體

一旦確定了專案適合使用邊緣 AI,下一步就是識別哪些型別的演算法和硬體對於給定的問題有意義。這需要對不同的演算法和硬體平台有深入的瞭解,以及它們如何與特定的問題相匹配。

#### 內容解密:

選擇合適的演算法和硬體需要考慮多個因素,包括模型的複雜度、資料的大小和品質、硬體的處理能力和記憶體限制等。透過仔細評估這些因素,可以選擇最適合特定問題的演算法和硬體組合。

圖表翻譯: 此圖示展示了使用邊緣 AI 解決問題的基本流程。首先,需要識別出要解決的問題。接著,評估這個問題是否適合使用邊緣 AI。然後,根據問題的特性選擇合適的演算法和硬體。之後,進行實作與測試。最後,不斷迭代與改進,以確保解決方案的有效性和效率。

邊緣AI的適用性評估與倫理設計考量

在開發涉及邊緣AI的專案時,倫理設計的考量是不可或缺的一部分。這不僅是工程和產品管理工作中必要的一環,更是確保專案成功的關鍵。邊緣AI團隊最擔心的噩夢場景是問題在系統佈署到生產環境後才被發現。沒有人願意承擔產品召回或實際危害的責任。

風險分析與品質提升

透過在開發過程中考慮社會因素進行風險分析,我們能夠最大限度地在問題到達生產環境之前識別挑戰,從而提高工作品質。這種方法不僅能夠減少潛在風險,還能提升專案的整體品質。

是否需要邊緣AI?

人工智慧和邊緣計算都是複雜且成熟的技術,每項技術都涉及廣泛的考量。在使用這些技術時,需要在功能和複雜度之間進行權衡。對於許多專案而言,複雜度帶來的負擔可能會超過使用這些技術所獲得的功能上的好處。

關鍵評估因素

  1. 應用程式的具體需求:瞭解專案的具體目標和需求。
  2. 團隊技能:評估開發團隊的技術能力和經驗。
  3. 預算:考慮工程、資料收集和長期支援的可用預算。
  4. 交付時間:評估專案的時間限制。

描述問題

描述問題是判斷邊緣AI是否適合解決該問題的第一步。應該嘗試用幾句話和重點來總結問題,保持簡潔明瞭。一個好的問題描述應該包括:

  • 場景的高層次總結,包括現有的解決方案
  • 當前面臨的問題
  • 必須解決的約束條件

案例:野生動物監測中的邊緣AI應用

在「探討:利用相機陷阱監測稀有野生動物」中,我們討論了邊緣AI在野生動物監測中的潛在應用。以下是一個可能的使用案例問題描述範例:

問題描述:相機陷阱

摘要:野生動物研究人員有時需要估計偏遠地區的動物種群和活動。安裝相機陷阱是一種監測特定物種的方法。裝置通常使用被動紅外(PIR)運動感測器來檢測運動,觸發相機拍攝照片。照片儲存在記憶卡中,定期收集並由研究人員分析。

問題

  • PIR可能被非目標物種或移動的植被觸發,填滿記憶卡並降低電池壽命。
  • 在記憶卡被收集和分析之前,無法獲得動物活動資料。
  • 從偏遠地區收集記憶卡耗時且昂貴。

約束條件

  • 相機陷阱依靠電池供電,必須節能。
  • 高頻寬資料連線在現場昂貴。
  • 研究預算通常很低。

是否需要佈署到邊緣?

此時,我們非常熟悉使用BLERP模型來表達邊緣AI的好處:頻寬(Bandwidth)、延遲(Latency)、經濟效益(Economics)、可靠性(Reliability)和隱私(Privacy)。BLERP是分析問題描述和評估是否適合採用邊緣架構的完美工具。

BLERP分析:相機陷阱

頻寬

相機陷阱通常佈署在偏遠地區,連線性差,可能只有昂貴的低頻寬衛星連線選項。利用邊緣AI,可以減少拍攝的照片數量,使傳輸所有照片成為可能。

延遲

沒有邊緣AI,收集和分析相機陷阱照片的延遲可能以月計。使用邊緣AI和低功耗無線電連線,可以立即分析照片並獲得有用資訊,無需等待。

經濟效益

避免前往現場的旅程可以節省大量資金;同樣,避免因記憶卡滿而丟失重要資料也具有經濟效益。

重點摘錄

  1. 倫理設計的重要性:在開發過程中融入倫理設計考量,以減少潛在風險並提高專案品質。
  2. 評估邊緣AI的適用性:透過評估專案需求、團隊技能、預算和交付時間,判斷是否適合使用邊緣AI。
  3. BLERP模型分析:利用BLERP模型分析問題,評估邊緣AI是否能帶來頻寬、延遲、經濟效益、可靠性或隱私方面的優勢。

邊緣運算的適用性分析

在探討特定問題是否適合使用邊緣運算時,我們需要考慮多個關鍵因素。這些因素可以透過BLERP框架來評估,分別是頻寬(Bandwidth)、延遲(Latency)、經濟效益(Economics)、可靠性(Reliability)和隱私(Privacy)。本文將以兩個不同的案例來說明如何使用BLERP框架來評估邊緣運算的適用性。

案例一:山徑上的AI攝影機

假設有一款攝影機安裝在山徑上,用於監控和記錄遊客的活動。該攝影機配備了AI功能,可以分析拍攝到的照片,以判斷是否有人違規。

BLERP分析

  • 頻寬:透過邊緣運算,可以在本地端丟棄無關緊要的照片,從而減少傳輸到雲端的資料量,節省頻寬。
  • 延遲:由於分析是在本地端進行,因此可以即時處理照片,無需等待雲端回應,從而降低延遲。
  • 經濟效益:減少了資料傳輸和雲端運算的成本。
  • 可靠性:即使在網路連線不穩定的情況下,攝影機仍可繼續運作並分析照片。
  • 隱私:可以過濾掉包含人物面部的照片,以保護其他山徑使用者的隱私。

在這個案例中,邊緣運算帶來了明顯的好處,包括節省頻寬、降低延遲、提高經濟效益、增強可靠性和保護隱私。

案例二:醫學影像分析

另一個案例是醫學影像裝置,用於生成病患內部的影像。這些影像需要由受過專業訓練的醫生進行分析,以診斷某些疾病。

BLERP分析

  • 頻寬:由於影像裝置通常位於醫院內,且已有穩定的網路連線,因此減少頻寬需求的效益不大。
  • 延遲:使用AI進行初步分析可以幫助醫生更快地獲得診斷結果。
  • 經濟效益:減少對醫生時間的依賴,從而降低成本。
  • 可靠性:AI分析可以輔助醫生提高診斷的準確性。
  • 隱私:AI分析可以在一定程度上減少敏感病患資料的暴露。

儘管看似有許多誘人的好處,但進一步分析後發現,大多數好處並不需要透過邊緣運算來實作。由於影像裝置位於醫院內,且有穩定的網路連線,因此可以使用標準電腦或雲端運算來進行分析。

邊緣運算的挑戰

雖然邊緣運算在某些情況下具有明顯的優勢,但也有一些挑戰需要考慮:

  1. 開發複雜度:撰寫和維護嵌入式應用程式可能相當困難,尤其是對於資源有限的裝置。
  2. 人員配備:嵌入式開發需要特定的技能,這類別人才相對稀缺。
  3. 運算能力限制:即使是最強大的邊緣裝置,其運算能力也遠不如雲端伺服器。
  4. 佈署複雜度:更新邊緣裝置上的應用程式可能存在風險,例如裝置可能會因bug或斷電而變磚。
  5. 硬體和支援成本:佈署和支援邊緣裝置網路可能非常昂貴,尤其是需要高階硬體以支援機器學習工作負載時。
  6. 彈性:如果工作負載超出邊緣硬體的能力,或者應用程式發生重大變化,可能需要購買新硬體來替換現有裝置。

邊緣AI的實施挑戰與解決方案

在實作邊緣AI的過程中,開發者面臨著諸多挑戰,包括硬體限制、安全性以及是否需要採用機器學習等問題。

實體存取風險與雲端運算的補救

允許實體存取AI演算法的實作存在一定的安全風險。在某些情況下,使用雲端運算可以幫助降低這種風險。將運算任務分散到邊緣裝置和雲端之間,可以結合兩者的優勢,尤其是在裝置佈署於可靠連線和電力供應穩定的環境中,如家庭或工廠。

案例分析

  • 智慧音箱:在邊緣裝置上進行喚醒詞檢測,以保護隱私,同時利用強大的雲端伺服器執行大型的語音轉錄和自然語言處理(NLP)模型。
  • 工業視覺系統:在邊緣裝置上利用電腦視覺技術識別潛在的製造缺陷,實作極低的延遲,然後呼叫雲端模型對缺陷進行精確分類別並決定適當的處理措施。

是否需要機器學習?

正如我們在第一章所學到的,AI並不總是需要機器學習。機器學習演算法具有各種優缺點,使其適用於某些應用場景,但對其他場景則作用有限。

機器學習與規則式解決方案的比較

對於給定的邊緣AI問題,開發者通常需要在機器學習解決方案和根據規則或啟發式的解決方案之間做出選擇。根據規則的系統是由人類利用領域知識設計的,可以使用從基本算術到複雜物理方程的任何知識。

啟發式演算法的應使用案例項

  1. 溫度控制:水壺在溫度達到沸點時自動關閉。
  2. 醫療裝置:糖尿病胰島素泵根據血糖水平精確給予胰島素劑量。
  3. 駕駛輔助系統:利用傳統電腦視覺技術識別車道標記並使汽車保持在車道中心。
  4. 航空自動駕駛系統:飛機在國際航線上自動駕駛。
  5. 太空探索:太空火箭的導航系統。

這些例子,無論是簡單還是複雜,都依賴於領域知識。例如,胰島素泵的演算法根據對人體血糖調節系統的瞭解,而太空火箭的導航系統則根據物理學、空氣動力學以及飛行器的操控特性。

規則式系統的優點

規則式系統的極限是已知的,這意味著它們的有效性可以被證明。啟發式演算法根據對系統的深入理解,可以透過數學公式來描述。這使得它們可靠、可信且安全。

程式碼範例與解析

def temperature_control(current_temperature, boiling_point=100):
    """
    簡單的水壺溫度控制模擬
    
    :param current_temperature: 目前溫度
    :param boiling_point: 沸點,預設為100°C
    :return: 是否應該關閉水壺
    """
    if current_temperature >= boiling_point:
        return True  # 達到沸點,關閉水壺
    else:
        return False  # 未達到沸點,繼續加熱

# 使用範例
current_temp = 95
if temperature_control(current_temp):
    print("水壺已達沸點,關閉加熱。")
else:
    print("水壺未達沸點,繼續加熱。")

內容解密:

此程式碼模擬了一個簡單的水壺溫度控制系統。它接受目前溫度和沸點作為輸入,並根據目前溫度是否達到或超過沸點來決定是否關閉水壺。這個例子展示瞭如何使用簡單的規則來控制物理裝置。

為何選擇規則式系統?

如果問題存在根據規則的解決方案,那麼幾乎可以肯定應該選擇它。許多問題可以使用規則和啟發式方法優雅地解決,這些方法比機器學習替代方案更容易開發、支援和解釋,而且對計算資源的需求也較低。

規則式系統的侷限性

然而,並非所有問題都可以用根據規則的演算法解決。有些問題由於規則過於複雜或變數過多,難以用規則式系統處理。例如,具有高維度和雜訊的影像資料就很難用數學方程描述。

圖表說明:規則式系統與機器學習的比較

圖表翻譯: 此圖表展示了在面臨一個問題時,如何決定採用規則式系統還是機器學習方案。如果問題適合使用規則式系統,則開發並測試該系統;否則,考慮採用機器學習方案,包括資料收集和模型訓練。最終,無論採用哪種方案,都需要將解決方案佈署到實際環境中。

總之,在實作邊緣AI時,開發者需要根據具體問題選擇合適的方法。如果問題可以透過根據規則的系統解決,那麼這種方法通常更可靠、更高效。然而,當面臨複雜或高維度的問題時,機器學習可能是更好的選擇。

機器學習的優勢與挑戰

在處理複雜問題時,根據規則的演算法可能需要大量的研究、領域知識和工程技能。這些條件並非總是能夠滿足,因此,啟發式方法的弱點為機器學習(ML)提供了發展機會。

使用機器學習的理由

根據規則的系統通常依賴對其互動過程的科學理解,而機器學習演算法則可以透過接觸資料本身來學習變數之間的近似關係。這無疑可以使生活變得更加輕鬆。以下是一些值得考慮使用機器學習的情況,按其合理性排序:

  1. 情況和資料過於複雜或雜亂,難以透過傳統方法建模
  2. 需要進行大量的基礎研究才能找到根據規則的解決方案
  3. 缺乏實作根據規則系統所需的領域專業知識

如果您處於其中一種情況,機器學習可以提供巨大的幫助。

人工鼻的案例

IoT工程師Benjamin Cabé希望建立一個人工鼻——一種可以透過氣味識別物體和物質的裝置。他最初的目標是區分不同型別的酒精飲料:伏特加、朗姆酒和蘇格蘭威士忌。Benjamin使用了一個廉價的氣體感測器來測量多種不同型別氣體的水平。要建立一個根據規則的演算法來區分這些飲料,他需要對各種飲料進行化學分析,瞭解其成分,然後從中確定要檢測哪些氣體。此外,他還需要考慮環境中可能存在的其他氣體,因為它們可能會導致假陽性。

幸運的是,Benjamin對機器學習足夠熟悉,他知道機器學習可能會有所幫助。他使用氣體感測器捕捉了幾種不同型別飲料的小型資料集,並利用這些資料訓練了一個簡單的機器學習分類別模型,以識別哪些氣體讀數與哪種飲料相關聯。該專案取得了成功!

Benjamin的系統能夠區分不同型別的飲料,甚至可以區分不同品牌的威士忌。機器學習從資料中提取規則的能力使Benjamin能夠在不必投資進行飲料化學分析的情況下成功完成專案。

機器學習的優勢

  1. 能夠處理雜亂資料:機器學習,尤其是深度學習模型,能夠在給定足夠資料的情況下學會過濾噪聲,提取重要資訊。
  2. 識別隱藏模式:機器學習模型擅長識別訓練資料中的隱藏模式,這些模式可能對人類來說是不可見的,或者太複雜而無法用手寫規則表示。

機器學習的缺點

  1. 資料需求:機器學習嚴重依賴資料,需要大量資料來訓練和測試模型。找到足夠的資料並確保其品質是機器學習面臨的最大挑戰和開銷。

    # 示例:資料預處理
    import pandas as pd
    
    # 假設我們有一個名為data.csv的資料檔案
    data = pd.read_csv('data.csv')
    
    # 資料清洗和預處理
    data.dropna(inplace=True)  # 刪除缺失值
    data = data[data['feature'] > 0]  # 篩選資料
    
    #### 內容解密:
    # 這段程式碼展示瞭如何使用pandas函式庫讀取csv檔案並進行基本的資料清洗。
    # 首先,我們匯入pandas函式庫並讀取名為'data.csv'的檔案。
    # 然後,我們刪除包含缺失值的行,並篩選出'feature'欄位大於0的資料。
    # 這樣的預處理步驟對於確保資料品質至關重要。
    
  2. 可解釋性:許多機器學習模型,尤其是深度學習模型,很難解釋為什麼會做出特定的預測。模型的機率性質使得其輸出具有一定的模糊性。

@startuml skinparam backgroundColor #FEFEFE skinparam componentStyle rectangle

title 邊緣AI專案建構與實務應用

package “邊緣 AI 專案建構” { package “發現階段” { component [問題定義] as problem component [適用性評估] as assess component [BLERP 分析] as blerp }

package "迭代開發" {
    component [演算法選擇] as algo
    component [硬體匹配] as hw
    component [回饋迴圈] as feedback
}

package "倫理設計" {
    component [風險分析] as risk
    component [公平性審查] as fair
    component [社會責任] as social
}

}

problem –> assess : 可行性 algo –> feedback : 持續改進 risk –> fair : 負責任 AI

note bottom of blerp 頻寬/延遲/經濟 可靠度/隱私 end note

collect –> clean : 原始資料 clean –> feature : 乾淨資料 feature –> select : 特徵向量 select –> tune : 基礎模型 tune –> cv : 最佳參數 cv –> eval : 訓練模型 eval –> deploy : 驗證模型 deploy –> monitor : 生產模型

note right of feature 特徵工程包含:

  • 特徵選擇
  • 特徵轉換
  • 降維處理 end note

note right of eval 評估指標:

  • 準確率/召回率
  • F1 Score
  • AUC-ROC end note

@enduml


3. **偏差**:機器學習模型的表現高度依賴於其訓練資料。如果訓練資料存在偏差,模型可能會繼承這些偏差,導致不公平或錯誤的結果。

總之,機器學習提供了一種強大的工具,能夠處理複雜、雜亂的資料,並識別其中的隱藏模式。然而,它也面臨著諸如資料需求、可解釋性和偏差等挑戰。瞭解這些優勢和挑戰對於有效地應用機器學習技術至關重要。