用小神经网络和光谱仪优化关键词识别
用小神經(jīng)網(wǎng)絡(luò)和光譜儀優(yōu)化關(guān)鍵詞識(shí)別
Optimizing keyword spotting with small neural networks and spectrographs
隨著由語(yǔ)音命令控制的智能設(shè)備的激增,一種被稱(chēng)為關(guān)鍵字識(shí)別的自然語(yǔ)言處理技術(shù)正在獲得越來(lái)越多的關(guān)注。
來(lái)自亞馬遜、谷歌、蘋(píng)果和其公司的語(yǔ)音助理可以對(duì)“熱門(mén)詞”后面的短語(yǔ)做出回應(yīng),比如“嘿,谷歌”或“嘿,Siri”,而且似乎幾乎立即做出回應(yīng)。事實(shí)上,響應(yīng)延遲只有幾分之一秒,這在智能揚(yáng)聲器設(shè)備中是可以接受的。
一個(gè)小裝置怎么會(huì)這么聰明?
語(yǔ)音助手使用數(shù)字信號(hào)處理器來(lái)消化第一個(gè)“熱詞”,隨后的短語(yǔ)通過(guò)互聯(lián)網(wǎng)發(fā)送到云端。然后,語(yǔ)音被轉(zhuǎn)換成數(shù)字流,這些數(shù)字流在一個(gè)循環(huán)卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行處理,該神經(jīng)網(wǎng)絡(luò)可以記住先前的內(nèi)部狀態(tài),以便訓(xùn)練識(shí)別短語(yǔ)或單詞序列。
這些數(shù)據(jù)流在數(shù)據(jù)中心進(jìn)行處理,請(qǐng)求的答案或歌曲通過(guò)網(wǎng)絡(luò)發(fā)送回語(yǔ)音助手。這種方法在非關(guān)鍵的情況下工作得很好,在這種情況下延遲無(wú)關(guān)緊要,而且互聯(lián)網(wǎng)連接是可靠的。
位于數(shù)據(jù)中心的神經(jīng)網(wǎng)絡(luò)采用類(lèi)似逐次逼近的方法,使用數(shù)百萬(wàn)個(gè)樣本進(jìn)行訓(xùn)練;最初誤差非常大,但通過(guò)將誤差反饋到調(diào)整網(wǎng)絡(luò)參數(shù)的算法中,可以減少誤差。在每一個(gè)訓(xùn)練周期內(nèi),誤差減小。然后重復(fù)訓(xùn)練周期,直到輸出正確為止。對(duì)于數(shù)據(jù)集中的每個(gè)單詞和短語(yǔ)都會(huì)執(zhí)行此操作。訓(xùn)練這樣的網(wǎng)絡(luò)可能需要很長(zhǎng)時(shí)間,大約幾周。
一旦經(jīng)過(guò)訓(xùn)練,網(wǎng)絡(luò)就可以識(shí)別出不同個(gè)體所說(shuō)的單詞和短語(yǔ)。識(shí)別過(guò)程被稱(chēng)為推理,需要進(jìn)行數(shù)百萬(wàn)次乘法運(yùn)算,然后進(jìn)行累加(MAC)運(yùn)算,這就是為什么在設(shè)備內(nèi)的微處理器上不能及時(shí)處理信息。
在關(guān)鍵字識(shí)別中,需要識(shí)別多個(gè)單詞。將其發(fā)送到數(shù)據(jù)中心的延遲是不可接受的,而且Internet連接也不總是可以保證的。因此,優(yōu)選在設(shè)備上對(duì)短語(yǔ)進(jìn)行本地處理。
一種解決方案是將乘法累加函數(shù)壓縮成更小的芯片。例如,googleedge張量處理單元(TPU)集成了許多數(shù)組乘法器和數(shù)學(xué)函數(shù)。這個(gè)解決方案仍然需要微處理器來(lái)運(yùn)行神經(jīng)網(wǎng)絡(luò),但是MAC函數(shù)被傳遞到芯片上并被加速。
雖然這種方法允許小型微處理器運(yùn)行更大的神經(jīng)網(wǎng)絡(luò),但也有缺點(diǎn):對(duì)于小型或電池供電的設(shè)備來(lái)說(shuō),功耗仍然過(guò)高。隨著尺寸的減小,性能也隨之降低。小型專(zhuān)用乘法器陣列的數(shù)量和速度不如數(shù)據(jù)中心中的大型、耗電量大的gpu或tpu。
另一種方法是使用更小、更緊密的神經(jīng)網(wǎng)絡(luò)進(jìn)行關(guān)鍵字處理。這些網(wǎng)絡(luò)不是在大型遞歸網(wǎng)絡(luò)中執(zhí)行復(fù)雜的處理技術(shù),而是通過(guò)使用被稱(chēng)為MFCC的語(yǔ)音識(shí)別算法將值流轉(zhuǎn)換為頻譜儀來(lái)處理關(guān)鍵字。下面的光譜儀代表信號(hào)的頻譜。
攝譜儀圖像被輸入到一個(gè)更簡(jiǎn)單的7層前饋神經(jīng)網(wǎng)絡(luò)中,該神經(jīng)網(wǎng)絡(luò)已經(jīng)被訓(xùn)練來(lái)識(shí)別關(guān)鍵字集的特征。例如,Google關(guān)鍵字?jǐn)?shù)據(jù)集包含65000個(gè)1秒的樣本,這些樣本由數(shù)千個(gè)不同的人所說(shuō)的30個(gè)單詞組成。關(guān)鍵字的例子有上、下、左、右、停、去、開(kāi)和關(guān)。
另一種方法
采取了完全不同的方法,在基于事件的硬件中處理聲音、圖像、數(shù)據(jù)和氣味。智能芯片早在當(dāng)前的機(jī)器學(xué)習(xí)熱潮出現(xiàn)之前就已經(jīng)成立了。神經(jīng)網(wǎng)絡(luò)和人工智能處理方法的進(jìn)步是主要目標(biāo),專(zhuān)注于神經(jīng)形態(tài)的硬件設(shè)計(jì)。
人腦不運(yùn)行指令,而是依賴(lài)神經(jīng)細(xì)胞。這些細(xì)胞處理信息并以尖峰信號(hào)進(jìn)行通信,尖峰是電能的短脈沖,表示“事件”的發(fā)生,如顏色、線路、頻率或觸摸的變化。
相比之下,計(jì)算機(jī)被設(shè)計(jì)成對(duì)數(shù)據(jù)位進(jìn)行操作并執(zhí)行程序員編寫(xiě)的指令。這是兩種截然不同的處理技術(shù)。在計(jì)算機(jī)上以神經(jīng)網(wǎng)絡(luò)的形式模擬腦細(xì)胞的功能需要許多計(jì)算機(jī)指令。
意識(shí)到可以省去指令,建立高效的數(shù)字電路,以大腦的方式進(jìn)行計(jì)算。大腦是一般智能系統(tǒng)的終極范例。這正是Brainchip開(kāi)發(fā)Akida神經(jīng)處理器所做的。
當(dāng)將深度學(xué)習(xí)功能與基于事件的峰值神經(jīng)網(wǎng)絡(luò)(SNN)硬件相結(jié)合時(shí),芯片得到了進(jìn)一步的發(fā)展,從而顯著降低了功耗要求并提高了性能,同時(shí)還具有快速片上學(xué)習(xí)的優(yōu)勢(shì)。Akida芯片可以處理谷歌關(guān)鍵字?jǐn)?shù)據(jù)集,利用簡(jiǎn)單的7層神經(jīng)網(wǎng)絡(luò),在不到200微瓦的功率預(yù)算內(nèi)。
Akida使用ImageNet數(shù)據(jù)集進(jìn)行訓(xùn)練,使其能夠立即學(xué)會(huì)識(shí)別新對(duì)象,而無(wú)需昂貴的再訓(xùn)練。芯片具有內(nèi)置的稀疏性。全數(shù)字化設(shè)計(jì)是基于事件的,因此當(dāng)輸入刺激不會(huì)導(dǎo)致神經(jīng)元超過(guò)閾值時(shí),不會(huì)產(chǎn)生任何輸出。
這可以用一個(gè)簡(jiǎn)化的,雖然極端的例子來(lái)說(shuō)明。想象一個(gè)中間有一個(gè)點(diǎn)的圖像。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)需要處理圖像的每個(gè)位置,以確定其中是否存在某些東西。從圖像中提取一塊像素并執(zhí)行卷積。結(jié)果是零,這些零和所有其塊生成的零一起傳播到整個(gè)網(wǎng)絡(luò),直到到達(dá)點(diǎn)為止。檢測(cè)和消除零會(huì)增加額外的延遲,并導(dǎo)致處理速度減慢而不是加快。要確定圖像中是否存在一個(gè)點(diǎn),需要進(jìn)行近5億次操作。
相比之下,基于Akida事件的方法只對(duì)一個(gè)事件,即單個(gè)點(diǎn)做出響應(yīng)。所有其位置都不包含信息,零也不會(huì)通過(guò)網(wǎng)絡(luò)傳播,因?yàn)椴粫?huì)生成事件。實(shí)際上,對(duì)于真實(shí)圖像來(lái)說(shuō),這種稀疏性會(huì)減少40%到60%的計(jì)算量,從而使用較少的能量生成相同的分類(lèi)結(jié)果。
Training Akida
一個(gè)使用Akida芯片在Google Speech Commands 數(shù)據(jù)集上訓(xùn)練的關(guān)鍵字識(shí)別應(yīng)用程序可以在一個(gè)小型電池上運(yùn)行數(shù)年。同樣的電路配置為使用30層和芯片上的所有80個(gè)神經(jīng)處理單元,可以在不到200毫瓦的情況下實(shí)時(shí)處理整個(gè)ImageNet數(shù)據(jù)集(使用一個(gè)penlight電池大約需要5天)。
用于圖像分類(lèi)的MobileNet網(wǎng)絡(luò)非常適合于芯片,包括所有需要的內(nèi)存。芯片上的實(shí)時(shí)學(xué)習(xí)功能使添加到已學(xué)單詞庫(kù)成為可能,這是一個(gè)很好的功能,可用于個(gè)性化的單詞識(shí)別,如姓名、地點(diǎn)和定制命令。
另一個(gè)關(guān)鍵字識(shí)別選項(xiàng)是Syntiant NDP101芯片。雖然該設(shè)備也可以在相當(dāng)?shù)偷墓β?#xff08;200微瓦)下工作,但是一個(gè)專(zhuān)用的音頻處理器,集成了音頻前端、緩沖和特征提取以及神經(jīng)網(wǎng)絡(luò)。Syntiant預(yù)計(jì)未來(lái)將用內(nèi)存模擬電路取代數(shù)字mac,以進(jìn)一步降低功耗。
Akida芯片具有片上學(xué)習(xí)和多功能性的附加優(yōu)勢(shì)。也可以被重新配置以執(zhí)行聲音或圖像分類(lèi)、氣味識(shí)別或?qū)臄?shù)據(jù)中提取的特征進(jìn)行分類(lèi)。本地處理的另一個(gè)優(yōu)點(diǎn)是沒(méi)有圖像或數(shù)據(jù)暴露在互聯(lián)網(wǎng)上,大大降低了隱私風(fēng)險(xiǎn)。
這項(xiàng)技術(shù)的應(yīng)用范圍從語(yǔ)音激活設(shè)備到更換制造設(shè)備中的磨損部件。這項(xiàng)技術(shù)還可以用于根據(jù)輪胎在路面上發(fā)出的聲音來(lái)確定輪胎磨損情況。其汽車(chē)應(yīng)用包括監(jiān)控駕駛員的警覺(jué)性,傾聽(tīng)發(fā)動(dòng)機(jī)以確定是否需要維護(hù),以及掃描駕駛員盲區(qū)內(nèi)的車(chē)輛。
期望Akida能夠進(jìn)化,融入大腦結(jié)構(gòu),特別是以人工通用智能(AGI)為目標(biāo)的皮層神經(jīng)網(wǎng)絡(luò)。這是一種機(jī)器智能的形式,可以訓(xùn)練執(zhí)行多個(gè)任務(wù)。AGI技術(shù)可用于控制自動(dòng)駕駛車(chē)輛,具有足夠的智能來(lái)控制車(chē)輛,并最終學(xué)習(xí)駕駛,就像人類(lèi)學(xué)習(xí)的一樣。當(dāng)然,在實(shí)現(xiàn)這一目標(biāo)的過(guò)程中會(huì)有許多中間步驟。
未來(lái)的Akida設(shè)備將包括一個(gè)更復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型,可以瘦身越來(lái)越復(fù)雜的任務(wù)。
總結(jié)
以上是生活随笔為你收集整理的用小神经网络和光谱仪优化关键词识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电阻存储器为edge-AI提供了仿生架构
- 下一篇: 处理器解决物联网和人工智能的融合