嵌入式系統的機器學習在過去幾年中獲得了很大的發展。對于嵌入式開發人員來說,機器學習是數據科學家關心的事情,并且是在云中生存的事情,與嵌入式開發人員每天使用的資源受限的微控制器相去甚遠。
然而,似乎幾乎在一夜之間,機器學習突然找到了進入微控制器和邊緣設備的方式。對于一些開發人員來說,這可能看起來令人費解或至少很有趣。但為什么機器學習現在對嵌入式開發人員如此重要?讓我們探索幾種可能性。
首先,機器學習可以幫助嵌入式設備解決傳統上開發人員很難編寫代碼的問題。例如,假設我們想要編寫一些代碼,可以獲取只有 28 x 28 像素的圖像,并檢測在 0 到 9 范圍內寫入的數字。對于手動編寫解決方案的開發人員來說,這是一個非常復雜的問題要解決,因為寫一個數字永遠不會產生相同的圖像。手寫者可以從不同的地方開始,在一個角度上寫數字,或任何其他數量的變化。然而,機器學習將這個棘手的編碼問題變成了一個微不足道的問題,其解決方案可以用幾百行或更少的代碼編寫,具體取決于所使用的編程語言。
接下來,機器學習可以幫助嵌入式開發人員實現一個嵌入式系統,該系統執行的任務對于人類來說很容易,但對于計算機來說傳統上是困難且昂貴的。例如,物體檢測和識別對人類來說很容易,語音識別也很容易,但對計算機來說又很難。使用機器學習,我們可以創建像我們都熟悉的數字助理這樣的系統,以識別關鍵字以喚醒系統或檢測裝配線上或漫游者或無人機路徑中感興趣的對象。通過機器學習,這些障礙不僅容易克服;它們可以通過使用微控制器的成本遠低于 100 美元的硬件來解決。
最后,機器學習可以讓開發人員輕松擴展他們的系統在設備置于新環境或提供新數據時的行為方式。例如,在傳統的嵌入式系統中,如果設備突然需要基于提供給它的輸入的新行為,開發人員現在需要進入并修改代碼以添加新行為。如果設備改為使用機器學習,則不一定需要更改任何系統代碼。相反,機器學習模型(推理)可能只需要使用額外的所需行為進行重新訓練。這比手動對軟件進行編碼更新要容易得多。
機器學習提供了為嵌入式開發人員提供新工具和技術的機會,這些工具和技術有可能降低開發成本并減輕一些編程工作量。機器學習還開辟了新的潛在應用程序和功能,這些應用程序和功能將永遠改變用戶對其系統行為的期望。雖然機器學習剛剛進入嵌入式領域,但它的發展速度比許多人想象的要快。現在是開始了解所涉及的技術以及如何應用它們的時候了。