作者:焦述銘
導讀
如今電子計算機盡管性能越來越強大,但處理某些復雜計算問題時,仍然難于應對,無法發揮出最高的效率。比如當一個線性方程組十分龐大時,無論從輸入到輸出的正向向量矩陣相乘,還是從輸出到輸入的反向求解,都是一個挑戰。近年來,一些跳出思維定勢的新型計算模式被嘗試,不再依賴現有的計算機算法和芯片,而是另起爐灶,直接通過簡單的電路模擬方程組來快速求解,由于光與電之間的相似性,光學系統也可以通過類似方式去完成任務,展示出異曲同工之妙。
現有電子計算機如何求解?
我們從一個很簡單的小學數學題說起:籠子里有10只雞和5只兔子,問籠子里一共有多少只動物?很簡單,一共有15只。那籠子里的動物一共有多少只腳呢?雞有2只腳,兔子有4只腳,一共有10×2+5×4=40只腳。如果反過來,已知籠子里雞和兔共15只,共有40只腳,問雞和兔各有幾只?這就是一個經典的“雞兔同籠”問題。
有人的解法是假設雞和兔都訓練有素,吹一聲哨,每只動物就會抬起一只腳,一聲哨響后,籠子里落地的腳剩下40-15=25只,再吹一聲哨,剩下25-15=10只腳,此時所有雞的兩只腳都抬起來了,于是“一屁股坐下了”,雙腿站著的都是兔子,所以兔子有10/2=5只,雞有15-5=10只。
更廣義來說,上面兩個問題其實分別是正向和反向求解兩個二元一次方程組成的方程組,x1和x2分別是雞和兔的數量,y1和y2是動物總數及腳總數。如果用2×2 矩陣表示,正向是向量矩陣相乘,反向則需要矩陣求逆。
![]()
圖1:雞兔同籠問題背后的線性方程組數學關系
如果改一下問題,有蜘蛛、蜻蜓、蟬三種動物共9只,共有腿58條,翅膀10對(蜘蛛有8條腿,沒有翅膀;蜻蜓有6條腿,2對翅膀;蟬有6條腿,1對翅膀),問蜘蛛、蜻蜓和蟬各有多少只?(答案:2只、3只和4只。)還是同樣類型的問題,矩陣大小由2×2 擴大為了3×3。
![]()
圖2:線性方程組中矩陣尺度由2×2 變成3×3
當然你會說,計算一共有多少只腿,猜籠子里的雞兔數量,是比較無聊的問題,有什么意義和用處呢?這類假想的題目本身可能有些脫離實際,不過背后所代表的通用數學模型,線性方程組正向和反向求解,或者說向量矩陣相乘以及矩陣求逆,確是應用非常廣泛。在人工智能與機器學習、圖像處理與計算機視覺、運籌學和最優化、機器人控制、信息與通信工程、數據挖掘、經典及量子物理等領域都是不可或缺的。矩陣的尺度也可以不只2×2、3×3,可以是任意的正整數N×N ,成百上千上萬甚至更大都有可能。
![]()
圖3:更通用的正向向量矩陣相乘和反向矩陣求逆用于求解方程組(矩陣尺度為N×N)
相比較而言,正向向量矩陣相乘計算(由X獲得Y )比較直截了當,可以轉化為很多次的對應元素之間乘法和加法。而反過來求解方程組(由Y獲得X),會更加繁瑣和復雜,像“吹哨抬腿法”那樣,可以使用高斯消元法、LU分解法、雅可比迭代法等算法,將計算分解為很多步驟,最終仍然是很多次的最基本加減乘除。
當然在現有的電子計算機中,加減乘除還不是最基本的運算形式,更底層的機制依賴于二進制和邏輯門。每次要運算的數字都使用二進制表示,計算機的底層世界中只有很多個0和1,比如,每只雞有10(二進制中的2)只腳,每只兔有100(二進制中的4)只腳,然后利用與門、或門、異或門等各種邏輯門完成這些0和1比特之間的運算。每一次簡單的乘法和加法,都需要相當數量邏輯門齊心協力才能完成。不過不用擔心,邏輯門只是現代計算機或者芯片中最基本的單元,一塊芯片上或者一個處理器中有數以億計這樣的“基層員工”,動用其中幾十幾百個都是很小的比例。
模擬電子計算:另辟蹊徑
以上介紹的是現有電子計算機正向和反向求解線性方程組的工作方式,當矩陣的尺度非常大的時候,計算負擔不可小視,特別是反向求解的時候,計算機也往往需要較長運算時間才能給出結果。而研究者也在另辟蹊徑,嘗試通過一些物理系統模擬計算過程,以自然的方式直接展現出答案[1],不必像現有計算機那樣,將求解過程在算法上分解為繁瑣復雜的步驟,再通過眾多數量的二進制比特和邏輯門在底層實現。
兩個數字相乘或相加的數學關系隨處可見,比如電路里,兩個支路的電流匯合到一起,總的電流強度就會是支路電流之和,是一種天然的相加關系;再比如歐姆定律表示了電流、電壓和電阻(或電導)三者之間的關系,是一種天然的相乘關系。隨著憶阻器等新型電子器件的發展,電阻的數值大小可以方便地調節和設定。這樣一來,比如要計算兩個數值相乘,只要將電壓值大小和電導值大小分別設定為這兩個輸入數值,測量一下輸出電流大小,就知道了相乘結果的答案。
![]()
圖4:電流定律與歐姆定律
對于正向的向量矩陣相乘,以輸入端口的電壓值模擬輸入向量,以各個電阻的電導值模擬要相乘的矩陣,然后測量輸出端口的電流值,就可以得到向量矩陣相乘后的結果。以下分別是2×2和3×3矩陣情況下的電路。
![]()
圖5:模擬電路用于向量矩陣相乘運算(左:2×2 矩陣;右:3×3 矩陣)
而反向求解方程組,同樣可以通過類似的電路來模擬,需要額外使用運算放大器(OPA)器件建立輸入和輸出之間的反饋連接。根據輸入的恒定電流,測量電路在穩定狀態后的輸出電壓,即可以得到方程組的解。以2×2 矩陣對應的“雞兔同籠”問題為例,兩個輸入電流I1=15,I2=40分別表示籠子里中共有15只動物,共有40只腳,四個電阻的電導值還是對應于矩陣中各個系數,比如G21=2和G22=4分別表示雞有2只腳和兔有4只腳,最后測量得到的兩個電壓值V1=10和V2=5,就告訴了我們雞和兔各有10只和5只。整個過程不需要設計詳細的計算規則,電路直接給出了答案,這種稱為模擬電子計算的方式,相比于現有計算機利用二進制和邏輯門的方式,具有高效率和低能耗的潛在優勢。
![]()
圖6:包含反饋連接的模擬電路用于線性方程組反向求解(左:2×2 矩陣;右:3×3 矩陣)
光與電的異曲同工
由于光和電之間的諸多相似之處,模擬電路也可以變身為“光路”。在電的世界中,電流是在金屬導線中流動的,而在光的世界中,一束光也可以在光波導中傳播,光纖就是一個常見的例子。光以振幅或強度大小,表示光的強弱明暗程度,對應于不同的數值。
如同兩條河的支流,匯合到一條更加寬廣的干流,河水融為一體,在電的世界中,主干電流滿足分支電流相加的規律。在光的世界中,兩列光波導中光波相匯合,適當條件下,也可以滿足疊加的關系,比如對于非相干光,匯合后的光強度是各分支光強度的相加。
對于電路世界中的歐姆定律,“光路”世界中也有相對應的相乘關系。很多物體都是半透明的,既不會完全遮擋住光,也不會讓光完全透過,以一定的比例讓一部分光的能量透過,類似電路中的電阻器件,在光學系統中,利用相變(PCM)、鈮酸鋰薄膜、液晶等材料,可以加工出透光率可調節的器件,建立起一個類似于歐姆定律的出射光強、入射光強和透射率之間乘法的關系。
![]()
圖7:光的世界中與電的世界中歐姆定律相類似的乘法關系
更進一步,利用以上提到的所有這些組件,可以參照用于計算向量矩陣相乘的電路,搭建一個具備類似功能的光學系統[2]。下圖8右側系統中,淺藍色為氮化硅光波導,橘黃色為相變材料器件。
![]()
圖8:向量矩陣相乘的模擬運算比較:電路方式(左)和光學方式(右)
可以看到,兩者之間非常相似,簡直異曲同工,不謀而合。事實上,光學中完成這種向量矩陣相乘的模擬計算,方式也不唯一,還有利用其它光學原理的方式,比如級聯馬赫·曾德爾干涉儀(MZI)網絡,結構編碼的光傳播介質,波分復用微環濾波,光衍射神經網絡等[3]。最近,微軟研究院在Nature期刊上發表的一篇論文中[4],也以光學方式實現了向量矩陣相乘,并與電子計算相結合,可應用于金融結算和醫療成像,其中所采用的方式簡單說是將不同空間位置的入射光強度進行編碼,并根據反射光強度=入射光強度×反射率,也對空間光調制器上的反射率分布進行編碼,并利用透鏡的光會聚過程進行光強度疊加,最終完成所需的乘法和加法運算。
與電路反饋的方式類似,向量矩陣相乘的光學系統也可以通過光波導的反饋連接,用于線性方程組的反向求解[5-7]。比如圖9右邊的光學系統中,如果要求解的方程組是AX=Y ,將要相乘的矩陣設置為(I-A) ,I為單元矩陣,首先在右側各端口注入向量Y 對應的光強度信號,最終系統穩定后,只有左側各端口光強度等于要求解的
X向量時,( I - A )X+Y=X,每條反饋光波導兩端才能平衡,從而獲得正確的解向量
X
![]()
圖9:反向求解線性方程組的模擬運算比較:電路方式(左)和光學方式(右)
模擬電子計算和光計算都屬于現有主流計算機和芯片技術之外的新興技術模式,和量子計算、生物DNA計算等方向一起,近年來都得到了越來越多的關注,未來有望取得更多突破性進展。
相關文獻
[1]Z. Sun, S. Kvatinsky, X. Si, A. Mehonic, Y. Cai, and R. Huang, A full spectrum of computing-in-memory technologies. Nat Electron 6, 823–835 (2023)
[2]J. Feldmann, N. Youngblood, M. Karpov, H. Gehring, X. Li, M. Stappers, M. Le Gallo, X. Fu, A. Lukashchuk, A. S. Raja, J. Liu, C. D. Wright, A. Sebastian, T. J. Kippenberg, W. H. P. Pernice, and H. Bhaskaran, Parallel convolutional processing using an integrated photonic tensor core. Nature 589, 52–58 (2021).
[3]H. Zhou, J. Dong, J. Cheng, W. Dong, C. Huang, Y. Shen, Q. Zhang, M. Gu, C. Qian, H. Chen, Z. Ruan, and X. Zhang, Photonic matrix multiplication lights up photonic accelerator and beyond, Light Sci Appl 11, 30 (2022)
[4]K. P. Kalinin, J. Gladrow, J. Chu et al. Analog optical computer for AI inference and combinatorial optimization, Nature 645, 354–361 (2025).
[5]K. Wu, C. Soci, P. P. Shum, N. I. Zheludev, Computing matrix inversion with optical networks. Opt. Express 22, 295–304 (2014).
[6]N. M. Estakhri, B. Edwards, and N. Engheta, Inverse-designed metastructures that solve equations, Science 363, 1333-1338 (2019).
[7]X. Liu, J. Cheng, H. Zhou, J. Dong, and X. Zhang, Chip-scale all-optical complex-valued matrix inverter, APL Photonics 9 (5), 056106 (2024).
本文轉載自《中國光學》微信公眾號
《物理》50年精選文章
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.