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