脈衝神經網路 光晶元上的全光脈衝神經網路

2021-10-12 09:06:14 字數 2870 閱讀 4652

nature昨天刊登了德國明斯特大學的一篇最新進展,研究人員在光晶元上實現了脈衝神經網路(spike neural network)。先睹為快,這篇筆記主要介紹下這篇進展。研究人員將氮化矽波導與相變材料結合,實現了監督式和非監督式的機器學習,並演示了對15個畫素的模式識別。

關於相變材料(phase changing material, 以下簡稱pcm), 小豆芽之前的一篇筆記 基於光晶元的記憶體內計算(memory-in computing)提到過。研究人員採用相同的材料gst(全稱為germanium antimony tellurium), 它可以在晶體和非晶態之間切換。gst通過濺射的方法沉積在sin波導上方。gst的折射率隨波長變化曲線如下圖所示, 當pcm處於非晶態時,它的吸收率較小,而當它處於晶體態時,吸收率較大。基於這一性質,它可以作為神經網路的權重單元(weights),用來調控sin波導中的光強,

(來自文獻1)

光脈衝神經網路的結構如下圖所示,

(來自文獻1)

而典型的神經元結構如下圖所示,

(來自比較上面兩幅,可以看出光學脈衝神經網路的結構與生物神經元結構非常類似,兩者之前存在一種對應關係。對於光學脈衝神經網路,不同波長的光脈衝序列輸入進pcm構成的突觸單元(synapse), 經過pcm的作用,脈衝強度發生變化,對應於乘法器。進而借助於微環結構,將不同波長的脈衝匯入進同一波導中,該功能類似加法器。相加後的脈衝光強較小時,probe光與微環發生共振,在輸出埠沒有光強輸出。當光強達到一定的閾值後,probe訊號不再和微環發生共振,而是傳播到輸出埠。這一過程類似神經元脈衝訊號的激發,扮演了非線性啟用函式的功能。基本的光學結構單元如下:

1. 含pcm的波導

下圖中的結構i, 作為突觸單元,調控光脈衝訊號的強度,相當於乘法器

2. wdm波分復用器

下圖中的結構ii, 採用微環結構,將不同波長的光脈衝匯入到同一根波導中,相當於加法器

3. 含pcm的微環結構

下圖中的結構vi, 作為非線性啟用函式。當脈衝能量超過430pj時,「激發」乙個光脈衝。

(來自文獻1)

整個訊號處理過程分為四步: 1)weighting, 2)mux, 3)sum, 4) output。典型的光路結構如下圖所示,下圖對應三個神經元結構。

(來自文獻1)

利用上圖的單個神經元結構,研究人員驗證了監督式機器學習和非監督式機器學習。對於監督式機器學習,權重的數值通過外部的supervisor設定。

(來自文獻1)

左圖對應1010的識別,右圖對應1100的識別。

對於非監督式機器學習,不再需要外部的supervisor來設定權重值,而是通過輸出光脈衝進行反饋控制,調整權重值,如下圖所示。當光脈衝訊號產生時,增加對應的權重值,而沒有光脈衝訊號產生時,減小對應的權重值。下圖展示了對0110的識別過程。

(來自文獻1)

上述的演示都是針對單個神經元的,對應2x2矩陣的操作。進一步,他們提出了更複雜的光學脈衝神經網路結構,證明該結構的可擴充套件性。神經網路中的每一層結構,如下圖所示。每一層包括三個功能單元,即收集器collector、分發器distributor和神經突觸結構neurosynapse。收集器將上一層不同波長的光脈衝訊號收集到同一根波導中,分發器將光脈衝分發給n個神經元,神經突觸結構則產生光脈衝訊號,輸入給下一層結構。

(來自文獻1)

基於上述的架構,他們進一步演示了對字母abcd的識別。光路中包含4個神經元,每個神經元包含15個突觸,對應識別含15個畫素的。整個晶元包含140多個光器件,如下圖所示。由於涉及到15個波長,收集器不是在片內實現的,而是通過外部的wdm實現。

(來自文獻1)

可以看出,該結構能夠較好地識別abcd這四個字母。

小豆芽的幾點comment:

1) 神經網路所需的功能單元全部都可以在光晶元內實現,而mit研究組的方案中啟用函式是通過片外電學方法實現。這是該方案的乙個優勢和新穎之處。

2) 採用微環結構,微環是對工藝、溫度、波長非常敏感的。如果該方案想進行大批量生產,這會是乙個非常大的挑戰。當然,可以通過熱調的方法進行補償,但是這會帶來額外的功耗。

3) 由於採用了特殊的pcm材料,目前還沒有矽光foundry支援這一工藝。

4) 採用波長編碼,目前演示的是含15畫素的識別,涉及到15個波長。如果矩陣的規模進一步變大,例如10x10, 就會涉及到100個波長。這就需要可處理100個波長的波分復用器件,無論是在片內還是片外,實現起來都是非常有難度的。或許,較大的矩陣能拆分成小矩陣進行處理,可以規避這一問題。

1. j. feldmann, et.al., "all-optical spiking neurosynaptic networks with self-learning capabilities", nature 569, 208(2019)

脈衝神經網路

1 神經資訊的編碼與解碼方法 由於脈衝神經網路的輸入輸出是脈衝序列,不能直接進行模擬量的計算,首先要考慮的問題是神經資訊的編碼與解碼機制 編碼是指將樣本資料或刺激訊號轉換為脈衝序列,而解碼是編碼的逆向過程,是將脈衝序列對映為輸出結果或特定反應 目前,研究者借鑑生物神經元對特定刺激訊號的編碼機制,除了...

脈衝神經網路SNN學習

由於事件相機原理的非同步性,同樣時空性的脈衝神經網路可能更適合基於事件相機的一系列處理。本人對神經網路了解的較少,此部落格僅作為自己學習記錄所用。目前常用的cnn rnn等神經網路是第二代神經網路,而脈衝神經網路snn屬於第三代神經網路模型,為了減小神經科學與機器學習之間的差距,snn使用最擬合生物...

脈衝神經網路SNN的簡介

神經網路經歷漫長的發展,目前總共有三代,它們分別是 第一代神經網路 mcculloch pitt感知機,它執行閾值運算並輸出數字 1,0 第二代神經網路 基於sigmoid單元或修正線性單元 relu 增加了連續非線性,使其能夠計算一組連續的輸出值。第二代神經網路也是目前使用的最廣泛的網路演算法,例...