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