














摘 要:針對RRAM單元制造工藝不完善造成神經網絡矩陣向量乘法計算錯誤問題,根據RRAM陣列多缺陷特性進行建模,提出了多缺陷容忍算法。首先根據RRAM陣列常見的轉變缺陷和粘連缺陷對神經網絡計算準確度的影響,對兩種缺陷統一建模;然后對神經網絡進行劃分,基于改進的知識蒸餾方式進行分區訓練;最后選擇適配的損失函數加入歸一化層,進一步優化算法。在MNIST和Cifar-10數據集上進行實驗,結果表明該方法在多個神經網絡上能夠得到98%以上的恢復率,說明該方法可有效降低RRAM陣列多缺陷對神經網絡計算準確度的影響。
關鍵詞:RRAM陣列; 缺陷容忍; 神經網絡; 知識蒸餾
中圖分類號:TP391.7 文獻標志碼:A
文章編號:1001-3695(2024)10-026-3068-05
doi:10.19734/j.issn.1001-3695.2024.01.0046
Partition retraining based multi-fault tolerance algorithm for RRAM crossbar
Wang Mengke, Yang Zhaohui, Zha Xiaojing, Xia Yinshui
(Faculty of Electrical Engineering & Computer Science, Ningbo University, Ningbo Zhejiang 315211, China)
Abstract:To address the issue of calculation errors in neural network matrix-vector multiplication caused by manufacturing processes of RRAM cells, this paper modeled the characteristics of multiple faults in RRAM crossbar arrays and proposed a multi-fault tolerant algorithm. Firstly, it modeled the impacts of common transition fault and stuck at fault in RRAM crossbar arrays on the accuracy of neural network computations. Secondly, it partitioned the neural network and conducted partitioned training based on an improved knowledge distillation method. Lastly, it further optimized the algorithm by selecting an appropriate loss function and incorporating normalization layers. Experimental results on the MNIST and Cifar-10 datasets demonstrate that the proposed method can achieve a recovery rate of over 98% across multiple neural networks, indicating its effectiveness in mitigating the impact of multiple faults in RRAM crossbar arrays on the accuracy of neural network computations.
Key words:RRAM crossbar; fault tolerance; neural network; knowledge distillation
0 引言
深度神經網絡(deep neural network,DNN)在解決復雜的機器學習問題方面具有良好的性能,目前已經研究了許多DNN加速器架構[1,2]。阻變式存儲器(resistive random access memory,RRAM)憑借擦寫速度快、耐久性強和非易失性[3]等優勢,通過結合納米交叉陣列結構可以快速進行列電流求和,從而并行實現神經網絡矩陣向量乘法(matrix vector multiplication,MVM)計算,因而在DNN加速器設計方面具有重要地位。
在加速器設計中,神經網絡的權值對應為RRAM的電導值,通過網絡權重與RRAM陣列的一對一映射,實現神經網絡的硬件部署。然而,由于不成熟的納米級制造技術和RRAM固有非線性特性,RRAM陣列通常會遭受嚴重的粘連缺陷(stuck at fault,SAF)和轉變缺陷(transition fault,TF),這將永久或暫時改變RRAM內存儲的權值狀態,從而導致錯誤的硬件計算結果[4]。RRAM中SAF和TF的出現會降低神經網絡硬件部署的可靠性,成為神經網絡加速設計中的重要瓶頸問題[5]。所以,如何解決此問題已經成為基于RRAM的DNN加速器設計的主要關注點之一。
現有研究主要從三個方面針對SAF的容忍進行設計:再訓練[6~9]、修正[10,11]、重映射[11,12]。再訓練是指基于SAF缺陷分布圖使用梯度下降算法再次訓練DNN,使得再訓練后的DNN部分權值固定為常數,以滿足硬件缺陷特性。再訓練方法需要兩個基礎數據:缺陷分布圖[13,14]和訓練數據集,分為在線訓練和離線訓練兩種形式[15~17]。其中在線訓練是指在設備上進行實時訓練,根據缺陷變化可靈活進行訓練,但訓練過程需要頻繁進行讀寫操作,對設備損耗很大;離線訓練根據缺陷分布圖在計算機上進行再訓練之后映射到設備上使用,訓練時不消耗硬件資源,靈活可控,易于操作,但訓練結果不能根據阻值變化實時改變,泛化性較低。Charan等人[6]提出了基于知識蒸餾(knowledge distillation,KD)的再訓練算法。該方法采用在線訓練形式,使用師生模型,通過學生模型向教師模型逐次逼近實現性能恢復。但只針對輸出結果進行再訓練,對缺陷容忍不能達到很好的效果。Li等人[9]提出一種對抗性實例缺陷檢測方法,在KD的基礎上在線訓練進行缺陷容忍,但是適用的電路規模較小。
修正是一類通過增加冗余硬件資源來恢復計算準確度的方法。He等人[10]提出了一種增加冗余列來替換出現SAF缺陷較多的列來進行修正的方法,可以得到較好的精度恢復,但是此類方法只針對SAF缺陷進行容忍,而且冗余列的MVM操作提高了計算成本,增加的數字硬件模塊導致了額外的硬件開銷[5,11]。
重映射方法主要通過對DNN權值矩陣進行行列置換再重新映射于RRAM陣列中,從而避免把對計算準確度影響較大的權值映射于缺陷RRAM上,以此來降低缺陷對計算準確度的影響。矩陣置換[11]是使用重塑矩陣來降低缺陷對計算準確度影響的方法,使缺陷位置的值盡可能與缺陷值相匹配。此類方法需要不斷檢測缺陷RRAM的阻值與權值是否匹配,隨著網絡規模的增加,為了尋找最合適的匹配方式,需要消耗大量時間,嚴重影響計算效率。
綜上所述,雖然已經有許多針對不同缺陷的容忍方法,但這些方法要么只針對SAF缺陷,要么求解規模有限,缺乏同時針對多種缺陷、綜合考量資源消耗和恢復效果的容忍方法。其中,再訓練算法憑借硬件友好特性和離線高效訓練能力,成為容忍缺陷的有效途徑。RRAM陣列的多缺陷容忍問題,核心在于縮小神經網絡理想權值與RRAM陣列實際阻值的差異,該思想與知識蒸餾的“參考教師模型訓練學生模型”模式本質相同,因此本文結合知識蒸餾方法,提出基于再訓練的多缺陷統一容錯方法。通過對SAF和TF缺陷統一建模,擴展再訓練算法的適用范圍;結合知識蒸餾方法,提出神經網絡模型分塊訓練思想,通過模型中間特征的有效提取,提升網絡模型對硬件陣列缺陷特性的泛化容忍能力;最后通過加速再訓練反向傳播過程,提升網絡模型收斂速度。本文的主要貢獻為:
a)通過一一對應的映射關系,將RRAM陣列的缺陷信息反映為待映射網絡模型特征,基于再訓練架構用學生模型擬合教師模型來進行多缺陷容錯;
b)通過修改網絡結構和分區訓練加快網絡收斂速度,獲得更好的容錯效果。
1 研究背景
1.1 RRAM單元基礎
RRAM是一種新興的非易失性存儲器,又稱為憶阻器[3,18]。如圖1(a)所示,RRAM單元為無源雙極性器件,通常采用金屬-絕緣體-金屬結構。從圖1(b)可以看出,RRAM的阻值在一定電壓范圍內不會改變,此特性可使其用于模擬近似計算[19,20]。RRAM的另一個特性是,即使在移除電源后也能夠保持其電阻狀態。利用RRAM的電阻開關特性,研究人員探索了其在存內計算方面的潛力。利用歐姆定律和基爾霍夫電流定律,基于RRAM的交叉陣列可有效執行復雜的MVM計算,從而消除傳統計算架構中需要多次訪問計算和存儲元件所帶來的能耗瓶頸問題。圖1(c)表示在神經網絡計算過程中權重矩陣與RRAM單元的一一對應關系。交叉陣列的輸入是字線電壓,卷積層和全連接層乘法運算的輸出結果是位線讀取的總電流[6],可表示為
I(j)=∑N-1i=1G(j,k)·V(j)(1)
其中:V∈(j=1,…,N-1)是輸入到字線的電壓矢量;G表示RRAM參數的電導矩陣;I為每列的總電流,對應神經元的輸出結果。
1.2 知識蒸餾算法
深度神經網絡模型計算復雜性高、存儲需求大,部署在資源有限的設備上是一個挑戰。作為模型壓縮和加速的代表類型,知識蒸餾是一種基于“教師-學生模式”的網絡模型再訓練方法,主要思想是在高計算復雜度的教師模型指導下用結構較簡單的學生模型主動擬合,即以有限的計算準確度為代價完成大型神經網絡模型向小型網絡模型的壓縮和加速,從而改善硬件部署難度問題[21,22]。知識蒸餾的關鍵在于“知識”的設計、提取和遷移方式的選擇[23]。原始知識蒸餾中信息的傳遞只依賴于模型的輸出,當模型結構變深,需要傳遞教師模型中更多的“知識”。而中間特征是在網絡中間層輸出的特征圖中表達的信息,可彌補輸出層知識信息單一的不足。
基于中間特征的知識蒸餾以最小化蒸餾損失為目標來訓練學生模型。蒸餾損失函數用數學公式表示為
LKD=‖ft(x;Wt)-fs(x;Ws)‖F(2)
其中:ft和fs分別為教師和學生模型;x是中間層輸入的特征;Wt和Ws為教師和學生模型的中間層參數,即權重信息;F為范數值,表示損失函數的具體實現形式。
1.3 RRAM交叉陣列的非理想效果
電路缺陷是發生在器件的制造或操作過程中,引發實際硬件產生與預期理想性能不符的異常現象[14]。根據交叉陣列中缺陷的性質,對可能發生的最常見缺陷類型進行分類,總結如下[24]:
a)粘連缺陷(SAF):由可變的氧化層厚度產生,憶阻器的阻值固定且不能改變[24]。SAF有SAL(stuck at low)和SAH(stuck at high)兩種情況,表示阻值呈低阻態或高阻態。
b)轉變缺陷(TF):由不規則的摻雜變化和器件內部結構間磨損引起,可能會阻止憶阻器變化到理想狀態[24]。TF有慢寫缺陷(slow write fault)和快寫缺陷(fast write fault)有兩種情況,表示阻值低于或高于理想阻值。
c)地址解碼器缺陷(address decoder fault,ADF):由開放缺陷引起,導致交叉陣列的行/列合并在一起,訪問到不需要的單元[24]。
實驗結果表明[14,24],基于憶阻器的RRAM陣列有約30%的缺陷,其中TF約為14%,SAF約10%,ADF約3%,其他缺陷約3%。由此可見,RRAM陣列中TF和SAF是影響計算的兩類主要缺陷,其中兩類缺陷對矩陣向量乘法計算的影響如圖2所示。理想情況下,輸入為1時,矩陣的輸出結果分別為1.7和1.9。映射到RRAM陣列上,紅色位置表示缺陷SAF為1時阻值由0.5固定為1;藍色位置表示缺陷SAF為0時阻值由0.6固定為0;黃色位置表示發生TF時阻值由0.8波動到0.9,矩陣的輸出結果變為2.3和1.3(參見電子版)。由此可見,在進行矩陣向量乘法計算時,SAF和TF缺陷會使計算結果產生較大偏差。
2 基于分區再訓練的缺陷容忍
由于RRAM單元本身的制造缺陷,RRAM交叉陣列在進行神經網絡的矩陣向量乘法計算時,會產生計算錯誤導致神經網絡的計算準確度嚴重受損。為此,將缺陷映射在RRAM陣列對應位置上,通過離線再訓練的方式增加RRAM的容錯能力,從而提高神經網絡的計算準確度。
2.1 缺陷數字化建模
綜合考慮兩種缺陷對RRAM陣列計算的影響,在缺陷已知的情況下對兩種缺陷進行建模。分析SAF和TF在RRAM陣列計算時的表現,兩種缺陷對RRAM陣列阻值的影響本質上是一致的,即在計算時,實際權值會固定在某一數值上。因此,只要確定了數值轉變的規則,就能實現統一建模,也能實現物理特性在網絡模型上的反應。基于此,為方便表述,對RRAM單元的阻值歸一化,然后針對TF和SAF的缺陷特性進行建模。其中TF缺陷表示為在理想權值的基礎上增添一個隨機噪聲進行模擬,噪聲服從對數正態分布,eθ表示發生缺陷RRAM單元的阻值波動范圍,其中N(0,σ2)表示θ服從均值為0,方差為σ2的正態分布,σ一般為0.1~0.5[25]。發生SAF缺陷的RRAM單元處于開路或者短路狀態,其阻值固定在0/1上。基于上述分析,可建立如下公式表示缺陷環境下阻值與理想環境下阻值間的關系:
Ractual=Rideal F=0
Rideal×eθ,θ~N(0,σ2)F=11F=20F=3(3)
其中:Ractual表示RRAM陣列的實際阻值;Rideal表示理想阻值;F用于判斷缺陷類型,當F=0時,表示RRAM器件處于無缺陷狀態;當F=1時,表示RRAM器件存在TF缺陷;當F=2時,表示RRAM器件存在SAF為1的缺陷;當F=3時,表示RRAM器件存在SAF為0缺陷。本文通過對缺陷特性的統一建模,以便后期進行多缺陷的統一容錯設計。
2.2 算法框架
鑒于傳統的知識蒸餾訓練方法,只能根據最后的輸出結果進行反向傳播,隨著網絡結構變得更加復雜,中間特征的缺失使得訓練模型無法獲得良好的擬合效果,實現缺陷容忍在網絡模型上的有效反應。因此,本文在傳統知識蒸餾方法的基礎上,主張利用中間特征信息實現再訓練過程。根據結構對模型進行劃分,逐層提取理想模型的中間特征信息,從而提高缺陷模型的容錯能力。本文算法的總框架如圖3所示,其中紅色框和藍色框表示教師模型和學生模型分區后的區塊;紅色層和藍色層表示教師模型和學生模型中的卷積層,黃色層表示進行歸一化處理的批歸一化(batch normalization,BN)層(參見電子版);Li表示第i區塊教師模型與學生模型損失函數。再訓練算法以改進的知識蒸餾為基礎,建立無缺陷教師模型和有缺陷學生模型。首先將模型按照網絡結構進行劃分,便于提取模型的中間特征;然后在塊間以掩碼方式進行反向傳播訓練,區塊間的訓練使用Huber損失函數作為蒸餾損失,可以在缺陷率較大的情況下保證模型收斂;最后通過訓練得到可以容忍多種缺陷的模型。與傳統以大模型訓練小模型的基于中間特征的知識蒸餾不同,本文學生模型的結構與教師模型相同。
再訓練的目標是最小化教師模型與學生模型對應區塊的輸出差異,其目標函數可以表示為
minWsΔ(Bs,Bt)(4)
其中:Bs和Bt分別表示學生模型和教師模型對應區塊的輸出層參數;Ws表示學生模型的權重。
2.2.1 網絡劃分
隨著神經網絡的發展,網絡結構越來越復雜,需要訓練的數據也成倍增加。傳統的再訓練算法是在提取硬件缺陷圖的前提下進行整個網絡的前向傳播,訓練過程中網絡數據在缺陷的影響下發生偏差,偏差量逐級累積,從而造成損失函數不穩定,惡化反向傳播的數據更新能力,影響再訓練效果。從提高損失函數穩定性的角度,需要將數據偏差控制在一定范圍內。為此,本文基于“分治”思想,將神經網絡根據其網絡結構特性進行劃分,在保證獲取中間特征的前提下,通過局部訓練的方式來控制網絡在硬件缺陷作用下的累積數據偏差量。部分網絡結構如表1所示,表中[3×3,64]表示當前層級使用[3×3]的卷積核,輸出通道數為64。鑒于神經網絡的通道數會影響網絡復雜度和數據量[26],其中,通道數相同的層級捕獲特征的能力近似,因此本文主張將通道數相同的層級劃分為同一個區塊。根據上述分析,可按照式(5)明確當前卷積層所屬的區塊編號:
k=logC/f2(5)
其中:k表示當前卷積層所屬的區塊編號;C表示當前輸出通道數;f表示第一層的輸出通道數,全連接層與最后一塊合并進行計算。以ResNet18為例,第一層的輸出通道數為64,在Conv4層級中輸出通道數為256,根據式(5)的計算,此層級的4個卷積層都屬于第2個區塊。
2.2.2 掩碼訓練
本文中采用離線方式進行學生模型訓練,DNN本身具有自我恢復能力,可以從損壞的權重中重新訓練,應用反向傳播算法,可以通過迭代訓練自適應缺陷[27]。權值的更新過程用←表示:
Wi←Wi-η L Wi(6)
其中:L為損失函數;η為學習率;Wi為神經網絡的權值。為了減少SAF和TF缺陷造成的性能下降,在模型訓練階段對缺陷位置的值進行屏蔽,具體來說,權值更新過程可以描述為
Wi←Mask(Wi-η E Wi)(7)
根據缺陷分布,Mask函數用于在訓練階段將有SAF缺陷的RRAM固定,將有TF缺陷的RRAM根據噪聲波動改變到其對應值。假設RRAM上包含SAF和TF缺陷,為保證再訓練階段能夠容忍權重變化,對有缺陷的RRAM單元進行掩碼,權值更新情況如圖4所示,根據缺陷分布獲得缺陷類型及位置,將缺陷位置的權重值固定后,更新無缺陷位置的權重值來容忍缺陷。
2.3 算法優化
為了進一步優化離線再訓練的恢復精度,對神經網絡的結構進行調整,在卷積層后加入歸一化層,并采取Huber損失函數作為再訓練的蒸餾損失。
2.3.1 歸一化層
批歸一化應用于每個卷積層之后,將每層的輸出x進行如式(8)的變換處理。由文獻[28]可知,BN層可以減少內部變量的移位問題,并被廣泛應用于提高訓練性能。由式(8)可以看出,BN層有5個參數,其中ε參數僅在訓練期間更新。(μ,σ)是前向傳播階段更新的每批輸入統計數據,(β,γ)是在反向傳播階段通過梯度下降更新。為了進行推斷,通常用常數值替換μ、σ。本文將BN層設置為服從均值μ為0,方差σ為1的標準正態分布,將卷積層的輸出進行歸一化處理,可使梯度變大,避免梯度消失問題。
y=γ(x-μσ2+ε)+β(8)
2.3.2 損失函數
機器學習中的所有算法都需要最大化或最小化目標函數。一般把最小化的一類函數稱為損失函數。損失函數大致可以分為兩類:分類問題的損失函數和回歸問題的損失函數。本文中最小化教師模型與學生模型的塊間輸出,本質上是回歸問題,常用的損失函數有平均絕對值誤差(MAE)、均方誤差(MSE)和Huber損失函數。三種損失函數的表達式如下:
MAE=∑ni=1|yi-f(x)|,
MSE=∑ni=1(yi-f(x))2(9)
Huber = 12(yi-f(x))2 yi-f(x)≤δ
δyi-f(x)-12δ2otherwise(10)
其中:yi表示真實值; f(x)是目標值;超參數δ表示臨界選擇條件。比較三種損失函數的表達式可以看出:MAE是真實值與目標值之差的絕對值之和,在處理異常數據時有更好的魯棒性,但它的梯度為定值,容易錯過最優解,求解效率低;MSE對誤差取了平方,放大了誤差,與MAE相比,MSE對異常值更敏感,得到的模型會更加精確,但魯棒性不夠好;Huber結合了MAE與MSE的優點,使模型對異常數據敏感的同時也能夠具有較好的魯棒性,MSE與MAE的臨界值由δ控制。考慮到所處理對象缺陷比率較大,本文采用Huber函數作為塊間損失函數,δ取值為1。損失函數表示為
L=1c·w·hHuber(11)
為了讓每一塊的權重更新都能根據對應區塊的通道數和通道大小獲得一個合適的損失函數,這里對區塊的損失函數進行了數據處理,c、w、h分別表示通道數、區塊輸出寬和高。為了保證每個區塊學生模型的穩定性,區塊的訓練是獨立的,前一個區塊的輸出作為下一個區塊的輸入,區塊內部使用反向傳播進行訓練。
2.4 算法實現
所提出的分區再訓練算法的偽代碼如算法1所示,輸入為數據集和缺陷信息,輸出為訓練好的學生模型。首先根據式(5)的劃分方法對模型進行劃分,逐層確定卷積層所屬區塊,對應步驟a);然后進行前向傳播訓練并根據式(8)對卷積層進行歸一化處理,獲得理想情況下的無缺陷模型即教師模型,并獲得教師模型各區塊的輸出,對應步驟b);根據式(3)的建模方法對教師模型添加缺陷信息獲得學生模型,對應步驟c);根據式(12)進行反向傳播訓練并更新權重,對應步驟d);重復執行Z次步驟d),最后獲得訓練好的學生模型即容錯模型,對應步驟e)。
算法1 基于分區的多缺陷容忍算法
輸入:數據集,缺陷信息。
輸出:訓練好的學生模型。
a)根據式(5)逐層確定卷積層所屬區塊。
b)進行前向傳播訓練并根據式(8)進行歸一化處理,獲得教師模型。
c)根據式(3)對教師模型添加缺陷信息獲得學生模型。
d)根據式(12)計算區塊損失進行反向傳播訓練并更新權重。
e)重復執行Z次步驟d)獲得訓練好的學生模型。
3 實驗結果
3.1 數據集和實驗設置
本文方法在Linux系統,配置為GeForce RTX 3090 GPU的VMware環境下,用PyTorch機器學習框架實現DNN模型,使用MNIST和Cifar-10數據集來驗證有效性。借鑒文獻[24]的數據,在SAF和TF同時存在的情況下,缺陷率設置為25.03%,其中TF為14.24%,SA1為9.04%,SA0為1.75%。TF的波動值σ設置為0.2。在僅有SAF的情況下,缺陷率設置與對比文獻[6,9]一致。使用Adam優化器,訓練輪次Z為20,學習率為0.001。在相同的缺陷環境下,將本文方法與同樣采用知識蒸餾框架的文獻[6,9]進行比較,通過比較不同算法下神經網絡的恢復效果,證明本文的網絡劃分和算法優化的有效性。
3.2 結果分析
為了更好地對比不同方法的恢復效果,本文采用恢復百分比來比較各種方法的有效性,如式(13)所示,其中Rrecover表示訓練后的測試準確率,Rideal表示理想情況下的測試準確率。由于訓練是一個不斷迭代的過程,其計算結果具有隨機性,所以采用算法恢復率P來表示不同訓練方法的有效性。
P=RrecoverRideal(12)
本文方法與基于傳統知識蒸餾的KD[6]和面向小電路的IKTR[9]進行比較,在只有SAF環境下進行實驗,實驗結果如表2所示,采用算法恢復率的平均結果表示算法的恢復程度,在表2中用“平均恢復率”表示。MLP、LeNet和ConvNet的網絡規模較小,其中MLP僅有三層全連接層,LeNet有兩層卷積兩層全連接層,ConvNet也只有三層卷積兩層全連接層。LeNet5、VGG16和ResNet18的結構與文獻[6]相同。SAF的缺陷率如表2所示。KD方法在小規模網絡上的恢復效果較好,隨著網絡規模的增大和缺陷率的增加,其算法恢復率明顯降低,6個網絡的平均恢復率為96.43%。這是因為,KD方法采用傳統的知識蒸餾,訓練過程中學生模型僅學習到教師模型的最后輸出結果,不能擬合教師模型的中間特征,缺陷的增加導致網絡訓練過程中數據產生的偏差過大,惡化了反向傳播的數據更新,進一步造成算法恢復率的降低。IKTR方法僅針對3個小規模網絡進行基于中間特征的知識蒸餾訓練,其中SAF的缺陷率也較低,最大僅有3%,IKTR算法平均恢復率為99.54%。本文方法在6個小規模網絡上的算法恢復率達到99.86%以上,這是因為本文區塊劃分較為合理,在缺陷率增加的情況下,神經網絡訓練過程中區塊劃分可以在保證中間特征的穩定提取下,限定了缺陷對數據偏差的影響,防止逐層累積影響到后面層級的訓練,從而實現損失函數的穩定;卷積層的歸一化操作保證反向傳播中梯度大小適當,防止出現梯度消失問題影響數據更新。
為了進一步驗證本文方法在多缺陷模型上的有效性,本文綜合考慮SAF和TF兩種缺陷,在缺陷率為25.03%的情況下進行實驗,結果如表3所示。本文方法在多缺陷且缺陷率高達25.03%的情況下,6個網絡的平均恢復率仍能達到99%以上。這是因為本文方法在訓練時通過區塊劃分有效限制缺陷對數據的累積影響,學生模型通過區塊輸出擬合教師模型的中間特征,歸一化處理增加反向傳播的梯度來加快網絡收斂速度,損失函數使模型在對異常數據敏感的同時具有較好的魯棒性,從而在缺陷率較大的情況下得到較好的恢復效果。
4 結束語
不同于傳統方法只針對RRAM陣列的SAF缺陷進行容忍,本文針對RRAM單元的多缺陷進行容忍。為此,本文對TF和SAF缺陷進行統一建模,在傳統知識蒸餾的基礎上,采用分區知識蒸餾的方法進行掩碼再訓練。實驗結果表明,本文方法在算法級將網絡的測試準確率恢復到98%以上,證明了本文方法的有效性。但是,本文方法僅在仿真階段對神經網絡的計算進行容錯,沒有在實際RRAM單元中進行進一步的精度恢復,因此將在后期對硬件系統進行進一步設計。
參考文獻:
[1]Chi Ping, Li Shuangchen, Xu Cong, et al. Prime: a novel processing-in-memory architecture for neural network computation in ReRAM-based main memory[J]. ACM SIGARCH Computer Architecture News, 2016, 44(3): 27-39.
[2]Shafiee A, Nag A, Muralimanohar N, et al. ISAAC: a convolutional neural network accelerator with in-situ analog arithmetic in crossbars[J]. ACM SIGARCH Computer Architecture News, 2016,44(3): 14-26.
[3]Wong H, Lee H, Yu Shimeng, et al. Metal-oxide RRAM[J]. Proceedings of the IEEE, 2012, 100(6): 1951-1970.
[4]Tosson A, Yu Shimeng, Anis M, et al. Analysis of RRAM reliability soft-errors on the performance of RRAM-based neuromorphic systems[C]//Proc of the 16th IEEE Computer Society Annual Symposium on VLSI. Piscataway, NJ: IEEE Press, 2017: 62-67.
[5]Long Yun, She Xueyuan, Mukhopadhyay S. Design of reliable DNN accelerator with un-reliable ReRAM[C]//Proc of the 23rd Design, Automation & Test in Europe Conference & Exhibition. Piscataway, NJ: IEEE Press, 2019: 1769-1774.
[6]Charan G, Mohanty A, Du Xiaocong, et al. Accurate inference with inaccurate RRAM devices: a joint algorithm-design solution[J]. IEEE Journal on Exploratory Solid-State Computational Devices and Circuits, 2020, 6(1): 27-35.
[7]Chen Lerong, Li Jiawen, Chen Yiran, et al. Accelerator-friendly neural-network training: learning variations and defects in RRAM crossbar[C]//Proc of the 21st Design, Automation & Test in Europe Conference & Exhibition. Piscataway, NJ: IEEE Press, 2017: 19-24.
[8]Liu Chen, Hu Miao, Strachan J, et al. Rescuing memristor-based neuromorphic design with high defects[C]//Proc of the 54th ACM/EDAC/IEEE Design Automation Conference. Piscataway, NJ: IEEE Press, 2017: 1-6.
[9]Li Wen, Wang Ying, Liu Cheng, et al. On-line fault protection for ReRAM-based neural networks[J]. IEEE Trans on Computers, 2023, 2(72) : 423-437.
[10]He Zhezhi, Lin Jie, Ewetz R, et al. Noise injection adaption: end-to-end ReRAM crossbar non-ideal effect adaption for neural network mapping[C]//Proc of the 56th Annual Design Automation Confe-rence. New York: ACM Press, 2019: 1-6.
[11]Zhang Fan, Hu Miao. Defects mitigation in resistive crossbars for analog vector matrix multiplication[C]//Proc of the 25th Asia and South Pacific Design Automation Conference. Piscataway, NJ: IEEE Press, 2020: 187-192.
[12]Zhang Baogang, Uysal N, Fan Deliang, et al. Handling stuck-at-faults in memristor crossbar arrays using matrix transformations[C]//Proc of the 24th Asia and South Pacific Design Automation Confe-rence. New York: ACM Press, 2019: 438-443.
[13]Liu Mengyun, Xia Lixue, Wang Yu, et al. Fault tolerance in neuromorphic computing systems[C]//Proc of the 24th Asia and South Pacific Design Automation Conference. New York: ACM Press, 2019: 216-223.
[14]Chen C, Shih H, Wu Chengwen, et al. RRAM defect modeling and failure analysis based on march test and a novel squeeze-search scheme[J]. IEEE Trans on Computers, 2014, 64(1): 180-190.
[15]Kivinen J, Smola A, Williamson R. Online learning with kernels[J]. IEEE Trans on Signal Processing, 2004, 52(8): 2165-2176.
[16]Qiu Junfei, Wu Qihui, Ding Guoru, et al. A survey of machine learning for big data processing[J]. EURASIP Journal on Advances in Signal Processing, 2016, 2016: 1-16.
[17]Hoi S, Sahoo D, Lu Jing, et al. Online learning: a comprehensive survey[J]. Neurocomputing, 2021, 459: 249-289.
[18]Zhao Weisheng, Moreau M, Deng E, et al. Synchronous non-volatile logic gate design based on resistive switching memories[J]. IEEE Trans on Circuits and Systems I: Regular Papers, 2013, 61(2): 443-454.
[19]Park S, Noh J, Choo M, et al. Nanoscale RRAM-based synaptic electronics: toward a neuromorphic computing device[J]. Nanotechnology, 2013, 24(38): 384009.
[20]Li Boxun, Gu Peng, Shan Yi, et al. RRAM-based analog approximate computing[J]. IEEE Trans on Computer-Aided Design of Integrated Circuits and Systems, 2015, 34(12): 1905-1917.
[21]Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[EB/OL].(2015-03-09). https://arxiv.org/abs/1503.02531.
[22]Gou Jianping, Yu Baosheng, Maybank S, et al. Knowledge distillation: a survey[J]. International Journal of Computer Vision, 2021, 129: 1789-1819.
[23]邵仁榮, 劉宇昂, 張偉, 等. 深度學習中知識蒸餾研究綜述[J]. 計算機學報, 2022, 45(8): 1638-1673. (Shao Renrong, Liu Yu’ang, Zhang Wei, et al. A review of research on knowledge distillation in deep learning[J]. Chinese Journal of Computers, 2022, 45(8): 1638-1673.)
[24]Yadav D, Thangkhiew P, Datta K, et al. FAMCroNA: fault analysis in memristive crossbars for neuromorphic applications[J]. Journal of Electronic Testing, 2022, 38(2): 145-163.
[25]Krishnan G, Yang Li, Sun Jingbo, et al. Exploring model stability of deep neural networks for reliable RRAM-based in-memory acceleration[J]. IEEE Trans on Computers, 2022, 71(11): 2740-2752.
[26]Howard A, Zhu Menglong, Chen Bo, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL]. (2017-04-17). https://arxiv. org/abs/1704. 04861.
[27]Torres-Huitzil C, Girau B. Fault and error tolerance in neural networks: a review[J]. IEEE Access, 2017, 5: 17322-17341.
[28]Ioffe S, Szegedy C. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]//Proc of the 32nd International Conference on Machine Learning. Cambridge, MA: MIT Press, 2015: 448-456.