作者:蘇勇Andrew
使用神經(jīng)網(wǎng)絡實現(xiàn)機器學習,網(wǎng)絡的每個層都將對輸入的數(shù)據(jù)做一次抽象,多層神經(jīng)網(wǎng)絡構成深度學習的框架,可以深度理解數(shù)據(jù)中所要表示的規(guī)律。從原理上看,使用深度學習幾乎可以描述和模擬一切規(guī)律,但實際上,這個過程效率非常低,需要消耗大量的存儲空間描述網(wǎng)絡的參數(shù),并且需要大量的數(shù)據(jù)樣本覆蓋規(guī)律可能涉及到的情景。
優(yōu)秀的數(shù)學家們在過往的研究中,已經(jīng)發(fā)現(xiàn)和總結(jié)出了一些描述規(guī)律的方法,例如,使用FFT提取數(shù)據(jù)流中的頻率和能量分布特征,我們并不需要再用神經(jīng)網(wǎng)絡的方式以非常低效的方式模擬這些已知的規(guī)律,尤其是在資源受限的嵌入式硬件環(huán)境當中。一種較好的實踐,是利用已知的、高效的特征提取方法作為機器學習框架(AI模型)的前端,取代用于模擬其中規(guī)律的初級網(wǎng)絡結(jié)構,然后再結(jié)合更小巧的機器學習方法,例如SVM,或者小規(guī)模的NN網(wǎng)絡做更高層次的抽象,從而設計出小巧高效的模型。
總結(jié)觀點:
使用深度學習表示規(guī)律效率低。
在機器學習中使用深度網(wǎng)絡替代已知的數(shù)學公式是愚蠢的。
將已有數(shù)學公式表示的特征提取方法和小規(guī)模深度學習結(jié)合,是資源受限的嵌入式AI應用的一種有效實踐。
如下原文是我在瑞薩的一位專職于AI技術開發(fā)的同事Stuart Feffer(Reality AI的創(chuàng)始人之一)發(fā)表的一篇博客,我翻譯了其中大部分內(nèi)容,以展開闡述在對數(shù)據(jù)樣本做預處理的過程中使用合適的特征變換對深度學習的意義。
深度學習(Deep Learning)幾乎已經(jīng)主導了機器學習領域——它可以利用簡單疊加多層神經(jīng)網(wǎng)絡來發(fā)現(xiàn)底層數(shù)據(jù)中隱藏的規(guī)律,并且取得了巨大成功。
例如,當使用深度學習來識別一張貓的圖片時,深度網(wǎng)絡的最低層會學習識別邊緣、明暗梯度等視覺特征。然后,更高層次的網(wǎng)絡會學習將這些特征組合成的各種模式,再更高層次的網(wǎng)絡會學習這些模式組合形成的標志性的形態(tài),而更高層次的網(wǎng)絡則會學習進一步將這些形態(tài)組合起來以識別出貓。
在那些數(shù)據(jù)中隱藏的規(guī)律過于復雜、無法通過其他方式被發(fā)現(xiàn)的情況下,深度學習有著巨大的優(yōu)勢。只要有足夠的時間和數(shù)據(jù),深度學習幾乎可以學習到任何合理的變換規(guī)律。深度學習能夠破解出世界上所有的特征。然而,這總是個好主意嗎?在受限(嵌入式)環(huán)境中,它可能是不適合的。
相比于其他傳統(tǒng)數(shù)值方法,深度學習的收斂速度慢得離譜。幾個世紀以來,杰出的數(shù)學家們付出了巨大努力,為大量的問題想出了最優(yōu)解決方案,比如:從已知分布進行統(tǒng)計推斷、對許多重要類型函數(shù)的近似、線性代數(shù)中的信息分析,以及像快速傅里葉變換(FFT)這樣的頻域分析方法。實際上,深度學習方法是試圖用統(tǒng)一的結(jié)構和方法,以解決不同的新問題——它們或許能得到接近真實的結(jié)果,但卻要以極高的低效率為代價。
舉個例子,在嵌入式應用中有一個常見的問題:描述和監(jiān)測一臺旋轉(zhuǎn)設備的工作狀況。在這一領域的經(jīng)典工程學中,一個典型方法是使用傅里葉變換——振動和旋轉(zhuǎn)具有天然的屬性特征,即是頻率,另外,監(jiān)測功率峰值和頻譜形狀也能揭示出大量信息。有些峰值是在預期內(nèi)會出現(xiàn)的,而有些則是不好的(意味著設備可能存在問題)。
此時,假設我們有一個二分類問題,使用FFT能夠巧妙地區(qū)分兩個類別:正常和故障。但是,當我們不知道FFT能取得很好效果的時候,我們沒有運行FFT并將其得到的特征用作模型輸入,而是直接構建了一個深度學習模型,并讓它去學習這兩個類別——實際上是希望在深度網(wǎng)絡的較低層中模擬出這種傅里葉變換。
快速傅里葉變換是一種由人類精心設計的出色算法,用于實現(xiàn)所謂的離散傅里葉變換(DFT)。但離散傅里葉變換本質(zhì)上是一種線性矩陣運算,所以將DFT映射到神經(jīng)網(wǎng)絡(神經(jīng)網(wǎng)絡就是在進行輸入向量和權重矩陣的乘法計算)中是相當簡單的。它看起來會像是一層全連接的節(jié)點集合,(理想情況下)權重接近離散傅里葉變換矩陣,并且使用線性激活函數(shù)。然后,這個單一的特征層可以連接到更高層,以便基于傅里葉峰值做出決策。
但是,我們來考慮一下這里的各個方面:
為了得到這種簡單的表示形式,我們實際上不得不為這一層設計特殊的線性激活函數(shù),而在大多數(shù)的深度網(wǎng)絡是使用非線性的激活函數(shù)。這就意味著常規(guī)構建的深度網(wǎng)絡已經(jīng)有些偏離了目標。
為了使這個網(wǎng)絡收斂到接近實際的離散傅里葉變換,需要一大組組織良好的示例數(shù)據(jù),這些數(shù)據(jù)要涵蓋整個頻率空間。來自實際振動或旋轉(zhuǎn)設備的真實數(shù)據(jù)可能無法提供這種多樣性,從而無法訓練出一個描述完備的網(wǎng)絡。
即使是這種離散傅里葉變換的“最佳情況”網(wǎng)絡表示,也需要N^2次乘法運算。而快速傅里葉變換(FFT)的優(yōu)勢就在于它只需要N log2(N)次運算。為什么我們要故意讓在嵌入式芯片上執(zhí)行的更大的運算量呢?
快速傅里葉變換只是眾多特征空間運算的例子之一,當這些運算通過神經(jīng)網(wǎng)絡來學習時,會陷入不必要的困境。對于我們所描述的嵌入式應用中“關鍵頻率峰值”的問題,甚至還可以有更有效的數(shù)學表示方法表示其中的規(guī)律,但如果使用深度學習網(wǎng)絡表示這個規(guī)律,若沒有巨大的計算資源,實際上不可能對其進行建模。
還有一些甚至更簡單的變換,神經(jīng)網(wǎng)絡處理起來也很困難。像平方或開平方根這樣基本的運算,都需要借助隱藏層網(wǎng)絡以及數(shù)量極不相稱的大量節(jié)點才能精確求解。諸如,標準差或均方根,這樣明顯的工程度量指標,若要使用神經(jīng)網(wǎng)絡來學習和計算它們,效率也極其低下。
所以,尤其是對于嵌入式和資源受限的應用場景,使用特征空間是一種更好的方法。
借助深度學習從頭開始學習數(shù)學特征是可行的。但對于某些問題而言,這可能并非良策,而對于那些每個時鐘周期和每字節(jié)內(nèi)存都十分關鍵的受限或嵌入式應用來說,這無疑是一場必輸?shù)牟┺摹H绻嬖诟苯拥姆椒ǎ敲词褂蒙疃葘W習來進行特征發(fā)現(xiàn)就是對資源的極大浪費。對于這些應用來說,更好的做法,是使用那些已知的、或者能夠被證明可以區(qū)分目標類別的可靠特征。
Reality AI基于自動化的智能特征提取。我們采用機器學習作為AI算法框架,探索種類繁多且已被充分理解的數(shù)學和工程領域的特征空間,并應用諸如稀疏編碼之類的機制,從而比直接使用深度學習更快地收斂到相關特征,并更高效地表達這些特征。
這有兩個優(yōu)點:
由此得出的特征計算在計算效率上很高,尤其適合資源受限的嵌入式環(huán)境。
從基礎物理和時頻特性方面來看,計算結(jié)果是可以解釋的,無需借助任何由網(wǎng)絡所表示的“黑箱”操作。
利用以這種方式發(fā)現(xiàn)的特征空間,再進行機器學習,仍然能夠發(fā)揮機器學習在做出復雜決策方面的優(yōu)勢。如此,還可以部署更簡單的算法,比如支持向量機(SVM)、決策樹或規(guī)模較小的神經(jīng)網(wǎng)絡,與深度學習相比,能大幅節(jié)省資源。
近年來,深度學習已被用于實現(xiàn)一些非凡的成就。但它并非是解決所有問題的萬能鑰匙。套用羅伯特?海因萊因(Robert Heinlein,20世紀最有影響力的科幻作家之一)的話來說,“對于某些問題而言,使用深度學習有點像是試圖教豬唱歌。這既浪費你的時間,又會惹惱那頭豬。”
-
嵌入式
+關注
關注
5114文章
19355瀏覽量
311510 -
AI
+關注
關注
87文章
33022瀏覽量
272774 -
深度學習
+關注
關注
73文章
5531瀏覽量
122079
原文標題:嵌入式AI技術漫談 | 深度學習的困局
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
深度學習與數(shù)據(jù)挖掘的關系
嵌入式系統(tǒng)與人工智能
深度學習在汽車中的應用
探討一下深度學習在嵌入式設備上的應用
深度學習模型是如何創(chuàng)建的?
TDA4對深度學習的重要性
深度學習介紹
深度學習是什么?了解深度學習難嗎?讓你快速了解深度學習的視頻講解
基于深度學習的自然語言處理對抗樣本模型

深度學習在嵌入式設備上的應用

深度學習嵌入式系統(tǒng)

如何在深度學習結(jié)構中使用紋理特征

評論