盧 瑾,蘇豪宇,王 艷,任宏亮
(浙江工業(yè)大學(xué)a.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院;b.信息工程學(xué)院,杭州 310023)
光具有天然的并行處理能力以及成熟的波分復(fù)用技術(shù),使數(shù)據(jù)傳輸容量及帶寬大幅度提升。與傳統(tǒng)電子器件相比,光學(xué)器件具有超大的信號帶寬、低延遲和可重構(gòu)性。
光學(xué)神經(jīng)網(wǎng)絡(luò)(Optical neural network,ONN)是指經(jīng)過一定的調(diào)制手段以后,將信息加載在光的強(qiáng)度、相位或者偏振等特征上,并通過光的干涉、衍射、偏振或散射等特性直接實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的計(jì)算[1-2]。在計(jì)算過程中并不涉及光、電轉(zhuǎn)換的過程,運(yùn)算結(jié)果直接體現(xiàn)在光的輸出特性上。光學(xué)神經(jīng)網(wǎng)絡(luò)能有效減輕軟件和電子硬件兩者的部分運(yùn)算,是解決當(dāng)前算力、功耗極具潛力的途徑之一,是人工智能領(lǐng)域很有潛力的研究方向[3-5]。硅光子技術(shù)由于其大帶寬、低功耗以及和互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)工藝兼容性等優(yōu)勢而被認(rèn)為是突破微電子瓶頸最有希望的候選者之一。根據(jù)不同的實(shí)現(xiàn)方式,已經(jīng)提出許多硅光子神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)來促進(jìn)復(fù)雜的計(jì)算任務(wù),例如衍射神經(jīng)網(wǎng)絡(luò)[6-7]和光干涉神經(jīng)網(wǎng)絡(luò)[8]。利用衍射元件或光學(xué)干涉儀來執(zhí)行線性操作。已證明硅光子干涉電路比微電子處理器快100 倍,但能量消耗僅為其1/1 000。隨著對計(jì)算速度和功率的需求迅速增長,硅光子學(xué)神經(jīng)網(wǎng)絡(luò)為人工智能硬件提供了有前途的替代方案。
Shen等[9]利用硅光學(xué)干涉儀芯片實(shí)現(xiàn)線性計(jì)算,結(jié)合電域模擬的非線性激活函數(shù),成功構(gòu)建全連接神經(jīng)網(wǎng)絡(luò),研制出世界第一顆光子干涉計(jì)算單元芯片,通過在這種納米光子芯片上的深度學(xué)習(xí)編程實(shí)現(xiàn)語音識別功能。Bagherian 等[10]基于光子干涉計(jì)算單元芯片,使用時(shí)分復(fù)用方法擴(kuò)展了一個可以利用芯片實(shí)現(xiàn)圖像卷積簡單的全連接神經(jīng)網(wǎng)絡(luò)。針對用于光子神經(jīng)網(wǎng)絡(luò)的反向傳播算法很難移植到訓(xùn)練光子神經(jīng)網(wǎng)絡(luò),Hughes等[11]提出片上訓(xùn)練算法。以光子干涉儀計(jì)算芯片構(gòu)建為發(fā)端,光計(jì)算芯片研究如火如荼進(jìn)入一個新的階段[12-13]。不論作為研究還是學(xué)習(xí),光子干涉儀芯片作為成熟且即將商用化的光計(jì)算芯片都是光子芯片的重要研究基礎(chǔ)和對象。
基于片上光電智能計(jì)算架構(gòu)和算法的研究,聚焦光學(xué)信號處理和人工智能計(jì)算領(lǐng)域的關(guān)鍵問題,采用Neuroptica軟件包搭建模型,實(shí)現(xiàn)光學(xué)神經(jīng)網(wǎng)絡(luò)的應(yīng)用場景拓展,實(shí)現(xiàn)用于訓(xùn)練圖像處理系統(tǒng)的手寫數(shù)字?jǐn)?shù)據(jù)率(Mixed National Institute of Standards and Technology database,MNIST)手寫體數(shù)據(jù)識別功能,整個實(shí)驗(yàn)過程如圖1 所示。為設(shè)計(jì)光子芯片提供重要的研究基礎(chǔ)和功能仿真方法;為初學(xué)者學(xué)習(xí)在不同參數(shù)下訓(xùn)練模型進(jìn)行對比實(shí)驗(yàn)和自主編程設(shè)計(jì)ONN 框架實(shí)現(xiàn)其它機(jī)器學(xué)習(xí)任務(wù)提供重要的仿真平臺。
圖1 手寫體數(shù)據(jù)識別實(shí)驗(yàn)流程圖
ONN結(jié)構(gòu)如圖2 所示,由輸入層、輸出層以及中間各隱藏層構(gòu)成。隱藏層包括光學(xué)推理單元(Optical Interference Unit,OIU)和光學(xué)非線性單元(Optical Nonlinearity Unit,ONU),分別實(shí)現(xiàn)光矩陣乘法和非線性激活函數(shù)的作用。在ONN的每一層中,信息通過光學(xué)矩陣乘法的線性計(jì)算組合,應(yīng)用光學(xué)非線性激活函數(shù)進(jìn)行傳播。ONN每一層由一個線性矩陣塊組成,該矩陣乘以輸入向量xin,每層中的fi塊為在向量zi上操作的元素非線性激活函數(shù),以產(chǎn)生輸出xout。
圖2 光神經(jīng)網(wǎng)絡(luò)基本架構(gòu)圖
通過奇異值分解方法(Singular Value Decomposition,SVD),ONN的每層權(quán)重實(shí)矩陣M 可以分解得到2 個酉矩陣U、V*和一個對角矩陣Σ,則
式中:U 為m×m酉矩陣;Σ 為對角線上非負(fù)實(shí)數(shù)的m×n對角矩陣;V*為n×n酉矩陣V的復(fù)共軛。由于任意的酉矩陣都可以表示為一系列旋轉(zhuǎn)矩陣的乘積,如果繼續(xù)對酉矩陣進(jìn)行分解,可得
式中,Rθij為單位矩陣。任何一元變換U、V都可用光學(xué)分束器和移相器來實(shí)現(xiàn)[14],這樣就能使用一系列馬赫-曾德爾調(diào)制器構(gòu)建用于一般矩陣乘法的光網(wǎng)絡(luò),該方式實(shí)現(xiàn)的矩陣乘法原則上不消耗功率,使得ONN架構(gòu)相比較于ANN具有更高的效率。
OIU在硅光子集成電路中由馬赫曾德干涉儀(Mach Zehnder Interferometer,MZI)級聯(lián)陣列的可編程納米光子器實(shí)現(xiàn),MZI由前后2 個3 dB 定向耦合器連接上下2 個硅波導(dǎo)分支構(gòu)成。內(nèi)移相器通過改變波導(dǎo)折射率控制輸出分光比,外移相器控制差分輸出、相位延遲。圖3 左下為單層前饋神經(jīng)網(wǎng)絡(luò)的光學(xué)干涉儀網(wǎng)格實(shí)現(xiàn)示意圖。
圖3 單層前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)示意圖
ONU采用一種用于ONN 的非線性激活函數(shù)架構(gòu),該架構(gòu)通過將一小部分光學(xué)輸入功率轉(zhuǎn)換為電壓來實(shí)現(xiàn)光學(xué)到光學(xué)的非線性響應(yīng)。圖3 右下部分為光到光激活函數(shù)實(shí)現(xiàn)的示意圖,該函數(shù)通過將一小部分光輸入信號z轉(zhuǎn)換為電信號,然后在原始光信號通過干涉儀時(shí)對其剩余部分進(jìn)行強(qiáng)度調(diào)制,實(shí)現(xiàn)非線性響應(yīng)。這種非線性電光激活函數(shù)架構(gòu)可以重新編程以合成各種不同的非線性響應(yīng)。激活函數(shù)
式中:Vπ為在相位調(diào)制器中引起π 相移所需的電壓;Vb為激活移相器的電偏置。
相位增益參數(shù)定義為:
式中:α為部分輸入光功率;G為增益;R 是光電探測器的響應(yīng)度。式(5)表明每單位輸入信號的相移量可以通過增益和光電二極管響應(yīng)度增加,或者通過將較大比例的光功率轉(zhuǎn)換為電域增加。Vb是確定非線性響應(yīng)的重要因素,不同電偏置可以合成不同的激活函數(shù)響應(yīng)。
伴隨變量法(Adjoint Variable Method,AVM)是通過器件的強(qiáng)度測量來獲得后向傳播中光路的參數(shù),這與常見的神經(jīng)網(wǎng)絡(luò)計(jì)算梯度的方法類似。通過對每一個參數(shù)梯度的計(jì)算,判斷出該參數(shù)優(yōu)化的方向,較快地找到最優(yōu)的訓(xùn)練模型[12]。具體步驟如下:
步驟1用光載波正向輸入信號XL-1到OIU集成芯片,記錄光信號在經(jīng)各個相位偏移器時(shí)電場強(qiáng)度的幅度,該電場強(qiáng)度即為源場。
步驟2反向輸入信號
式中:⊙為逐元素向量相乘;ΓL=(XL-T)H為步驟1中實(shí)際輸出與理想輸出信號的差值;f′L(ZL)為最后一層非線性激活函數(shù)的導(dǎo)數(shù)值。記錄各個相位偏移器中電場強(qiáng)度的幅度大小。該電場強(qiáng)度即為伴隨場。
步驟3將步驟2 中伴隨場的等效正向輸入信號XTR,與步驟1 的原始輸入信號XL-1疊加輸入OIU,發(fā)生干涉,記錄各相位偏移器強(qiáng)度。
步驟4用求和公式計(jì)算源場和伴隨場的矢量積,取矢量積的實(shí)部即為代價(jià)函數(shù)關(guān)于移相器相位的梯度值:
式中,k0為自由空間波數(shù)。
步驟5利用梯度下降法對每一個相位偏移器的相位值進(jìn)行更新,如圖4 所示。
圖4 伴隨變量法片上訓(xùn)練過程
最后重復(fù)步驟1~5 不斷更新迭代移相器中的相位值來減小代價(jià)函數(shù),最終實(shí)現(xiàn)片上訓(xùn)練的完整過程。
neuroptica包是納米級神經(jīng)網(wǎng)絡(luò)的柔性芯片級仿真平臺,包括components、componet _ layers、layers、Losses、models、nonlinearities、optimizers、utils等,為模擬光學(xué)神經(jīng)網(wǎng)絡(luò)提供了廣泛的抽象層次,可模擬芯片操縱單個移相器的排列和特性,也能通過堆疊網(wǎng)絡(luò)層來設(shè)計(jì)ONN。本文使用neuroptica實(shí)現(xiàn)ONN建模。
3.2.1 數(shù)據(jù)預(yù)處理
手寫數(shù)字圖取自MNIST數(shù)據(jù)庫,圖片大小為28 ×28 像素。為減少執(zhí)行訓(xùn)練過程所需的計(jì)算資源,預(yù)處理步驟將圖像進(jìn)行傅里葉變換:
式中:g(m,n)為圖像中位置(m,n)處的像素的灰度值,其中傅里葉空間輪廓主要集中在小的kx和ky周圍。本文將數(shù)據(jù)限制為具有最小的的N個系數(shù)。
傅里葉變換在光學(xué)領(lǐng)域可通過標(biāo)準(zhǔn)組件,如透鏡和空間濾波器直接實(shí)現(xiàn),N個復(fù)值系數(shù)c(kx,ky)可由N維ONN處理,而使用實(shí)值神經(jīng)網(wǎng)絡(luò)處理相同的輸入需要兩倍大的維度。在ONN廣泛應(yīng)用。
3.2.2 實(shí)驗(yàn)步驟
計(jì)算圖像二維傅里葉變換實(shí)現(xiàn)對手寫數(shù)字集的預(yù)處理,轉(zhuǎn)換為復(fù)值向量用作ONN的輸入。標(biāo)簽的處理則采用了one-hot的思想,將原來的回歸問題變?yōu)橐粋€分類問題。實(shí)驗(yàn)流程如圖5 所示。
步驟1 將MNIST 手寫體中60 000 張圖像作為訓(xùn)練集,分512 個批次通過網(wǎng)絡(luò)輸入,剩余的10 000張圖像作為測試集。
步驟2 將圖像數(shù)據(jù)轉(zhuǎn)換為傅里葉空間表示。
步驟3 獲取kx=ky=0 的N個傅里葉系數(shù),以實(shí)現(xiàn)圖像降維操作作為輸入數(shù)據(jù)。
步驟4 利用neuroptica 包中函數(shù)構(gòu)建L層的ONN
步驟5 構(gòu)建drop-mask將最終輸出減少到10 個分量。記錄10 個輸出的強(qiáng)度并通過它們的總和進(jìn)行歸一化,創(chuàng)建一個概率分布,可與從0~9 的數(shù)字的one-hot編碼進(jìn)行比較。
步驟6 不同參數(shù)下實(shí)現(xiàn)ONN 模型構(gòu)建,并分析對比手寫體數(shù)字的識別結(jié)果。
3.2.3 訓(xùn)練與識別實(shí)現(xiàn)
在Python的Tensorflow框架下,使用neuroptica軟件包,搭建ONN 網(wǎng)絡(luò),設(shè)定參數(shù)配置,實(shí)現(xiàn)模型訓(xùn)練,部分代碼如下所示:
通過設(shè)計(jì)不同參數(shù)下的仿真,實(shí)現(xiàn)結(jié)果對比,包括輸入不同圖像維度N、有無激活函數(shù)和激活函數(shù)配置參數(shù)等。
4.1.1 不同輸入維度下的實(shí)驗(yàn)對比分析
設(shè)網(wǎng)絡(luò)電光激活函數(shù)參數(shù)配置為gφ=0.05π、φb=1.00π和α =0.1,當(dāng)N為16、36 和64 時(shí),分別得到一個4 ×4、6 ×6 和8 ×8 的矩形作為輸入數(shù)據(jù),傳入3層ONN進(jìn)行訓(xùn)練。圖6 中藍(lán)色的實(shí)線表示N =16,紅色表示N =36,綠色表示N =64,圖6(a)反映了輸入維度和模型預(yù)測準(zhǔn)確率成正比,圖6(b)顯示訓(xùn)練期間的交叉熵?fù)p失收斂速度隨著輸入的維數(shù)增加而增加。
4.1.2 有無激活函數(shù)對比
輸入具有N=16 個傅里葉分量的3 層ONN,其電光激活函數(shù)配置保持不變。比較加入激活函數(shù)的ONN和無激活函數(shù)的ONN的分類精度。圖7(a)顯示非線性激活函數(shù)在訓(xùn)練期間和訓(xùn)練后顯著提高了ONN的性能,帶有電光激活函數(shù)的ANN 最終預(yù)測結(jié)果準(zhǔn)確率達(dá)到了90%以上,而未帶有電光激活函數(shù)的ANN最終預(yù)測結(jié)果的準(zhǔn)確率僅有83%。由圖7(b)可見,加入非線性激活函數(shù)后,交叉熵?fù)p失值遠(yuǎn)遠(yuǎn)小于未加入激活函數(shù)的模型。
圖7 有無激活函數(shù)對比實(shí)驗(yàn)圖
4.1.3 激活函數(shù)調(diào)參對比實(shí)驗(yàn)
激活函數(shù)參數(shù)包括前饋相位增益gφ,PD 電量α和相位偏移φb。以分析不同相位偏移φb為例,圖8 不同顏色實(shí)線代表不同的φb值在最后訓(xùn)練得到的平均預(yù)測準(zhǔn)確率,從放大圖中看出,當(dāng)φb=-1.5π 時(shí),預(yù)測準(zhǔn)確率最大,可以達(dá)到92.5%。
圖8 參數(shù)φb對于預(yù)測準(zhǔn)確率影響
根據(jù)上述激活函數(shù)調(diào)參對比仿真,激活函數(shù)最優(yōu)參數(shù)配置為gφ=0.3π、φb=-1.5π和α =-0.3 及輸入維度N=16,同時(shí)網(wǎng)絡(luò)以epoch =200,batch_size =256 的參數(shù)進(jìn)行訓(xùn)練,輸入10 ×104組測試集,最終得到的預(yù)測值接近93%,繪制的混淆矩陣如圖9 所示。
圖9 手寫數(shù)字識別混淆矩陣
學(xué)生還可自主搭建ONN 拓展應(yīng)用于其他問題解決上,例如二元分類器、異或邏輯功能以及鳶尾花分類等,圖10 為應(yīng)用結(jié)果示例。
圖10 應(yīng)用拓展
本文基于python環(huán)境下,利用neuroptia 設(shè)計(jì)和仿真實(shí)現(xiàn)基于ONN的手寫字體識別實(shí)驗(yàn),通過仿真運(yùn)行幫助學(xué)生梳理合成光學(xué)到光學(xué)非線性的架構(gòu)和ONN的相關(guān)知識,證實(shí)了光電激活函數(shù)搭配的ONN在機(jī)器學(xué)習(xí)問題上的應(yīng)用,從實(shí)踐中掌握多學(xué)科交叉研究的能力,學(xué)生還可自主搭建ONN應(yīng)用于其他機(jī)器學(xué)習(xí)問題上,以提高學(xué)生的創(chuàng)新能力和實(shí)踐動手能力。