每次矩陣相乘用不到一個光子,手寫數(shù)字識別準度超90%,光學神經(jīng)網(wǎng)絡效率提升數(shù)個量級
當前,深度學習在越來越多的任務上超越了人類,涉及的領域包括游戲、自然語言翻譯、醫(yī)學圖像分析。然而,電子處理器上訓練和運行深度神經(jīng)網(wǎng)絡的高能量成本阻礙了深度學習的進步空間。因此,光學神經(jīng)網(wǎng)絡代替深度學習物理平臺的可行性受到了廣泛的關注。
理論上,光學神經(jīng)網(wǎng)絡比部署在常規(guī)數(shù)字計算機上的神經(jīng)網(wǎng)絡具有更高的能源效率。在最近的一項研究中,來自美國康奈爾大學等的研究者們證明了,光學神經(jīng)網(wǎng)絡可實現(xiàn)在手寫數(shù)字分類上的極高準確度:其中,在權重相乘中使用約 3.2 個檢測到的光子使得準確度達到了 99%,而僅使用約 0.64 個光子(約 2.4×10^-19 J 光能)就能達到 90%以上的準確度。
論文鏈接:https://arxiv.org/pdf/2104.13467.pdf
該研究的實驗結果是通過自定義的自由空間光學處理器所實現(xiàn)的,該處理器可以執(zhí)行大規(guī)模并行矩陣矢量乘法運算,最多可同時執(zhí)行約 50 萬次標量(權重)乘法。
使用市售的光學組件和標準的神經(jīng)網(wǎng)絡訓練方法,光學神經(jīng)網(wǎng)絡可以在標準量子極限附近通過極低的光功率達到很高的精度。這樣的結果證明了低光功率操作的原理,并為實現(xiàn)光學處理器開辟了一條道路:只要仔細設計用于數(shù)據(jù)存儲和控制的電子系統(tǒng),每個標量乘法只需要 10^-16 J 的總能量,這要比當前的數(shù)字處理器高效好幾個數(shù)量級。
光學矩陣向量乘法器的實驗儀器配置。a 為光學裝置原理圖,b 為與原理圖相對應的主要實驗儀器。
大規(guī)模光學矩陣向量相乘
在光學矩陣矢量乘法器中實現(xiàn)能量優(yōu)勢的關鍵是盡可能放大要相乘的矩陣和向量。被放大后,大規(guī)模的乘法和累加操作就可以完全在光學領域并行執(zhí)行,而且電子和光信號之間的轉換成本有緩沖空間。在光學中,有幾種不同的方法來實現(xiàn)并行操作:波長多路復用、光子中的集成電路空間多路復用和 3D 自由空間光學處理器中的空間多路復用。
迄今為止,在所有多路復用方法和架構中,模擬 ONN 都使用較小的向量 - 向量點積(作為實現(xiàn)卷積層和完全連層的基本操作)或矩陣向量乘法(用于實現(xiàn)完全連接的層),將向量限制最多 64 維(遠低于 10^3),這也是光處理器能耗高于理論預測的根本原因。
因此,運用了可以進行大規(guī)模矩陣矢量乘法的 3D 自由空間光學處理器,研究者構建了如下圖 a 所示的 ONN 架構,用每次標量相乘少于一個光子進行圖片分類,達到了 ONN 的量子限制理論效率峰值。
研究者設計和構造的光學處理器使用以下方案執(zhí)行矩陣向量乘法圖片:
- 把輸入向量 ~x 的每個元素 x_j 編碼為一個光源像素照射的單獨空間模式強度;
- 把每個矩陣元素 w_ij 編碼為調(diào)制器像素的透射率;
- 使用有機發(fā)光二極管(OLED)顯示器作為光源;
- 使用空間光調(diào)制器(SLM)進行強度調(diào)制。
矩陣向量乘法是通過三個物理步驟計算的:
- 扇出:輸入向量的元素在空間上排列為 2D 塊(圖 1b,左上方)。代表輸入向量圖片的 2D 塊被復制了與矩陣 W 中的行數(shù)相等的次數(shù),然后平鋪在 OLED 顯示上,如圖 1b 所示(頂行)。
- 逐項積:將編碼單個標量元素 x_j 的每個 OLED 像素對齊并成像到 SLM 上的相應像素,其透射率設置為∝w_ij,執(zhí)行標量乘法 w_ij x_j(圖 1b 底部中間)。
- 光學扇入:將每個塊的強度調(diào)制像素通過將其透射的光聚焦到檢測器上進行物理求和。撞擊在第 i 個檢測器上的光子總數(shù)與矩陣向量乘積 y 的元素 y_i 成正比(圖片)(圖 1b 右下)。每個 y_i 可以解釋為輸入向量圖片與矩陣 W 的第 i 行之間的點積。
當光通過設置,矩陣向量乘法中涉及的所有標量乘法和加法被并行計算完成。向量元素在光強度中的編碼將設置限為使用矩陣和具有非負元素的向量執(zhí)行矩陣向量乘法。而且,該系統(tǒng)還可以用于對具有正負的元素的矩陣和向量執(zhí)行矩陣向量乘法,方法是使用偏移量和縮放比例將計算轉換為僅涉及非負數(shù)的矩陣向量乘法。
對于系統(tǒng)計算的每個向量 - 向量點積,將與逐項積相對應的空間模式聚焦到單個檢測器上,來進行逐項積的求和。因此,檢測器的輸出與點積答案成正比,其信噪比(SNR)在散粒噪聲極限下縮放為√N。如果向量足夠大,那么即使每個空間模式的平均光子數(shù)都遠小于 1,撞擊到檢測器上的光子總數(shù)也可能遠遠大于 1,因此正如圖 1c 所示,精確地讀出了點積答案是可能的。
亞光子點積的精度
為了了解系統(tǒng)在低光功耗情況下的實際性能,研究者在調(diào)整光子的數(shù)量的同時描述其準確性。在第一個表征實驗中,研究者計算了隨機選擇的向量對的點積(圖 2a),將通過點積計算得到的表征結果直接應用于通用矩陣向量乘法的設置(看作向量 - 向量點積計算)。
而點積計算的答案是標量,因此只需使用單個檢測器,編碼點積答案的光信號由能夠分辨單個光子的靈敏光電檢測器測量。通過改變檢測器的積分時間并在 OLED 顯示后立即插入中性濾光片,可以控制每個點積所使用的光子數(shù)。
如上圖 2b 所示,為了證明設置可以基于大尺寸向量使用每個標量乘積少于 1 個光子的計算,研究者測量了尺寸約為 50 萬的向量之間點積的數(shù)值精度。每個標量乘法 0.001 個光子的情況下,測得的誤差約為 6%,導致此誤差的主要因素是檢測器的散粒噪聲。隨著增加所使用的光子數(shù)量,誤差逐漸減小,直到在每次乘法 2 個或以上光子時達到大約 0.2%的最小誤差。
為了使實驗獲得的模擬數(shù)字精度與數(shù)字處理器中的數(shù)字精度之間能夠進行對比,研究者將每個測得的模擬誤差百分比解釋為對應于計算出的點積答案的有效位精度。使用度量噪聲等效位的模擬 RMS 誤差 6%對應于 4 位,而 0.2%RMS 誤差則對應于大約 9 位。
研究者還證實了,當每個標量乘法使用較少數(shù)量的光子時,可以計算出較短向量之間的點積(圖 2c)。對于每次乘法范圍為 0.001 至 0.1 個光子的光子預算,無論所測試的所有向量有多大,數(shù)值誤差都由散粒噪聲決定。當使用的光子數(shù)量足夠大時,誤差不再由散粒噪聲控制,這與圖 2b 中所示的單向量大小結果一致。對于測試的每個光子預算,較大向量之間的點積誤差較低。這可能是因為較大向量之間的點積涉及了更大量項的有效平均。
使用亞光子乘法的 ONN
由于使用非常有限的光子預算,導致了乘法誤差。為了確定 ONN 可以容忍多少誤差,研究者運行經(jīng)過訓練的神經(jīng)網(wǎng)絡,并根據(jù)使用的光子數(shù)量來測量分類精度。
如下圖 3a 所示,研究者將帶有 MNIST 數(shù)據(jù)集的手寫數(shù)字分類作為基準任務,并訓練了一個具有用于低精度推理硬件(量化感知訓練)的反向傳播的四層全連接多層感知器(MLP)。
研究者首先評估了 MNIST 數(shù)據(jù)集中 5 個不同光子預算下的前 130 個測試圖像:每個標量乘法的光子分別為 0.03、0.16、0.32、0.64 和 3.2 個光子(圖 3b 中間圖橙色點)。
然后他們發(fā)現(xiàn)了每次乘法使用 3.2 個光子會導致~ 99%的分類精度(圖 3b 右上),幾乎與在數(shù)字計算機上運行的同一訓練過的神經(jīng)網(wǎng)絡的精度(99%)相同。在亞光子狀態(tài)下,每個乘法使用 0.64 個光子,ONN 達到大于 90%的分類精度(圖 3b 中上)。
實驗結果與遭受散粒噪聲的 ONN 所執(zhí)行的同一神經(jīng)網(wǎng)絡的仿真結果非常吻合(圖 3b 中間面板,深藍色線)。如圖 3b 所示,為了達到 99%的精度,每次推斷手寫數(shù)字所檢測到的總光能約為 1 pJ。對于這些實驗中使用的權重矩陣,平均 SLM 透射率約為 46%。
因此,當考慮到 SLM 不可避免的損耗時,每次推斷所需的總光能約為 2.2 pJ。而 1 pJ 接近電子處理器中僅用于一個標量乘法的能量,而研究者的模型每次推斷需要 89,400 標量乘法。
康奈爾大學的研究者使用標準的神經(jīng)網(wǎng)絡模型架構和訓練技術,無須執(zhí)行任何重新訓練就可以運行模型。軟件和硬件開發(fā)的成功分離也表明,研究者的光學神經(jīng)網(wǎng)絡(ONN )在無需對 ML 軟件的工作流程進行任何重大更改的條件下,可以替代其他更傳統(tǒng)的神經(jīng)網(wǎng)絡加速器硬件。
同時,這些研究結果表明,光學神經(jīng)網(wǎng)絡在原理上比電子神經(jīng)網(wǎng)絡具有更多基本的能量優(yōu)勢。光學神經(jīng)網(wǎng)絡可以在光子預算體制下運行,其中標準量子極限(即光學散粒噪聲)決定了可達到的精度。