民主化 AI 開發 Edge Impulse:Edge Impulse 101
加拿大哲學家馬歇爾·麥克盧漢 (Marshall McLuhan) 曾說過:“我們成為我們所看到的。我們塑造我們的工具,然后我們的工具塑造我們。” 如果是這樣,那么人工智能 (AI) 的最獨特之處在于我們看到的對象是我們自己,特別是我們的大腦。如果這是真的,那么看看人工智能這個工具將如何遞歸地塑造我們自己和我們的未來將會很有趣。開發工具的民主化使我們能夠創建具有基于 AI 功能的對象,這對于為人類建設光明、積極的未來至關重要。一家名為 Edge Impulse 的公司正在盡自己的一份力量來確保這一點。
對于我們這些嵌入式系統開發人員來說,向神經網絡的范式轉變可能令人望而生畏,他們是在過程甚至面向對象編程的全盛時期開始學習的。對于一些人來說,這感覺就像是放棄了對設計的一點絕對控制,而放棄了表面上似乎未經證實的東西,即使不是徹頭徹尾的魔法。盡管如此,邊緣機器學習的前景(意味著將 AI 算法從云端轉移到數十億物聯網設備中的微控制器上)仍然很有吸引力,不容忽視。幸運的是,Edge Impulse 為嵌入式系統工程師提供了一條非常簡單且有據可查的前進道路,以幫助他們成功駕馭 AI、機器學習和神經網絡 (NN) 等相對較新的領域。
有可能在嵌入式設計的某個時刻,工程師會繪制流程圖以了解機器在其運行生命周期中所處的各種狀態。為此,了解使用 Edge Impulse 為獨特的嵌入式應用程序開發定制神經網絡時將遇到的步驟是有益的。下面從嵌入式電子工程師和人工智能專業的計算機科學家的角度總結了這些步驟。
第一步:獲取訓練數據
神經網絡的開發需要訪問數據。很多很多的數據。簡而言之,數據越多,未來的 NN 模型在根據實際操作預測輸出時就會越準確。Edge Impulse 提供了多種易于使用的工具來將數據從現實世界獲取到他們的服務器以開發自定義神經網絡。首先,它們為許多流行的開發板(例如TI CC1352P Launchpad、SiLabs Thunderboard Sense 2和Arduino Portenta )提供預構建固件) 可以訪問各種板載傳感器并將數據流發送回 Edge Impulse。對于其他主板,Edge Impulse 在其命令行界面 (CLI) 工具集的保護下提供了一套工具,可用于 Mac OS、Windows 和 Linux 發行版 Ubuntu 和 Raspbian。CLI 需要在您的桌面上安裝 Python3 和 Node.js。CLI 的三個關鍵工具是:
艾達蒙
沖動上傳者
數據轉發器
這些工具對于從缺乏直接互聯網連接的開發板獲取傳感器數據特別有用。它們充當代理,通過串行端口接收數據,并通過主機互聯網連接將其轉發到 Edge Impulse 服務器。Edge Impulse 還提供了一種基于瀏覽器的機制來從智能手機收集數據(例如語音樣本或加速度計數據)。
從實際角度出發,仔細考慮您的嵌入式設備在運行過程中可能遇到的所有狀態。例如,在最近的一個涉及工業機械和根據加速度計數據識別機器故障的項目中,開發團隊在數據按預期負載運行時以及處于故障模式時收集了大量數據。但最初,它在機器空閑時無法收集數據。結果,第一個 NN 模型難以區分故障和空轉。最后,使用機器空閑時收集的數據對神經網絡進行再訓練,模型的預測準確性(例如,神經網絡性能)顯著提高。底線是,如果房地產是關于位置、位置、還是位置的話。那么機器學習就是數據、數據、數據。
第 2 步:標記和分塊原始數據
一旦訓練數據位于 Edge Impulse 服務器上,訓練 NN 模型(也稱為“Impulse”)的其余工作將通過 Web 瀏覽器在 Edge Impulse 網站上進行。首先,我們收集的數據集必須標有每個特定數據集代表的輸出狀態。這是通過簡單地編輯收集的每個單獨數據集的“標簽”標簽來實現的。使用上述工業機械示例,三分之一的數據被標記為“故障”,另外三分之一被標記為“正常”,最后三分之一被標記為“空閑”。回想一下神經網絡的輸出不是絕對的;相反,它是每個可能結果的確定性百分比。
對于時間序列數據(例如隨時間收集的加速度計讀數),有必要將每個數據集中的數據“分塊”。像所有好的解決問題的技巧一樣,將問題分解成更小、更易于管理的塊可以讓人們解決看似無法克服的問題。在 NN 訓練的這個初始階段,您可以調整數據分析方式的一些屬性,包括窗口大小、窗口增加、采樣頻率以及數據是否應該被零填充。此外,可以調整這些不同的屬性以平衡分析的分辨率與完成分析的時間之間的權衡。
第 3 步:分析和轉換原始數據塊
在數據被適當地分塊后,是時候通過應用適當的分析技術(例如“處理塊”)來分析它了。這會獲取原始數據并將其轉換為訓練過程中下游 NN 分類器可以使用的格式。Edge Impulse 根據要分析的數據類型提供多種不同的分析技術。
頻譜分析:非常適合分析重復運動,例如來自加速度計的數據。提取信號隨時間變化的頻率和功率特性。
Flatten:將軸展平為單個值,與其他塊結合使用可用于溫度數據等緩慢移動的平均值。
Mel-Filterbank Energy (MFE):從非語音音頻信號中提取頻譜圖。
Mel 頻率倒譜系數 (MFCC):從人聲音頻文件中提取頻譜圖。
圖像:用于識別靜態圖像中的對象。
自定義處理塊:對于那些具有基于人工智能的計算機科學背景的人,還可以上傳為您的特定應用量身定制的自定義處理塊
第 4 步:對數據塊進行分類,運行 NN 分類器
一旦我們將原始數據轉換為可用格式并了解如何從我們的數據集中提取特征,就有必要訓練神經網絡從這些特征中學習,以便它可以適當地對測試和操作數據集進行分類。換句話說,所有表示系統故障的數據集都應歸類為此類。同樣,所有代表正常操作的數據集都應該進行類似的分類。這是通過應用所謂的學習塊來實現的。與處理塊一樣,可以根據數據類型應用各種學習塊。例如,對于快速波動的時變數據,例如我們示例中的數據集,可以使用以下學習模塊:
分類 (Keras):從數據中學習模式并將其應用于新數據。非常適合對運動進行分類或識別音頻。
異常檢測(K 均值):在新數據中查找異常值。有利于識別未知狀態和補充分類器。
回歸 (Keras):從數據中學習模式并將其應用于新數據。非常適合預測連續數值。
可以調整信號處理算法的各種參數以微調學習塊的性能。通過調整截止頻率和快速傅里葉變換 (FFT) 長度等參數,可以在處理時間和隨機存取存儲器 (RAM) 使用峰值之間取得平衡。Edge Impulse 甚至提供在目標嵌入式平臺上運行時處理時間和 RAM 使用情況的性能估計。
最后,在最終生成神經網絡模型(又名脈沖)本身之前,可以更改用于控制 NN 分類器輸出的設置。可以調整的參數包括訓練周期數、學習率、驗證集大小以及輸入層和輸出層之間網絡中間層的神經元數。改變這些參數的能力對于防止稱為過度擬合的常見數據科學問題至關重要,這種問題發生在模型與訓練數據完美配合但在暴露于新數據時卻慘敗。
第 5 步:測試神經網絡模型
對于機器學習算法的開發人員來說,過度擬合并不是一個不常見的問題。為確保模型足夠通用,有必要根據獨立測試數據測試 Edge Impulse 生成的神經網絡。Edge Impulse 提供的用于收集訓練數據的相同技術可用于收集測試數據。除了對先前記錄的測試數據進行分類外,還可以從測試設備流式傳輸數據并在 Edge Impulse 服務器上進行實時分類。設計人員可以使用由 Edge Impulse 應用程序編程接口 (API) 提供支持的固件中的直接連接或數據轉發器代理將數據從傳感器獲取到云端。
第 6 步:部署神經網絡模型
在神經網絡針對訓練數據取得令人滿意的結果后,是時候將 NN 模型打包到一個軟件庫中,該軟件庫可以部署在基于微控制器的系統上。Edge Impulse 使這個過程變得非常簡單。首先,模型可以置于版本控制之下,以便在需要時可以將未來的改進與過去的模型進行比較。接下來,該模型可以變成各種嵌入式系統開發板的“交鑰匙”固件。
對于Edge Impulse不直接支持的開發板,仍然可以生成通用庫,包括基于C++、Arduino、WebAssembly、TensorRT、STM32Cube.MX CMSIS-PACK等系統架構的模型文件。在生成庫或固件之前,還可以運行優化器以實現速度或內存使用優化,具體取決于運行 NN 模型(又名脈沖)的硬件規格。此外,基于作為 8 位整數或 32 位浮點數發送的傳感器數據的脈沖也是可能的。
由于 Edge Impulse 還提供基于 C++、GoLang、Node.js 和 Python 的軟件開發工具包 (SDK),Impulses 也可以在運行 Linux 操作系統的嵌入式系統上運行。也可以使用 C++ 庫在 Windows 和 macOS 上運行脈沖。
最后,impulse 可以直接部署到智能手機上,無需在目標設備上安裝任何額外的應用程序。
概括
對于那些希望將 AI 技術集成到他們的下一個嵌入式系統項目中的人來說,瀏覽 Edge Impulse 的文檔和論壇是開始了解邊緣 ML 的一種免費且簡單的方法。一個有限的免費版本可用于測試 Edge Impulse 生態系統。免費層的主要限制是單個開發人員的汗水訪問、最長 20 分鐘的處理時間以及 4GB 或 4 小時數據的云存儲限制。此外,還提供企業版,按項目付費,這消除了免費層的限制,并提供對私有云和每個項目五個席位的訪問。
Michael Parks, PE 是 Green Shoe Garage 的聯合創始人,Green Shoe Garage 是一家位于馬里蘭州西部的定制電子設計工作室和嵌入式安全研究公司。他制作了 Gears of Resistance 播客,以幫助提高公眾對技術和科學問題的認識。Michael 還是馬里蘭州的持證專業工程師,并擁有約翰霍普金斯大學的系統工程碩士學位。
審核編輯黃宇
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753077 -
神經網絡
+關注
關注
42文章
4771瀏覽量
100714 -
數據
+關注
關注
8文章
7002瀏覽量
88942 -
AI
+關注
關注
87文章
30728瀏覽量
268886
發布評論請先 登錄
相關推薦
評論