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

深度學(xué)習(xí)在嵌入式設(shè)備上的應(yīng)用

深度學(xué)習(xí)嵌入式系統(tǒng)

如何在深度學(xué)習(xí)結(jié)構(gòu)中使用紋理特征

評論