業界應如何看待邊緣人工智能?ST授權合作伙伴 MathWorks 公司的合作伙伴團隊與ST 共同討論了對邊緣機器學習的看法,并與 STM32 社區分享了他們的設計經驗。
MathWorks的 MATLAB? 和 Simulink? 軟件聞名業界。MATLAB?軟件工具可讓科學家分析數據,開發算法,創建模型;Simulink?軟件可以創建模型化設計,仿真測試動態系統,支持 STM32 MCU,開發、部署和優化在 STM32 MCU上運行的應用。MathWorks 為開發者提供MCU AI開發部署工具,業務范圍涵蓋許多領域,包括控制設計、信號處理和嵌入式系統設計,以及許多專用附加產品。公司不僅在學術界享有盛譽,在航空航天、汽車和工業市場也具有很大的影響力。
正是因為 MathWorks 擁有如此強大且常用的工具包,我們才決定與他們深入討論邊緣機器學習。 雖然這個話題已經討論了很多年,但我們認為,像 MathWorks 這樣的合作伙伴提出的建議有助于業界換個角度看待邊緣機器學習,并解決業界面臨的一些挑戰。因此,我們采訪了 MathWorks 嵌入式合作伙伴經理 John Kluza 和戰略合作伙伴專家 Reed Axman。
有關邊緣機器學習的思考……
…現狀
我們是否已經大規模采用邊緣機器學習?
“在邊緣機器學習被廣泛應用和部署之前仍有很多工作要做”
MathWorks合作伙伴團隊:還沒有,在邊緣機器學習被廣泛應用和部署之前還有很多工作要做。業界仍在追趕STM32微控制器等邊緣設備的能力,但它也在努力應對一些基本挑戰,如能效和安全標準。
我們是否已達到能效臨界點?
還沒有。雖然在過去五年里,業界已經顯著提高了神經網絡算法在微控制器上的運行能效,但在邊緣機器學習得到大規模應用前,仍然需要設法提高系統能效,降低模型的部署難度。邊緣AI技術已經進入許多細分市場,但在進入主流市場之前還有很長的路要走。
…展望
如何做才能提高邊緣人工智能的能效?
能夠在嵌入式系統運行系統代碼以及多個神經網絡,是在機器學習發展道路上取得的一個重要的里程碑。目前,微控制器能夠順暢地運行一個神經網絡,但是,運行兩個或更多網絡以及系統代碼,同時保持功耗在預算范圍內,仍然是一個不小的挑戰。同時,確保適合的安全機制到位也很重要。
人工智能中的安全性是什么意思? (笑問)機器人會攻擊人類嗎?
(笑)?不會,沒有那樣的事情,在科幻小說中經常會出現這樣的情節。人工智能的安全性是指工作可靠性,這意味著避免算法發生意外行為,確保AI有容錯、故障安全操作和數據保護功能。
開發人員如何創建更安全的AI應用?
這個問題不好回答,這也是 MathWorks 提供神經網絡測試驗證工具的初衷。簡而言之,設計團隊可以用MathWorks工具驗證機器學習算法的行為,并在現場部署前創建冗余機制。用戶還可以模擬傳感器數據的中斷或變化,以更好地預測現實世界的情況。
創建邊緣機器學習
高效的數據學分析方法
對于一家致力于邊緣機器學習的初創公司,你有哪些忠告?
首先,弄清楚用例的具體要求,實時處理是否是首要需求?數據隱私是否是大家都很關心的問題?算力和功率有哪些限制? 一旦確定了硬件規格,團隊就可以專注開發推理速度、存儲器占用和預測準確性均衡的人工智能模型。在這個方面,利用現有工具和模型庫可以最大限度地提高開發效率,縮短產品上市時間。我還建議創建一個數據安全處理計劃,預測連接問題(如果有聯網組件),并確定系統擴展計劃。 一旦想清楚了這幾點,設計人員就可以更好地決定是否聘請數據科學家來開發機器學習算法。
那么聘請數據科學家并不是第一步,甚至不是必須的?
在某些情況下,第一步要做的是聘請數據科學家。但是,用 MATLAB 創建高準確度模型,不一定非是數據科學家或 AI 專家不可。工程師深刻理解他們的數據,深知他們要解決的問題,而數據科學家在某種程度上通常不具備這些知識。例如,團隊可以先構思一個人工智能的系統設計,甚至嘗試從模型庫導入神經網絡,然后,再聘請昂貴且稀有的數據科學人才。這樣做將有助于更好地確定要解決的問題。此外,MathWorks的現有工具讓系統工程師能夠在獨立解決人工智能問題上取得重大進展。
公司應如何開始研發機器學習算法?
借助 MATLAB 和 Simulink 等工具,用戶可以簡化算法開發和在嵌入式設備上部署模型。我們在 TinyML登錄頁面討論了將高效 AI 網絡部署到 MCU 的流程,還有相關的方法視頻和研討會活動。
MATLAB 會取代數據科學家嗎?
顯然不會,然而,MATLAB的功能,及其與 PyTorch 和 TensorFlow 等其他深度學習平臺的協同操作功能,可以促進團隊成員之間的協作,并有助于加快在邊緣上實現機器學習。
理性看待AI
可以向我們展示邊緣機器學習解決問題的示例嗎?
當然! 借助 MathWorks 和 STM32 MCU,邊緣人工智能可以提高產品功能,有時還能降低系統成本。我們還提供用戶案例庫,展示企業如何用 MATLAB 和 Simulink 開發機器學習和深度學習,包括虛擬溫度傳感器、壓力傳感器、激光雷達分類器和心電圖分析。
什么情況下最好避免邊緣機器學習?
如果傳統方法能夠控制系統,而且計算資源需求比神經網絡低,就不必用邊緣機器學習。例如,可以用卡爾曼濾波器構建系統,求解大型線性代數問題,在某些情況下可以提供令人滿意的效果。
如果沒有這類專業知識或資源,怎么辦?
這時候就是就該邊緣機器學習登場了。有時,企業缺乏開發準確模型所需的專業知識。同樣,如果系統的非線性或時變性非常明顯,那么使用傳統方法創建運算模型可能無法實現,或者沒有優勢。在這些情況下,解決相同的問題,邊緣機器學習方法就變得更經濟劃算了,如果團隊精簡壓縮神經網絡算法,優化機器學習模型,物料成本可能會變得更低!
訓練和優化哪個更重要?
兩者的作用都很重要。然而,如果你有大量的訓練數據和強大的神經網絡,但在邊緣設備上實現模型的能力很弱,那么一切都是枉然。因此,模型優化至關重要。低功耗系統和較小的存儲器占用率,以及性能良好的神經網絡,可以讓團隊快速地發布新產品。當團隊已經優化了底層代碼時,長期改進模型性能就會比較容易。
ST 和 MathWorks 生態系統
MathWorks 和 ST 的合作會給業界帶來哪些影響?
MathWorks 為開發人員提供了許多跨硬件平臺移植應用的功能,因為開發者可能與多家 MCU 廠商合作。此外,MathWorks 還提供一個完整開發流程,涵蓋從數據學分析、神經網絡創建,到優化、仿真和部署這些神經網絡的整個開發過程。另一方面,STM32Cube.AI 等ST軟件支持為STM32 MCU生成C代碼,STM32Cube.AI Developer Cloud新增了網絡基準測試和模型庫。
STM32Cube.AI 和 MathWorks工具是如何相互配合的?
MathWorks的 Simulink軟件支持 STM32硬件
STM32Cube.AI 和 MathWorks 工具配合使用,為開發者提供了一個完整的開發流程。例如,工程師可以從 ST Model Zoo模型庫、TensorFlow、PyTorch 或 MATLAB 開始創建神經網絡,然后用 STM32Cube.AI Developer Cloud進行初步基準測試。因此,可以幫助開發人員選擇成本、性能和推理時間全面均衡的目標模型。然后,團隊可以將模型集成到 Simulink 中,進行系統級的模型測試。STM32硬件支持包和嵌入式編碼器可以執行處理器在環(PIL)測試和快速原型設計,使工程師能夠評估AI模型和配套的控制邏輯,以及整體性能,看看它是否符合預期。
開發者需要注意些什么?
除了 STM32Cube.AI 提供的代碼生成外,還需要考慮原型設計問題。例如,借助 STM32Cube.AI Developer Cloud,在多個 Nucleo 開發板上做同一個基準測試,可以幫助團隊為每個項目快速選定最佳器件。
STM32開發者現在應做些什么?
我們建議他們查看在MCU上部署 AI所需的 MathWorks 工具,并詳細了解STM32 NUCLEO技術支持 。在開始開發的時候,他們可以在這里觀看視頻,研究示例,閱讀文檔。
更多精彩內容歡迎點擊==>>電子技術應用-AET<<