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