# 【簡報導讀-005】終端裝置微型機器學習:從演算法到技術  **為了方便大家快速理解,以下內容使用 Google NotebookLM 產生相關文字及語音解說,如想深入了解的朋友可參考原始來源。** **原始Youtube影片: "[EDGE AI TALKS: On-device Tiny Machine Learning: From Algorithm to Technology](https://youtu.be/05U8b4myIe0)"** 影片上傳日期: 2025/6/24 主要講者: Manuel Roveri 主題: 終端裝置微型機器學習:從演算法到技術 {%youtube 05U8b4myIe0%} ## Podcast 雙人對話式 Podcast 重點摘要: {%youtube 0O0hoSwdSGQ%} ## 簡報摘要 本日簡報的核心主題是由 Manuel Roi 介紹的裝置內微型機器學習 (On-device Tiny Machine Learning),副標題為「從演算法到技術,再回來」。 ### 1. 什麼是裝置內微型機器學習 (What is On-device Tiny Machine Learning)? * 定義: 微型機器學習通常指「永遠開啟的機器學習」(always-on machine learning)。與傳統的機器學習不同,微型機器學習將模型直接部署到微型裝置上,並在裝置上執行推理。 * 硬體與軟體整合:硬體: 包含感測器(從環境中獲取數據)和致動器(將系統反應傳播回環境)。 * 運算、通訊、儲存: 裝置內的硬體能力。 * 軟體: 來自感測器的數據經過預處理(去噪、突出相關特徵),然後傳遞給直接在裝置上運行的機器學習/深度學習演算法。 * 「永遠開啟」的特性: 數據持續透過感測器獲取、處理並做出決策,然後透過致動器執行決策,形成一個持續運作的閉環系統。 * 應用實例: 語音偵測(如喚醒詞)、人物偵測、物體偵測、手勢識別、人類活動識別等。 ### 2. 裝置內微型機器學習的六個層次 簡報區分了機器學習處理的六個不同層次,其中「加一」層指的是傳統的雲端處理(訓練和推理都在雲端進行),這不是本次簡報的重點。 * 層次三 (Level 3) - 現狀:訓練通常在雲端(或高性能電腦)進行。 * 推理在終端裝置上執行。 * 引用: 「這就是我會說是現在 tiny 的現狀。」(Manuel Roi) * 層次六 (Level 6) - 最具挑戰性:訓練和推理都直接在裝置上執行。 * 這是本次簡報的重點和目標。 * 引用: 「但今天我們將討論第六級,這是最具挑戰性、最雄心勃勃的一級,我們在裝置上進行訓練和推理。」(Manuel Roi) ### 3. 為何需要裝置內微型機器學習 (Why On-device Machine Learning)? 3.1 僅裝置內推理 (Level 3 - Inference Only) 的優勢: * 提高裝置自主性: 裝置不僅能獲取數據,還能在本地做出決策。 * 降低延遲: 無需將數據傳輸到雲端,決策在本地即時完成,避免了不可預測的網路延遲。 * 減少傳輸頻寬: 無需將所有原始數據傳輸到雲端,只需定期傳輸統計數據或高階特徵。 * 提高能源效率: 本地處理比數據傳輸更節能。 * 增強安全與隱私: 個人數據保留在裝置上,不需上傳。 * 促進生態系統: 多個裝置可以協同合作做出決策。 3.2 裝置內訓練 (Level 6 - On-device Training) 的必要性: 裝置內訓練能支持模型隨時間推移進行「適應」(adaptation),這對於現實世界的應用至關重要。適應性可從四個方面來解釋: * 環境層面的適應:裝置操作環境的變化(如溫度、光照、濕度)。 * 引用: 「如果我們的裝置在夏天的環境中獲取數據,然後我們在夏天獲取的數據上訓練模型,但之後我們想在冬天使用我們的裝置,包括我們訓練的模型,那麼我們就需要讓我們的系統能夠在冬天獲取數據,然後相應地調整模型。」(Manuel Roi) * 系統層面的適應:系統與環境互動方式的變化(如感測器故障或熱降解)。 * 引用: 「系統層面的適應意味著我們希望能夠適應影響系統與環境之間互動的變化,例如,如果我們的感測器可能出現故障或感測器遭受熱降解,那麼我們就需要調整我們的模型以適應系統與環境之間的互動在操作壽命期間會發生變化。」(Manuel Roi) * 任務層面的適應:在裝置上增加新的識別類別。 引用: 「設計一個能夠識別四個不同分類問題類別的系統,然後在裝置上我們想要再增加一個類別。」(Manuel Roi) 使用者層面的適應:將通用模型針對特定使用者進行客製化(如醫療裝置)。 * 引用: 「通用模型可以根據特定用戶的數據進行客製化。」(Manuel Roi) ### 4. 裝置內微型機器學習的技術挑戰:資源限制 儘管裝置內訓練具有上述優勢,但必須面對嚴峻的技術限制,尤其是在運算、記憶體和能源方面。 * 極端記憶體限制:例如,Arduino Nano 33 IoT 的主記憶體僅有 32 KB。 * 這 32 KB 必須儲存韌體數據、預處理數據、模型權重、輸入數據、中間活化值等所有必需資訊。 * 引用: 「Arduino Nano 33 IoT 的主記憶體只有 32 KB,但最終我們知道在我們 32 KB 的主記憶體中,我們需要儲存處理所需的一切:韌體數據、與預處理相關的數據、模型的權重、處理輸入數據等等。」(Manuel Roi) * 數據儲存問題:在雲端訓練時,訓練數據集的大小通常不是問題(越大越好)。 * 在裝置上,由於記憶體限制,數據量必須受限。 * 數據量範例:1 秒的 3D 加速度計數據(1 kHz 採樣,浮點):12 KB。 * 2 秒的立體音頻(8 kHz 採樣):128 KB。 256x256 RGB 圖像:接近 200 KB(遠超裝置記憶體)。 * 引用: 「256x256 RGB 圖像,這需要略低於 200 KB,這遠遠超出了我們擁有的記憶體。」(Manuel Roi) * 模型記憶體與運算需求:捲積層: 需要儲存濾波器權重,以及輸入和輸出特徵圖的記憶體。運算量大。 * 全連接層: 權重數量等於神經元連接數,運算量也大。 * LeNet 範例: 一個簡單的捲積神經網路,其總體記憶體佔用約 260 KB,運算量約 40 萬次乘加運算 (MAC)。 * 總記憶體佔用: 不僅是權重,還包括輸入數據和中間活化值,總計可達 300 KB 以上。 * 引用: 「在像這樣的一個捲積神經網路中,大部分記憶體都與最終的全連接層相關,而不是與權重相關,但總體記憶體佔用約 260 KB,運算量約 40 萬次乘加運算。這只是與權重相關的記憶體,但之後我們還有與輸入相關的記憶體,還有與中間特徵圖相關的記憶體,即活化記憶體佔用,如果我們將所有東西加起來,這不僅是權重,還包括輸入和活化,我們將達到約 300 KB,乘加運算次數為 415,如我所說的 415 千次乘加運算。」(Manuel Roi) ### 5. 如何實現裝置內微型機器學習 (How to Implement On-device Tiny Machine Learning)? 為了有效地實現裝置內學習,簡報提出了三種不同的視角,從裝置內推理到裝置內個性化,最終實現真正的裝置內學習。 5.1 裝置內推理 (On-device Inference) - Level 3: * 流程: 模型在雲端訓練,生成最佳參數後,部署到裝置上進行推理。 * 主要特點: 模型行為不可變,部署後不會隨時間改變。 優勢: 設計者和製造商對裝置的預期行為有明確的掌握。 * 劣勢: 無法適應、微調或個人化以適應特定使用者或環境。 * 優化目標: 最小化模型的記憶體和運算需求。 * 優化技術:編譯時 (at design time) 優化: 定點或變數量化、結構化/非結構化剪枝、稀疏化等。 * 運行時 (at runtime) 優化:自適應量化 (Adaptive Quantization): 根據輸入數據在運行時選擇最合適的量化級別(例如 8-bit、4-bit),以最大限度地減少浮點運算,同時保持準確性。 * 引用: 「如果輸入數據簡單易於分類,那麼我們可以使用非常深的量化,而如果輸入數據複雜,因為資訊量很大且不清楚,那麼我們可能需要粗粒度,因此部分處理可以在浮點數中進行。」(Manuel Roi) * 提前退出網路 (Early Exit Networks): 在模型中加入中間分類器。如果某個中間分類器對分類結果有足夠的信心,則可以提前終止後續運算,從而節省運算和能源。 引用: 「如果處理到某個階段,該階段的分類器對分類有足夠的信心,那麼它可以跳過其餘的執行。這就是想法,我們可以在處理的不同階段放置幾個提前退出分類器,一旦其中一個分類器對分類有足夠的信心,它就可以跳過其餘的執行,從而節省運算和能源。」(Manuel Roi) 5.2 裝置內個人化 (On-device Personalization): a. 流程:設計階段:在雲端訓練通用模型。 b. 初始數據獲取:裝置啟動後,獲取少量裝置內訓練數據 (p 樣本)。 c. 個人化階段:利用裝置內學習演算法,結合初始模型參數和裝置內訓練數據,生成客製化的模型參數。 d. 隨後:裝置將使用新的客製化參數執行推理。 * 記憶體與運算需求: 運行時記憶體佔用是模型、測試集、裝置內訓練集以及裝置內學習演算法所需記憶體的最大值。 * 目標: 最大化個人化階段收集的數據量 (p),以實現更好的個人化,同時滿足記憶體限制。 * 挑戰:需要監督資訊來支持個人化。 * 必須確保個人化後的模型效能優於原始模型。 * 實際應用範例: 醫療裝置分析患者血糖。通用模型在大量患者數據上訓練,然後針對特定患者的初始數據進行微調,以生成為該患者量身定做的模型,並確保其醫學上的可行性。 * 引用: 「我們從一個在大量患者數據上訓練的通用模型開始,然後根據在初始個人化階段獲取的數據選擇了一個特定模型,以確保所選模型是可行的。」(Manuel Roi) 5.3 真正的裝置內學習 (True On-device Tiny Machine Learning): * 目標: 實現裝置上的持續訓練和推理。 * 兩種實現方式:簡易方式 (Easy Way) - 參數微調:模型持續從裝置內訓練集獲取數據,並透過裝置內適應演算法實時調整模型參數。 * 開發了一種增量式微型機器學習框架,可將靜態網路轉換為增量式裝置內版本,並自動計算特徵結構、分類器和緩衝區大小,以適應記憶體限制,甚至生成 C 語言程式碼。 * 引用: 「我們設計並實施了一個增量式微型機器學習框架,它允許我們從一個靜態網路開始,並結合一些記憶體限制,它會自動計算一個增量模型,該模型可以創建一個靜態網路的增量版本,生成特徵結構、有限分類器、緩衝區大小,這些都與記憶體限制適當地調整,以及為我們的用戶提供的程式碼。」(Manuel Roi) * 複雜方式 (Complex Way) - 模型結構更新:不僅更新權重,還動態改變神經網路的結構。 * 主要挑戰:裝置內訓練集: 通常是最大的記憶體問題,且需要監督資訊。 * 監督資訊的獲取: 昂貴、耗時或需要使用者參與,使用者可能不願頻繁提供標註。 * 引用: 「我們需要監督資訊來支持訓練。關於監控,我們需要了解何時進行適應。」(Manuel Roi) * 何時進行適應 (When to Adapt):被動方法 (Passive Approach): 收到新輸入時持續適應模型。適用於增量或漸進式概念漂移。 * 主動方法 (Active Approach): 僅在模型效能下降或偵測到重大變化時才觸發適應。此時需移除過時的知識,僅專注於新數據。 * 引用: 「在被動適應中,我們不斷適應我們的數據,如果我們偵測到我們目前面臨的數據與用於訓練模型的數據之間存在巨大差距,例如類別發生了切換,或者感測器發生故障導致了突然的變化,那麼我們就需要啟動主動方法。」(Manuel Roi) * 變化偵測技術 (Change Detection Tests): 統計技術,用於序列分析數據並識別變化點(如分類錯誤率的增加),甚至可以回溯找到變化發生的起始點,以便只用最近的相關數據重新訓練模型。 * 模型演化: 裝置上的模型演化應該是可控的。當數據量少時,模型應簡單;隨著新數據的累積,模型應能擴大以提高準確性。 * 顯式模型選擇的困難: 在裝置上測試不同的模型配置非常困難,因為資源受限。 * 缺少驗證集: 裝置上通常沒有驗證集來進行模型選擇。 * 監督資訊的需求: 仍然需要監督資訊來指導學習。 * 神經架構搜索 (Neural Architecture Search, NAS): 一種元學習技術,旨在考慮記憶體和運算等技術限制,自動設計最佳神經網路架構,甚至考慮模型在未來的演化。 * 引用: 「我們正在設計考慮技術限制的神經架構搜索。神經架構搜索是一種元學習技術,它允許我們不僅識別權重,還識別神經網路的最佳架構。」(Manuel Roi) ## 6. 未來展望與挑戰 * 監督資訊的角色:監督資訊對於模型更新至關重要。 * 但獲取監督資訊通常昂貴、耗時或需要使用者參與。 * 解決方案: 研究半監督學習 (semi-supervised learning) 和主動學習 (active learning) 機制,以最大化非監督數據的使用,並最小化要求專家標註數據的時間。 * 引用: 「這就是為什麼我們目前正在研究或值得研究半監督或主動學習機制,在這些機制中,你希望最大化非監督數據的數量,並且你希望最小化你需要專家標註數據的時間。」(Manuel Roi) * 硬體的角色:硬體是遊戲的一部分,不能忽視其限制。 * 未來,推理和學習將涉及「運算連續體」(computing continuum),從感測器內部到嵌入式、邊緣再到雲端,需要分佈式學習。 * 引用: 「硬體是遊戲的一部分,如我們所說,我們不能忽視最終有硬體的事實,在這種觀點下,我個人的看法是,這種推理,特別是學習,將包含一個運算連續體視角,因此從感測器內部,然後上升到嵌入式、邊緣,然後到雲端,我們不僅需要分佈推理,還需要分佈學習。」(Manuel Roi) * 模型演化的引導與保證:如果支持裝置內適應,必須引導模型演化,以避免適應後的模型比原始模型更差。 * 需要保證適應後的模型至少與預期一樣好。 * 引用: 「如果我們支持裝置內適應,我們需要保證,我們需要引導我們如何讓我們的模型演變,否則我們將會遇到可能的與個人化模型,適應模型比原始模型更差的事實相關的問題。」(Manuel Roi) ### 7. 問答環節精華 * 置內訓練是否節能?訓練本身比推理更耗能。 * 然而,如果裝置內訓練能避免將數據傳輸到雲端,則整體上可能更節能,因為數據傳輸通常非常耗能。 * 引用: 「訓練肯定在某些情況下比僅推理更耗能。這裡的重點是,如果我們能夠支持裝置內訓練,我們可以跳過傳輸的執行,這樣可以跳過傳輸的執行,這通常非常耗能。」(Manuel Roi) * Level 6 如何獲取標註數據?使用者是否願意提供回饋?這是裝置內學習的一個關鍵挑戰。 * 使用者可能一開始願意提供回饋,但如果頻繁要求,他們會很快厭煩。 * 解決方案: 必須最大限度地減少向使用者請求標註的數據量,例如透過使用主動學習機制,只要求使用者標註最相關的樣本。 * 引用: 「使用者是否願意給予回饋,這取決於我會說,也許在一開始會,但如果我們不斷要求回饋,使用者很快就會感到厭煩。」(Manuel Roi) * 非揮發性可重構互連是否能改善裝置內學習能力?數位實現目前更簡單,但類比實現可能是一個可行的解決方案。 * 需要理解硬體限制以支持裝置內適應,這是一個正在研究的領域。 * 自適應量化最適合哪種控制器?控制器模型本身會增加運算複雜度嗎?目前缺乏適合極細粒度數據類型(如小於 8 位元)的微控制器。硬體發展趨勢是提供更細粒度的數據類型來支持量化優勢。 * 控制器模型會增加開銷,但需要設計「微型」(super tiny) 且足夠穩健的控制器,以確保平均而言,量化帶來的運算複雜度降低能抵消控制器引入的開銷。 * 引用: 「我們需要設計控制器,這些控制器非常微小,比我們通常使用微型神經網路的控制器還要小,但最終,讓我看看,足夠穩健,以保證平均而言,您在運算複雜度方面有減少,而不是您引入的開銷。」(Manuel Roi) * 在邊緣感測應用中,環境條件(光照、濕度)適應是否屬於訓練/再訓練?絕對是。環境因素會顯著影響感測數據。 * 必須考慮環境對感測的影響,否則會做出錯誤的決策。 * 範例: 阿爾卑斯山用於預測岩石崩塌的感測系統,感測器讀數會受到溫度影響。模型必須在現場學習並隨時間再訓練,因為夏季、春季、秋季和冬季的影響不同。 * 引用: 「是的,我會說絕對是。我參與的一個專案是部署在義大利北部阿爾卑斯山的一個岩石崩塌預測系統,我們那裡有許多感測器,例如應變計或 MEMS 加速度計或陀螺儀等等,這些感測器受到溫度的顯著影響。」(Manuel Roi) * 有時只需微調神經網路的最後一層即可達到良好效果,有時甚至可以在運行時選擇處理管道的哪一部分進行更新。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.