海歸學者發起的公益學術平臺
分享信息,整合資源
交流學術,偶爾風月
線性代數存在於幾乎所有的科學和工程領域,比如統計學、物理學、信號處理,和機器學習。線性代數中最核心的一個操作是解不同的矩陣方程,包括解線性方程組和特徵向量等。在傳統計算機上,解矩陣方程需要一些精心設計的算法,如高斯消元法、LU分解法,然後在多項式時間內(比如O(N3),N是矩陣行/列數)獲得方程解。
在大數據時代,人們要處理的數據呈爆發式增長,而很多數據處理本質是一個矩陣方程問題,如谷歌的網頁排序(PageRank算法)、利用超級計算機模擬量子效應(解薛丁格方程)。隨著摩爾定律的失效,以及由於馮諾依曼架構存儲、計算分離的固有限制,想更快、更省地完成數據處理變得越來越難,而計算的時間和能耗效率在大數據時代顯得尤為重要。
近年來,存內計算(in-memory computing)興起,通過在存儲單元內完成計算將顯著提高計算效率。一個典型的存內計算例子是利用阻變存儲器(或稱憶阻器)的交叉陣列一步完成矩陣-向量乘法的運算,從而快速完成包括訓練神經網絡在內的大數據任務。然而,一步解矩陣方程,如線性方程組Ax = b,仍然是一個挑戰。在我們最新的PNAS文章裡,我們報導了利用交叉存儲陣列,通過引入反饋電路,可以一步解線性方程組和矩陣的特徵向量,進而實現一步解微分方程,包括傅立葉方程、薛丁格方程,和一步完成谷歌的網頁排序。
對於解線性方程組Ax = b,我們採用的電路如圖1(a)所示。電路中包含了一個交叉存儲陣列,陣列中每一個行線和列線之間有一個阻變存儲器件,它的電導值一一對應於矩陣中的一個元素值。已知向量b由行線的輸入電流表示,通過運算放大器(運放)引入的負反饋機制將使行線虛接地,從而列線上運放的輸出電壓可以表示未知向量x的解值。由於矩陣A以非易失的形式存儲在交叉陣列中,一旦施加輸入電流,相應的線性方程組就能一步得到解答。實驗中,我們存儲的矩陣A如圖1(a)所示。圖1(b)給出了一個相應的線性方程組的實驗解,以及它的解析解。可以看到,實驗解十分接近解析解(相對誤差在3%),從而證明了我們方案的可行性。逆矩陣也是線性代數中一項非常重要的內容,它也可以通過求解多個線性方程組獲得,實驗解和解析解的比較如圖1(c)所示。
圖1. 線性方程組求解電路及求解結果。
阻變存儲器件的電導值只能為正數,因此圖1(a)的電路只適用於解係數為正的線性方程組。為了使我們的方案具有普適性,即,解任意實數的線性方程組,我們進一步拓展了電路,如圖2(a)所示。圖中利用了兩個交叉陣列和反相器,實現了兩個正矩陣之間的差,從而能夠代表任意實數矩陣。基於該普適的線性方程組求解電路,利用有限差分法,我們求解了一個微分方程。如圖2(b)所示,在兩個電極之間施加一個電壓,電極之間導線上的溫度分布可以用一維靜態傅立葉方程來描述。圖2(c)給出了該微分方程的電路解,可以發現與方程的解析解完美重合,從而證明了我們的電路用於快速求解實際問題的可靠性。
圖2. 針對任意實數矩陣的線性方程組求解電路,及求解熱傳導的一維傅立葉方程。
基於交叉存儲陣列和運放的負反饋機制,我們還能求解矩陣方程Ax =λx,λ為矩陣的特徵值,x為相應的特徵向量。電路如圖3(a)所示,矩陣A依然由交叉陣列表示,λ由跨阻放大器的跨導表示,反相器的輸出電壓即為待解的x,從而實現一步求解特徵向量。需要注意的是,圖3(a)電路用於求解正特徵值的特徵向量,而假如求解負特徵值的特徵向量,將反相器移去即可,負特徵值的絕對值依然由跨阻放大器的跨導表示。和線性方程組求解電路一樣,特徵向量求解電路也可以拓展到任意實數矩陣。谷歌公司的網頁排序算法(PageRank)本質上就是求解一個隨機矩陣的最大特徵值的特徵向量,因此,我們的電路可以用於一步實現網頁排序,而不需要繁複的迭代算法,從而為搜尋引擎提供加速。圖3(b)表示了各科技巨頭公司的Wikipedia網頁之間的連接情況(網頁i指向網頁j代表網頁i引用網頁j),圖3(c)則給出了電路解的排序結果和解析解之間的比較,可以發現二者排序一致。
圖3. 特徵向量求解電路及PageRank。
薛丁格方程HΨ= EΨ是量子力學的基礎,為了獲得一個量子系統的波函數分布,必須求解相應的薛丁格方程。作為一個微分方程,薛丁格方程可以通過有限差分法轉化為一個特徵向量問題。圖4(a)是一個一維量子勢阱,為了求解它的基態波函數,我們將待求解的波函數離散化,從而將哈密頓量H轉化為一個矩陣,基態能量E則是最小特徵值(負數),而離散化Ψ則是待求解的特徵向量。圖4(b)給出了該波函數的電路解,可以看到它很好地描述了一維量子勢阱基態的波函數分布,因此證明了我們的電路具有很大的潛力用於加速模擬量子系統,比如在新型材料合成和新型藥物開發等領域。
圖4. 利用特徵向量求解電路解一維量子勢阱的基態波函數。
在我們的工作中,通過利用非易失的阻變存儲器(憶阻器)交叉陣列和引入負反饋機制,常見的線性代數問題,包括解線性方程組、解特徵向量、解微分方程可以在一步內完成,從而顯著提高計算速度,同時降低計算能耗,為未來的存內計算系統應用於實際的大數據問題中打下了堅實基礎。
該工作由來自義大利米蘭理工大學的一支團隊完成,團隊專注於利用新型存儲器件加速傳統計算和機器學習的開發。孫仲博士為論文的第一作者,Daniele Ielmini教授為論文的通訊作者。