- 邊緣人工智能
- (英)丹尼爾·西圖納亞克 (美)珍妮·普朗克特
- 5641字
- 2025-08-07 15:35:36
1.1 關鍵術語定義
每個科技領域都有自己的流行術語分類,邊緣人工智能也不例外。事實上,邊緣人工智能是由兩個流行術語(邊緣計算和人工智能)融合的一個更強大的術語。它經常和它的“兄弟姐妹”嵌入式機器學習和微型機器學習(TinyML)一起出現。
在繼續學習之前,我們最好首先花些時間定義這些術語并理解它們的含義。既然它們是復合流行術語,那么讓我們先聊聊最基本的術語。
1.1.1 嵌入式
什么是“嵌入式”?這可能是我們在所有試圖描述的術語中最為熟知的。嵌入式系統是控制各種物理設備電子模塊的計算機,從藍牙耳機到現代汽車發動機的控制單元。嵌入式軟件則是運行在它們上面的軟件。圖1-1展示了一些現實中的嵌入式系統。
嵌入式系統可以是簡單且平常的,如控制數碼手表的微型控制器;也可以是大型且復雜的,如智能電視內的嵌入式Linux計算機。與筆記本計算機或智能手機等通用計算機不同,嵌入式系統通常用于執行一項特定的專用任務。
由于嵌入式系統為我們的大部分現代技術提供支持,因此它的應用非常廣泛。事實上,2020年有一種嵌入式處理器售出了280億個[1]。這些嵌入式處理器位于我們的家中、車里,以及工廠和城市街道。很可能離你只有幾米遠的地方就存在嵌入式系統。

圖1-1:嵌入式系統出現在我們世界的每個角落,包括家庭和辦公地點
嵌入式系統通常能夠反映其部署環境的約束。例如,許多嵌入式系統需要使用電池供電,因此它們的設計考慮到了能源效率(即能效)——也許是內存有限或時鐘頻率極低。
嵌入式系統編程,即編寫能夠執行所需任務并充分利用有限資源的軟件,是一門駕馭這些(環境)約束的藝術,這可能非常困難。嵌入式系統工程師是現代世界的無名英雄。如果你恰好是其中之一,感謝你的辛勤工作!
1.1.2 邊緣端和物聯網
計算機網絡的歷史演進是一場宏大的拉鋸戰。在最初的系統中,個人計算機的空間計算規模本質上是集中的。只存在一臺機器,并且這臺機器完成了所有的工作。
然而最終,計算機被連接到終端(如圖1-2所示),這些終端接管了它們的一些職責。大部分計算都是在中央主機上進行的,但一些簡單的任務——比如弄清楚如何在陰極射線管屏幕上渲染字母——則是由終端的電子設備完成的。

圖1-2:大型計算機執行大部分計算,簡易型終端處理輸入、打印輸出以及渲染基本圖形
隨著時間的推移,終端變得越來越復雜,接管了越來越多以前由中央計算機負責的功能。個人計算機被發明出來后,小型計算機甚至無須連接到另一臺機器就可以完成工作。這些設備就被拉到了其對立面——從網絡中心到網絡邊緣。
互聯網以及網絡應用程序和服務的發展,使得人們可以做一些很酷的事情——從觀看流媒體視頻到進行網絡社交。所有這一切都取決于計算機與服務器的連接,服務器已經逐漸接管了越來越多的工作。在過去十年里,大部分計算機又再次變得中心化——這次是在“云”上。當互聯網崩潰時,我們的計算機就沒什么用處了!
但我們用來工作和娛樂的計算機并不是我們唯一的聯網設備,實際上,據估計在2021年有122億各類物品連接到互聯網上創造并消費數據[2]。這個龐大的物體網絡被稱為物聯網(IoT),它包括你能想到的一切:工業傳感器、智能冰箱、聯網安全攝像頭、私人汽車、集裝箱、健身追蹤器和咖啡機。
1982年創建了第一個物聯網設備。卡內基梅隆大學的學生將可樂自動售貨機連接到ARPANET(https://oreil.ly/B510Z)——互聯網的前身——因此他們可以在不離開實驗室的情況下檢查它是不是空的。
所有這些設備都是嵌入式系統,其中包含運行嵌入式軟件的微處理器。由于它們位于網絡的邊緣,因此我們也可以稱其為邊緣設備。在邊緣設備上執行計算被稱為邊緣計算。
邊緣并不是一個地方,它更像是一個廣闊的地區。網絡邊緣的設備可以相互通信,也可以與遠程服務器通信。甚至存在服務器位于網絡的邊緣。圖1-3顯示了其外觀。

圖1-3:網絡邊緣的設備可以與云、邊緣基礎設施以及彼此之間進行通信。邊緣應用程序通常跨越圖中的多個位置(例如,數據可以從配備傳感器的物聯網設備發送到本地邊緣服務器進行處理)
處于網絡邊緣有一些主要好處。首先,網絡邊緣是所有數據的來源!邊緣設備是我們連接互聯網和物理世界的紐帶。它們可以使用傳感器根據周圍發生的情況收集數據,比如跑步者的心率或冷飲的溫度。它們可以根據本地數據做出決策,并將其發送到其他位置。邊緣設備可以訪問其他設備無法訪問的數據。
移動電話和平板計算機是邊緣設備嗎?
作為存在于網絡邊緣的便攜式計算機,手機、平板計算機甚至個人計算機都是邊緣設備。手機是最早采用邊緣人工智能的平臺之一:現代手機用其實現多種功能,從語音激活到智能攝影[3]。
稍后我們將回到邊緣設備(因為它們是本書的重點)。在此之前,讓我們繼續定義一些術語。
1.1.3 人工智能
這是一個很大的主題。人工智能(AI)是一個非常大的概念,很難定義。從很早開始,人類就夢想著創造智能實體來幫助我們生存。在現代世界中,我們夢想著機器人助手來幫助我們冒險:超級智慧的頭腦將解決我們所有的問題,奇跡般的企業產品將優化我們的業務流程。
但是,要定義人工智能,我們必須定義智能,而事實證明智能是特別困難的。智能代表著什么?這是否代表著我們可以交談或思考?顯然不是——就像黏菌(如圖1-4所示),作為一種沒有中樞神經系統的簡單生物,卻能夠解決迷宮難題。

圖1-4:黏菌是單細胞生物,已被證明能夠通過生物計算過程解決迷宮難題以定位食物,如“Slime Mould Solves Maze in One Pass Assisted by Gradient of Chemo-Attractants”所展示的(https://oreil.ly/Ecrq9)(Andrew Adamatzky,arXiv,2011)
我們不會花費大量時間來全面討論智能這個話題。相反,我們只提出一個簡單的定義:
智能意味著知道在正確的時間做正確的事情。
這種說法可能經不起學術辯論,但我們可以暫時先這樣理解。它給了我們一個探索該話題的工具。根據我們的定義,以下是一些需要智能的任務:
●當鏡頭里有動物時拍照。
●當司機即將撞車時踩剎車。
●當機器有異響時通知操作員。
●用相關知識回答問題。
●為音樂表演創作伴奏。
●當有人想洗手時打開水龍頭。
這些問題都涉及一個動作(如打開水龍頭)和一個先決條件(如當有人想洗手時)。在設定的場景下,這些問題聽起來相對簡單——但是,使用過機場洗手間的人就會知道,解決上述問題并不是那么容易。
對于大多數人來說,完成這些任務都很容易,因為人類是具有一般智力的高能力生物。但更小的智能系統也有可能執行這些任務。以黏菌為例,即使它并不明白為什么要解開一個迷宮,也能夠完成這項任務。
這意味著黏菌可能也并不知道什么時候應當打開水龍頭。簡單來說,執行單一、明確的任務(比如打開水龍頭)要比執行一系列完全不同的任務容易得多。
前人幾十年的失敗經驗告訴我們,創造一個與人類相當的人工智能是十分困難的。但是創造一些類似黏菌的智能體就容易多了。例如,理論上防止司機撞車是一項相當簡單的任務。如果你同時知道它們的當前速度以及它們與墻的距離,那么就可以用簡單的條件邏輯來實現這個任務:

顯然,這個簡化的示例沒有考慮多種因素。但復度雜更高的、基于這種條件邏輯且配備駕駛員輔助系統的現代汽車,都可以被稱為人工智能[4]。
此處有兩點需要說明:第一,智能很難被定義,許多相當簡單的問題都需要一定程度的智能才能解決;第二,實現這種智能的程序不一定要特別復雜,有些問題的復雜程度同黏菌差不多。
那么,什么是人工智能?簡而言之,它是一種根據某種輸入做出智能決策的人工系統。創造人工智能的一種方法是機器學習。
1.1.4 機器學習
從本質上講,機器學習是一種通過算法計算數據來自動發現世界運行規律的方法。
我們經常聽到人工智能和機器學習可以互換使用,把兩者混為一談。但嚴格來說并非如此,人工智能并不總是涉及機器學習,機器學習也不總是涉及人工智能。兩者其實是互為補充的。
介紹機器學習的最好方法是利用實例。想象一下,你正在制作一個健身追蹤器,這是一種運動員可以佩戴的小腕帶,它包含一個加速度計,可以顯示任意時間點每個軸(x、y和z)上加速度的值,如圖1-5所示。

圖1-5:以6.25 Hz采樣的三軸加速度計的輸出
為了幫助運動員,你需要自動記錄他們正在進行的活動。例如,一個運動員可能會在周一花一個小時跑步,然后在周二花一個小時游泳。
由于我們游泳時的動作與跑步時的動作有很大的不同,你可以根據腕帶上加速度計的輸出來推斷出具體的動作。為了收集數據,你可以將腕帶發給十幾個運動員,讓他們進行特定的活動——例如游泳、跑步或什么都不做——同時用腕帶記錄數據(如圖1-6所示)。
現在獲取到了數據集,你希望嘗試確定一些規則來幫助你判斷某個特定運動員是在游泳、跑步還是在放松。一種方法是手動分析和檢查數據,看看是否有什么特別之處。也許你會注意到,跑步時某一特定軸上的加速度要比游泳更快。你可以使用此特征編寫具有一定邏輯的代碼,從而根據該軸的變化情況確定運動員的活動。
手動分析數據可能很棘手,通常需要該領域的專業知識(比如運動中的人體動作)。而另一種方法則是使用機器學習。

圖1-6:三軸加速度計的輸出顯示了與圖1-5不同的活動,每種活動都可以用每個軸上的加速度隨時間變化的模式來描述
使用機器學習的方法將所有運動員的數據輸入訓練算法中,當獲取到加速度計數據以及運動員目前正在進行的活動的相關信息時,算法會盡力學習兩者之間的映射關系,這種映射稱為模型。
如果訓練成功,你的新機器學習模型就有可能通過一個全新的、從未見過的輸入(一個來自特定時間窗口的加速度計數據樣本)來推斷出運動員正在進行的活動,這個過程被稱為推理。
這種理解新輸入的能力被稱為泛化。在訓練過程中,模型學習了跑步和游泳的不同特征。然后,就像使用前面提到的條件邏輯一樣,你可以在自己的健身追蹤器中使用該模型來理解新的數據。
機器學習算法有很多,每個算法都有自己的優點和缺點——而機器學習并不總是針對這項工作的最佳工具。稍后,我們將討論機器學習最有幫助的場景。但一個很好的經驗法則是,當我們的數據很復雜時,機器學習真的會“發光”。
1.1.5 邊緣人工智能
毫無疑問,邊緣人工智能(Edge AI)是邊緣設備和人工智能的結合。
正如我們前面所討論的,邊緣設備是在數字世界和物理世界之間提供鏈接的嵌入式系統。它們通常配備傳感器,通過傳感器獲取附近環境的信息。
數據是現代經濟的命脈,貫穿于我們的基礎設施中,使組織能夠正常運作。但所有的數據都是不一樣的,從傳感器獲得的數據體量很大,但信息含量相對較低。
想象一下我們剛才描述的基于加速度計的腕帶傳感器。加速度計每秒能夠采集數百次數據。每一次采集的數據都只能反映很少有關當前正在發生的活動的信息,只有綜合成千上萬次采集的數據,才能開始理解正在發生什么。
通常,物聯網設備被視為簡單的節點,從傳感器收集數據,然后將數據傳輸到中央服務器。這種方法的問題在于,發送如此大量的低價值信息的成本非常高。不僅傳輸成本高昂,而且傳輸數據需要消耗大量能量,這對以電池供電的物聯網設備來說是一個大問題。
由于這個問題,物聯網傳感器收集的絕大多數數據通常都會被丟棄。我們正在收集大量的傳感器數據,但我們無法用它們來做任何事情。
邊緣人工智能是這個問題的解決方案。無須將數據發送到中央服務器進行處理,直接在生成數據的設備上進行處理即可。
如果仍然想向上游服務器或云報告信息,那么我們可以只傳輸重要的信息,而不必發送每一個傳感器讀數。這將節省大量的成本和能量。
有許多不同的方法可以將智能部署到邊緣。圖1-7展示了從云人工智能到完全設備智能的連續過程。正如我們將在本書后面看到的,邊緣人工智能可以分布在整個分布式計算架構中,包括邊緣的一些節點,以及本地網關或云中的其他節點。
正如我們所看到的,人工智能可以意味著許多不同的東西。它可以超級簡單:將人類的洞察力編碼在一個簡單的條件邏輯中;它也可以超級復雜:基于深度學習的最新發展。
邊緣人工智能也是如此。最基本的邊緣人工智能是在靠近數據產生處的網絡邊緣做出一些決策,但它也可以利用一些非常酷的東西。這就很好地引出了下一小節的內容。
1.1.6 嵌入式機器學習和微型機器學習
嵌入式機器學習是在嵌入式系統上運行機器學習模型的藝術和科學。微型機器學習(TinyML[5])是指在現有的、最受限制的嵌入式硬件上運行機器學習模型,比如微控制器、數字信號處理器和小型現場可編程門陣列(FPGA)

圖1-7:云人工智能和完全設備智能之間的連續過程,這六個級別的描述來自“Edge Intelligence: Paving the Last Mile of Artificial Intelligence with Edge Computing”(https://oreil.ly/8uWK-)(Zhou et.al.,Proceedings of the IEEE,2019)
當談論嵌入式機器學習時,我們通常指的是機器學習推理,即獲取輸入并做出預測的過程(例如,根據加速度計數據猜測體育活動)。訓練部分通常仍在傳統計算機上進行。
許多類型的機器學習模型都對只讀存儲器ROM(用于存儲模型)和隨機存取存儲器RAM(用于處理推理期間生成的中間結果)有很高的要求,這對在內存有限的嵌入式系統中運行這些模型提出了挑戰。
同時,許多類型的機器學習模型都是計算密集型的,因此嵌入式系統在計算能力方面的限制也會引發問題。
幸運的是,在過去的幾年里,在機器學習模型優化方面的許多進步,使得在一些非常小的、低功耗的嵌入式系統上運行大型復雜的機器學習模型成為可能。我們將在接下來的幾章中學習其中的一些技巧!
嵌入式機器學習通常與數字信號處理一起部署。在繼續學習之前,讓我們定義一下這個術語。
1.1.7 數字信號處理
在嵌入式的世界中,通常使用信號的數字表示形式。例如,加速度計提供了一串數字值,對應三個軸上的加速度;數字傳聲器提供了一串值,對應特定時刻的聲級。
數字信號處理(Digital Signal Processing,DSP)使用算法來操縱這些數據流。數字信號處理與嵌入式機器學習配合使用,在將信號輸入機器學習模型之前對其進行修改。這么做有幾個原因:
●清除噪聲信號。
●去除可能由硬件問題引起的尖峰值或異常值。
●從信號中提取最重要的信息。
●將數據從時域轉換到頻域[6]。
數字信號處理在嵌入式系統中非常常見,所以嵌入式芯片通常都有通用數字信號處理算法的超快硬件實現,以備不時之需。
我們現在對本書中最重要的術語都有了很好的理解,圖1-8顯示了它們如何在這個背景下組合在一起。

圖1-8:邊緣人工智能中一些最重要的概念及其關系——從頂部的總體概念到底部的具體技術
在下一節中,我們將深入研究邊緣人工智能,并逐步分解是什么使它成為如此重要的技術。