Moku 3.3版更新在 Moku:Pro 平臺(tái)新增了全新的儀器功能【神經(jīng)網(wǎng)絡(luò)】,使用戶能夠在Moku設(shè)備上部署實(shí)時(shí)機(jī)器學(xué)習(xí)算法,進(jìn)行快速、靈活的信號(hào)分析、去噪、傳感器調(diào)節(jié)校準(zhǔn)、閉環(huán)反饋等應(yīng)用。如果您不熟悉神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)知識(shí),或者想了解神經(jīng)網(wǎng)絡(luò)如何優(yōu)化加速實(shí)驗(yàn)研究,請(qǐng)繼續(xù)閱讀,探索基于深度學(xué)習(xí)的現(xiàn)代智能化實(shí)驗(yàn)的廣闊應(yīng)用前景。
什么是神經(jīng)網(wǎng)絡(luò)?
“人工神經(jīng)網(wǎng)絡(luò)”(ANN)又稱“神經(jīng)網(wǎng)絡(luò)”,是一種模仿生物神經(jīng)網(wǎng)絡(luò)的計(jì)算模型。在這篇介紹中,我們將側(cè)重介紹全連接神經(jīng)網(wǎng)絡(luò),不涉及卷積、遞歸和變壓器架構(gòu)等復(fù)雜設(shè)置。
神經(jīng)網(wǎng)絡(luò)由各層節(jié)點(diǎn)組成。一個(gè)節(jié)點(diǎn)的值取決于上一層一個(gè)或多個(gè)節(jié)點(diǎn)的值。第一層(輸入)的節(jié)點(diǎn)直接從外部輸入獲取其值,而最后一層(輸出)的節(jié)點(diǎn)則給出網(wǎng)絡(luò)的結(jié)果。輸入層和輸出層之間的層被稱為隱藏層。
用數(shù)學(xué)術(shù)語(yǔ)來(lái)說(shuō),可以把輸入層想象成一個(gè) N ? 1 矩陣,其中 N 是輸入層的節(jié)點(diǎn)數(shù),矩陣中的每個(gè)元素都對(duì)應(yīng)激活值,如圖 1 所示。
圖 1:典型神經(jīng)網(wǎng)絡(luò)架構(gòu),包含輸入層、隱藏層和輸出層。
接下來(lái)是隱藏層。隱藏層的數(shù)量及其節(jié)點(diǎn)數(shù)取決于模型的復(fù)雜性和可用的計(jì)算能力。隱藏層的每個(gè)節(jié)點(diǎn)會(huì)對(duì)輸入層的激活值應(yīng)用不同的權(quán)重和偏置,然后通過(guò)非線性激活函數(shù)處理。通過(guò)這種方式,神經(jīng)網(wǎng)絡(luò)不僅能執(zhí)行簡(jiǎn)單的線性運(yùn)算,還能解決復(fù)雜的非線性問(wèn)題。
圖 2:隱層的激活值是通過(guò)上一層激活值的組合計(jì)算得出的。
如果輸入層是一個(gè) N ? 1 矩陣(n1、n2......),那么下一個(gè)激活值就是將其與一個(gè) M ? N 矩陣相乘得到的,其中 M 是隱藏層的節(jié)點(diǎn)數(shù)。矩陣中的每個(gè)元素都是一個(gè)權(quán)重,用 wmn 表示,這意味著每一層都需要 MN 個(gè)參數(shù)。結(jié)果是一個(gè) M ? 1 矩陣,然后用偏置值(b1、b2......)抵消。計(jì)算出新的激活值后,將其傳遞給“激活函數(shù)”。激活函數(shù)可以提供非線性行為,如剪切和歸一化,能使網(wǎng)絡(luò)比簡(jiǎn)單的矩陣乘法更強(qiáng)大。
數(shù)據(jù)經(jīng)過(guò)幾個(gè)隱藏層處理后,最終到達(dá)輸出層。輸出節(jié)點(diǎn)的激活值對(duì)應(yīng)用于分類或預(yù)測(cè)相關(guān)參數(shù)。例如,從示波器收集的時(shí)間序列數(shù)據(jù)被輸入到輸入層,達(dá)到將信號(hào)分類為正弦波、方波、鋸齒波或直流信號(hào)的神經(jīng)網(wǎng)絡(luò)目的。在輸出層中,每個(gè)節(jié)點(diǎn)將對(duì)應(yīng)其中一個(gè)選項(xiàng),激活值最高的節(jié)點(diǎn)代表網(wǎng)絡(luò)對(duì)信號(hào)形式的最佳猜測(cè)。如果一個(gè)激活值接近 1,而其他激活值接近0,則表示網(wǎng)絡(luò)猜測(cè)的可信度很高。如果激活值相近,則表示對(duì)預(yù)測(cè)結(jié)果的信心不足。
神經(jīng)網(wǎng)絡(luò)是如何工作的?
如果不調(diào)整隱藏層的權(quán)重和偏置,神經(jīng)網(wǎng)絡(luò)最終只能是一個(gè)復(fù)雜的隨機(jī)數(shù)生成器。為了提高模型的準(zhǔn)確性,用戶必須提供訓(xùn)練數(shù)據(jù),即使用已知答案的訓(xùn)練數(shù)據(jù)集優(yōu)化模型。然后,模型可以根據(jù)訓(xùn)練集計(jì)算出自己的答案,并與真實(shí)值進(jìn)行比較。計(jì)算出的差值被稱為成本函數(shù),是對(duì)模型性能的量化評(píng)估。
計(jì)算出給定數(shù)據(jù)集的成本函數(shù)后,就可以通過(guò)各種微積分運(yùn)算來(lái)調(diào)整隱藏層的權(quán)重和偏置,從而達(dá)到最小化成本函數(shù)的目標(biāo)。這與向量微積分中的梯度下降概念類似,可在文獻(xiàn)[1]中進(jìn)一步探討。這一過(guò)程被稱為反向傳播(backpropagation),它允許通過(guò)成本函數(shù)獲得的信息在各層中向后傳遞,從而使模型在無(wú)需人工輸入的情況下進(jìn)行學(xué)習(xí)或自我調(diào)整。
訓(xùn)練數(shù)據(jù)通常會(huì)在神經(jīng)網(wǎng)絡(luò)中運(yùn)行多次。提供給模型的每個(gè)數(shù)據(jù)實(shí)例被稱為一個(gè)歷元。通常情況下,部分訓(xùn)練數(shù)據(jù)會(huì)被保留用于驗(yàn)證。在驗(yàn)證過(guò)程中,訓(xùn)練有素的網(wǎng)絡(luò)將從保留的數(shù)據(jù)集中推斷輸出,并將其預(yù)測(cè)結(jié)果與已知的正確輸出進(jìn)行比較。這比單純的成本函數(shù)值更能準(zhǔn)確反映模型的性能,因?yàn)樗砻髁四P蛯?duì)新輸入和新輸入的泛化能力。
神經(jīng)網(wǎng)絡(luò)有哪些不同類型?
神經(jīng)網(wǎng)絡(luò)的運(yùn)行原理雖然相似,但根據(jù)應(yīng)用的不同可以有多種形式。常見的神經(jīng)網(wǎng)絡(luò)包括
前饋神經(jīng)網(wǎng)絡(luò)(FNN):這是標(biāo)準(zhǔn)格式,如上述示例中討論的格式。在前饋神經(jīng)網(wǎng)絡(luò)中,數(shù)據(jù)通過(guò)網(wǎng)絡(luò)向前傳遞,不需要任何反饋,也不需要記憶之前的輸入。典型的應(yīng)用例子比如圖像識(shí)別,每個(gè)像素都是神經(jīng)網(wǎng)絡(luò)的輸入,而輸出則是對(duì)該圖像的分類。
卷積神經(jīng)網(wǎng)絡(luò)(CNN):這是 FNN 的一種子類型,通常通過(guò)使用濾波器來(lái)檢測(cè)圖像中的特征。由于圖像的尺寸通常很大,這些濾波器的作用是將輸入圖像的尺寸縮小到更小的權(quán)重?cái)?shù)。這樣,隱層中的每個(gè)神經(jīng)元就可以在整個(gè)輸入中掃描相同的特征,因此CNN 在處理圖像識(shí)別任務(wù)具有很高魯棒性。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN):與前饋網(wǎng)絡(luò)不同,RNN 在隱藏層中使用反饋。反饋機(jī)制為系統(tǒng)提供了記憶,因此給定層的輸出可以取決于先前的輸入。這使得 RNN 成為時(shí)間序列、語(yǔ)音和音頻數(shù)據(jù)等連續(xù)數(shù)據(jù)集的絕佳選擇。
自動(dòng)編碼器:自動(dòng)編碼器是一種特殊的神經(jīng)網(wǎng)絡(luò),它能將給定數(shù)據(jù)編碼到一個(gè)縮小的維度空間,然后從編碼數(shù)據(jù)中重建或解碼。從概念上講,這與統(tǒng)計(jì)和生物信息學(xué)中常用的主成分分析(PCA)非常相似。
神經(jīng)網(wǎng)絡(luò)在信號(hào)處理中的應(yīng)用
神經(jīng)網(wǎng)絡(luò)不僅在大型語(yǔ)言模型、圖像解密和翻譯等方面具有廣泛應(yīng)用,還能顯著提升信號(hào)處理中的測(cè)量性能。利用機(jī)器學(xué)習(xí)改進(jìn)測(cè)量設(shè)置的應(yīng)用包括:
控制系統(tǒng):在某些復(fù)雜系統(tǒng)中,很難事先知道實(shí)現(xiàn)特定控制狀態(tài)所需的輸入,或者系統(tǒng)模型難以反向推導(dǎo)。在這種情況下,可使用波形發(fā)生器或函數(shù)發(fā)生器對(duì)系統(tǒng)進(jìn)行探測(cè),同時(shí)使用示波器監(jiān)控系統(tǒng)的響應(yīng)狀態(tài)。然后,神經(jīng)網(wǎng)絡(luò)根據(jù)當(dāng)前狀態(tài)與目標(biāo)控制之間的差異學(xué)習(xí)反向映射。與 PID 控制器結(jié)合使用,可實(shí)現(xiàn) PID 參數(shù)的自適應(yīng)調(diào)整[2]。
傳感器校準(zhǔn):神經(jīng)網(wǎng)絡(luò)可以獲取傳感器數(shù)據(jù)并補(bǔ)償系統(tǒng)誤差,如電纜的相位失真或延遲,或光電探測(cè)器的光束偏差。這種方法可在數(shù)據(jù)進(jìn)入下一階段實(shí)驗(yàn)前進(jìn)行實(shí)時(shí)修正,提高測(cè)量精度。
信號(hào)去噪:這種技術(shù)利用神經(jīng)網(wǎng)絡(luò)作為自動(dòng)編碼器,提取信號(hào)的關(guān)鍵特征,然后根據(jù)這些特征重建信號(hào)。由于隨機(jī)噪聲不屬于關(guān)鍵特征,重建后的信號(hào)本質(zhì)上就是經(jīng)過(guò)去噪的信號(hào),即神經(jīng)網(wǎng)絡(luò)充當(dāng)了高效的噪聲濾波器。
信號(hào)分類:神經(jīng)網(wǎng)絡(luò)可將時(shí)間序列等輸入信號(hào)與已知模板或一系列模板進(jìn)行比較。這樣,用戶就能快速對(duì)信號(hào)類別進(jìn)行分類,識(shí)別數(shù)據(jù)集中的異常值或錯(cuò)誤,檢測(cè)隨機(jī)事件,或根據(jù) IQ 正交振幅量子態(tài)進(jìn)行分類[3]。
圖 3:經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)處理后的去噪重建信號(hào)。
基于 FPGA 的神經(jīng)網(wǎng)絡(luò)有哪些優(yōu)勢(shì)?
神經(jīng)網(wǎng)絡(luò)通常是在 CPU 和/或 GPU 的組合上構(gòu)建和運(yùn)行的。這在處理大型模型時(shí)非常有效,但同時(shí)也對(duì)資源和能耗要求較高。對(duì)于前面提到的信號(hào)處理應(yīng)用類型來(lái)說(shuō)往往也是過(guò)度的。
FPGA具有高速處理及并行能力,使得神經(jīng)網(wǎng)絡(luò)在處理實(shí)時(shí)數(shù)據(jù)時(shí)具備低延遲和高效的資源利用率。與傳統(tǒng)的GPU/CPU相比,基于 FPGA 的神經(jīng)網(wǎng)絡(luò)非常適合實(shí)驗(yàn)情況,因?yàn)樗鼈兲幚韺?shí)時(shí)數(shù)據(jù)的速度快,無(wú)需與主機(jī) PC 通信就能實(shí)現(xiàn)快速控制和決策。FPGA 還可以根據(jù)用戶需求變化重新調(diào)整配置,靈活性強(qiáng)。最后,由于 FPGA 體積小巧,在FPGA 上實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)有助于減少資源和能源消耗[4][5]。
Moku神經(jīng)網(wǎng)絡(luò)是什么?
Moku基于FPGA開發(fā)了一些列靈活、可快速重新配置的測(cè)試和測(cè)量?jī)x器套件外, Moku:Pro 現(xiàn)在還新增 Moku 神經(jīng)網(wǎng)絡(luò) 功能。得益于 FPGA 的可重構(gòu)性性和快速處理速度,神經(jīng)網(wǎng)絡(luò)可與其他 Moku 儀器(如波形發(fā)生器、 PID 控制器和示波器)一起使用,優(yōu)化信號(hào)分析、去噪、傳感器調(diào)節(jié)和閉環(huán)反饋等應(yīng)用場(chǎng)景解決方案。
用戶可以使用 Python 開發(fā)和訓(xùn)練自己的神經(jīng)網(wǎng)絡(luò),并在多儀器并行模式下將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)上傳到 Moku:Pro 。這樣就可以實(shí)現(xiàn)多達(dá)四個(gè)輸入通道或一個(gè)通道的時(shí)間序列數(shù)據(jù)分析,以及多達(dá)四個(gè)輸出用于實(shí)時(shí)實(shí)驗(yàn)數(shù)據(jù)處理,所有這些都可以在一臺(tái) Moku:Pro 上完成。Moku 神經(jīng)網(wǎng)絡(luò)具有多達(dá)五個(gè)全連接層,每個(gè)層包含多達(dá) 100 個(gè)神經(jīng)元,并根據(jù)您的應(yīng)用提供五種不同的激活函數(shù)選項(xiàng),以適應(yīng)不同應(yīng)用需求。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4733瀏覽量
100400 -
人工智能
+關(guān)注
關(guān)注
1789文章
46607瀏覽量
236939 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8344瀏覽量
132286
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論