TW202207093A - 神經網路的模擬硬體實現 - Google Patents

神經網路的模擬硬體實現 Download PDF

Info

Publication number
TW202207093A
TW202207093A TW110122949A TW110122949A TW202207093A TW 202207093 A TW202207093 A TW 202207093A TW 110122949 A TW110122949 A TW 110122949A TW 110122949 A TW110122949 A TW 110122949A TW 202207093 A TW202207093 A TW 202207093A
Authority
TW
Taiwan
Prior art keywords
network
neural network
analog
equivalent
layer
Prior art date
Application number
TW110122949A
Other languages
English (en)
Other versions
TWI773398B (zh
Inventor
亞歷山大 提莫非傑弗斯
波里斯 瑪索夫
尼可萊 法迪諾畢許 科索夫
德密曲 尤利畢許 高朵夫斯基
Original Assignee
英商普立N科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/EP2020/067800 external-priority patent/WO2021259482A1/en
Priority claimed from PCT/RU2020/000306 external-priority patent/WO2021262023A1/en
Application filed by 英商普立N科技有限公司 filed Critical 英商普立N科技有限公司
Publication of TW202207093A publication Critical patent/TW202207093A/zh
Application granted granted Critical
Publication of TWI773398B publication Critical patent/TWI773398B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Geometry (AREA)
  • Feedback Control In General (AREA)
  • Image Analysis (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
  • Tone Control, Compression And Expansion, Limiting Amplitude (AREA)
  • Picture Signal Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Measuring Volume Flow (AREA)

Abstract

提供了用於神經網路的模擬硬體實現的系統和方法。該方法包括獲得訓練後的神經網路的神經網路拓撲和權重。該方法還包括將神經網路拓撲變換成模擬部件的等效模擬網路。該方法還包括基於訓練後的神經網路的權重來計算等效模擬網路的權重矩陣。權重矩陣的每個元素表示在等效模擬網路的模擬部件之間的相應連接。該方法還包括基於權重矩陣來產生用於實現等效模擬網路的示意模型,包括選擇模擬部件的部件值。

Description

神經網路的模擬硬體實現
所揭露的實現大體上涉及神經網路,且更具體地涉及用於神經網路的硬體實現的系統和方法。
傳統硬體未能跟上神經網路中的創新和基於機器學習的應用的日益普及。隨著數位微處理器的發展處於停滯,神經網路的複雜性繼續超過CPU和GPU的計算能力。基於脈衝神經網路(spike neural network)的神經形態(neuromorphic)處理器(例如Loihi和True North)在它們的應用中被限制。對於類似GPU的架構,這樣的架構的功率和速度受資料傳輸速度限制。資料傳輸可以消耗高達80%的晶片功率,且可以顯著影響計算的速度。邊緣應用(edge application)要求低功率消耗,但目前沒有消耗小於50毫瓦的功率的已知高性能硬體實現。
使用交叉開關(cross-bar)技術的基於憶阻器的架構對於製造迴圈(recurrent)和前饋(feed-forward)神經網路仍然是不實用的。例如,基於憶阻器的交叉開關具有許多缺點,包括使它們變得不實用的在操作期間的電流洩漏和高時延。此外,在製造基於憶阻器的交叉開關時存在可靠性問題,特別是當神經網路具有負權重和正權重時。對於具有許多神經元的大型神經網路,在高維度處,基於憶阻器的交叉開關不能用於不同訊號的同時傳播,這在神經元由運算放大器表示時又使訊號的求和變得複雜。此外,基於憶阻器的模擬積體電路具有許多限制,例如電阻狀態的數量小、當形成憶阻器時的第一次迴圈問題、當訓練憶阻器時的溝道形成的複雜性、對憶阻器的尺寸的不可預測的依賴性、憶阻器的緩慢操作以及電阻狀態的漂移。
此外,神經網路所需的訓練過程對神經網路的硬體實現提出了獨特的挑戰。訓練後的神經網路用於特定的推斷(inferencing)任務,例如分類。一旦神經網路被訓練,硬體等價物就被製造。當神經網路被再訓練時,硬體製造過程被重複,抬高了成本。雖然一些可重新配置的硬體解決方案存在,但是這樣的硬體不容易被大規模生產,並且比不可重新配置的硬體花費多得多(例如,花費多5倍)。此外,邊緣環境(例如智慧家居應用)本身不需要可重程式設計性。例如,神經網路的所有應用的85%在操作期間不需要任何再訓練,因此片上學習不是那麼有用。此外,邊緣應用包括雜訊環境,其可以使可重程式設計硬體變得不可靠。
因此,存在對解決至少一些上面指出的缺陷的方法、電路和/或介面的需要。對訓練後的神經網路建模並根據本文所述的技術製造的模擬電路可以提供提高的每瓦性能的優點,在邊緣環境中實現硬體解決方案方面可以是有用的,並可以處理各種應用,例如無人機導航和自動駕駛汽車。由所提出的製造方法和/或模擬網路架構提供的成本優點對較大的神經網路更加明顯。此外,神經網路的模擬硬體實現提供了提高的並行性和神經形態。此外,神經形態模擬部件當與數位對應物相比時對雜訊和溫度變化不敏感。
根據本文描述的技術製造的晶片在尺寸、功率和性能方面提供優於傳統系統的數量級改進,並且對於邊緣環境(包括對於再訓練目的)是理想的。這樣的模擬神經形態晶片可以用於實現邊緣計算應用或用在物聯網(IoT)環境中。由於模擬硬體,可以消耗超過80-90%的功率的初步處理(例如,用於影像識別的描述符的形成)可以在晶片上移動,從而降低能量消耗和網路負載,這可以打開新的應用市場。
各種邊緣應用可以受益於這樣的模擬硬體的使用。例如,對於視訊處理,本文描述的技術可以用於包括到CMOS感測器的直接連接而無需數位介面。各種其他視訊處理應用包括汽車的路標識別、用於機器人的基於攝影機的真實深度和/或同步定位和地圖建構、沒有伺服器連接的房間存取控制以及對安全和醫療保健的始終線上解決方案。這樣的晶片可以用於雷達和雷射雷達的資料處理以及用於低水準資料融合。這樣的技術可以用於實現大型電池組的電池管理功能、沒有到資料中心的連接的聲音/語音處理、在移動設備上的語音辨識、IoT感測器的喚醒語音指令、將一種語言翻譯成另一種語言的翻譯器、具有低訊號強度的IoT的大型感測器陣列和/或具有數百個感測器的可配置程序控制。
根據一些實現,神經形態模擬晶片可以在標準的基於軟體的神經網路仿真/訓練之後被大規模生產。用戶端的神經網路可以用定制的晶片設計和生產被容易移植,而不管神經網路的結構如何。此外,根據一些實現,提供了準備好製作片上解決方案(網路仿真器)的庫。這樣的解決方案只需要訓練一次蝕刻光罩更換,其後晶片可以被大規模生產。例如,在晶片生產期間,只有部分的蝕刻光罩需要被更換。
本文描述的技術可以用於設計和/或製造在數學上等效於訓練後的神經網路(前饋或者迴圈神經網路)的模擬神經形態積體電路。根據一些實現,該過程以訓練後的神經網路開始,該神經網路首先被變換成由標準元件組成的經變換的網路。使用具有代表標準元件的已知模型的軟體來仿真經變換的網路的操作。軟體仿真用於確定在經變換的網路中的每個電阻器的單獨電阻值。基於在經變換的網路中的標準元件的排列來佈置蝕刻光罩。使用與標準元件對應的電路的現有庫來將每個標準元件佈置在罩幕中以簡化和加快該過程。在一些實現中,電阻器佈置在與包括經變換的網路中的其他元件(例如運算放大器)的罩幕分離的一個或更多個罩幕中。以這種方式,如果神經網路被再訓練,則只有包含表示在再訓練後的神經網路中的新權重的電阻器或其他類型的固定電阻元件的罩幕需要被重新產生,這簡化並加快了該過程。蝕刻光罩然後被發送到晶圓廠(fab)用於製造模擬神經形態積體電路。
在一個方面中,根據一些實現,提供了一種用於神經網路的硬體實現的方法。該方法包括獲得訓練後的神經網路的神經網路拓撲和權重。該方法還包括將神經網路拓撲變換成模擬部件的等效模擬網路。該方法還包括基於訓練後的神經網路的權重來計算等效模擬網路的權重矩陣。權重矩陣的每個元素表示在等效模擬網路的模擬部件之間的相應連接。該方法還包括基於權重矩陣來產生用於實現等效模擬網路的示意性模型,包括選擇模擬部件的部件值。
在一些實現中,產生示意性模型包括產生針對權重矩陣的電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重,並表示電阻值。
在一些實現中,該方法還包括獲得用於訓練後的神經網路的新權重,基於新權重來計算用於等效模擬網路的新權重矩陣以及產生針對新權重矩陣的新電阻矩陣。
在一些實現中,神經網路拓撲包括一層或更多層神經元,每層神經元基於相應數學函數來計算相應的輸出,並且將神經網路拓撲變換成模擬部件的等效模擬網路包括:對於一層或更多層神經元中的每層:(i)針對相應層基於相應數學函數識別一個或更多個函數塊。每個函數塊有相應示意實現,該相應示意實現具有符合相應數學函數的輸出的塊輸出;以及(ii)基於排列一個或更多個函數塊來產生模擬神經元的相應多層網路。每個模擬神經元實現一個或更多個函數塊的相應函數,並且多層網路的第一層的每個模擬神經元連接到多層網路的第二層的一個或更多個模擬神經元。
在一些實現中,一個或更多個函數塊包括選自由下列項組成的組的一個或更多個基本函數塊:(i)具有塊輸出
Figure 02_image001
的加權求和塊,
Figure 02_image003
是修正線性單元(ReLU)啟動函數或類似的啟動函數,
Figure 02_image005
表示第i個輸入,
Figure 02_image007
表示對應於第i個輸入的權重,以及
Figure 02_image009
表示偏差值,並且
Figure 02_image011
求和運算子;(ii)具有塊輸出
Figure 02_image013
的訊號乘法器塊,
Figure 02_image005
表示第i個輸入,以及
Figure 02_image015
表示第j個輸入,並且
Figure 02_image017
是預定係數;(iii)具有塊輸出
Figure 02_image019
的sigmoid(S型)啟動塊,
Figure 02_image021
表示輸入,以及A和B是sigmoid啟動塊的預定系數值;(iv)具有塊輸出
Figure 02_image023
的雙曲正切啟動塊,
Figure 02_image025
表示輸入,以及A和B為預定系數值;以及(v)具有塊輸出
Figure 02_image027
的訊號延遲塊,
Figure 02_image029
表示目前時間段,
Figure 02_image031
表示前一時間段
Figure 02_image033
的訊號延遲塊的輸出,以及
Figure 02_image035
是延遲值。
在一些實現中,識別一個或更多個函數塊包括基於相應層的類型來選擇一個或更多個函數塊。
在一些實現中,神經網路拓撲包括一層或更多層神經元,每層神經元基於相應數學函數來計算相應的輸出,並且將神經網路拓撲變換成模擬部件的等效模擬網路包括:(i)將神經網路拓撲的第一層分解成複數子層,包括分解對應於第一層的數學函數以獲得一個或更多個中間數學函數。每個子層實現一個中間數學函數;以及(ii)對於神經網路拓撲的第一層的每個子層:(a)針對相應子層基於相應的中間數學函數選擇一個或更多個子函數塊;以及(b)基於排列一個或更多個子函數塊來產生模擬神經元的相應多層模擬子網路。每個模擬神經元實現一個或更多個子函數塊的相應函數,並且多層模擬子網路的第一層的每個模擬神經元連接到多層模擬子網路的第二層的一個或更多個模擬神經元。
在一些實現中,對應於第一層的數學函數包括一個或更多個權重,並且分解數學函數包括調整一個或更多個權重,使得組合一個或更多個中間函數產生數學函數。
在一些實現中,該方法還包括:(i)針對神經網路拓撲的一個或更多個輸出層產生數位部件的等效數位網路;以及(ii)將等效模擬網路的一層或更多層的輸出連接到數位部件的等效數位網路。
在一些實現中,模擬部件包括複數運算放大器和複數電阻器,每個運算放大器表示等效模擬網路的模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接。
在一些實現中,選擇模擬部件的部件值包括執行梯度下降方法以識別對於複數電阻器的可能電阻值。
在一些實現中,神經網路拓撲包括一個或更多個GRU或LSTM神經元,並且變換神經網路拓撲包括針對一個或更多個GRU或LSTM神經元的每個迴圈連接產生一個或更多個訊號延遲塊。
在一些實現中,一個或更多個訊號延遲塊以與神經網路拓撲的預定輸入訊號頻率匹配的頻率被啟動。
在一些實現中,神經網路拓撲包括執行無限啟動函數的一層或更多層神經元,並且變換神經網路拓撲包括應用選自由下列項組成的組的一個或更多個變換:(i)用有限啟動代替無限啟動函數;以及(ii)調整等效模擬網路的連接或權重,使得對於預定的一個或更多個輸入,在訓練後的神經網路和等效模擬網路之間的輸出中的差異被最小化。
在一些實現中,該方法還包括基於電阻矩陣來產生用於製造實現模擬部件的等效模擬網路的電路的一個或更多個蝕刻光罩。
在一些實現中,該方法還包括:(i)獲得用於訓練後的神經網路的新權重;(ii)基於新權重來計算等效模擬網路的新權重矩陣;(iii)針對新權重矩陣產生新電阻矩陣;以及(iv)基於新電阻矩陣來產生用於製造實現模擬部件的等效模擬網路的電路的新蝕刻光罩。
在一些實現中,使用軟體仿真來對訓練後的神經網路進行訓練以產生權重。
在另一方面中,根據一些實現,提供了一種用於神經網路的硬體實現的方法。該方法包括獲得訓練後的神經網路的神經網路拓撲和權重。該方法還包括基於模擬積體電路(IC)設計約束來計算一個或更多個連接約束。該方法還包括將神經網路拓撲變換成滿足一個或更多個連接約束的模擬部件的等效稀疏連接網路。該方法還包括基於訓練後的神經網路的權重來計算等效稀疏連接網路的權重矩陣。權重矩陣的每個元素表示在等效稀疏連接網路的模擬部件之間的相應連接。
在一些實現中,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括根據一個或更多個連接約束來匯出可能的輸入連接度
Figure 02_image037
和輸出連接度
Figure 02_image039
在一些實現中,神經網路拓撲包括具有
Figure 02_image041
個輸入和
Figure 02_image043
個輸出以及權重矩陣
Figure 02_image045
的至少一個密集連接層。在這樣的情況下,變換至少一個密集連接層包括建構具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出和
Figure 02_image047
個層的等效稀疏連接網路,使得輸入連接度不超過
Figure 02_image037
,並且輸出連接度不超過
Figure 02_image039
在一些實現中,神經網路拓撲包括具有
Figure 02_image041
個輸入和
Figure 02_image043
個輸出以及權重矩陣
Figure 02_image045
的至少一個密集連接層。在這樣的情況下,變換至少一個密集連接層包括建構具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出、輸出和
Figure 02_image049
個層的等效稀疏連接網路。每個層m由對應的權重矩陣
Figure 02_image051
表示,其中缺少的連接用零表示,使得輸入連接度不超過
Figure 02_image037
,並且輸出連接度不超過
Figure 02_image039
。方程
Figure 02_image053
以預定精度被滿足。
在一些實現中,神經網路拓撲包括具有
Figure 02_image041
個輸入和
Figure 02_image043
個輸出、最大輸入連接度
Figure 02_image055
、最大輸出連接度
Figure 02_image057
以及權重矩陣
Figure 02_image045
的單個稀疏連接層,其中缺少的連接用零表示。在這樣的情況下,變換單個稀疏連接層包括建構具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出、
Figure 02_image059
個層的等效稀疏連接層,每個層m 由對應的權重矩陣
Figure 02_image051
表示,其中缺少的連接用零表示,使得輸入連接度不超過不超過
Figure 02_image037
,並且輸出連接度不超過
Figure 02_image039
。方程
Figure 02_image053
以預定精度被滿足。
在一些實現中,神經網路拓撲包括具有
Figure 02_image041
個輸入和
Figure 02_image043
個輸出的卷積層。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括將卷積層分解成具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出、最大輸入連接度
Figure 02_image055
和最大輸出連接度
Figure 02_image057
的單個稀疏連接層。
Figure 02_image061
並且
Figure 02_image063
在一些實現中,利用權重矩陣產生用於實現等效稀疏連接網路的示意性模型。
在一些實現中,神經網路拓撲包括迴圈神經層。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括將迴圈神經層變換成具有訊號延遲連接的一個或更多個密集或稀疏連接層。
在一些實現中,神經網路拓撲包括迴圈神經層。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括將迴圈神經層分解成若干層,其中層中的至少一個等效於具有
Figure 02_image041
個輸入和
Figure 02_image043
個輸出以及權重矩陣
Figure 02_image045
的密集或稀疏連接層,其中缺少的連接用零表示。
在一些實現中,神經網路拓撲包括K 個輸入、權重向量
Figure 02_image065
和具有計算神經元的單層感知器,該計算神經元具有啟動函數F 。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束匯出等效稀疏連接網路的連接度N ;(ii)使用方程
Figure 02_image067
計算等效稀疏連接網路的層的數量m ;以及(iii)建構具有K 個輸入、m 個層和連接度N 的等效稀疏連接網路。等效稀疏連接網路在m 個層中的每個層中包括相應的一個或更多個模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,且最後一層的模擬神經元實現單層感知器的計算神經元的啟動函數F 。此外,在這樣的情況下,計算等效稀疏連接網路的權重矩陣包括藉由基於權重向量U 對方程組求解來計算等效稀疏連接網路的連接的權重向量W 。方程組包括具有S 個變數的K 個方程,並且S 使用方程
Figure 02_image069
被計算。
在一些實現中,神經網路拓撲包括K 個輸入、具有L 個計算神經元的單層感知器以及包括對於L 個計算神經元中的每個計算神經元的一行權重的權重矩陣V 。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束匯出等效稀疏連接網路的連接度N ;(ii)使用方程
Figure 02_image067
計算等效稀疏連接網路的層的數量m ;(iii)將單層感知器分解成L 個單層感知器網路。每個單層感知器網路包括L 個計算神經元中的相應計算神經元;(iv)對於L 個單層感知器網路中的每個單層感知器網路:(a)為相應單層感知器網路建構具有K 個輸入、m 個層和連接度N 的相應等效金字塔狀子網路。等效金字塔狀子網路在m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,且最後一層的模擬神經元實現對應於相應單層感知器的相應計算神經元的啟動函數;以及(b)藉由將每個等效金字塔狀子網路連接在一起(包括將L 個單層感知器網路的每個等效金字塔狀子網路的輸入連接在一起以形成具有L *K 個輸入的輸入向量)來建構等效稀疏連接網路。此外,在這樣的情況下,計算等效稀疏連接網路的權重矩陣包括對於L 個單層感知器網路中的每個單層感知器網路:(i)設定權重向量
Figure 02_image071
,權重矩陣V 的第i行對應於相應計算神經元,相應計算神經元對應於相應單層感知器網路;以及(ii)藉由基於權重向量U 對方程組求解來計算相應等效金字塔狀子網路的連接的權重向量Wi 。該方程組包括具有S 個變數的K 個方程,並且S 使用方程
Figure 02_image069
被計算。
在一些實現中,神經網路拓撲包括K 個輸入、具有S 個層的多層感知器,S 個層中的每個層i 包括一組對應的計算神經元Li 和對應的權重矩陣Vi ,權重矩陣Vi 包括Li 個計算神經元中的每個計算神經元的一行權重。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束匯出等效稀疏連接網路的連接度N ;(ii)將多層感知器分解成
Figure 02_image073
個單層感知器網路。每個單層感知器網路包括
Figure 02_image075
個計算神經元中的相應計算神經元。分解多層感知器包括複製由
Figure 02_image075
個計算神經元共用的K 個輸入中的一個或更多個輸入;(iii)對於Q 個單層感知器網路中的每個單層感知器網路:(a)使用方程
Figure 02_image077
計算相應等效金字塔狀子網路的層的數量mKi, j 是在多層感知器中的相應計算神經元的輸入的數量;以及(b)為相應單層感知器網路建構具有Ki, j 個輸入、m 個層和連接度N 的相應等效金字塔狀子網路。等效金字塔狀子網路在m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,並且最後一層的模擬神經元實現對應於相應單層感知器網路的相應計算神經元的啟動函數;以及(iv)藉由將每個等效金字塔狀子網路連接在一起來建構等效稀疏連接網路,包括將Q 個單層感知器網路的每個等效金字塔狀子網路的輸入連接在一起以形成具有Q *Ki, j 個輸入的輸入向量。此外,在這樣的情況下,計算等效稀疏連接網路的權重矩陣包括:對於Q 個單層感知器網路中的每個單層感知器網路:(i)設定權重向量
Figure 02_image079
,權重矩陣V 的第i 行對應於相應計算神經元,相應計算神經元對應於相應單層感知器網路,其中j 是在多層感知器中的相應計算神經元的對應層;以及(ii)藉由基於權重向量U 對方程組求解來計算相應等效金字塔狀子網路的連接的權重向量Wi 。方程組包括具有S 個變數的Ki, j 個方程,並且S 使用方程
Figure 02_image081
被計算。
在一些實現中,神經網路拓撲包括具有K 個輸入、S 個層的卷積神經網路(CNN),S 個層中的每個層i 包括一組對應的計算神經元Li 和對應的權重矩陣Vi ,權重矩陣Vi 包括對於Li 個計算神經元中的每個計算神經元的一行權重。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束匯出等效稀疏連接網路的連接度N ;(ii)將CNN分解成
Figure 02_image073
個單層感知器網路。每個單層感知器網路包括
Figure 02_image075
個計算神經元中的相應計算神經元。分解CNN包括複製由
Figure 02_image075
個計算神經元共用的K 個輸入中的一個或更多個輸入;(iii)對於Q 個單層感知器網路中的每個單層感知器網路:(a)使用方程
Figure 02_image077
計算相應等效金字塔狀子網路的層的數量mj 是在CNN中的相應計算神經元的對應層,以及Ki, j 是在CNN中的相應計算神經元的輸入的數量;以及(b)為相應單層感知器網路建構具有Ki, j 個輸入、m 個層和連接度N 的相應等效金字塔狀子網路。等效金字塔狀子網路在m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,並且最後一層的模擬神經元實現對應於相應單層感知器網路的相應計算神經元的啟動函數;以及(iv)藉由將每個等效金字塔狀子網路連接在一起來建構等效稀疏連接網路,包括將Q 個單層感知器網路的每個等效金字塔狀子網路的輸入連接在一起以形成具有Q *Ki, j 個輸入的輸入向量。此外,在這樣的情況下,計算等效稀疏連接網路的權重矩陣包括:對於Q 個單層感知器網路中的每個單層感知器網路:(i)設定權重向量
Figure 02_image079
,權重矩陣V 的第i 行對應於相應計算神經元,相應計算神經元對應於相應單層感知器網路,其中j 是在CNN中的相應計算神經元的對應層;以及(ii)藉由基於權重向量U 對方程組求解來計算相應等效金字塔狀子網路的連接的權重向量Wi 。方程組包括具有S 個變數的Ki, j 個方程,並且S 使用方程
Figure 02_image083
被計算。
在一些實現中,神經網路拓撲包括K 個輸入、具有K 個神經元的層Lp 、具有L 個神經元的層Ln 和權重矩陣
Figure 02_image085
,其中R 是實數的集合,層Lp 的每個神經元連接到層Ln 的每個神經元,層Ln 的每個神經元執行啟動函數F ,使得層Ln 的輸出使用輸入
Figure 02_image087
的方程
Figure 02_image089
被計算。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括執行梯形變換,該梯形變換包括:(i)根據一個或更多個連接約束匯出可能的輸入連接度
Figure 02_image091
和可能的輸出連接度
Figure 02_image093
;(ii)根據
Figure 02_image095
的確定,建構包括具有執行恆等啟動函數的K 個模擬神經元的層LAp 、具有執行恆等啟動函數的
Figure 02_image097
個模擬神經元的層LAh 和具有執行啟動函數FL 個模擬神經元的層LAo 的三層模擬網路,使得在層LAp 中的每個模擬神經元具有NO 個輸出,在層LAh 中的每個模擬神經元具有不多於NI 個輸入和NO 個輸出,以及在層LAo 中的每個模擬神經元具有NI 個輸入。此外,在這樣的情況下,計算等效稀疏連接網路的權重矩陣包括藉由對矩陣方程
Figure 02_image099
求解來產生稀疏權重矩陣
Figure 02_image101
Figure 02_image103
,該矩陣方程
Figure 02_image099
包括採用
Figure 02_image105
個變數的
Figure 02_image107
個方程,使得層LAo 的總輸出使用方程
Figure 02_image109
被計算。稀疏權重矩陣
Figure 02_image111
表示在層LAp LAh 之間的連接,以及稀疏權重矩陣
Figure 02_image113
表示在層LAh LAo 之間的連接。
在一些實現中,執行梯形變換還包括:根據
Figure 02_image115
的確定:(i)使層Lp 分裂以獲得具有K’ 個神經元的子層Lp1 和具有(K - K’ )個神經元的子層Lp2 ,使得
Figure 02_image117
;(ii)對於具有K’ 個神經元的子層Lp1 ,執行建構和產生步驟;以及(iii)對於具有K - K’ 個神經元的子層Lp2 ,迴圈地執行分裂、建構和產生步驟。
在一些實現中,神經網路拓撲包括多層感知器網路。在這樣的情況下,該方法還包括,對於多層感知器網路的每對連續層,反覆運算地執行梯形變換並計算等效稀疏連接網路的權重矩陣。
在一些實現中,神經網路拓撲包括迴圈神經網路(RNN),其包括(i)兩個完全連接層的線性組合的計算,(ii)逐元素相加,以及(iii)非線性函數計算。在這樣的情況下,該方法還包括執行梯形變換並計算等效稀疏連接網路的權重矩陣,用於(i)兩個完全連接層,和(ii)非線性函數計算。
在一些實現中,神經網路拓撲包括長短期記憶(LSTM)網路或閘控迴圈單元(GRU)網路,其包括(i)複數完全連接層的線性組合的計算,(ii)逐元素相加,(iii)Hadamard乘積,以及(iv)複數非線性函數計算。在這樣的情況下,該方法還包括執行梯形變換並計算等效稀疏連接網路的權重矩陣,用於(i)複數完全連接層,和(ii)複數非線性函數計算。
在一些實現中,神經網路拓撲包括卷積神經網路(CNN),其包括(i)複數部分連接層和(ii)一個或更多個完全連接層。在這樣的情況下,該方法還包括:(i)藉由插入具有零權重的丟失連接來將複數部分連接層變換成等效完全連接層;以及(ii)對於等效完全連接層和一個或更多個完全連接層的每對連續層,反覆運算地執行梯形變換並計算等效稀疏連接網路的權重矩陣。
在一些實現中,神經網路拓撲包括K 個輸入、L 個輸出神經元和權重矩陣
Figure 02_image119
,其中R 是實數的集合,每個輸出神經元執行啟動函數F 。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括執行近似變換,該近似變換包括:(i)根據一個或更多個連接約束匯出可能的輸入連接度
Figure 02_image091
和可能的輸出連接度
Figure 02_image093
;(ii)從集合
Figure 02_image121
中選擇參數
Figure 02_image123
;(iii)根據
Figure 02_image125
的確定,建構形成等效稀疏連接網路的前
Figure 02_image123
個層的金字塔神經網路,使得金字塔神經網路在它的輸出層中具有
Figure 02_image127
個神經元。金字塔神經網路中的每個神經元執行恆等函數;以及(iv)建構具有
Figure 02_image129
個輸入和
Figure 02_image043
個輸出的梯形神經網路。梯形神經網路的最後一層中的每個神經元執行啟動函數F ,以及所有其他神經元執行恆等函數。在這樣的情況下,計算等效稀疏連接網路的權重矩陣包括:(i)產生金字塔神經網路的權重,包括(a)根據下面的規則設定金字塔神經網路的第一層的每個神經元i的權重:(a)
Figure 02_image131
Figure 02_image133
為非零常數,以及
Figure 02_image135
;和(b)對於除
Figure 02_image137
之外的神經元的所有權重j,
Figure 02_image139
;以及(b)將金字塔神經網路的所有其他權重設定為1;以及(ii)產生梯形神經網路的權重,包括(a)根據方程
Figure 02_image141
設定梯形神經網路的第一層的每個神經元i的權重;以及(b)將梯形神經網路的其他權重設定為1。
在一些實現中,神經網路拓撲包括具有
Figure 02_image041
個輸入、
Figure 02_image143
個層和在第i層中的
Figure 02_image145
個計算神經元以及對於第i層的權重矩陣
Figure 02_image147
的多層感知器,其中
Figure 02_image149
。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括:對於多層感知器的
Figure 02_image143
個層中的每個層
Figure 02_image151
:(i)藉由對由
Figure 02_image153
個輸入、
Figure 02_image155
個輸出神經元和權重矩陣
Figure 02_image157
組成的相應單層感知器執行近似變換來建構相應金字塔-梯形網路PTNNXj ;以及(ii)藉由堆疊每個金字塔梯形網路來建構等效稀疏連接網路。
在另一方面中,根據一些實現,提供了一種用於神經網路的硬體實現的方法。該方法包括獲得訓練後的神經網路的神經網路拓撲和權重。該方法還包括將神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路。每個運算放大器表示等效模擬網路的模擬神經元,且每個電阻器表示在兩個模擬神經元之間的連接。該方法還包括基於訓練後的神經網路的權重來計算等效模擬網路的權重矩陣。權重矩陣的每個元素表示相應連接。該方法還包括針對權重矩陣產生電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重,並表示電阻值。
在一些實現中,針對權重矩陣產生電阻矩陣包括:(i)獲得可能電阻值的預定範圍{
Figure 02_image159
,
Figure 02_image161
}並選擇在預定範圍內的初始基本(base)電阻值
Figure 02_image163
;(ii)在預定範圍內選擇電阻值的有限長度集合,電阻值對於在電阻值的有限長度集合內的{
Figure 02_image165
,
Figure 02_image167
}的所有組合提供了在範圍
Figure 02_image169
內的可能權重
Figure 02_image171
的最均勻的分佈;(iii)基於每個神經元或等效模擬網路的每個層的傳入連接的最大權重和偏差
Figure 02_image173
,針對每個模擬神經元或者針對等效模擬網路的每個層從電阻值的有限長度集合中選擇電阻值
Figure 02_image175
=
Figure 02_image177
,使得
Figure 02_image175
=
Figure 02_image177
是最接近於
Figure 02_image179
的電阻器設定值;以及(iv)對於權重矩陣的每個元素,在可能電阻值的預定範圍內的
Figure 02_image181
Figure 02_image183
的所有可能值中,選擇根據方程
Figure 02_image185
最小化誤差的相應的第一電阻值
Figure 02_image181
和相應的第二電阻值
Figure 02_image183
w 是權重矩陣的相應元素,以及
Figure 02_image187
是電阻的預定相對公差值。
在一些實現中,可能電阻值的預定範圍包括在範圍100 KΩ至1 MΩ中根據標稱系列E24的電阻。
在一些實現中,
Figure 02_image175
Figure 02_image177
是針對等效模擬網路的每個層獨立地選擇的。
在一些實現中,
Figure 02_image175
Figure 02_image177
是針對等效模擬網路的每個模擬神經元獨立地選擇的。
在一些實現中,權重矩陣的第一一個或更多個權重和第一一個或更多個輸入表示到等效模擬網路的第一運算放大器的一個或更多個連接。在這樣的情況下,該方法還包括在產生電阻矩陣之前:(i)藉由第一值修改第一一個或更多個權重;以及(ii)在執行啟動函數之前配置第一運算放大器以使第一一個或更多個權重和第一一個或更多個輸入的線性組合乘以第一值。
在一些實現中,該方法還包括:(i)獲得預定範圍的權重;以及(ii)根據預定範圍的權重更新權重矩陣,使得對於相同的輸入,等效模擬網路產生與訓練後的神經網路相似的輸出。
在一些實現中,訓練後的神經網路被訓練,使得神經網路拓撲的每個層具有量化的權重。
在一些實現中,該方法還包括對訓練後的神經網路進行再訓練以降低對權重或電阻值中的誤差的敏感度,誤差使等效模擬網路產生與訓練後的神經網路相比不同的輸出。
在一些實現中,該方法還包括對訓練後的神經網路進行再訓練,以便使在任何層中的權重最小化,該權重比該層的平均絕對權重大了預定臨界值。
在另一方面中,根據一些實現,提供了一種用於神經網路的硬體實現的方法。該方法包括獲得訓練後的神經網路的神經網路拓撲和權重。該方法還包括將神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路。每個運算放大器表示等效模擬網路的模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接。該方法還包括基於訓練後的神經網路的權重來計算等效模擬網路的權重矩陣。權重矩陣的每個元素表示相應連接。該方法還包括針對權重矩陣產生電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重。該方法還包括基於電阻矩陣修剪等效模擬網路以減少複數運算放大器或複數電阻器的數量,以獲得模擬部件的最佳化模擬網路。
在一些實現中,修剪等效模擬網路包括用導體替換與電阻矩陣中的具有低於預定最小臨界值電阻值的電阻值的一個或更多個元素對應的電阻器。
在一些實現中,修剪等效模擬網路包括移除等效模擬網路的、與電阻矩陣中的高於預定最大臨界值電阻值的一個或更多個元素對應的一個或更多個連接。
在一些實現中,修剪等效模擬網路包括移除等效模擬網路的、與權重矩陣中的近似為零的一個或更多個元素對應的一個或更多個連接。
在一些實現中,修剪等效模擬網路還包括移除等效模擬網路的沒有任何輸入連接的一個或更多個模擬神經元。
在一些實現中,修剪等效模擬網路包括:(i)當對一個或更多個資料集進行計算時,基於檢測到模擬神經元的使用來對等效模擬網路的模擬神經元排名(ranking);(ii)基於排名來選擇等效模擬網路的一個或更多個模擬神經元;以及(iii)從等效模擬網路移除該一個或更多個模擬神經元。
在一些實現中,檢測到模擬神經元的使用包括:(i)使用建模軟體來建立等效模擬網路的模型;以及(ii)藉由使用模型以產生一個或更多個資料集的計算來測量模擬訊號的傳播。
在一些實現中,檢測到模擬神經元的使用包括:(i)使用建模軟體來建立等效模擬網路的模型;以及(ii)藉由使用模型以產生一個或更多個資料集的計算來測量模型的輸出訊號。
在一些實現中,檢測到模擬神經元的使用包括:(i)使用建模軟體來建立等效模擬網路的模型;以及(ii)藉由使用模型以產生一個或更多個資料集的計算來測量由模擬神經元消耗的功率。
在一些實現中,該方法還包括在修剪等效模擬網路之後並且在產生用於製造實現等效模擬網路的電路的一個或更多個蝕刻光罩之前,重新計算等效模擬網路的權重矩陣,並且基於重新計算的權重矩陣更新電阻矩陣。
在一些實現中,該方法還包括:對於等效模擬網路的每個模擬神經元:(i)在計算權重矩陣的同時,基於訓練後的神經網路的權重來計算相應模擬神經元的相應偏差值;(ii)根據相應偏差值高於預定最大偏差臨界值的確定,從等效模擬網路移除相應模擬神經元;以及(iii)根據相應偏差值低於預定最小偏差臨界值的確定,用等效模擬網路中的線性結(linear junction)替換相應模擬神經元。
在一些實現中,該方法還包括在產生權重矩陣之前藉由增加來自等效模擬網路的一個或更多個模擬神經元的連接的數量來減少等效模擬網路的神經元的數量。
在一些實現中,該方法還包括在變換神經網路拓撲之前,使用神經網路的修剪技術來修剪訓練後的神經網路,以更新訓練後的神經網路的神經網路拓撲和權重,使得等效模擬網路包括少於預定數量的模擬部件。
在一些實現中,考慮到在訓練後的神經網路和等效模擬網路之間的輸出中的匹配的準確度或水準,修剪被反覆運算地執行。
在一些實現中,該方法還包括在將神經網路拓撲變換成等效模擬網路之前執行網路知識提取。
在另一方面中,根據一些實現,提供了一種積體電路。該積體電路包括由一種方法製造的模擬部件的模擬網路,該方法包括:(i)獲得訓練後的神經網路的神經網路拓撲和權重;(ii)將神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路。每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接;(iii)基於訓練後的神經網路的權重來計算等效模擬網路的權重矩陣,權重矩陣的每個元素表示相應連接;(iv)針對權重矩陣產生電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重;(v)基於電阻矩陣來產生用於製造實現模擬部件的等效模擬網路的電路的一個或更多個蝕刻光罩;以及(vi)使用光刻製程基於一個或更多個蝕刻光罩來製造電路。
在一些實現中,積體電路還包括一個或更多個數模轉換器,該數模轉換器被配置為基於一個或更多個數位訊號產生模擬部件的等效模擬網路的模擬輸入。
在一些實現中,積體電路還包括模擬訊號取樣模組,該模擬訊號取樣模組被配置為基於積體電路的推斷(inference)的數量以某個取樣頻率來處理一維或二維模擬輸入。
在一些實現中,積體電路還包括電壓轉換器模組,該電壓轉換器模組按比例縮小或按比例放大模擬訊號,以匹配複數運算放大器的操作範圍。
在一些實現中,積體電路還包括被配置為處理從CCD攝影機獲得的一個或更多個訊框的觸覺訊號處理模組(tact signal processing module)。
在一些實現中,訓練後的神經網路是長短期記憶(LSTM)網路。在這樣的情況下,積體電路還包括一個或更多個時鐘模組以使訊號觸覺同步並允許時間序列處理。
在一些實現中,積體電路還包括被配置為基於模擬部件的等效模擬網路的輸出來產生數位訊號的一個或更多個模數轉換器。
在一些實現中,積體電路還包括被配置為處理從邊緣應用獲得的一維或二維模擬訊號的一個或更多個訊號處理模組。
在一些實現中,使用包含針對不同氣體混合物的氣體感測器的陣列的訊號的訓練資料集來對訓練後的神經網路進行訓練,用於選擇性地感測包含待檢測的預定量的氣體的氣體混合物中的不同氣體。在這樣的情況下,神經網路拓撲是被設計用於基於由16個氣體感測器進行的測量來檢測3個二元氣體成分的一維深度卷積神經網路(1D-DCNN),並且包括16個感測器式的1-D卷積塊、3個共用或公共的1-D卷積塊和3個密集層。在這樣的情況下,等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)延遲塊,用於產生任何數量的時間步長的延遲,(iii)訊號限制為5,(iv)15個層,(v)大約100,000個模擬神經元,以及(vi)大約4,900,000個連接。
在一些實現中,使用包含對於不同MOSFET的熱老化時間序列資料的訓練資料集來對訓練後的神經網路進行訓練,用於預測MOSFET器件的剩餘使用壽命(RUL)。在這樣的情況下,神經網路拓撲在每個層中包括有64個神經元的4個LSTM層,後面是分別具有64個神經元和1個神經元的兩個密集層。在這樣的情況下,等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)18個層,(iv)3,000和3,200個之間的模擬神經元,以及(v)123,000和124,000個之間的連接。
在一些實現中,使用包含時間序列資料的訓練資料集來對訓練後的神經網路進行訓練,該時間序列資料包括在不同的市售Li離子電池的連續使用期間的放電和溫度資料,該訓練用於監測鋰離子電池的健康狀態(SOH)和充電狀態(SOC)以在電池管理系統(BMS)中使用。在這樣的情況下,神經網路拓撲包括一個輸入層、在每個層中有64個神經元的2個LSTM層,後面是具有用於產生SOC和SOH值的2個神經元的一個輸出密集層。在這樣的情況下,等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)9個層,(iv)1,200和1,300個之間的模擬神經元,以及(v)51,000和52,000個之間的連接。
在一些實現中,使用包含時間序列資料的訓練資料集來對訓練後的神經網路進行訓練,該時間序列資料包括在不同的市售Li離子電池的連續使用期間的放電和溫度資料,該訓練用於監測鋰離子電池的健康狀態(SOH)以在電池管理系統(BMS)中使用。在這樣的情況下,神經網路拓撲包括具有18個神經元的輸入層、具有100個神經元的簡單迴圈層和具有1個神經元的密集層。在這樣的情況下,等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)4個層,(iv)200和300個之間的模擬神經元,以及(v)2,200和2,400個之間的連接。
在一些實現中,使用包含語音命令的訓練資料集來對訓練後的神經網路進行訓練,用於識別話音命令。在這樣的情況下,神經網路拓撲是具有1個神經元的深度可分離卷積神經網路(DS-CNN)層。在這樣的情況下,等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)13個層,(iv)大約72,000個模擬神經元,以及(v)大約260萬個連接。
在一些實現中,使用包含針對在預定時間段內進行各種身體活動的不同個體的光電容積描記術(PPG)資料、加速度計資料、溫度資料和皮膚電反應訊號資料以及從ECG感測器獲得的參考心率資料的訓練資料集來對訓練後的神經網路進行訓練,用於基於PPG感測器資料和3軸加速度計資料來確定在身體鍛煉期間的脈搏率。在這樣的情況下,神經網路拓撲包括:兩個Conv1D層,每個層具有執行時間序列卷積的16個濾波器和20的內核;兩個LSTM層,每個層具有16個神經元;以及分別具有16個神經元和1個神經元的兩個密集層。在這樣的情況下,等效模擬網路包括:(i)延遲塊,其產生任何數量的時間步長,(ii)每模擬神經元最多100個輸入和輸出連接,(iii)訊號限制為5,(iv)16個層,(v)700和800個之間的模擬神經元,以及(vi)12,000和12,500個之間的連接。
在一些實現中,訓練後的神經網路被訓練以基於脈衝多普勒雷達訊號對不同的物件分類。在這樣的情況下,神經網路拓撲包括多尺度LSTM神經網路。
在一些實現中,訓練後的神經網路被訓練以基於慣性感測器資料來執行人類活動類型識別。在這樣的情況下,神經網路拓撲包括三個通道式(channel-wise)卷積網路,每個通道式卷積網路具有12個濾波器和64的內核尺寸的卷積層,以及每個卷積層後面是最大池化(max pooling)層,以及分別具有1024個神經元和N個神經元的兩個公共密集層,其中N是類別的數量。在這樣的情況下,等效模擬網路包括:(i)延遲塊,其產生任何數量的時間步長,(ii)每模擬神經元最多100個輸入和輸出連接,(iii)10個模擬神經元的輸出層,(iv)訊號限制為5,(v)10個層,(vi)1,200和1,300個之間的模擬神經元,以及(vi)20,000到21,000個之間的連接。
在一些實現中,訓練後的神經網路被進一步訓練以基於使用卷積運算與心率資料合併的加速度計資料來檢測人類活動的異常模式。
在另一方面中,提供了一種用於產生神經網路的硬體實現的庫的方法。該方法包括獲得複數神經網路拓撲,每個神經網路拓撲對應於相應的神經網路。該方法還包括將每個神經網路拓撲變換成模擬部件的相應等效模擬網路。該方法還包括產生用於製造複數電路的複數蝕刻光罩,每個電路實現模擬部件的相應等效模擬網路。
在一些實現中,該方法還包括獲得訓練後的神經網路的新神經網路拓撲和權重。該方法還包括基於新神經網路拓撲與複數神經網路拓撲的比較從複數蝕刻光罩中選擇一個或更多個蝕刻光罩。該方法還包括基於權重來計算新等效模擬網路的權重矩陣。該方法還包括針對權重矩陣產生電阻矩陣。該方法還包括基於電阻矩陣和一個或更多個蝕刻光罩產生用於製造實現新等效模擬網路的電路的新蝕刻光罩。
在一些實現中,新神經網路拓撲包括複數子網拓撲,並且選擇一個或更多個蝕刻光罩進一步基於每個子網拓撲與複數網路拓撲中的每個網路拓撲的比較。
在一些實現中,複數子網拓撲中的一個或更多個子網拓撲未能與複數網路拓撲中的任何網路拓撲比較。在這樣的情況下,該方法還包括:(i)將一個或更多個子網拓撲的每個子網拓撲變換成模擬部件的相應等效模擬子網;以及(ii)產生用於製造一個或更多個電路的一個或更多個蝕刻光罩,一個或更多個電路的每個電路實現模擬部件的相應等效模擬子網。
在一些實現中,將相應網路拓撲變換成相應等效模擬網路包括:(i)將相應網路拓撲分解成複數子網拓撲;(ii)將每個子網拓撲變換成模擬部件的相應等效模擬子網;以及(iii)組合每個等效模擬子網以獲得相應等效模擬網路。
在一些實現中,分解相應網路拓撲包括將相應網路拓撲的一個或更多個層識別為複數子網拓撲。
在一些實現中,藉由下列操作來獲得每個電路:(i)產生模擬部件的相應等效模擬網路的電路圖(schematics);以及(ii)基於該電路圖產生相應的電路佈局設計。
在一些實現中,該方法還包括在產生用於製造複數電路的複數蝕刻光罩之前組合一個或更多個電路佈局設計。
在另一方面中,根據一些實現,提供了一種用於最佳化模擬神經形態電路的能量效率的方法。該方法包括獲得實現模擬部件的模擬網路的積體電路,模擬部件包括複數運算放大器和複數電阻器。模擬網路表示訓練後的神經網路,每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接。該方法還包括使用積體電路針對複數測試輸入產生推斷,包括同時將訊號從模擬網路的一層傳輸到下一層。該方法還包括,當使用積體電路產生推斷時:(i)確定複數運算放大器的訊號輸出電位準是否被平衡;以及(ii)根據訊號輸出電位準被平衡的確定來:(a)確定影響用於訊號的傳播的訊號形成的模擬網路的模擬神經元的活動集合(active set);以及在預定時間段內,為模擬網路的不同於模擬神經元的活動集合的一個或更多個模擬神經元關閉電源。
在一些實現中,基於計算穿過模擬網路的訊號傳播的延遲來確定模擬神經元的活動集合。
在一些實現中,基於檢測到訊號穿過模擬網路的傳播來確定模擬神經元的活動集合。
在一些實現中,訓練後的神經網路是前饋神經網路,以及模擬神經元的活動集合屬於模擬網路的活動層,並且關閉電源包括在模擬網路的活動層之前為一個或更多個層關閉電源。
在一些實現中,考慮訊號延遲,基於對訊號穿過模擬網路的傳播進行仿真來計算預定時間段。
在一些實現中,訓練後的神經網路是迴圈神經網路(RNN),以及模擬網路還包括除複數運算放大器和複數電阻器之外的一個或更多個模擬部件。在這樣的情況下,該方法還包括,根據訊號輸出電位準被平衡的確定,在預定時間段內為一個或更多個模擬部件關閉電源。
在一些實現中,該方法還包括在預定時間段之後為模擬網路的一個或更多個模擬神經元接通電源。
在一些實現中,確定複數運算放大器的訊號輸出電位準是否被平衡基於檢測模擬網路的一個或更多個運算放大器是否輸出大於預定臨界值的訊號電位準。
在一些實現中,該方法還包括在產生推斷時重複在預定時間段內關閉和在預定時間段內開啟模擬神經元的活動集合。
在一些實現中,該方法還包括:(i)根據訊號輸出電位準被平衡的確定,對於每個推斷迴圈:(a)在第一時間間隔期間,確定影響用於訊號的傳播的訊號形成的模擬網路的第一層模擬神經元;以及(b)在預定時間段內在該第一層之前為模擬網路的第一一個或更多個模擬神經元關閉電源;以及(ii)在第一時間間隔之後的第二時間間隔期間,在預定時間段內為第二一個或更多個模擬神經元關閉電源,該第二一個或更多個模擬神經元包括模擬網路的第一層模擬神經元和第一一個或更多個模擬神經元。
在一些實現中,一個或更多個模擬神經元由模擬網路的第一一個或更多個層的模擬神經元組成,以及模擬神經元的活動集合由模擬網路的第二層的模擬神經元組成,並且模擬網路的第二層不同於第一一個或更多個層中的層。
在一些實現中,電腦系統具有一個或更多個處理器、記憶體和顯示器。一個或更多個程式包括用於執行本文所述的任何方法的指令。
在一些實現中,一種非暫時性電腦可讀儲存媒體儲存被配置為由具有一個或更多個處理器、記憶體和顯示器的電腦系統執行的一個或更多個程式。一個或更多個程式包括用於執行本文所述的任何方法的指令。
因此,揭露了用於訓練後的神經網路的硬體實現的方法、系統和設備。
圖1A是根據一些實現的用於使用模擬部件的訓練後的神經網路的硬體實現的系統100的框圖。該系統包括將訓練後的神經網路102變換(126)成模擬神經網路104。在一些實現中,模擬積體電路約束184約束(146)變換(126)以產生模擬神經網路104。隨後,系統藉由有時被稱為權重量化(128)的過程來匯出(計算或產生)模擬神經網路104的權重106。在一些實現中,模擬神經網路包括複數模擬神經元,每個模擬神經元由模擬部件(例如運算放大器)表示,並且每個模擬神經元經由連接來連接到另一個模擬神經元。在一些實現中,使用減少在兩個模擬神經元之間的電流的電阻器來表示連接。在一些實現中,系統針對連接將權重106變換(148)為電阻值112。系統隨後基於權重106產生(130)用於實現模擬神經網路104的一個或更多個示意模型108。在一些實現中,系統最佳化電阻值112(或權重106)以形成最佳化的模擬神經網路114,其進一步用於產生(150)示意模型108。在一些實現中,系統針對連接產生(132)蝕刻光罩110和/或針對模擬神經元產生(136)蝕刻光罩120。在一些實現中,系統製造(134和/或138)實現模擬神經網路104的模擬積體電路118。在一些實現中,系統基於針對連接的蝕刻光罩110和/或針對模擬神經元的蝕刻光罩120來產生(152)蝕刻光罩庫116。在一些實現中,系統使用(154)蝕刻光罩庫116來製造模擬積體電路118。在一些實現中,當訓練後的神經網路102被再訓練(142)時,系統重新產生(或重新計算)(144)電阻值112(和/或權重106)、示意模型108和/或針對連接的蝕刻光罩110。在一些實現中,系統重新使用針對模擬神經元120的蝕刻光罩120。換句話說,在一些實現中,僅權重106(或對應於改變的權重的電阻值112)和/或針對連接的蝕刻光罩110被重新產生。因為如虛線156所指示的,只有連接、權重、示意模型和/或針對連接的對應蝕刻光罩被重新產生,所以當與用於神經網路的硬體實現的傳統技術相比時,用於製造再訓練後的神經網路的模擬積體電路的過程(或到模擬積體電路的路徑)被顯著簡化,並且用於重新編造(re-spinning)神經網路的硬體的上市時間被減少。
圖1B是根據一些實現的用於使用模擬部件的訓練後的神經網路的硬體實現的系統100的替代表示的框圖。該系統包括用軟體訓練(156)神經網路,確定連接的權重,產生(158)等效於神經網路的電子電路,計算(160)對應於每個連接的權重的電阻器值,以及隨後使用電阻器值產生(162)蝕刻光罩。
圖1C是根據一些實現的用於使用模擬部件的訓練後的神經網路的硬體實現的系統100的另一表示的框圖。根據一些實現,系統作為軟體發展套件(SDK)180被分配。使用者開發和訓練(164)神經網路,並將訓練後的神經網166輸入到SDK 180。SDK估計(168)訓練後的神經網166的複雜性。如果訓練後的神經網的複雜性可以降低(例如,一些連接和/或神經元可以被移除,一些層可以被減少,或者神經元的密度可以被改變),則SDK 180修剪(178)訓練後的神經網,並且再訓練(182)該神經網以獲得更新的訓練後的神經網166。一旦訓練後的神經網的複雜性降低,SDK 180就將訓練後的神經網166變換(170)成模擬部件的稀疏網路(例如,金字塔狀或梯形狀網路)。SDK 180還產生模擬網路的電路模型172。在一些實現中,SDK使用軟體仿真來估計(176)由電路模型172產生的輸出相對於對於相同輸入的訓練後的神經網路的偏差。如果所估計的誤差超過臨界值誤差(例如,由用戶設定的值),SDK 180提示使用者重新配置、重新開發和/或再訓練神經網路。在一些實現中,雖然未示出,但SDK自動重新配置訓練後的神經網166,以便減少所估計的誤差。這個過程重複多次,直到誤差降低到小於臨界值誤差為止。在圖1C中,從塊176(“在電路系統中出現的誤差的估計”)到塊164(“神經網路的開發和訓練”)的虛線指示反饋回路。例如,如果被修剪的網路沒有顯示期望的準確度,則一些實現不同地修剪網路,直到對於給定應用準確度超過預定臨界值(例如,98%的準確度)為止。在一些實現中,該過程包括重新計算權重,因為修剪包括整個網路的再訓練。
在一些實現中,上述系統100的部件在一個或更多個計算設備或伺服器系統中被實現為計算模組。圖2A是根據一些實現的計算設備200的框圖。如本文所使用的,術語“計算設備”既包括個人設備102又包括伺服器。計算設備200通常包括用於執行被儲存在記憶體214中的模組、程式和/或指令並從而執行處理操作的一個或更多個處理單元/核(CPU)202;一個或更多個網路或其它通訊介面204;記憶體214;以及用於將這些部件互連的一個或更多個通訊匯流排212。通訊匯流排212可以包括在系統部件之間進行互連和控制在系統部件之間的通訊的電路系統。計算設備200可以包括使用者介面206,使用者介面206包括顯示裝置208和一個或更多個輸入裝置或機構210。在一些實現中,輸入裝置/機構210包括鍵盤;在一些實現中,輸入裝置/機構包括“軟”鍵盤,其根據需要被顯示在顯示裝置208上,使用戶能夠“按下”出現在顯示器208上的“鍵”。在一些實現中,顯示器208和輸入裝置/機構210包括觸控式螢幕顯示器(也被稱為觸敏顯示器)。在一些實現中,記憶體214包括高速隨機存取記憶體,例如DRAM、SRAM、DDR RAM或其他隨機存取固態記憶體設備。在一些實現中,記憶體214包括非揮發性記憶體,諸如一個或更多個磁片存放裝置、光碟存放裝置、快閃記憶體設備或其他非揮發性固態存放裝置。在一些實現中,記憶體214包括遠離CPU 202定位的一個或更多個存放裝置。記憶體214或可選地在記憶體214內的非揮發性記憶體設備包括電腦可讀儲存媒體。在一些實現中,記憶體214或記憶體214的電腦可讀儲存媒體儲存下面的程式、模組和資料結構或其子集: Ÿ   作業系統216,其包括用於處理各種基本系統服務和用於執行硬體相關任務的過程; Ÿ   通訊模組218,其用於經由一個或更多個通訊網路介面204(有線的或無線的)和一個或更多個通訊網路(例如網際網路、其它廣域網路、區域網路、都會區網路等)將計算設備200連接到其它電腦和設備; Ÿ   包括權重222和神經網路拓撲224的訓練後的神經網路220。根據一些實現,下面參考圖4A至圖4C、圖12、圖13A和圖14A描述輸入神經網路的例子; Ÿ   神經網路變換模組226,其包括變換的模擬神經網路228、數學公式230、基本函數塊232、模擬模型234(有時被稱為神經元模型)和/或模擬積體電路(IC)設計約束236。下面至少參考圖5、圖6A至圖6C、圖7、圖8、圖9、圖10和圖11A至圖11C以及在圖27A至圖27J和圖28A至圖28S中所示的流程圖來描述神經網路變換模組226的示例操作;和/或 Ÿ   權重矩陣計算(有時被稱為權重量化)模組238,其包括變換的網路的權重272,並且可選地包括電阻計算模組240、電阻值242。根據一些實現,至少參考圖17A至圖17C、圖18和圖29A至圖29F來描述權重矩陣計算模組238和/或權重量化的示例操作。
一些實現包括如圖2B所示的一個或更多個可選模組244。一些實現包括模擬神經網路最佳化模組246。根據一些實現,下面參考圖30A至圖30M描述模擬神經網路最佳化的例子。
一些實現包括蝕刻光罩產生模組248,其進一步包括針對電阻(對應於連接)的蝕刻光罩250和/或針對模擬部件(例如運算放大器、乘法器、延遲塊等)而不是電阻(或連接)的蝕刻光罩。在一些實現中,使用Cadence、Synopsys或Mentor Graphics(明導)套裝軟體在晶片設計之後基於晶片設計佈局來產生蝕刻光罩。一些實現使用來自矽晶圓製造廠(有時被稱為晶圓廠)的設計套件。蝕刻光罩意欲被用在提供設計套件(例如,TSMC 65 nm設計套件)的那個特定晶圓廠中。所產生的蝕刻光罩文件用於在晶圓廠處製造晶片。在一些實現中,基於Cadence、Mentor Graphics或Synopsys套裝軟體的晶片設計從SPICE或Fast SPICE(Mentor Graphics)套裝軟體半自動地產生。在一些實現中,具有晶片設計技能的使用者驅動從SPICE或Fast SPICE電路到Cadence、Mentor Graphics或Synopsis晶片設計的轉換。一些實現組合單個神經元單元的Cadence設計塊,在塊之間建立適當的互連。
一些實現包括庫產生模組254,其進一步包括蝕刻光罩庫256。根據一些實現,下面參考圖32A至圖32E描述庫產生的例子。
一些實現包括積體電路(IC)製造模組258,其進一步包括模數轉換(ADC)、數模轉換(DAC)或類似的其他介面260和/或所製造的IC或模型262。根據一些實現,下面參考圖31A至圖31Q描述示例積體電路和/或相關模組。
一些實現包括能量效率最佳化模組264,其進一步包括推斷模組266、訊號監測模組268和/或功率最佳化模組270。根據一些實現,下面參考圖33A至圖33K描述能量效率最佳化的例子。
上面識別的可執行模組、應用或過程集中的每個可以被儲存在前面提到的記憶體設備中的一個或更多個中,並且對應於用於執行上述功能的指令集。上面識別的模組或程式(即,指令集)不需要被實現為單獨的軟體程式、過程或模組,因此這些模組的各種子集可以在各種實現中被組合或以其他方式重新佈置。在一些實現中,記憶體214儲存上面識別的模組和資料結構的子集。此外,在一些實現中,記憶體214儲存上面未描述的附加模組或資料結構。
儘管圖2A示出了計算設備200,但是圖2A更預期作為可以存在的各種特徵的功能描述,而不是作為本文所述的實現的結構示意圖。在實踐中且如本領域中的普通技術人員認識到的,單獨示出的項可以組合並且一些項可以被分離。用於產生模擬網路的示意模型的示例過程
圖3A示出了根據一些實現的用於產生對應於訓練後的神經網路的模擬網路的示意模型的示例過程300。如圖3A所示,訓練後的神經網路302(例如MobileNet)被變換(322)成目標或等效模擬網路304(使用有時被稱為T變換的過程)。目標神經網路(有時被稱為T網路)304被輸出(324)到使用單神經元模型(SNM)的SPICE(作為SPICE模型306),其從SPICE被匯出(326)到使用CADENCE模型308的CADENCE和全片上設計。針對一個或更多個驗證輸入對照初始神經網路來交叉驗證(328)CADENCE模型308。
在上面和下面的描述中,數學神經元是接收一個或更多個加權輸入並產生標量輸出的數學函數。在一些實現中,數學神經元可以具有記憶(例如,長短期記憶(LSTM)、迴圈神經元)。平凡神經元(trivial neuron)是執行函數的數學神經元,表示“理想”數學神經元
Figure 02_image189
,其中f(x)是啟動函數。SNM是有以示意形式表示特定類型的數學神經元(例如平凡神經元)的模擬部件(例如運算放大器、電阻器R1 、…、Rn 和其他部件)的示意模型。SNM輸出電壓由對應的公式表示,該公式取決於K個輸入電壓和SNM部件值
Figure 02_image191
。根據一些實現,利用適當地選擇的部件值,SNM公式等效於具有期望權重集的數學神經元公式。在一些實現中,權重集完全由在SNM中使用的電阻器確定。目標(模擬)神經網路304(有時被稱為T網路)是一組數學神經元,其定義SNM表示以及對它們之間的連接加權,形成神經網路。T網路遵循幾個限制,例如入站(inbound)限制(在T網路內的任何神經元的入站連接的最大限制)、出站(outbound)限制(在T網路內的任何神經元的出站連接的最大限制)和訊號範圍(例如,所有訊號應在預定義訊號範圍內)。T變換(322)是將某個期望神經網路(例如MobileNet)轉換成對應的T網路的過程。SPICE模型306是T網路304的SPICE神經網路模型,其中每個數學神經元用對應的一個或更多個SNM代替。Cadence NN模型310是T網路304的Cadence模型,其中每個數學神經元用對應的一個或更多個SNM代替。此外,如本文所述,如果對於這些網路的所有神經元輸出
Figure 02_image193
,則兩個網路L和M具有數學等價性,其中
Figure 02_image195
相對小的(例如,在操作電壓範圍的0.1-1%之間)。同樣,如果對於給定的驗證輸入資料集
Figure 02_image197
,分類結果大多是相同的,即,
Figure 02_image199
,則兩個網路L和M具有函數等價性,其中
Figure 02_image195
相對小的。
圖3B示出了根據一些實現的用於基於Cadence上的SNM模型314來產生目標晶片模型320的示例人工原型製作過程。注意,儘管下面的描述使用Cadence,但是根據一些實現,來自Mentor Graphic設計或Synopsys(例如Synopsys設計套件)的可選工具可以被使用來代替Cadence工具。該過程包括選擇SNM限制,包括入站和出站限制以及訊號限制、針對神經元之間的連接選擇模擬部件(例如電阻器,包括特定的電阻器陣列技術)以及開發Cadence SNM模型314。基於在Cadence上的SNM模型314來開發(330)原型SNM模型316(例如PCB原型)。比較原型SNM模型316與SPICE模型的等價性。在一些實現中,當神經網路滿足等價性要求時,神經網路針對片上原型被選擇。因為神經網路尺寸小,所以T變換可以針對等價性被手工驗證。隨後,基於SNM模型原型316產生(332)片上SNM模型318。根據一些實現,片上SNM模型盡可能被最佳化。在一些實現中,在最終化(finalizing)SNM模型之後,在基於片上SNM模型318產生(334)目標晶片模型320之前,計算SNM模型的片上密度。在原型製作過程期間,從業者可以反復選擇神經網路任務或應用和特定神經網路(例如,具有大約10萬個到110萬個神經元的神經網路),執行T變換,建立Cadence神經網路模型,設計介面和/或目標晶片模型。示例輸入神經網路
圖4A、圖4B和圖4C示出了根據一些實現的訓練後的神經網路(例如神經網路220)的例子,訓練後的神經網路被輸入到系統100並被變換成數學上等效的模擬網路。圖4A示出了由人工神經元組成的示例神經網路(有時被稱為人工神經網路),該人工神經元接收輸入、使用啟動函數來組合輸入並產生一個或更多個輸出。輸入包括資料,例如影像、感測器資料和文檔。一般,每個神經網路執行特定任務,例如物件識別。網路包括在神經元之間的連接,每個連接提供神經元的輸出作為另一個神經元的輸入。在訓練之後,每個連接被分配對應的權重。如圖4A所示,神經元通常被組織成複數層,每一層神經元只連接到緊接的前一層和後一層神經元。神經元的輸入層402接收外部輸入(例如,輸入X1 、X2 、…、Xn )。輸入層402後面是神經元的一個或更多個隱藏層(例如層404和406),其後是產生輸出410的輸出層408。各種類型的連接模式連接連續層的神經元,例如將一層中的每個神經元連接到下一層的所有神經元的完全連接模式或者將一層中的一組神經元的輸出連接到下一層中的單個神經元的池化模式。與圖4A所示的有時被稱為前饋網路的神經網路相反,圖4B所示的神經網路包括從一層中的神經元到同一層中的其他神經元或前一層中的神經元的一個或更多個連接。圖4B中所示的例子是迴圈神經網路的例子,並且在輸入層中包括兩個輸入神經元412(其接受輸入X1)和414(其接受輸入X2),後面是兩個隱藏層。第一隱藏層包括神經元416和418,其與輸入層中的神經元以及第二隱藏層中的神經元420、422和424完全連接。第二隱藏層中的神經元420的輸出連接到第一隱藏層中的神經元416,提供反饋回路。包括神經元420、422和424的隱藏層被輸入到輸出層中的產生輸出y的神經元426。
圖4C示出了根據一些實現的卷積神經網路(CNN)的例子。與圖4A和圖4B所示的神經網路相比,圖4C所示的例子包括不同類型的神經網路層,其包括用於特徵學習的層的第一階段和用於分類任務(例如對象識別)的層的第二階段。特徵學習階段包括卷積和修正線性單元(ReLU)層430,後面是池化層432,其後面是另一個卷積和ReLU層434,其後面又是另一個池化層436。第一層430從輸入428(例如,輸入影像或其部分)提取特徵,並對它的輸入執行卷積運算以及一個或更多個非線性運算(例如,ReLU、tanh或sigmoid)。當輸入是大的時,池化層(例如層432)減少了參數的數量。池化層436的輸出被層438壓平(flattened),並輸入到具有一個或更多個層(例如層440和442)的完全連接神經網路。完全連接神經網路的輸出被輸入到softmax層444以對完全連接網路的層442的輸出分類,以產生許多不同輸出446之一(例如,輸入影像428的物件類別或類型)。
一些實現將輸入神經網路的佈局或組織儲存在記憶體214中作為神經網路拓撲224,該輸入神經網路的佈局或組織包括每層中的神經元的數量、神經元的總數、每個神經元的操作或啟動函數和/或在神經元之間的連接。
圖5示出了根據一些實現的神經元的數學模型500的例子。數學模型包括傳入訊號502的輸入,其乘以突觸權重504並由單位求和506來求和。根據一些實現,單位求和506的結果被輸入到非線性轉換單元508以產生輸出訊號510。
圖6A至圖6C示出了根據一些實現的用於計算輸入值的異或(異或結果的分類)的神經網路的模擬硬體實現的示例過程。圖6A示出了分別沿著x軸和y軸的可能輸入值X1 和X2 的表600。預期結果值由空心圓(表示值1)和實心或黑色圓(表示值0)指示,這是具有2個輸入訊號和2個類別的典型異或問題。僅當值X1 和X2 中的任一個而不是兩個為1時,預期結果才為1,否則為0。訓練集由4種可能的輸入訊號組合(X1 和X2 輸入的二進位值)組成。圖6B示出了根據一些實現的解決圖6A的異或分類的基於ReLU的神經網路602。神經元不使用任何偏差值,而使用ReLU啟動。輸入604和606(其分別對應於X1 和X2 )被輸入到第一ReLU神經元608-2。輸入604和606也輸入到第二ReLU神經元608-4。兩個ReLU神經元608-2和608-4的結果被輸入到執行輸入值的線性求和的第三神經元608-6,以產生輸出值510(Out值)。神經網路602具有對於ReLU神經元608-2的權重-1和1(分別對於輸入值X1 和X2 )、對於ReLU神經元608-4的權重1和-1(分別對於輸入值X1 和X2 )以及權重1和1(分別對於RelLu神經元608-2和608-4的輸出)。在一些實現中,訓練後的神經網路的權重作為權重222儲存在記憶體214中。
圖6C示出了根據一些實現的網路602的示例等效模擬網路。X1 輸入604和X2 輸入606的模擬等效輸入614和616被輸入到第一層的模擬神經元N1 618和N2 620。神經元N1和N2與第二層的神經元N3和N4密集地連接。第二層的神經元(即神經元N3 622和神經元N4 624)與產生輸出Out(等效於網路602的輸出610)的輸出神經元N5 626連接。神經元N1、N2、N3、N4和N5具有ReLU(最大值 = 1)啟動函數。
一些實現使用Keras學習,該Keras學習在大約1000次反覆運算時收斂,並產生用於連接的權重。在一些實現中,權重作為權重222的一部分儲存在記憶體214中。在下面的示例中,資料格式為“神經元[第1連結權重,第2連結權重,偏差]”。 Ÿ   N1 [-0.9824321, 0.976517, -0.00204677]; Ÿ   N2 [1.0066702, -1.0101418, -0.00045485]; Ÿ   N3 [1.0357606, 1.0072469, -0.00483723]; Ÿ   N4 [-0.07376373, -0.7682612, 0.0];以及 Ÿ   N5 [1.0029935, -1.1994369, -0.00147767]。
接下來,為了計算在神經元之間的連接的電阻器值,一些實現計算電阻器範圍。一些實現設定1 MΩ的電阻器標稱值(R+,R-)、100 KΩ至1 MΩ的可能的電阻器範圍以及標稱系列E24。一些實現如下針對每個連接計算w1、w2、wbias電阻器值。對於每個權重值wi(例如權重222),一些實現評估在選擇的標稱系列內的所有可能的(Ri-,Ri+)電阻器對選項,並選擇產生最小誤差值
Figure 02_image201
的電阻器對。根據一些實現,下面的表提供了對於每個連接的權重w1、w2和偏差的示例值。
   模型值 R- (MΩ) R+ (MΩ) 所實現的值
N1_w1 -0.9824321 0.36 0.56 -0.992063
N1_w2 0.976517 0.56 0.36 0.992063
N1_bias -0.00204677 0.1 0.1 0.0
N2_w1 1.0066702 0.43 0.3 1.007752
N2_w2 -1.0101418 0.18 0.22 -1.010101
N2_bias -0.00045485 0.1 0.1 0.0
N3_w1 1.0357606 0.91 0.47 1.028758
N3_w2 1.0072469 0.43 0.3 1.007752
N3_bias -0.00483723 0.1 0.1 0.0
N4_w1 -0.07376373 0.91 1.0 -0.098901
N4_w2 -0.7682612 0.3 0.39 -0.769231
N4_bias 0.0 0.1 0.1 0.0
N5_w1 1.0029935 0.43 0.3 1.007752
N5_w2 -1.1994369 0.3 0.47 -1.205674
N5_bias -0.00147767 0.1 0.1 0.0
變換的神經網路的示例優點
在描述變換的例子之前,值得注意的是變換的神經網路優於傳統架構的一些優點。如本文所述,輸入的訓練後的神經網路被變換成金字塔狀或梯形狀模擬網路。金字塔或梯形優於交叉開關的一些優點包括更低的時延、同時的模擬訊號傳播、使用標準積體電路(IC)設計元件(包括電阻器和運算放大器)製造的可能性、計算的高度並行性、高準確度(例如,相對於傳統方法,準確度隨著層的數量而增加)、對在每個權重中和/或在每個連接處的誤差的容限(例如,金字塔使誤差平衡)、低RC(與訊號藉由網路的傳播相關的低電阻電容延遲)和/或操縱在變換的網路的每層中的每個神經元的偏差和函數的能力。此外,金字塔本身是優秀的計算塊,因為它是可以用一個輸出對任何神經網路建模的多級感知器。根據一些實現,使用不同的金字塔或梯形幾何結構來實現具有幾個輸出的網路。金字塔可以被認為是具有一個輸出和幾個層(例如N個層)的多層感知器,其中每個神經元具有n個輸入和1個輸出。類似地,梯形是多層感知器,其中每個神經元有n個輸入和m個輸出。根據一些實現,每個梯形是金字塔狀網路,其中每個神經元具有n個輸入和m個輸出,其中n和m受到IC模擬晶片設計限制的限制。
一些實現執行任何訓練後的神經網路到金字塔或梯形的子系統的無損變換。因此,金字塔和梯形可以用作用於變換任何神經網路的通用構造塊。基於金字塔或梯形的神經網路的一個優點是使用標準光刻技術使用標準IC模擬元件(例如運算放大器、電阻器、在迴圈神經元的情況下的訊號延遲線)來實現任何神經網路的可能性。將變換的網路的權重限制到某個區間也是可能的。換句話說,根據一些實現,無損變換在權重被限制到某個預定義範圍的情況下被執行。使用金字塔或梯形的另一個優點是在訊號處理中的高度並行性或模擬訊號的同時傳播,其提高了計算的速度,提供更低的時延。此外,許多現代神經網路是稀疏連接網路,並且當被變換成金字塔時比變換成交叉開關時好得多(例如,更緊湊、具有低RC值、沒有漏電流),金字塔和梯形網路比基於交叉開關的憶阻器網路相對更緊湊。
此外,模擬神經形態梯形狀晶片擁有對於模擬器件不典型的許多特性。例如,信噪比不隨著在模擬晶片中的級聯的數量而增加,外部雜訊被抑制,且溫度的影響極大地被降低。這樣的特性使梯形狀模擬神經形態晶片類似於數位電路。例如,根據一些實現,單獨神經元基於運算放大器調平(level)訊號,並且以20,000-100,000 Hz的頻率操作,並且不被具有高於操作範圍的頻率的雜訊或訊號影響。由於在運算放大器如何運轉方面的獨特性,梯形狀模擬神經形態晶片也執行輸出訊號的濾波。這樣的梯形狀模擬神經形態晶片抑制同相(synphase)雜訊。由於運算放大器的低歐姆輸出,雜訊也顯著降低。由於在每個運算放大器輸出處的訊號的調平和放大器的同步工作,由溫度引起的參數的漂移不影響在最終輸出處的訊號。梯形狀模擬神經形態電路容忍輸入訊號中的誤差和雜訊,並且容忍與神經網路中的權重值對應的電阻器值的偏差。梯形狀模擬神經形態網路也容忍任何類型的系統誤差,如在電阻器值設定中的誤差,如果這樣的誤差基於運算放大器由於模擬神經形態梯形狀電路的本質而對所有電阻器是相同的。訓練後的神經網路的示例無損變換( T 變換)
在一些實現中,本文描述的示例變換由神經網路變換模組226執行,該神經網路變換模組226基於數學公式230、基本函數塊232、模擬部件模型234和/或模擬設計約束236來變換訓練後的神經網路220以獲得變換的神經網路228。
圖7示出了根據一些實現的示例感知器700。感知器在接收8個輸入的輸入層中包括K=8個輸入和8個神經元702-2、…、702-16。存在輸出層,在輸出層中有對應於L=4個輸出的4個神經元704-2、…、704-8。輸入層中的神經元完全連接到輸出層中的神經元,建立8×4 = 32個連接。假設連接的權重由權重矩陣WP表示(元素WPi, j 對應於在輸入層中的第i個神經元和輸出層中的第j個神經元之間的連接的權重)。進一步假設每個神經元執行一個啟動函數F。
圖8示出了根據一些實現的示例金字塔神經網路(P-NN)800,其是一種目標神經網路(T-NN或TNN),等效於圖7所示的感知器。為了執行感知器(圖7)到PN-NN架構(圖8)的這個變換,假設對於T-NN,輸入的數量被限制到Ni = 4以及輸出的數量被限制到No = 2。T-NN包括具有神經元802-2、…、802-34的輸入層LTI,其為具有神經元802-2、…、802-16的輸入層的兩個副本的串聯,總共為2×8 = 16個輸入神經元。神經元的集合804(包括神經元802-20、…、802-34)是神經元802-2、…、802-18的副本,並且輸入被複製。例如,神經元802-2的輸入也被輸入到神經元802-20,神經元802-4的輸入也被輸入到神經元802-22,等等。圖8還包括具有神經元806-02、…、806-16(2乘16除以4 = 8個神經元)的隱藏層LTH1,這些神經元是線性神經元。來自輸入層LTI的每組Ni個神經元完全連接到來自LTH1層的兩個神經元。圖8還包括具有2乘8除以4 = 4個神經元808-02、…、808-08的輸出層LTO,每個神經元執行啟動函數F。LTO層中的每個神經元連接到來自層LTH1中的不同組的不同神經元。圖8所示的網路包括40個連接。一些實現針對圖8中的P-NN執行權重矩陣計算,如下所示。隱藏層LTH1的權重(WTH1)根據權重矩陣WP被計算,並且對應於輸出層LTO的權重(WTO)形成具有等於1的元素的疏鬆陣列。
圖9示出了根據一些實現的對應於圖8的輸出神經元的金字塔單神經網路(PSNN)900。PSNN包括具有輸入神經元902-02、…、902-16(對應於圖7的網路700中的8個輸入神經元)的層(LPSI)。隱藏層LPSH1包括8除以4 = 2個線性神經元904-02和904-04,並且來自LTI的每組Ni個神經元連接到LPSH1層的一個神經元。輸出層LPSO由具有啟動函數F的1個神經元906組成,神經元906同時連接到隱藏層的神經元904-02和904-04。為了計算PSNN 900的權重矩陣,一些實現針對LPSH1層計算等於WP的第一行的向量WPSH1。對於LPSO層,一些實現計算具有2個元素的權重向量WPSO,每個元素等於1。該過程對於第一、第二、第三和第四輸出神經元重複。P-NN(例如圖8所示的網路)是PSNN的並集(對於4個輸出神經元)。每個PSNN的輸入層是P的輸入層的單獨副本。對於這個例子,P-NN 800包括具有8乘以4 = 32個輸入的輸入層、具有2乘以4 = 8個神經元的隱藏層和具有4個神經元的輸出層。 對具有 N 個輸入和 1 個輸出的目標神經元的示例變換
在一些實現中,本文描述的示例變換由神經網路變換模組226執行,該神經網路變換模組226基於數學公式230、基本函數塊232、模擬部件模型234和/或模擬設計約束236來變換訓練後的神經網路220以獲得變換的神經網路228。具有一個輸出的單層感知器
假設單層感知器SLP(K,1)包括K個輸入和具有啟動函數F的一個輸出神經元。進一步假設
Figure 02_image065
是SLP(K,1)的權重的向量。下面的演算法Neuron2TNN1 從具有N個輸入和1個輸出的T神經元(被稱為TN(N,1))建構T神經網路。演算法 Neuron2TNN1 1.藉由包括來自SLP(K,1)的所有輸入來建構T-NN的輸入層。 2.如果K>N,則: a.將K個輸入神經元分成
Figure 02_image203
個組,使得每個組由不多於N個輸入組成。 b.從
Figure 02_image205
個神經元建構T-NN的第一隱藏層LTH1 ,每個神經元執行恆等啟動函數。 c.將來自每個組的輸入神經元連接到來自下一層的對應神經元。因此,來自LTH1 的每個神經元具有不多於N個輸入連接。 d.根據下面的方程設定新連接的權重:
Figure 02_image207
Figure 02_image209
3.否則(即,如果K<=N),則): a.用計算啟動函數F的1個神經元建構輸出層 b.將輸入神經元連接到單個輸出神經元。它具有K≤N個連接。 c.借助於下面的方程設定新連接的權重:
Figure 02_image211
d.終止演算法 2.設定l = 1 3.如果ml >N: a.將ml 個神經元分成
Figure 02_image213
個組,每個組由不多於N個神經元組成。 b.從
Figure 02_image215
個神經元建構T-NN的隱藏層LTHl+1 ,每個神經元具有恆等啟動函數。 c.將來自每個組的輸入神經元連接到來自下一層的對應神經元。 d.根據下面的方程設定新連接的權重:
Figure 02_image217
Figure 02_image219
e.設定l=l+1 4.否則(如果m>=N): a.用計算啟動函數F的1個神經元建構輸出層 b.將所有的LTHl 的神經元連接到單個輸出神經元。 c.根據下面的方程設定新連接的權重: a.
Figure 02_image221
d.終止演算法 5.重複步驟5和6。
在這裡,
Figure 02_image223
是不小於x的最小整數。在借助於演算法Neuron2TNN1建構的T-NN中的層的數量是
Figure 02_image225
。在T-NN中的權重的總數為:
Figure 02_image227
圖10示出了根據一些實現的建構的T-NN的例子。除第一層之外的所有層執行它們的輸入的恆等變換。根據一些實現,建構的T-NN的權重矩陣具有下面的形式。 Ÿ   層1(例如層1002):
u1 u2 uN 0 0 0 0
W1 = 0 0 0 uN+1 uN+2 u2N 0 0
0 0 0 u(h-1)N+1 uK
Ÿ   層i = 2、3、…、h(例如,層1004、1006、1008和1010):
1 1 1 0 0 0 0
Wi = 0 0 0 1 1 1 0 0
0 0 0 1 1
T-NN的輸出值根據下面的公式被計算:
Figure 02_image229
第一層的輸出根據下面的公式被計算為輸出向量:
Figure 02_image231
使所獲得的向量乘以第二層的權重矩陣:
Figure 02_image233
每個後續層輸出一個向量,該向量具有等於x的某個子向量的線性組合的分量。
最後,T-NN的輸出等於:
Figure 02_image235
這與在SLP(K,1)中針對相同的輸入向量x計算的值相同。所以SLP(K,1)和建構的TNN的輸出值是相等的。具有幾個輸出的單層感知器
假設存在具有K個輸入和L個輸出神經元的單層感知器SLP(K, L),每個神經元執行一個啟動函數F。進一步假設
Figure 02_image119
是SLP(K, L)的權重矩陣。下面的演算法Layer2TNN1 從神經元TN(N, 1)建構T神經網路。演算法 Layer2TNN1 1.對於每個輸出神經元i=1、…、L a.將演算法Neuron2TNN1 應用於SLPi (K, 1),其由K個輸入、1個輸出神經元和權重向量Uij , j=1、2、…、K組成。TNNi 被建構作為結果。 2.藉由將所有TNNi 組合為一個神經網來建構PTNN: a.將所有TNNi 的輸入向量連接在一起,因此PTNN的輸入具有L組K個輸入,每個組是SLP(K, L)的輸入層的副本。
對於相同的輸入向量,PTNN的輸出等於SLP(K, L)的輸出,因為每對SLPi (K, 1)和TNNi 的輸出是相等的。多層感知器
假設多層感知器(MLP)包括K個輸入、S個層和在第i層中的Li 個計算神經元,其被表示為MLP(K, S, L1 ,… LS )。假設
Figure 02_image237
是第i層的權重矩陣。
下面是根據一些實現的從神經元TN(N, 1)建構T神經網路的示例演算法。演算法 MLP2TNN1 1.對於每一層i=1、…、S a.將演算法Layer2TNN1 應用於由Li-1 個輸入、Li 個輸出神經元和權重矩陣Ui 組成的SLPi (Li-1 , Li ),建構PTNNi 作為結果。 2.藉由將所有PTNNi 堆疊成一個神經網來建構MTNN;TNNi-1 的輸出被設定為TNNi 的輸入。
對於相同的輸入向量,MTNN的輸出等於MLP(K, S, L1 ,… LS )的輸出,因為每對SLPi (Li-1 , Li )和PTNNi 的輸出是相等的。 對具有 NI 個輸入和 NO 個輸出的目標神經元的示例 T 變換
在一些實現中,本文描述的示例變換由神經網路變換模組226執行,該神經網路變換模組226基於數學公式230、基本函數塊232、模擬部件模型234和/或模擬設計約束236來變換訓練後的神經網路220以獲得變換的神經網路228。具有幾個輸出的單層感知器的示例變換
假設單層感知器SLP(K, L)包括K個輸入和L個輸出神經元,每個神經元執行一個啟動函數F。進一步假設
Figure 02_image119
是SLP(K,L)的權重矩陣。根據一些實現,下面的演算法從神經元TN(NI , NO )建構T神經網路。演算法 Layer2TNNX 1.藉由使用演算法Layer2TNN1 (見上面的描述)從SLP(K,L)建構PTNN。PTNN具有由L組K個輸入組成的輸入層。 2.從L個組構成
Figure 02_image239
個子集。每個子集包含不多於NO 個組的輸入向量副本。 3.用輸入向量的一個副本代替每個子集中的組。 4.藉由從每個輸入神經元建立NO 個輸出連接來由每個子集中的重建連接建構PTNNX。
根據一些實現,借助於關於PTNN的相同公式(如上所述)來計算PTNNX的輸出,因此輸出是相等的。
圖11A至圖11C示出了根據一些實現的上述演算法對於具有2個輸出神經元和TN(NI , 2)的單層神經網路(NN)的應用1100。圖11A示出了根據一些實現的示例源或輸入NN。K個輸入被輸入到屬於層1104的兩個神經元1和2。圖11B示出了根據一些實現在演算法的第一步驟之後建構的PTNN。PTNN由實現與圖11A所示的NN的輸出神經元1和神經元2對應的子網的兩個部分組成。在圖11B中,輸入1102被複製並輸入到輸入神經元的兩個集合1106-2和1106-4。輸入神經元的每個集合連接到具有神經元的兩個集合1108-2和1108-4的後一層神經元,神經元的每個集合包括m1 個神經元。輸入層後面是恆等變換塊1110-2和1110-4,每個塊包含具有恆等權重矩陣的一個或更多個層。恆等變換塊1110-2的輸出連接到輸出神經元1112(對應於圖11A中的輸出神經元1),且恆等變換塊1110-4的輸出連接到輸出神經元1114(對應於圖11A中的輸出神經元1)。圖11C示出了演算法的最後步驟的應用,包括用一個向量1116代替輸入向量(1106-2和1106-4)的兩個副本(步驟3),以及藉由從每個輸入神經元建立兩個輸出連結來在第一層1118中重建連接:一個連結連接到與輸出1相關的子網,而另一個連結連接到輸出2的子網。多層感知器的示例變換
假設多層感知器(MLP)包括K個輸入、S個層和在第i層中的Li 個計算神經元,被表示為MLP(K, S, L1 ,… LS )。假設
Figure 02_image237
是第i層的權重矩陣。根據一些實現,下面的示例演算法從神經元TN(NI , NO )建構T神經網路。演算法 MLP2TNNX 1.對於每一層i=1、…、S a.將演算法Layer2TNNX 應用於由Li-1 個輸入、Li 個輸出神經元和權重矩陣Ui 組成的SLPi (Li-1 , Li )。PTNNi 被建構作為結果。 2.藉由將所有PTNNXi 堆疊成一個神經網來建構MTNNX ; a.TNNXi-1 的輸出被設定為TNNXi 的輸入。
根據一些實現,對於相同的輸入向量,MTNNX的輸出等於MLP(K, S, L1 ,… LS )的輸出,因為每對SLPi (Li-1 , Li )和PTNNXi 的輸出是相等的。迴圈神經網路的示例變換
迴圈神經網路(RNN)包含允許保存資訊的反向連接。圖12示出了根據一些實現的示例RNN 1200。該示例示出了執行啟動函數A的塊1204,其接受輸入Xt 1206並執行啟動函數A,並輸出值ht 1202。根據一些實現,從塊1204到它自身的反向箭頭指示反向連接。等效網路在右側示出,一直到啟動塊接收到輸入Xt 1206時的時間點。在時間0處,網路接受輸入Xt 1208並執行啟動函數A 1204,並輸出值ho 1210;在時間1處,網路接受輸入X1 1212和網路在時間0處的輸出,並執行啟動函數A 1204,並輸出值h1 1214;在時間2處,網路接受輸入X2 1216和網路在時間1處的輸出,並且執行啟動函數A 1204,並且輸出值h1 1218。根據一些實現,該過程持續到時間t,此時網路接受輸入Xt 1206和網路在時間t-1處的輸出,並且執行啟動函數A 1204,並且輸出值ht 1202。
在RNN中的資料處理借助於下面的公式被執行:
Figure 02_image241
在上面的方程中,xt 是目前輸入向量,以及ht-1 是RNN的關於前一輸入向量xt-1 的輸出。該運算式由幾個操作組成:對於兩個完全連接層
Figure 02_image243
Figure 02_image245
的線性組合的計算、逐元素相加以及非線性函數計算(f)。第一個和第三個操作可以藉由基於梯形的網路實現(一個完全連接層藉由基於金字塔的網路實現,基於金字塔的網路為梯形網路的特例)。第二個操作是可以在任何結構的網路中實現的常見操作。
在一些實現中,RNN的沒有迴圈連接的層借助於上面所述的Layer2TNNX 演算法來變換。在變換完成之後,在相關神經元之間添加迴圈連結。一些實現使用下面參考圖13B描述的延遲塊。LSTM 網路的示例變換
長短期記憶(LSTM)神經網路是RNN的特例。LSTM網路的操作由下面的方程表示: Ÿ
Figure 02_image247
; Ÿ
Figure 02_image249
; Ÿ
Figure 02_image251
; Ÿ
Figure 02_image253
; Ÿ
Figure 02_image255
;以及 Ÿ
Figure 02_image257
在上面的方程中,
Figure 02_image259
Figure 02_image261
Figure 02_image263
Figure 02_image265
是可訓練的權重矩陣,
Figure 02_image267
Figure 02_image269
Figure 02_image271
Figure 02_image273
是可訓練的偏差,xt 是目前輸入向量,ht-1 是針對前一輸入向量xt-1 計算的LSTM的內部狀態,以及ot 是目前輸入向量的輸出。在方程中,下標t 表示時間實例t ,以及下標t -1表示時間實例t - 1。
圖13A是根據一些實現的LSTM神經元1300的框圖。sigmoid(σ)塊1318處理輸入
Figure 02_image275
1330和
Figure 02_image277
1332,並產生輸出
Figure 02_image279
。第二sigmoid(σ)塊1320處理輸入
Figure 02_image275
1330和
Figure 02_image277
1332,並產生輸出
Figure 02_image281
1338。雙曲正切(tanh)塊1322處理輸入
Figure 02_image275
1330和
Figure 02_image277
1332,並產生輸出
Figure 02_image283
1340。第三sigmoid(σ)塊1328處理輸入
Figure 02_image275
1330和
Figure 02_image277
1332,並產生輸出
Figure 02_image285
1342。乘法器塊1304處理
Figure 02_image279
和求和塊1306(來自前一時間實例)的輸出
Figure 02_image287
1302以產生輸出,其又連同將輸出
Figure 02_image281
1338和
Figure 02_image283
1340相乘的第二乘法器塊1314的輸出一起由求和塊1306求和,以產生輸出
Figure 02_image289
1310。輸出
Figure 02_image289
1310被輸入到產生輸出的另一tanh塊1312,該輸出藉由第三乘法器塊1316與輸出
Figure 02_image285
1342相乘以產生輸出
Figure 02_image291
1334。
存在在這些運算式中利用的幾種類型的操作:(i)幾個完全連接層的線性組合的計算,(ii)元素方式相加,(iii)Hadamard乘積,以及(iv)非線性函數計算(例如,sigmoid(σ)和雙曲正切(tanh))。一些實現藉由基於梯形的網路來實現(i)和(iv)操作(一個完全連接層藉由基於金字塔的網路來實現,基於金字塔的網路為梯形網路的特例)。一些實現對(ii)和(iii)操作使用各種結構的網路,(ii)和(iii)操作是常見的操作。
根據一些實現,藉由使用上面所述的Layer2TNNX 演算法來變換沒有迴圈連接的LSTM層中的層。根據一些實現,在變換完成之後,在相關神經元之間添加迴圈連結。
圖13B示出了根據一些實現的延遲塊。如上所述,在用於LSTM操作的方程中的一些運算式依賴於保存、恢復和/或調用來自前一時間實例的輸出。例如,乘法器塊1304處理求和塊1306(來自前一時間實例)的輸出
Figure 02_image287
1302。圖13B示出了根據一些實現的延遲塊的兩個例子。示例1350包括在左側的延遲塊1354,其在時間t處接受輸入xt 1352,並在dt的延遲之後輸出該輸入,其由輸出xt-dt 1356指示。根據一些實現,在右側的示例1360示出了級聯(或複數)延遲塊1364和1366在2個單位的時間延遲之後輸出輸入xt 1362,其由輸出xt-2dt 1368指示。
圖13C是根據一些實現的LSTM神經元的神經元圖式。該圖式包括加權求和器節點(有時被稱為加法器塊)1372、1374、1376、1378和1396、乘法器塊1384、1392和1394以及延遲塊1380和1382。輸入
Figure 02_image277
1332連接到加法器塊1372、1374、1376和1378。對於前一輸入
Figure 02_image293
的輸出
Figure 02_image295
1330也被輸入到加法器塊1372、1374、1376和1378。加法器塊1372產生輸出,其被輸入到產生輸出
Figure 02_image297
1336的sigmoid塊1394-2。類似地,加法器塊1374產生輸出,其被輸入到產生輸出
Figure 02_image281
1338的sigmoid塊1386。類似地,加法器塊1376產生輸出,其被輸入到產生輸出
Figure 02_image283
1340的雙曲正切塊1388。類似地,加法器塊1378產生輸出,其被輸入到產生輸出
Figure 02_image285
1342的sigmoid塊1390。乘法器塊1392使用輸出
Figure 02_image281
1338、
Figure 02_image297
1336和加法器塊1396的來自前一時間實例的輸出
Figure 02_image287
1302來產生第一輸出。乘法器塊1394使用輸出
Figure 02_image281
1338和
Figure 02_image283
1340來產生第二輸出。加法器塊1396將第一輸出和第二輸出相加以產生輸出
Figure 02_image289
1310。輸出
Figure 02_image289
1310被輸入到產生輸出的雙曲正切塊1398,該輸出連同sigmoid塊1390的輸出
Figure 02_image285
1342一起被輸入到乘法器塊1384以產生輸出
Figure 02_image291
1334。延遲塊1382用於調用(例如,保存和恢復)加法器塊1396來自前一時間實例的輸出。類似地,延遲塊1380用於調用或保存和恢復乘法器塊1384的對於前一輸入
Figure 02_image299
的輸出。根據一些實現,上面參考圖13B描述了延遲塊的例子。GRU 網路的示例變換
門控迴圈單元(GRU)神經網路是RNN的特例。RNN的操作由下面的運算式表示: Ÿ
Figure 02_image301
; Ÿ
Figure 02_image303
; Ÿ
Figure 02_image305
; Ÿ
Figure 02_image307
在上述方程中,xt 是目前輸入向量,並且ht-1 是針對前一輸入向量xt-1 計算的輸出。
圖14A是根據一些實現的GRN神經元的框圖。sigmoid(σ)塊1418處理輸入
Figure 02_image275
1402和
Figure 02_image277
1422,並產生輸出
Figure 02_image309
。第二sigmoid(σ)塊1420處理輸入
Figure 02_image275
1402和
Figure 02_image277
1422,並產生輸出
Figure 02_image311
1428。乘法器塊1412使輸出
Figure 02_image309
和輸入
Figure 02_image275
1402相乘以產生輸出,其(連同輸入
Figure 02_image277
1422一起)被輸入到雙曲正切(tanh)塊1424以產生輸出
Figure 02_image313
1430。第二乘法器塊1414使輸出
Figure 02_image313
1430和輸出
Figure 02_image311
1428相乘以產生第一輸出。塊1410計算1–輸出
Figure 02_image311
1428以產生被輸入到第三乘法器塊1404的輸出,第三乘法器塊1404使該輸出和輸入
Figure 02_image295
1402相乘以產生乘積,該乘積連同第一輸出(來自乘法器塊1414)一起被輸入到加法器塊1406以產生輸出
Figure 02_image291
1408。輸入
Figure 02_image295
1402是GRU神經元的來自前一時間間隔輸出
Figure 02_image315
的輸出。
圖14B是根據一些實現的GRU神經元1440的神經元圖式。該圖式包括加權求和器節點(有時被稱為加法器塊)1404、1406、1410、1406和1434、乘法器塊1404、1412和1414以及延遲塊1432。輸入
Figure 02_image277
1422連接到加法器塊1404、1410和1406。前一輸入
Figure 02_image293
的輸出
Figure 02_image295
1402也被輸入到加法器塊1404和1406以及乘法器塊1404和1412。加法器塊1404產生輸出,其被輸入到產生輸出
Figure 02_image317
1428的sigmoid塊1418。類似地,加法器塊1406產生被輸入到sigmoid塊1420的輸出,sigmoid塊1420產生被輸入到乘法器塊1412的輸出
Figure 02_image319
1426。乘法器塊1412的輸出被輸入到加法器塊1410,加法器塊1410的輸出被輸入到產生輸出1430的雙曲正切塊1424。輸出1430以及sigmoid塊1418的輸出被輸入到乘法器塊1414。sigmoid塊1418的輸出被輸入到乘法器塊1404,乘法器塊1404使該輸出與來自延遲塊1432的輸入相乘以產生第一輸出。乘法器塊產生第二輸出。加法器塊1434將第一輸出和第二輸出相加以產生輸出
Figure 02_image291
1408。延遲塊1432用於調用(例如保存和恢復)加法器塊1434的來自前一時間實例的輸出。根據一些實現,上面參考圖13B描述了延遲塊的例子。
根據一些實現,在GRU中使用的操作類型與針對(上述的)LSTM網路的操作類型相同,因此GRU按照上面針對LSTM描述的原理(例如,使用Layer2TNNX演算法)被變換成基於梯形的網路。卷積神經網路的示例變換
一般來說,卷積神經網路(CNN)包括幾個基本操作,例如卷積(影像的(或內部圖的)片段與內核的線性組合的集合)、啟動函數和池化(如最大值、平均值等)。在CNN中的每個計算神經元遵循在MLP中的神經元的一般處理方案:一些輸入與啟動函數的隨後計算的線性組合。因此,根據一些實現,使用上面針對多層感知器描述的MLP2TNNX 演算法來變換CNN。
Conv1D是在時間座標上執行的卷積。圖15A和圖15B是根據一些實現的單個Conv1D濾波器的變型的神經元圖式。在圖15A中,加權求和器節點1502(有時被稱為加法器塊,被標記為“+”)具有5個輸入,因此它對應於具有5的內核的1D卷積。輸入是時間
Figure 02_image029
Figure 02_image277
1504、時間
Figure 02_image315
Figure 02_image293
1514(藉由將輸入輸入到延遲塊1506來獲得)、時間
Figure 02_image321
Figure 02_image323
1516(藉由將延遲塊1506的輸出輸入到另一個延遲塊1508來獲得)、時間
Figure 02_image325
Figure 02_image327
1518(藉由將延遲塊1508的輸出輸入到另一個延遲塊1510來獲得)以及時間
Figure 02_image329
Figure 02_image331
1520(藉由將延遲塊1510的輸出輸入到另一個延遲塊1512來獲得)。對於大內核,利用不同的頻率延遲塊有時是有益的,使得一些塊產生更大的延遲。一些實現用幾個小延遲塊替換一個大延遲塊,如圖15B所示。除了圖15A中的延遲塊之外,該示例還使用產生時間
Figure 02_image325
Figure 02_image327
1518的delay_3塊1524以及產生時間
Figure 02_image333
Figure 02_image335
1522的另一個延遲塊1526。根據一些實現,delay_3 1524塊是複數延遲塊的例子。根據一些實現,該操作不減少塊的總數,但是它可以減少對輸入訊號執行的後續操作的總數,並且減少誤差的累積。
在一些實現中,卷積層由梯形狀神經元表示,而完全連接層由電阻器的交叉開關表示。一些實現使用交叉開關,並計算交叉開關的電阻矩陣。具有複數輸出的單層感知器的示例近似演算法
在一些實現中,本文描述的示例變換由神經網路變換模組226執行,該神經網路變換模組226基於數學公式230、基本函數塊232、模擬部件模型234和/或模擬設計約束236來變換訓練後的神經網路220和/或模擬神經網路最佳化模組246以獲得變換的神經網路228。
假設單層感知器SLP(K, L)包括K個輸入和L個輸出神經元,每個輸出神經元執行一個啟動函數F。進一步假設
Figure 02_image119
是SLP(K, L)的權重矩陣。下面是根據一些實現使用近似演算法Layer2TNNX_Approx 從神經元TN(NI , NO )建構T神經網路的示例。該演算法在第一階段應用(上述的)Layer2TNN1 演算法,以便減少神經元和連接的數量,並且隨後應用Layer2TNNX 以處理減小的大小的輸入。使用由Layer2TNN1 演算法建構的層的共用權重來計算所得到的神經網的輸出。這些層的數量由值p(演算法的參數)確定。如果p等於0,則僅應用Layer2TNNX 演算法,並且變換是等效的。如果p > 0,則p個層具有共用權重,並且變換是近似的。演算法 Layer2TNNX_Approx 1.用來自集合{0,1,…,
Figure 02_image337
} 的值設定參數p。 2.如果p>0,將對於神經元TN(NI , 1)的演算法Layer2TNN1 應用於網SLP(K, L),並建構所得到的子網(PNN)的前p個層。網PNN在輸出層中具有
Figure 02_image339
個神經元。 3.應用對於神經元TN(NI , NO )的演算法Layer2TNNX 並建構具有
Figure 02_image341
個輸入和L個輸出的神經子網TNN。 4.設定PNN網的權重。根據規則
Figure 02_image131
,設定PNN的第一層的每個神經元i的權重。在這裡,C是不等於零的任何常數,
Figure 02_image135
,並且對於除
Figure 02_image137
之外的這個神經元的所有權重j
Figure 02_image343
。PNN網的所有其他權重被設定為1。
Figure 02_image345
表示對於在第一層中的神經元i和神經元
Figure 02_image347
之間的連接的第一層的權重(如由上標(1)表示的)。 5.設定TNN子網的權重。根據方程
Figure 02_image141
設定TNN的第一層(考慮整個網,這是第(p+1)層)的每個神經元i的權重。TNN的所有其他權重被設定為1。 6.將TNN子網的最後一層的所有神經元的啟動函數設定為F。所有其他神經元的啟動函數是恆等的。
圖16示出了根據一些實現的所得到的神經網的示例架構1600。該示例包括連接到TNN 1606的PNN 1602。PNN 1602包括
Figure 02_image041
個輸入的一層並產生
Figure 02_image129
個輸出,其作為輸入1612連接到TNN 1606。根據一些實現,TNN 1606產生L個輸出1610。具有幾個輸出的多層感知器的近似演算法
假設多層感知器(MLP)包括K個輸入、S個層和在第i層中的Li 個計算神經元,被表示為MLP( K, S, L1 ,…LS )。進一步假設
Figure 02_image237
是第i層的權重矩陣。根據一些實現,下面的示例演算法從神經元TN(NI , NO )建構T神經網路。演算法 MLP2TNNX_Approx 1.對於每一層i=1、…、S: a.將(上述的)演算法Layer2TNNX_Approx 應用於由Li-1 個輸入、Li 個輸出神經元和權重矩陣Ui 組成的SLPi (Li-1 , Li )。如果i=1,則L0 =K。假設這個步驟建構PTNNXi 作為結果。 2.藉由將所有PTNNXi 堆疊成一個神經網來建構MTNNX(多層感知器),其中TNNXi-1 的輸出被設定為TNNXi 的輸入。變換的神經網路的壓縮的示例方法
在一些實現中,本文描述的示例變換由神經網路變換模組226執行,該神經網路變換模組226基於數學公式230、基本函數塊232、模擬部件模型234和/或模擬設計約束236來變換訓練後的神經網路220和/或模擬神經網路最佳化模組246以獲得變換的神經網路228。
本節描述了根據一些實現的變換的神經網路的壓縮的示例方法。一些實現壓縮模擬金字塔狀神經網路,以便最小化在晶片上實現模擬網路所必需的運算放大器和電阻器的數量。在一些實現中,模擬神經網路的壓縮的方法是修剪,類似於在軟體神經網路中的修剪。然而,在金字塔狀模擬網路的壓縮中有一些特殊性,金字塔狀模擬網路在硬體中可實現為IC模擬晶片。因為元件(例如運算放大器和電阻器)的數量限定在基於模擬的神經網路中的權重,最大限度地減小放置在晶片上的運算放大器和電阻器的數量是至關重要的。這也將説明最小化晶片的功率消耗。現代神經網路(例如卷積神經網路)可以被壓縮5-200倍而沒有網路的準確度的顯著損失。在現代神經網路中的整個塊常常可以被修剪而沒有準確度的顯著損失。密集神經網路到稀疏連接金字塔或梯形或交叉開關狀神經網路的變換提供了修剪稀疏連接金字塔或梯形狀模擬網路的機會,這些模擬網路然後由在模擬IC晶片中的運算放大器和電阻器表示。在一些實現中,除了傳統的神經網路壓縮技術之外,還應用這樣的技術。在一些實現中,基於輸入神經網路和/或變換的神經網路的特定架構(例如,金字塔相對於梯形相對於交叉開關)來應用壓縮技術。
例如,因為網路借助於模擬元件(例如運算放大器)來實現,一些實現確定當標準訓練資料集被呈現時流經運算放大器的電流,並從而確定整個晶片是否需要結點(運算放大器)。一些實現分析晶片的SPICE模型,並確定結點和連接,其中沒有電流流動且沒有功率被消耗。一些實現確定藉由模擬IC網路的電流流動,並因而確定結點和連接,其然後將被修剪。此外,如果連接的權重太高,一些實現也移除連接,和/或如果連接的權重太低,則將電阻器替換為直接連接器。如果通向該結點的所有連接具有低於預定臨界值的權重(例如,接近於0),則一些實現修剪該結點,刪除在其中運算放大器總是在輸出處提供零的連接,和/或如果放大器在沒有放大的情況下給出線性函數,則將運算放大器改變為線性結。
一些實現應用特定於金字塔、梯形或交叉開關類型的神經網路的壓縮技術。一些實現產生具有更大量的輸入(與沒有壓縮的情況相比)的金字塔或梯形,因而最小化在金字塔或梯形中的層的數量。一些實現藉由最大化每個神經元的輸出的數量來產生更緊湊的梯形網路。 最佳電阻器集合( resistor set )的示例產生
在一些實現中,本文描述的示例計算由權重矩陣計算或權重量化模組238執行(例如,使用電阻計算模組240),權重矩陣計算或權重量化模組238計算變換的神經網路的連接的權重272和/或權重272的對應電阻值242。
根據一些實現,本節描述了為訓練後的神經網路產生最佳電阻器集合的示例。提供了一種示例方法,其用於將連接權重轉換成電阻器標稱量,用於在具有可能更少的電阻器標稱量和可能更高的被允許的電阻器變化的微晶片上實現神經網路(有時被稱為NN模型)。
假設測試集“Test”包括輸入向量(x和y座標)的大約10,000個值,其中兩個座標在範圍[0;1]中以0.01的步長改變。假設對給定輸入X的網路NN輸出由Out = NN(X)給出。進一步假設輸入值類別如下被找到:Class_nn(X) = NN(X) > 0.61 ? 1 : 0。
下文將數學網路模型M與示意網路模型S進行比較。示意網路模型包括rv的可能電阻器變化,並處理“Test”集,每次產生輸出值S(Test) = Out_s的不同向量。輸出誤差由下面的方程定義:
Figure 02_image349
分類誤差由下面的方程定義:
Figure 02_image351
一些實現將期望的分類誤差設定為不大於1%。示例誤差分析
圖17A示出了根據一些實現的示例圖表1700,其示出在M網路上的輸出誤差和分類誤差之間的相關性。在圖17A中,x軸對應於分類間隔1704,以及y軸對應於總誤差1702(見上面的描述)。該曲線圖示出了對於輸出訊號的不同分類間隔的總誤差(在模型M的輸出和真實資料之間的差異)。對於這個例子,根據該圖表,最佳分類間隔1706是0.610。
假設另一個網路O產生相對於相關的M個輸出值具有恆定偏移的輸出值,則在O和M之間將有分類誤差。為了將分類誤差保持為低於1%,該偏移應該在[-0.045, 0.040]的範圍內。因此,S的可能的輸出誤差為45 mV。
藉由分析在整個網路上的權重/偏差相對誤差與輸出誤差之間的相關性來確定可能的權重誤差。根據一些實現,藉由在“Test”集上對20個隨機修改的網路取平均來獲得分別在圖17B和圖17C中示出的圖表1710和1720。在這些圖表中,x軸表示絕對權重誤差1712,以及y軸表示絕對輸出誤差1714。如從圖表中可以看到,45mV(y=0.045)的輸出誤差限制對於每個權重允許有0.01相對誤差值或0.01絕對誤差值(x的值)。神經網路的最大權重係數(weight modulus)(在所有權重當中的權重的絕對值的最大值)為1.94。用於選擇電阻器集合的示例過程
電阻器集合連同從該集合選擇的{R+,R-}對一起具有在具有某個程度的電阻器誤差r_err的所需的權重範圍[-wlim; wlim] 內的值函數。在一些實現中,電阻器集合的值函數被計算如下: Ÿ   可能的權重選項陣列連同依賴於電阻器誤差的權重平均誤差一起被計算; Ÿ   陣列中的權重選項被限制到所需的權重範圍[-wlim; wlim]; Ÿ   在權重誤差方面比鄰近值更差的值被移除; Ÿ   在鄰近值之間的距離的陣列被計算;以及 Ÿ   值函數是距離陣列的平方平均數或最大值的組成。
一些實現藉由基於學習速率值連續地調整在電阻器集合中的每個電阻器值來反覆運算地搜索最佳電阻器集合。在一些實現中,學習速率隨著時間變化。在一些實現中,初始電阻器集合被選擇為均勻的(例如[1;1;…;1]),其中最小和最大電阻器值被選擇在兩個數量級範圍內(例如[1;100]或[0.1;10])。一些實現選擇R+ = R-。在一些實現中,反覆運算過程收斂到局部最小值。在一種情況中,該過程導致下面的集合:[0.17, 1.036, 0.238, 0.21, 0.362, 1.473, 0.858, 0.69, 5.138, 1.215, 2.083, 0.275]。對於具有rmin = 0.1(最小電阻)、rmax = 10(最大電阻)和r_err = 0.001(電阻中的估計誤差)的權重範圍[-2; 2],這是12個電阻器的局部最佳電阻器集合。一些實現不使用整個可用範圍[rmin; rmax],用於找到好的局部最佳值。僅可用範圍的一部分(例如,在這種情況下是[0.17; 5.13])被使用。電阻器集合的值是相對的,而不是絕對的。在這種情況下,30的相對值範圍對於電阻器集合是足夠的。
在一個實例中,對於上面提到的參數,獲得長度20的下面的電阻器集合:[0.300, 0.461, 0.519, 0.566, 0.648, 0.655, 0.689, 0.996, 1.006, 1.048, 1.186, 1.222, 1.261, 1.435, 1.488, 1.524, 1.584, 1.763, 1.896, 2.02]。在這個示例中,值1.763也是R- = R+值。該集合隨後用於產生NN的權重,產生對應的模型S。假定相對電阻器誤差接近於零,模型S的均方輸出誤差為11 mV,因此20個電阻器的集合超過所需。在輸入資料的集合上的最大誤差被計算為33 mV。在一個實例中,具有256個電位準的S、DAC和ADC轉換器作為單獨的模型被分析,且結果顯示14 mV均方輸出誤差和49 mV最大輸出誤差。在NN上的45mV的輸出誤差對應於1%的相對識別誤差。45mV輸出誤差值也對應於0.01相對權重誤差或0.01絕對權重誤差,這是可接受的。在NN中的最大權重係數為1.94。以這種方式,基於期望的權重範圍[-wlim; wlim]、電阻器誤差(相對的)和可能的電阻器範圍使用反覆運算過程來確定最佳(或接近最佳)電阻器集合。
一般,非常寬的電阻器集合不是非常有益的(例如,在1-1/5數量級之間就足夠了),除非不同的精度在不同的層或權重譜部分內是需要的。例如,假設權重在[0, 1]的範圍內,但大多數權重在[0, 0.001]的範圍內,則更好的精度在該範圍內是需要的。在上面描述的示例中,假定相對電阻器誤差接近於零,該20個電阻器的集合對以給定精度量化NN網路是綽綽有餘的。在一個實例中,在電阻器的集合[0.300, 0.461, 0.519, 0.566, 0.648, 0.655, 0.689, 0.996, 1.006, 1.048, 1.186, 1.222, 1.261, 1.435, 1.488, 1.524, 1.584, 1.763, 1.896, 2.02](注意,值是相對的)上,獲得11 mV的平均S輸出誤差。 用於電阻器值的量化的示例過程
在一些實現中,本文描述的示例計算由權重矩陣計算或權重量化模組238(例如,使用電阻計算模組240)執行,權重矩陣計算或權重量化模組238計算變換的神經網路的連接的權重272和/或權重272的對應電阻值242。
本節描述了根據一些實現的用於量化與訓練後的神經網路的權重對應的電阻器值的示例過程。示例過程實質上簡化了使用模擬硬體部件來製造晶片用於實現神經網路的過程。如上所述,一些實現使用電阻器來表示神經網路權重和/或表示模擬神經元的運算放大器的偏差。這裡描述的示例過程特別降低了在為晶片光刻製造電阻器集合時的複雜性。使用量化電阻器值的過程,只有電阻的選定值對晶片製造是需要的。以這種方式,該示例過程簡化了晶片製造的整個過程,並且在需要時實現自動電阻器蝕刻光罩製造。
圖18提供了根據一些實現的用於電阻器量化的神經元模型1800的示例方案。在一些實現中,電路基於運算放大器1824(例如,AD824系列精密放大器),其從負權重固定電阻器(R1-1804、R2-1806、Rb-偏差1816、Rn-1818和R-1812)和正權重固定電阻器(R1+1808、R2+1810、Rb+偏差1820、Rn+1822和R+1814)接收輸入訊號。正權重電壓被饋送到運算放大器1824的直接輸入端,以及負權重電壓被饋送到運算放大器1824的反向輸入端。運算放大器1824用於允許來自每個電阻器的加權輸出的加權求和運算,其中負權重從正權重被減去。運算放大器1824還將訊號放大到電路操作所必需的程度。在一些實現中,運算放大器1824還在它的輸出級聯處完成輸出訊號的RELU變換。
下面的方程基於電阻器值確定權重: Ÿ   在神經元的輸出處的電壓由下面的方差確定:
Figure 02_image353
Ÿ   每個連接的權重由下面的方程確定:
Figure 02_image355
根據一些實現,下面的示例最佳化過程量化每個電阻的值,並最小化神經網路輸出的誤差: 1.獲得連接權重和偏差的集合{w1, …, wn, b}。 2.獲得可能的最小和最大電阻器值{Rmin, Rmax}。這些參數根據用於製造的技術來確定。一些實現使用TaN或碲高電阻率材料。在一些實現中,電阻器的最小值由可以光刻地形成的最小平方(minimum square)來確定。最大值由對電阻器(例如由TaN或碲製成的電阻器)可允許的長度確定以調整到期望面積,該期望面積又由在蝕刻光罩上的運算放大器正方形的面積確定。在一些實現中,電阻器的陣列的面積小於一個運算放大器的面積,因為電阻器的陣列是堆疊的(例如,一個在BEOL中,另一個在FEOL中)。 3.假設每個電阻器具有r_err相對公差值 4.目標是基於{w1, …, wn, b}值來選擇在所定義的[Rmin; Rmax]內的給定長度N的電阻器值的集合{R1, …, Rn}。下面提供了示例搜索演算法以基於特定的最佳化準則來找到次優{R1, …, Rn}集合。 5.另一種演算法為網路選擇{Rn, Rp, Rni, Rpi},假設{R1…..Rn}被確定。示例 {R1, ……, Rn} 搜索演算法
一些實現使用反覆運算方法用於電阻器集合搜索。一些實現在所定義的範圍內選擇初始(隨機或均勻)集合{R1, …, Rn}。一些實現選擇電阻器集合的元素之一作為R- = R+值。一些實現藉由目前學習速率值來改變在該集合內的每個電阻器,直到這樣的改變產生“更好”的集合(根據值函數)為止。對該集合中的所有電阻器並使用幾個不同的學習速率值重複該過程,直到沒有進一步的改進是可能的為止。
一些實現將電阻器集合的值函式定義如下: Ÿ   根據(上述的)公式計算可能的權重選項:
Figure 02_image357
Ÿ   基於由IC製造技術確定的潛在電阻器相對誤差r_err來估計每個權重選項的預期誤差值。 Ÿ   權重選項清單被限定或限制到[-wlim; wlim]範圍 Ÿ   移除一些值,其具有的預期誤差超過高臨界值(例如,10倍於r_err) Ÿ   值函數被計算為在兩個鄰近權重選項之間的距離的平方平均數(square mean)。所以,當權重選項被均勻地分佈在[-wlim; wlim]範圍內時,值函數是最小的
假設模型的所需權重範圍[-wlim; wlim]被設定為[-5;5],且其他參數包括N = 20,r_err = 0.1%,rmin = 100 KΩ,rmax = 5 MΩ。在這裡,rmin和rmax分別是電阻的最小值和最大值。
在一個實例中,對於上面提到的參數,獲得長度20的下面的電阻器集合:[0.300, 0.461, 0.519, 0.566, 0.648, 0.655, 0.689, 0.996, 1.006, 1.048, 1.186, 1.222, 1.261, 1.435, 1.488, 1.524, 1.584, 1.763, 1.896, 2.02] MΩ. R- = R+ = 1.763 MΩ。示例 {Rn, Rp, Rni, Rpi} 搜索演算法
一些實現使用反覆運算演算法(例如上述演算法)來確定Rn和Rp。一些實現設定Rp = Rn(確定Rn和Rp的任務是對稱的,這兩個量通常收斂到一個相似值)。然後,對於每個權重
Figure 02_image007
,一些實現選擇一對電阻{Rni, Rpi},其最小化所估計的權重誤差值:
Figure 02_image359
一些實現隨後使用{Rni; Rpi; Rn; Rp}值集合來實現神經網路電路圖。在一個實例中,根據一些實現,電路圖產生在10,000個均勻地分佈的輸入資料樣本的集合上的11 mV的均方輸出誤差(有時被稱為上面所述的S均方輸出誤差)和33 mV的最大誤差。在一個實例中,S模型連同數模轉換器(DAC)、模數轉換器(ADC)一起被分析,其中256個電位準(level)作為一個單獨的模型。根據一些實現,該模型在同一資料集上產生14 mV均方輸出誤差和49 mV最大輸出誤差。DAC和ADC具有電位準,因為它們將模擬值轉換成位值,反之亦然。數字值的8位元等於256個電位準。對於8位ADC,精度無法好於1/256。
一些實現在連接的權重已知時基於基爾霍夫電路定律和運算放大器的基本原理(下面參考圖19A描述的),使用Mathcad或任何其他類似軟體來計算模擬IC晶片的電阻值。在一些實現中,運算放大器既用於訊號的放大又用於根據啟動函數(例如ReLU、sigmoid、正切雙曲或線性數學方程)的變換。
一些實現在光刻層中製造電阻器,其中電阻器被形成為在SiO2矩陣中的圓柱形孔,並且電阻值由孔的直徑決定。一些實現使用非晶的TaN、TiN、CrN或碲作為高電阻材料來製造高密度電阻器陣列。Ta與N、Ti與N和Cr與N的一些比率提供了用於製造超高密度、高電阻率元件陣列的高電阻。例如,對於TaN、Ta5N6、Ta3N5,N與Ta的比率越高,電阻率就越高。一些實現使用Ti2N、TiN、CrN或Cr5N,並相應地確定比率。TaN沉積是在晶片製造中使用的標準程式,且在所有主要的鑄造廠中是可用的。 示例運算放大器
圖19A示出了根據一些實現的在CMOS(CMOS OpAmp)1900上製造的運算放大器的示意圖。在圖19A中,In+(正輸入端或pos)1404、In-(負輸入端或neg)1406和Vdd-(相對於GND的正電源電壓)1402是接點(contact)輸入端。接點Vss-(負電源電壓或GND)由標籤1408指示。電路輸出為Out 1410(接點輸出端)。CMOS電晶體的參數由以下幾何尺寸的比率確定:L(柵極溝道的長度)與W(柵極溝道的寬度),其例子在圖19B所示的表中示出(下面描述的)。電流鏡在NMOS電晶體M11 1944、M12 1946和電阻器R1 1921(具有12 kΩ的示例電阻值)上被製造,並提供差分對(M1 1926和M3 1930)的補償電流。差分放大器級(差分對)在NMOS電晶體M1 1926和M3 1930被製造。電晶體M1、M3進行放大,而PMOS電晶體M2 1928和M4 1932起有源電流負載的作用。訊號從M3電晶體輸入到輸出PMOS電晶體M7 1936的柵極。訊號從電晶體M1輸入到PMOS電晶體M5(反相器)1934和在NMOS電晶體M6 1934上的有源負載。流經電晶體M5 1934的電流被設置用於NMOS電晶體M8 1938。電晶體M7 1936在具有用於正半波訊號的公共源的情況下被包括在該方案中。M8電晶體1938由用於負半波訊號的公共源電路賦能。為了增加運算放大器的總負載能力,M7 1936和M8 1938的輸出包括在M9 1940和M10 1942電晶體上的反相器。電容器C1 1912和C2 1914阻塞。
圖19B示出了根據一些實現的圖19A所示的示例電路的描述的表1948。參數的值作為例子被提供,並且各種其他配置是可能的。電晶體M1、M3、M6、M8、M10、M11和M12是具有顯式基底連接的N溝道MOSFET電晶體。其他電晶體M2、M4、M5、M7和M9是具有顯式基底連接的P溝道MOSFET電晶體。該表示出了針對每個電晶體(列3)提供的示例的快門長度比(shutter ratio of length)(L,列1)和快門寬度比(shutter ratio of width)(W,列2)。
在一些實現中,運算放大器(例如上面所述的示例)被用作用於神經網路的硬體實現的積體電路的基本元件。在一些實現中,運算放大器具有40平方微米的尺寸,且根據45 nm節點標準被製造。
在一些實現中,啟動函數(例如ReLU、雙曲正切和sigmoid函數)由具有修改的輸出級聯的運算放大器表示。例如,根據一些實現,使用對應的眾所周知的模擬電路圖來將RELU、sigmoid或正切函數實現為運算放大器(有時被稱為OpAmp)的輸出級聯。
在上面和下面描述的示例中,在一些實現中,運算放大器由允許加權求和運算的反相器、電流鏡、兩象限或四象限乘法器和/或其他模擬函數塊代替。 LSTM 塊的示例方案
圖20A至圖20E示出了根據一些實現的LSTM神經元20000的示意圖。神經元的輸入是Vin1 20002和Vin2 20004,其為在範圍[-0.1,0.1]內的值。LSTM神經元還輸入計算神經元在某時間的結果的值H(t-1)(前一值;見上面對LST神經元的描述)20006和神經元在某時間的狀態向量C(t-1)(前一值)20008。神經元LSTM(在圖20B中示出)的輸出包括計算神經元在目前時間的結果H(t) 20118和神經元在目前時間的狀態向量C(t) 20120。該方案包括: Ÿ   在圖20A中示出的運算放大器U1 20094和U2 20100上裝配的“神經元O”。電阻器R_Wo1 20018、R_Wo2 20016、R_Wo3 20012、R_Wo4 20010、R_Uop1 20014、R_Uom1 20020、Rr 20068和Rf2 20066設定單個“神經元O”的連接的權重。“神經元O”使用sigmoid(模組X1 20078,圖20B)作為非線性函數; Ÿ   在運算放大器U3 20098(在圖20C中示出)和U4 20100(在圖20A中示出)上裝配的“神經元C”。電阻器R_Wc1 20030、R_Wc2 20028、R_Wc3 20024、R_Wc4 20022、R_Ucp1 20026、R_Ucm1 20032、Rr 20122和Rf2 20120設定“神經元C”的連接的權重。“神經元C”使用雙曲正切(模組X2 22080,圖2B)作為非線性函數; Ÿ   在圖20C中示出的運算放大器U5 20102和U6 20104上裝配的“神經元I”。電阻器R_Wi1 20042、R_Wi2 20040、R_Wi3 20036和R_Wi4 20034、R_Uip1 20038、R_Uim1 20044、Rr 20124和Rf2 20126設定“神經元I”的連接的權重。“神經元I”使用sigmoid(模組X3 20082)作為非線性函數;以及 Ÿ   如在圖20D中示出的運算放大器U7 20106和U8 20108上裝配的“神經元f”。電阻器R_Wf1 20054、R_Wf2 20052、R_Wf3 20048、R_Wf4 20046、R_Ufp1 20050、R_Ufm1 20056、Rr 20128和Rf2 20130設定“神經元f”的連接的權重。“神經元f”使用sigmoid(模組X4 20084)作為非線性函數。
模組X2 20080(圖20B)和X3 20082(圖20C)的輸出被輸入到X5乘法器模組20086(圖20B)。模組X4 20084(圖20D)和緩衝器U9 20010的輸出被輸入到乘法器模組X6 20088。模組X5 20086和X6 20088的輸出被輸入到加法器(U10 20112)。分壓器(divider)10被裝配在電阻器R1 20070、R2 20072和R3 20074上。隨著因數(divisor)訊號的釋放,獲得雙曲正切(模組X7 20090,圖20B)的非線性函數。輸出C(t) 20120(LSTM神經元的目前狀態向量)利用在U11 20114輸出訊號上施加的緩衝反相器(buffer-inverter)獲得。模組X1 20078和X7 20090的輸出被輸入到乘法器(模組X8 20092),乘法器的輸出被輸入到在U12 20116上除以10(by 10)的緩衝分壓器。從U12 20116的輸出訊號獲得計算LSTM神經元在目前時間的結果H(t) 20118。
圖20E示出了根據一些實現的圖20A-20D所示的電路的不同可配置參數(例如電壓)的示例值。根據一些實現,Vdd 20058被設定為+1.5V,Vss 20064被設定為–1.5V,Vdd1 20060被設定為+1.8V,Vss1 20062被設定為-1.0V,以及GND 20118被設定為GND。
圖20F示出了根據一些實現的圖20A至圖20D所示的示例電路的描述的表20132。參數的值作為例子被提供,並且各種其他配置是可能的。電晶體U1-U12是CMOS OpAmp(上面參考圖19A和圖19B所述的)。X1、X3和X4是執行Sigmoid函數的模組。X2和X7是執行雙曲正切函數的模組。X5和X8是執行乘法函數的模組。示例電阻器額定值包括:Rw = 10 kΩ和Rr = 1.25 kΩ。其他電阻器值相對於Rw被表示。例如,Rf2 = 12乘Rw,R_Wo4 = 5乘Rw,R_Wo3 = 8乘Rw,R_Uop1 = 2.6乘Rw,R_Wo2 = 12乘Rw,R_W1 = w乘Rw,以及R_Uom1 = 2.3乘Rw,R_wc4 = 4乘Rw,R_Wc3 = 5.45乘Rw,R_Ucp1 = 3乘Rw,R_Wc2= 12乘Rw,R_Wc1= 2.72乘Rw,R_Ucm1= 3.7乘Rw,R_Wi4 = 4.8乘Rw,W_Wi3 = 6乘Rw,W_Uip1 = 2乘Rw,R_Wi2 = 12乘Rw,R_Wi1 = 3乘Rw,R_Uim1 = 2.3乘Rw,R_Wf4 = 2.2乘Rw,R_Wf3 = 5乘Rw,R_Wfp = 4乘Rw,R_Wf2= 2乘Rw,R_Wf1= 5.7乘Rw,以及Rfm1 = 4.2乘Rw。 乘法器塊的示例方案
圖21A至圖21I示出了根據一些實現的乘法器塊21000的示意圖。神經元21000基於四象限乘法器的原理,四象限乘法器使用運算放大器U1 21040和U2 21042(在圖21B中示出)、U3 21044(在圖21H示出)、U4 21046和U5 21048(在圖21I中示出)以及CMOS電晶體M1 21052至M68 21182被裝配。乘法器的輸入包括V_one 21020 21006和V_two 21008(在圖21B中示出)以及接點Vdd(正電源電壓,例如相對於GND為+1.5V)21004和接點Vss(負電源電壓,例如相對於GND為-1.5V)21002。在該方案中,使用額外的電源電壓:接點輸入Vdd1(正電源電壓,例如相對於GND為+1.8V)、接點Vss1(負電源電壓,例如相對於GND為-1.0V)。電路計算的結果在mult_out(輸出引腳)21170(在圖21I中示出)處被輸出。
參考圖21B,來自V_one 21006的輸入訊號(V_one)連接到反相器,單個增益在U1 21040上產生,U1 21040的輸出形成訊號negA 21006,其與訊號V_one振幅相等但符號相反。類似地,來自輸入V_two 21008的訊號(V_two)連接到反相器,單個增益在U2 21042上產生,U2 21042的輸出形成訊號negB 21012,其與訊號V_two振幅相等但符號相反。來自可能組合(V_one、V_two、negA、negB)的訊號的成對式組合被輸出到在CMOS電晶體上的對應混頻器。
回來參考圖21A,V_two 21008和negA 21010被輸入到裝配在NMOS電晶體M19 21086、M20 21088、M21 21090、M22 21092和PMOS電晶體M23 21094和M24 21096上的多工器。該多工器的輸出被輸入到NMOS電晶體M6 21060(圖21D)。
對訊號出現的類似變換包括: Ÿ   negB 21012和V_one 21020被輸入到在NMOS電晶體M11 21070、M12 2072、M13 2074、M14 21076和PMOS電晶體M15 2078以及M16 21080上裝配的多工器。該多工器的輸出被輸入到M5 21058 NMOS電晶體(在圖21D中示出); Ÿ   V_one 21020和negB 21012被輸入到在PMOS電晶體M18 21084、M48 21144、M49 21146和M50 21148以及NMOS電晶體M17 21082、M47 21142上裝配的多工器。該多工器的輸出被輸入到M9 PMOS電晶體21066(在圖21D中示出); Ÿ   negA 21010和V_two 21008被輸入到在PMOS電晶體M52 21152、M54 21156、M55 21158和M56 21160以及NMOS電晶體M51 21150和M53 21154上裝配的多工器。該多工器的輸出被輸入到M2 NMOS電晶體21054(在圖21C中示出); Ÿ   negB 21012和V_one 21020被輸入到在NMOS電晶體M11 21070、M12 21072、M13 21074和M14 21076以及PMOS電晶體M15 21078和M16 21080上裝配的多工器。該多工器的輸出被輸入到M10 NMOS電晶體21068(在圖21D中示出); Ÿ   negB 21012和negA 21010被輸入到在NMOS電晶體M35 21118、M36 21120、M37 21122和M38 21124以及PMOS電晶體M39 21126和M40 21128上裝配的多工器。該多工器的輸出被輸入到M27 PMOS電晶體21102(在圖21H中示出); Ÿ   V_two 21008和V_one 21020被輸入到在NMOS電晶體M41 21130、M42 21132、M43 21134和M44 21136以及PMOS電晶體M45 21138和M46 21140上裝配的多工器。該多工器的輸出被輸入到M30 NMOS電晶體21108(在圖21H中示出); Ÿ   V_one 21020和V_two 21008被輸入到在PMOS電晶體M58 21162、M60 21166、M61 21168和M62 21170以及NMOS電晶體M57 21160和M59 21164上裝配的多工器。該多工器的輸出被輸入到M34 PMOS電晶體21116(在圖21H中示出);以及 Ÿ   negA 21010和negB 21012被輸入到在PMOS電晶體M64 21174、M66 21178、M67 21180和M68 21182以及NMOS電晶體M63 21172和M65 21176上裝配的多工器。該多工器的輸出被輸入到PMOS電晶體M33 21114(在圖21H中示出)。
電流鏡(電晶體M1 21052、M2 21053、M3 21054和M4 21056)為在左側所示的由電晶體M5 21058、M6 21060、M7 21062、M8 21064、M9 21066和M10 21068製成的四象限乘法器電路的部分供電。電流鏡(在電晶體M25 21098、M26 21100、M27 21102和M28 21104上)為由電晶體M29 21106、M30 21108、M31 21110、M32 21112、M33 21114和M34 21116製成的四象限乘法器的右部分的電源供電。乘法結果取自與電晶體M3 21054並聯的被賦能的電阻器Ro 21022和與電晶體M28 21104並聯的被賦能的電阻器Ro 21188,被提供給在U3 21044上的加法器。U3 21044的輸出被提供給具有7,1的增益的加法器,該加法器被裝配在U5 21048上,U5 21048的第二個輸入由電阻R1 21024和R2 21026以及緩衝器U4 21046所設定的參考電壓補償,如圖21I所示。乘法結果從U5 21048的輸出經由Mult_Out輸出21170被輸出。
圖21J示出了根據一些實現的圖21A至圖21I所示的示意圖的描述的表21198。U1–U5是CMOS OpAmp。具有顯式基底連接的N溝道MOSFET電晶體包括電晶體M1、M2、M25和M26(具有快門長度比(L) = 2.4u和快門寬度比(W) = 1.26u)、電晶體M5、M6、M29和M30(具有L = 0.36u和W = 7.2u)、電晶體M7、M8、M31和M32(具有L = 0.36u和W = 199.98u)、電晶體M11-M14、M19-M22、M35-M38和M41-M44(具有L = 0.36u和W= 0.4u)以及電晶體M17、M47、M51、M53、M57、M59、M43和M64(具有L = 0.36u和W = 0.72u)。具有顯式基底連接的P溝道MOSFET電晶體包括電晶體M3、M4、M27和M28(具有快門長度比(L) = 2.4u和快門寬度比(W) = 1.26u)、電晶體M9、M10、M33和M34(具有L = 0.36u和W = 7.2u)、電晶體M18、M48、M49、M50、M52、M54、M55、M56、M58、M60、M61、M62、M64、M66、M67和M68(具有L = 0.36u和W = 0.8u)以及電晶體M15、M16、M23、M24、M39、M40、M45和M46(具有L = 0.36u和W = 0.72u)。根據一些實現,示例電阻器額定值包括Ro = 1 kΩ、Rin = 1 kΩ、Rf = 1 kΩ、Rc4 = 2 kΩ和Rc5 = 2 kΩ。 S igmoid 塊的示例方案
圖22A示出了根據一些實現的sigmoid塊2200的示意圖。使用運算放大器U1 2250、U2 2252、U3 2254、U4 2256、U5 2258、U6 2260、U7 2262和U8 2264以及NMOS電晶體M1 2266、M2 2268和M3 2270來實現sigmoid函數(例如,上面參考圖20A-20F描述的模組X1 20078、X3 20082和X4 20084)。接點sigm_in 2206是模組輸入,接點輸入Vdd1 2222是相對於GND 2208的正電源電壓+1.8V,以及接點Vss1 2204是相對於GND的負電源電壓-1.0V。在該方案中,U4 2256具有-0.2332V的參考電壓源,以及該電壓由分壓器R10 2230和R11 2232設定。U5 2258具有0.4V的參考電壓源,以及該電壓由分壓器R12 2234和R13 2236設定。U6 2260具有0.32687 V的參考電壓源,該電壓由分壓器R14 2238和R15 2240設定。U7 2262具有-0.5V的參考電壓源,該電壓由分壓器R16 2242和R17 2244設定。U8 2264具有-0.33 V的參考電壓源,該電壓由分壓器R18 2246和R19 2248設定。
藉由將在電晶體M1 2266和M2 2268上裝配的差分模組上的對應參考電壓相加來形成sigmoid函數。利用有源調節運算放大器U3 2254和NMOS電晶體M3 2270裝配差分級的電流鏡。來自差分級的訊號用NMOS電晶體M2移除,並且電阻器R5 2220被輸入到加法器U2 2252。輸出訊號sigm_out 2210從U2加法器2252的輸出被移除。
圖22B示出了根據一些實現的圖22A所示的示意圖的描述的表2278。U1-U8是CMOS OpAmp。根據一些實現,M1、M2和M3是具有快門長度比(L) = 0.18u和快門寬度比(W) = 0.9u的N溝道MOSFET電晶體。 雙曲正切塊的示例方案
圖23A示出了根據一些實現的雙曲正切函數塊2300的示意圖。使用運算放大器(U1 2312、U2 2314、U3 2316、U4 2318、U5 2320、U6 2322、U7 2328和U8 2330)和NMOS電晶體(M1 2332、M2 2334和M3 2336)來實現雙曲正切函數(例如,上面參考圖20A至圖20F描述的模組X2 20080和X7 20090)。在該方案中,接點tanh_in 2306是模組輸入,接點輸入Vdd1 2304是相對於GND 2308的正電源電壓+1.8V,接點Vss1 2302是相對於GND的負電源電壓-1.0V。此外,在該方案中,U4 2318具有-0.1V的參考電壓源,該電壓由分壓器R10 2356和R11 2358設定。U5 2320具有1.2V的參考電壓源,該電壓由分壓器R12 2360和R13 2362設定。U6 2322具有0.32687 V的參考電壓源,該電壓由分壓器R14 2364和R15 2366設定。U7 2328具有-0.5V的參考電壓源,該電壓由分壓器R16 2368和R17 2370設定。U8 2330具有-0.33V的參考電壓源,該電壓由分壓器R18 2372和R19 2374設定。藉由將在電晶體M1 2332和M2 2334上製造的差分模組上的對應參考電壓相加來形成雙曲正切函數。用有源調節運算放大器U3 2316和NMOS電晶體M3 2336獲得差分級的電流鏡。利用NMOS電晶體M2 2334和電阻器R5 2346,訊號從差分級移除並被輸入到加法器U2 2314。輸出訊號tanh_out 2310從U2加法器2314的輸出被移除。
圖23B示出了根據一些實現的圖23A所示的示意圖的描述的表2382。U1-U8是CMOS OpAmp,以及M1、M2和M3是具有快門長度比(L) = 0.18u和快門寬度比(W) = 0.9u的N溝道MOSFET電晶體。 單神經元 OP1 CMOS OpAmp 的示例方案
圖24A至圖24C示出了根據一些實現的單神經元OP1 CMOS OpAmp 2400的示意圖。該示例是根據本文描述的OP1方案在CMOS上製成的運算放大器上的單神經元的變型。在該方案中,接點V1 2410和V2 2408是單神經元的輸入,接點偏差2406是相對於GND的電壓+0.4V,接點輸入Vdd 2402是相對於GND的正電源電壓+5.0V,接點Vss 2404是GND,以及接點Out 2474是單神經元的輸出。CMOS電晶體的參數由幾何尺寸的比率確定:L(柵極溝道的長度)和W(柵極溝道的寬度)。該Op Amp具有兩個電流鏡。在NMOS電晶體M3 2420、M6 2426和M13 2440上的電流鏡提供在NMOS電晶體M2 2418和M5 2424上的差分對的補償電流。在PMOS電晶體M7 2428、M8 2430和M15 2444中的電流鏡提供在PMOS電晶體M9 2432和M10 2434上的差分對的補償電流。在第一差分放大器級中,NMOS電晶體M2 2418和M5 2424進行放大,而PMOS電晶體M1 2416和M4 2422起有源電流負載的作用。訊號從M5 2424電晶體輸出到電晶體M13 2440的PMOS柵極。訊號從M2 2418電晶體輸出到在PMOS電晶體M9 2432和M10 2434上的第二差分放大器級的右輸入端。NMOS電晶體M11 2436和M12 2438對M9 2432和M10 2434電晶體起有源電流負載的作用。M17 2448電晶體根據該方案在具有用於訊號的正半波的公共源的情況下被導通。M18 2450電晶體根據該方案在具有用於訊號的負半波的公共源的情況下被導通。為了增加Op Amp的總負載能力,在M17 2448和M18 2450電晶體上的反相器在M13 2440和M14 2442電晶體的輸出端處被賦能。
圖24D示出了根據一些實現的圖24A至圖24C所示的示意圖的描述的表2476。單神經元(具有兩個輸入端和一個輸出端)的連接的權重由電阻器比率設定:w1 = (Rp / R1+) – (Rn / R1 -);w2 = (Rp / R2+) – (Rn / R2 -);w 偏差 = (Rp / Rbias+) – (Rn / Rbias -)。歸一化電阻器(Rnorm-和Rnorm+)對獲得精確相等是必要的:(Rn /R1 -) + (Rn / R2 -) + (Rn / Rbias -) + (Rn / Rnorm -) = (Rp /R1 +) + (Rp / R2 +) + (Rp /Rbias+) + (Rp / Rnorm +)。具有顯式基底連接的N溝道MOSFET電晶體包括具有L = 0.36u和W = 3.6u的電晶體M2和M5、具有L = 0.36u和W = 1.8u的電晶體M3、M6、M11、M12、M14和M16以及具有L = 0.36u和W = 18u的電晶體M18。具有顯式基底連接的P溝道MOSFET電晶體包括具有L = 0.36u和W = 3.96u的電晶體M1、M4、M7、M8、M13和M15、具有L = 0.36u和W = 11.88u的電晶體M9和M10以及具有L = 0.36u和W = 39.6u的電晶體M17。 單神經元 OP3 CMOS OpAmp 的示例方案
圖25A至圖25D示出了根據一些實現的根據OP3方案在CMOS上製造的運算放大器上的單神經元25000的變型的示意圖。根據一些實現,單神經元由三個簡單運算放大器(OpAmp)組成。單位神經元加法器在具有雙極電源的兩個Opamp上被執行,以及RELU啟動函數在具有單極電源並具有=10的增益的OpAmp上被執行。電晶體M1 25028–M16 25058用於神經元的負連接的求和。電晶體M17 25060–M32 25090用於使神經元的正連接相加。RELU啟動函數在電晶體M33 25092–M46 25118上被執行。在該方案中,接點V1 25008和V2 25010是單神經元的輸入,接點偏差25002是相對於GND的電壓+0.4V,接點輸入Vdd 25004是相對於GND的正電源電壓+2.5V,接點Vss 25006是負電源電壓-2.5V,以及接點Out 25134是單神經元的輸出。在單神經元中使用的CMOS電晶體的參數由幾何尺寸的比率確定:L(柵極溝道的長度)和W(柵極溝道的寬度)。考慮在單神經元中包括的最簡單的OpAmp的操作。每個op amp具有兩個電流鏡。在NMOS電晶體M3 25032(M19 25064、M35 25096)、M6 25038(M22 25070、M38 25102)和M16 25058(M32 25090、M48 25122)上的電流鏡提供在NMOS電晶體M2 25030(M18 25062、M34 25094)和M5 25036(M21 25068、M35 25096)上的差分對的補償電流。在PMOS電晶體M7 25040(M23 25072、M39 25104)、M8 25042(M24 25074、M40 25106)和M15 25056(M31 2588)中的電流鏡提供在PMOS電晶體M9 25044(M25 25076、M41 25108)和M10 25046(M26 25078、M42 25110)上的差分對的補償電流。在第一差分放大器級中,NMOS電晶體M2 25030(M18 25062、M34 25094)和M5 25036(M21 25068、M37 25100)進行放大,以及PMOS電晶體M1 25028(M17 25060、M33 25092)和M4 25034(M20 25066、M36 25098)起有源電流負載的作用。訊號從電晶體M5 25036(M21 25068、M37 25100)輸入到電晶體M13 25052(M29 25084、M45 25116)的PMOS柵極。訊號從電晶體M2 25030(M18 25062、M34 25094)輸入到在PMOS電晶體M9 25044(M25 25076,M41 25108)和M10 25046(M26 25078、M42 25110)上的第二差分放大器級的右輸入端。NMOS電晶體M11 25048(M27 25080、M43 25112)和M12 25048(M28 25080,M44 25114)對電晶體M9 25044(M25 25076、M41 25108)和M10 25046(M26 25078、M42 25110)起有源電流負載的作用。電晶體M13 25052(M29 25082、M45 25116)在具有用於正半波訊號的公共源的情況下被包括在該方案中。電晶體M14 25054(M30 25084、M46 25118)在具有用於訊號負半波的公共源的情況下根據該方案被導通。
單神經元(具有兩個輸入端和一個輸出端)的連接的權重由電阻器比率設定:w1 = (R 回饋 / R1+) – (R 回饋 / R1 -);w2 = (R 回饋 / R2+) – (R 回饋 / R2 -);wbias = (R 回饋 / Rbias+) – (R 回饋 / Rbias-);w1 = (R p*K amp / R1+) – (R n*K amp / R1 -);w2 = (R p*K amp / R2+) – (R n*K amp / R2-);wbias = (R p*K amp / Rbias+) – (R n*K amp / Rbias-),其中K amp = R1ReLU / R2ReLU。R回饋=100k,僅用於計算w1、w2、w偏差。根據一些實現,示例值包括:R回饋=100k,Rn = Rp = Rcom = 10k,K amp ReLU = 1 + 90k / 10k = 10,w1 = (10k * 10 / 22.1k) – (10k * 10 / 21.5k) = -0.126276,w2 = (10k * 10 / 75k) – (10k * 10 / 71.5k) = - 0.065268,wbias = (10k * 10 / 71.5k) –(10k * 10 / 78.7k) = 0.127953。
神經元的負鏈加法器(M1–M17)的輸入藉由Rcom電阻器從神經元的正鏈加法器(M17–M32)被接收。
圖25E示出了根據一些實現的圖25A至圖25D所示的示意圖的描述的表25136。具有顯式基底連接的N溝道MOSFET電晶體包括具有L = 0.36u和W = 3.6u的電晶體M2、M5、M18、M21、M34和M37、具有L = 0.36u 和W = 1.8u的電晶體M3、M6、M11、M12、M14、M16、M19、M22、M27、M28、M32、M38、M35、M38、M43、M44、M46和M48。具有顯式基底連接的P溝道MOSFET電晶體包括具有L = 0.36u和W = 3.96u的電晶體M1、M4、M7、M8、M13、M15、M17、M20、M23、M24、M29、M31、M33、M36、M39、M40、M45和M47以及具有L = 0.36u和W = 11.88u的電晶體M9、M10、M25、M26、M41和M42。 用於訓練後的神經網路的模擬硬體實現的示例方法
圖27A至圖27J示出了根據一些實現的用於神經網路的硬體實現(2702)的方法2700的流程圖。該方法在計算設備200處(例如,使用神經網路變換模組226)被執行(2704),該計算設備200具有一個或更多個處理器202和儲存被配置用於由一個或更多個處理器202執行的一個或更多個程式的記憶體214。該方法包括獲得(2706)訓練後的神經網路(例如網路220)的神經網路拓撲(例如拓撲224)和權重(例如權重222)。在一些實現中,使用軟體仿真來訓練(2708)訓練後的神經網路以產生權重。
該方法還包括將神經網路拓撲變換(2710)成模擬部件的等效模擬網路。接下來參考圖27C,在一些實現中,神經網路拓撲包括(2724)一層或更多層神經元。每層神經元基於相應數學函數計算相應輸出。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效模擬網路包括對於一層或更多層神經元的每一層執行(2726)一系列步驟。該一系列步驟包括基於相應數學函數針對相應層識別(2728)一個或更多個函數塊。每個函數塊具有相應示意實現,其具有符合相應數學函數的輸出的塊輸出。在一些實現中,識別一個或更多個函數塊包括基於相應層的類型來選擇(2730)一個或更多個函數塊。例如,一個層可以由神經元組成,且該層的輸出是它的輸入的線性疊加。如果層的輸出是線性疊加,則選擇一個或更多個函數塊基於層類型的這個識別或類似的模式識別。一些實現確定輸出的數量是否大於1,然後使用梯形或者金字塔變換。
接下來參考圖27D,在一些實現中,一個或更多個函數塊包括從由下列項組成的組中選擇(2734)的一個或更多個基本函數塊(例如,基本函數塊232):(i)具有塊輸出
Figure 02_image001
的加權求和塊(2736)。
Figure 02_image003
是修正線性單元(ReLU)啟動函數或類似的啟動函數(例如,具有臨界值的ReLU),
Figure 02_image005
表示第i個輸入,
Figure 02_image007
表示對應於第i個輸入的權重,以及
Figure 02_image009
表示偏差值,並且
Figure 02_image011
求和運算子;(ii)具有塊輸出
Figure 02_image013
的訊號乘法器塊(2738)。
Figure 02_image005
表示第i個輸入,以及
Figure 02_image015
表示第j個輸入,並且
Figure 02_image017
是預定係數;(iii)具有塊輸出
Figure 02_image019
的sigmoid啟動塊(2740)。
Figure 02_image021
表示輸入,以及A和B是sigmoid啟動塊的預定系數值(例如,A = -0.1;B = 11.3);(iv)具有塊輸出
Figure 02_image023
的雙曲正切啟動塊(2742),
Figure 02_image025
表示輸入,以及A和B為預定系數值(例如,A = 0.1,B = -10.1);以及具有塊輸出
Figure 02_image027
的訊號延遲塊(2744)。
Figure 02_image029
表示目前時間段,
Figure 02_image361
表示前一時間段
Figure 02_image363
的訊號延遲塊的輸出,以及
Figure 02_image035
是延遲值。
現在回來參考圖27C,該一系列步驟還包括基於排列一個或更多個函數塊來產生(2732)模擬神經元的相應多層網路。每個模擬神經元實現一個或更多個函數塊的相應函數,並且多層網路的第一層的每個模擬神經元連接到多層網路的第二層的一個或更多個模擬神經元。
現在回來參考圖27A,根據一些實現,對於一些網路,例如GRU和LSTM,將神經網路拓撲變換(2710)成模擬部件的等效模擬網路需要更複雜的處理。接下來參考圖27E,假設神經網路拓撲包括(2746)一層或更多層神經元。進一步假設每層神經元基於相應數學函數計算相應輸出。在這樣的情況下,將神經網路拓撲變換成模擬部件的等效模擬網路包括:(i)將神經網路拓撲的第一層分解(2748)成複數子層,包括分解對應於第一層的數學函數以獲得一個或更多個中間數學函數。每個子層實現一個中間數學函數。在一些實現中,對應於第一層的數學函數包括一個或更多個權重,並且分解數學函數包括調整(2750)一個或更多個權重,使得組合一個或更多個中間函數產生數學函數;以及(ii)對於神經網路拓撲的第一層的每個子層執行(2752)一系列步驟。該一系列步驟包括:基於相應的中間數學函數針對相應子層選擇(2754)一個或更多個子函數塊;以及基於排列一個或更多個子函數塊來產生(2756)模擬神經元的相應多層模擬子網路。每個模擬神經元實現一個或更多個子函數塊的相應函數,並且多層模擬子網路的第一層的每個模擬神經元連接到多層模擬子網路的第二層的一個或更多個模擬神經元。
接下來參考圖27H,假設神經網路拓撲包括(2768)一個或更多個GRU或LSTM神經元。在那種情況下,變換神經網路拓撲包括針對一個或更多個GRU或LSTM神經元的每個迴圈連接產生(2770)一個或更多個訊號延遲塊。在一些實現中,外部迴圈計時器以恆定時間段(例如1、5或10個時間步長)啟動一個或更多個訊號延遲塊。一些實現在一個訊號上使用複數延遲塊用於產生附加時間移位。在一些實現中,一個或更多個訊號延遲塊的啟動頻率與網路輸入訊號頻率同步。在一些實現中,一個或更多個訊號延遲塊在與神經網路拓撲的預定輸入訊號頻率匹配的頻率處被啟動(2772)。在一些實現中,該預定輸入訊號頻率可以取決於應用,例如人類活動識別(HAR)或PPG。例如,對於視訊處理的預定輸入訊號頻率是30-60Hz,對於HAR和PPG是100Hz左右,對於聲音處理是16KHz,以及對於電池管理是1-3Hz左右。一些實現啟動不同的訊號延遲塊,其在不同的頻率處啟動。
接下來參考圖27I,假設神經網路拓撲包括(2774)執行無限啟動函數的一層或更多層神經元。在一些實現中,在這樣的情況下,變換神經網路拓撲包括應用(2776)選自由下列項組成的組的一個或更多個變換:用有限啟動代替(2778)無限啟動函數(例如,用臨界值ReLU代替ReLU);以及調整(2780)等效模擬網路的連接或權重,使得對於預定的一個或更多個輸入,在訓練後的神經網路和等效模擬網路之間的輸出的差異被最小化。
現在回來參考圖27A,該方法還包括基於訓練後的神經網路的權重來計算(2712)等效模擬網路的權重矩陣。權重矩陣的每個元素表示在等效模擬網路的模擬部件之間的相應連接。
該方法還包括基於權重矩陣產生(2714)用於實現等效模擬網路的示意模型,包括選擇模擬部件的部件值。接下來參考圖27B,在一些實現中,產生示意模型包括針對權重矩陣產生(2716)電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重,並表示電阻值。在一些實現中,該方法包括針對再訓練後的網路僅重新產生電阻器的電阻矩陣。在一些實現中,該方法還包括獲得(2718)訓練後的神經網路的新權重,基於新權重來計算(2720)等效模擬網路的新權重矩陣,以及針對新權重矩陣產生(2722)新電阻矩陣。
接下來參考圖27J,在一些實現中,方法還包括基於電阻矩陣來產生(2782)用於製造實現模擬部件的等效模擬網路的電路的一個或更多個蝕刻光罩(例如,使用罩幕產生模組248來產生罩幕250和/或252)。在一些實現中,該方法包括針對經再訓練後的網路僅重新產生電阻器的罩幕(例如罩幕250)。在一些實現中,該方法還包括:(i)獲得(2784)訓練後的神經網路的新權重;(ii)基於新權重來計算(2786)等效模擬網路的新權重矩陣;(iii)針對新權重矩陣產生(2788)新電阻矩陣;以及(iv)基於新電阻矩陣來產生(2790)用於製造實現模擬部件的等效模擬網路的電路的新蝕刻光罩。
現在回來參考圖27G,模擬部件包括(2762)複數運算放大器和複數電阻器。每個運算放大器表示等效模擬網路的一個模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接。一些實現包括其他模擬部件,例如四象限乘法器、sigmoid函數電路和雙曲正切函數電路、延遲線、求和器和/或分壓器。在一些實現中,選擇(2764)模擬部件的部件值包括執行(2766)梯度下降方法和/或其他權重量化方法以識別複數電阻器的可能電阻值。
現在回來參考圖27F,在一些實現中,該方法還包括在輸出層中數位地實現某些啟動函數(例如Softmax)。在一些實現中,該方法還包括針對神經網路拓撲的一個或更多個輸出層產生(2758)數位部件的等效數位網路,以及將等效模擬網路的一個或更多個層的輸出連接(2760)到數位部件的等效數位網路。 用於神經網路的受約束模擬硬體實現的示例方法
圖28A至圖28S示出了根據一些實現的用於根據硬體設計約束的神經網路的硬體實現(28002)的方法28000的流程圖。該方法在計算設備200處(例如,使用神經網路變換模組226)被執行(28004),該計算設備200具有一個或更多個處理器202和儲存被配置用於由一個或更多個處理器202執行的一個或更多個程式的記憶體214。該方法包括獲得(28006)訓練後的神經網路(例如網路220)的神經網路拓撲(例如拓撲224)和權重(例如權重222)。
該方法還包括基於模擬積體電路(IC)設計約束(例如約束236)來計算(28008)一個或更多個連接約束。例如,IC設計約束可以設定電流限制(例如1A),且神經元電路圖和運算放大器(OpAmp)設計可以將OpAmp輸出電流設定在範圍[0-10mA]內,因此這將輸出神經元連接限制到100。這意味著神經元具有100個輸出,其允許電流藉由100個連接流到下一層,但在運算放大器的輸出端處的電流被限制到10 mA,因此一些實現使用最多100個輸出(0.1 mA乘100 = 10 mA)。在沒有這個約束的情況下,一些實現使用電流中繼器(current repeater)將輸出的數量增加到例如多於100。
該方法還包括將神經網路拓撲(例如,使用神經網路變換模組226)變換(28010)成滿足一個或更多個連接約束的模擬部件的等效稀疏連接網路。
在一些實現中,變換神經網路拓撲包括根據一個或更多個連接約束來匯出(28012)可能的輸入連接度
Figure 02_image037
和輸出連接度
Figure 02_image039
接下來參考圖28B,在一些實現中,神經網路拓撲包括(28018)具有
Figure 02_image041
個輸入(在前一層中的神經元)和
Figure 02_image043
個輸出(在目前層中的神經元)以及權重矩陣
Figure 02_image045
的至少一個密集連接層,並且變換(28020)至少一個密集連接層包括建構(28022)具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出和
Figure 02_image047
個層的等效稀疏連接網路,使得輸入連接度不超過
Figure 02_image037
,以及輸出連接度不超過
Figure 02_image039
接下來參考圖28C,在一些實現中,神經網路拓撲包括(28024)具有
Figure 02_image041
個輸入(在前一層中的神經元)和
Figure 02_image043
個輸出(在目前層中的神經元)以及權重矩陣
Figure 02_image045
的至少一個密集連接層,並且變換(28026)至少一個密集連接層包括:建構(28028)具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出和
Figure 02_image049
個層的等效稀疏連接網路。每個層
Figure 02_image365
由對應的權重矩陣
Figure 02_image051
表示,其中缺少的連接用零表示,使得輸入連接度不超過
Figure 02_image037
,以及輸出連接度不超過
Figure 02_image039
。方程
Figure 02_image053
以預定精度被滿足。預定精度是合理的精度值,其在統計上保證改變的網路輸出與參照網路(referent network)輸出相差不大於被允許的誤差值,並且該誤差值是任務相關的(一般在0.1%和1%之間)。
接下來參考圖28D,在一些實現中,神經網路拓撲包括(28030)具有
Figure 02_image041
個輸入和
Figure 02_image043
個輸出、最大輸入連接度
Figure 02_image055
、最大輸出連接度
Figure 02_image057
以及權重矩陣
Figure 02_image045
的單個稀疏連接層,其中缺少的連接用零表示。在這樣的情況下,變換(28032)單個稀疏連接層包括建構(28034)具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出、
Figure 02_image059
個層的等效稀疏連接網路。每個層
Figure 02_image367
由對應的權重矩陣
Figure 02_image051
表示,其中缺少的連接用零表示,使得輸入連接度不超過
Figure 02_image037
,以及輸出連接度不超過
Figure 02_image039
,並且方程
Figure 02_image053
以預定精度被滿足。
接下來參考圖28E,在一些實現中,神經網路拓撲包括(28036)具有
Figure 02_image041
個輸入(在前一層中的神經元)和
Figure 02_image043
個輸出(在目前層中的神經元)的卷積層(例如深度卷積層或可分離卷積層)。在這樣的情況下,將神經網路拓撲變換(28038)成模擬部件的等效稀疏連接網路包括將卷積層分解(28040)為具有
Figure 02_image041
個輸入、
Figure 02_image043
個輸出、最大輸入連接度
Figure 02_image055
和最大輸出連接度
Figure 02_image057
的單個稀疏連接層,其中
Figure 02_image061
以及
Figure 02_image063
回來參考圖28A,該方法還包括基於訓練後的神經網路的權重來計算(28014)等效稀疏連接網路的權重矩陣。權重矩陣的每個元素表示在等效稀疏連接網路的模擬部件之間的相應連接。
現在參考圖28F,在一些實現中,神經網路拓撲包括(28042)迴圈神經層,並且將神經網路拓撲變換(28044)成模擬部件的等效稀疏連接網路包括將迴圈神經層變換(28046)成具有訊號延遲連接的一個或更多個密集或稀疏連接層。
接下來參考圖28G,在一些實現中,神經網路拓撲包括迴圈神經層(例如長短期記憶(LSTM)層或閘控迴圈單元(GRU)層),以及將神經網路拓撲變換成模擬部件的等效稀疏連接網路包括將迴圈神經層分解成幾個層,其中該層中的至少一個等效於具有
Figure 02_image041
個輸入(在前一層中的神經元)和
Figure 02_image043
個輸出(在目前層中的神經元)和權重矩陣
Figure 02_image045
的密集或稀疏連接層,其中缺少的連接用零表示。
接下來參考圖28H,在一些實現中,該方法包括執行具有一個計算神經元的單層感知器的變換。在一些實現中,神經網路拓撲包括(28054)K 個輸入、權重向量
Figure 02_image065
和具有計算神經元的單層感知器,該計算神經元具有啟動函數F 。在這樣的情況下,將神經網路拓撲變換(28056)成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束來匯出(28058)等效稀疏連接網路的連接度N ;(ii)使用方程
Figure 02_image067
來計算(28060)等效稀疏連接網路的層的數量m ;以及(iii)建構(28062)具有K 個輸入、m 個層和連接度N 的等效稀疏連接網路。等效稀疏連接網路包括在m 個層中的每一層中的相應的一個或更多個模擬神經元。前m -1個層的每個模擬神經元實現恆等變換,以及最後一層的模擬神經元實現單層感知器的計算神經元的啟動函數F 。此外,在這樣的情況下,計算(28064)等效稀疏連接網路的權重矩陣包括藉由基於權重向量U 對方程組求解來計算(28066)等效稀疏連接網路的連接的權重向量W 。方程組包括具有S 個變數的K 個方程,並且S 使用方程
Figure 02_image069
被計算。
接下來參考圖28I,在一些實現中,該方法包括執行具有L 個計算神經元的單層感知器的變換。在一些實現中,神經網路拓撲包括(28068)K 個輸入、具有L 個計算神經元的單層感知器以及包括對於L 個計算神經元中的每個計算神經元的一行權重的權重矩陣V 。在這樣的情況下,將神經網路拓撲變換(28070)成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束匯出(28072)等效稀疏連接網路的連接度N ;(ii)使用方程
Figure 02_image067
來計算(28074)等效稀疏連接網路的層的數量m ;(iii)將單層感知器分解(28076)成L 個單層感知器網路。每個單層感知器網路包括L 個計算神經元中的相應計算神經元;(iv)對於L 個單層感知器網路中的每個單層感知器網路(28078),針對相應單層感知器網路建構(28080)具有K 個輸入、m 個層和連接度N 的相應等效金字塔狀子網路。等效金字塔狀子網路在m 個層中的每一層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,以及最後一層的模擬神經元實現對應於相應單層感知器的相應計算神經元的啟動函數;以及(v)藉由將每個等效金字塔狀子網路連接在一起來建構(28082)等效稀疏連接網路,包括將L 個單層感知器網路的每個等效金字塔狀子網路的輸入連接在一起以形成具有L *K 個輸入的輸入向量。此外,在這樣的情況下,計算(28084)等效稀疏連接網路的權重矩陣包括,對於L 個單層感知器網路中的每個單層感知器網路(28086):(i)設定(28088)權重向量
Figure 02_image071
,權重矩陣V 的第i 行對應於相應計算神經元,相應計算神經元對應於相應單層感知器網路;以及(ii)藉由基於權重向量U 對方程組求解來計算(28090)相應等效金字塔狀子網路的連接的權重向量Wi 。該方程組包括具有S 個變數的K 個方程,並且S 使用方程
Figure 02_image069
被計算。
接下來參考圖28J,在一些實現中,該方法包括對多層感知器執行變換演算法。在一些實現中,神經網路拓撲包括(28092)K 個輸入、具有S 個層的多層感知器,S 個層中的每個層i 包括一組對應的計算神經元Li 和對應的權重矩陣Vi ,權重矩陣Vi 包括Li 個計算神經元中的每個計算神經元的一行權重。在這樣的情況下,將神經網路拓撲變換(28094)成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束為等效稀疏連接網路匯出(28096)連接度N ;(ii)將多層感知器分解(28098)成
Figure 02_image073
個單層感知器網路。每個單層感知器網路包括
Figure 02_image075
個計算神經元中的相應計算神經元。分解多層感知器包括複製由
Figure 02_image075
個計算神經元共用的K 個輸入中的一個或更多個輸入;(iii)對於Q 個單層感知器網路中的每個單層感知器網路(28100):(a)使用方程
Figure 02_image077
計算(28102)相應等效金字塔狀子網路的層的數量mKi, j 是在多層感知器中的相應計算神經元的輸入的數量;以及(b)針對相應單層感知器網路建構(28104)具有Ki, j 個輸入、m 個層和連接度N 的相應等效金字塔狀子網路。等效金字塔狀子網路在m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,以及最後一層的模擬神經元實現對應於相應單層感知器網路的相應計算神經元的啟動函數;以及(iv)藉由將每個等效金字塔狀子網路連接在一起來建構(28106)等效稀疏連接網路,包括將Q 個單層感知器網路的每個等效金字塔狀子網路的輸入連接在一起以形成具有Q *Ki, j 個輸入的輸入向量。在這樣的情況下,計算(28108)等效稀疏連接網路的權重矩陣包括:對於Q 個單層感知器網路中的每個單層感知器網路(28110):(i)設定(28112)權重向量
Figure 02_image079
,權重矩陣V 的第i 行對應於相應計算神經元,相應計算神經元對應於相應單層感知器網路,其中j 是在多層感知器中的相應計算神經元的對應層;以及(ii)藉由基於權重向量U 對方程組求解來計算(28114)相應等效金字塔狀子網路的連接的權重向量Wi 。方程組包括具有S 個變數的Ki, j 個方程,以及S 使用方程
Figure 02_image081
被計算。
接下來參考圖28K,在一些實現中,神經網路拓撲包括(28116)具有K 個輸入、S 個層的卷積神經網路(CNN),S 個層中的每個層i 包括一組對應的計算神經元Li 和對應的權重矩陣Vi ,權重矩陣Vi 包括對於Li 個計算神經元中的每個計算神經元的一行權重。在這樣的情況下,將神經網路拓撲變換(28118)成模擬部件的等效稀疏連接網路包括:(i)根據一個或更多個連接約束為等效稀疏連接網路匯出(28120)連接度N ;(ii)將CNN分解(28122)成
Figure 02_image073
個單層感知器網路。每個單層感知器網路包括
Figure 02_image075
個計算神經元中的相應計算神經元。分解CNN包括複製由
Figure 02_image075
個計算神經元共用的K 個輸入中的一個或更多個輸入;(iii)對於Q 個單層感知器網路中的每個單層感知器網路:(a)使用方程
Figure 02_image077
計算相應等效金字塔狀子網路的層的數量mj 是在CNN中的相應計算神經元的對應層,以及Ki, j 是在CNN中的相應計算神經元的輸入的數量;以及(b)針對相應單層感知器網路建構具有Ki, j 個輸入、m 個層和連接度N 的相應等效金字塔狀子網路。等效金字塔狀子網路在m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,以及最後一層的模擬神經元實現對應於相應單層感知器網路的相應計算神經元的啟動函數;以及(iv)藉由將每個等效金字塔狀子網路連接在一起來建構(28130)等效稀疏連接網路,包括將Q 個單層感知器網路的每個等效金字塔狀子網路的輸入連接在一起以形成具有Q *Ki, j 個輸入的輸入向量。在這樣的情況下,計算(28132)等效稀疏連接網路的權重矩陣包括對於Q 個單層感知器網路中的每個單層感知器網路(28134):(i)設定權重向量
Figure 02_image079
,權重矩陣V 的第i 行對應於相應計算神經元,相應計算神經元對應於相應單層感知器網路,其中j 是在CNN中的相應計算神經元的對應層;以及(ii)藉由基於權重向量U 對方程組求解來計算相應等效金字塔狀子網路的連接的權重向量Wi 。方程組包括具有S 個變數的Ki, j 個方程,以及S 使用方程
Figure 02_image081
被計算。
接下來參考圖28L,在一些實現中,該方法包括將兩個層變換成基於梯形的網路。在一些實現中,神經網路拓撲包括(28140)K 個輸入、具有K 個神經元的層Lp 、具有L 個神經元的層Ln 和權重矩陣
Figure 02_image085
,其中R 是實數的集合,層Lp 的每個神經元連接到層Ln 的每個神經元,以及層Ln 的每個神經元執行啟動函數F ,使得層Ln 的輸出對於輸入
Figure 02_image087
使用方程
Figure 02_image089
被計算。在這樣的情況下,將神經網路拓撲變換(28142)成模擬部件的等效稀疏連接網路包括執行梯形變換,該梯形變換包括:(i)根據一個或更多個連接約束匯出(28144)可能的輸入連接度
Figure 02_image091
和可能的輸出連接度
Figure 02_image093
;以及(ii)根據
Figure 02_image095
的確定,建構(28146)包括具有執行恆等啟動函數的K 個模擬神經元的層LAp 、具有執行恆等啟動函數的
Figure 02_image097
個模擬神經元的層LAh 和具有執行啟動函數FL 個模擬神經元的層LAo 的三層模擬網路,使得在層LAp 中的每個模擬神經元具有NO 個輸出,在層LAh 中的每個模擬神經元具有不多於NI 個輸入和NO 個輸出,以及在層LAo 中的每個模擬神經元具有NI 個輸入。在一些這樣的情況下,計算(28148)等效稀疏連接網路的權重矩陣包括藉由對矩陣方程
Figure 02_image099
求解來產生(2850)稀疏權重矩陣
Figure 02_image101
Figure 02_image103
,該矩陣方程
Figure 02_image099
包括採用
Figure 02_image105
個變數的
Figure 02_image107
個方程,使得層LAo 的總輸出使用方程
Figure 02_image109
被計算。稀疏權重矩陣
Figure 02_image111
表示在層LAp LAh 之間的連接,以及稀疏權重矩陣
Figure 02_image113
表示在層LAh LAo 之間的連接。
接下來參考圖28M,在一些實現中,執行梯形變換還包括:根據
Figure 02_image115
的確定:(i)使層Lp 分裂(28154)以獲得具有K’ 個神經元的子層Lp1 和具有(K - K’ )個神經元的子層Lp2 ,使得
Figure 02_image117
;(ii)對於具有K’ 個神經元的子層Lp1 ,執行(28156)建構和產生步驟;以及(iii)對於具有K - K’ 個神經元的子層Lp2 ,迴圈地執行(28158)分裂、建構和產生步驟。
接下來參考圖28N,該方法包括將多層感知器變換成基於梯形的網路。在一些實現中,神經網路拓撲包括(28160)多層感知器網路。該方法還包括,對於多層感知器網路的每對連續層,反覆運算地執行(28162)梯形變換並計算對於等效稀疏連接網路的權重矩陣。
接下來參考圖28O,該方法包括將迴圈神經網路變換成基於梯形的網路。在一些實現中,神經網路拓撲包括(28164)迴圈神經網路(RNN),其包括(i)對於兩個完全連接層的線性組合的計算,(ii)逐元素相加,以及(iii)非線性函數計算。在這樣的情況下,該方法還包括執行(28166)梯形變換並計算等效稀疏連接網路的權重矩陣,用於(i)兩個完全連接層,和(ii)非線性函數計算。逐元素相加是可以在任何結構的網路中實現的常見操作,其例子在上面被提供。非線性函數計算是獨立於No和Ni限制的關於神經元的操作,且通常在每個神經元上單獨地用“sigmoid”或“tanh”塊被計算。
接下來參考圖28P,神經網路拓撲包括(28168)長短期記憶(LSTM)網路或閘控迴圈單元(GRU)網路,其包括(i)複數完全連接層的線性組合的計算,(ii)逐元素相加,(iii)Hadamard乘積,以及(iv)複數非線性函數計算(sigmoid和雙曲正切運算)。在這樣的情況下,該方法還包括執行(28170)梯形變換並計算等效稀疏連接網路的權重矩陣,用於(i)複數完全連接層,和(ii)複數非線性函數計算。逐元素相加和Hadamard乘積是可以在上面所述的任何結構的網路中實現的常見操作。
接下來參考圖28Q,神經網路拓撲包括(28172)卷積神經網路(CNN),其包括(i)複數部分連接層(例如,複數卷積和池化層的序列;每個池化層被假設為具有大於1的步幅的卷積層)和(ii)一個或更多個完全連接層(該序列在完全連接層中結束)。在這樣的情況下,該方法還包括:(i)藉由插入具有零權重的缺失連接來將複數部分連接層變換(28174)成等效完全連接層;以及對於等效完全連接層和一個或更多個完全連接層的每對連續層,反覆運算地執行(28176)梯形變換並計算等效稀疏連接網路的權重矩陣。
接下來參考圖28R,在一些實現中,神經網路拓撲包括(28178)K 個輸入、L 個輸出神經元和權重矩陣
Figure 02_image119
,其中R 是實數的集合,每個輸出神經元執行啟動函數F 。在這樣的情況下,將神經網路拓撲變換(28180)成模擬部件的等效稀疏連接網路包括執行近似變換,該近似變換包括:(i)根據一個或更多個連接約束匯出(28182)可能的輸入連接度
Figure 02_image091
和可能的輸出連接度
Figure 02_image093
;(ii)從集合
Figure 02_image121
中選擇(28184)參數
Figure 02_image123
;(iii)根據
Figure 02_image125
的確定,建構(28186)形成等效稀疏連接網路的前
Figure 02_image123
個層的金字塔神經網路,使得金字塔神經網路具有在它的輸出層中的
Figure 02_image127
個神經元。金字塔神經網路中的每個神經元執行恆等函數;以及(iv)建構(28188)具有
Figure 02_image129
個輸入和
Figure 02_image043
個輸出的梯形神經網路。梯形神經網路的最後一層中的每個神經元執行啟動函數F ,以及所有其他神經元執行恆等函數。此外,在這樣的情況下,計算(28190)等效稀疏連接網路的權重矩陣包括:(i)產生(28192)金字塔神經網路的權重,包括(i)根據下面的規則設定金字塔神經網路的第一層的每個神經元i的權重:(a)
Figure 02_image131
Figure 02_image133
為非零常數,以及
Figure 02_image135
;以及(b)對於除
Figure 02_image137
之外的神經元的所有權重j
Figure 02_image343
;以及(ii)將金字塔神經網路的所有其他權重設定為1;以及(ii)產生(28194)梯形神經網路的權重,包括(i)根據方程
Figure 02_image141
設定梯形神經網路的第一層(考慮到整個網,這是第(p+1)層)的每個神經元i的權重;以及(ii)將梯形神經網路的其他權重設定為1。
接下來參考圖28S,在一些實現中,神經網路拓撲包括(28196)具有
Figure 02_image041
個輸入、
Figure 02_image143
個層和在第i層中的
Figure 02_image145
個計算神經元以及第i層的權重矩陣
Figure 02_image147
的多層感知器,其中
Figure 02_image149
。在這樣的情況下,將神經網路拓撲變換(28198)成模擬部件的等效稀疏連接網路包括:對於多層感知器的
Figure 02_image143
個層中的每個層
Figure 02_image151
(28200):(i)藉由對由
Figure 02_image153
個輸入、
Figure 02_image155
個輸出神經元和權重矩陣
Figure 02_image157
組成的相應單層感知器執行近似變換來建構(28202)相應金字塔-梯形網路PTNNXj ;以及(ii)藉由堆疊每個金字塔梯形網路來建構(28204)等效稀疏連接網路(例如,金字塔梯形網路PTNNXj-1的輸出被設定為PTNNXj的輸入)。
回來參考圖28A,在一些實現中,該方法還包括產生(28016)用於利用權重矩陣實現等效稀疏連接網路的示意模型。 計算用於訓練後的神經網路的模擬硬體實現的電阻值的示例方法
圖29A至圖29F示出了根據一些實現的用於根據硬體設計約束的神經網路的硬體實現(2902)的方法2900的流程圖。該方法在計算設備200處(例如,使用權重量化模組238)被執行(2904),該計算設備200具有一個或更多個處理器202和儲存被配置用於由一個或更多個處理器202執行的一個或更多個程式的記憶體214。
該方法包括獲得(2906)訓練後的神經網路(例如網路220)的神經網路拓撲(例如拓撲224)和權重(例如權重222)。在一些實現中,在訓練期間執行權重量化。在一些實現中,訓練後的神經網路被訓練(2908),使得神經網路拓撲的每一層具有量化權重(例如,來自離散值的列表的特定值;例如,每層只有+1、0、-1這3個權重值)。
該方法還包括將神經網路拓撲(例如,使用神經網路變換模組226)變換(2910)成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路。每個運算放大器表示等效模擬網路的一個模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接。
該方法還包括基於訓練後的神經網路的權重來計算(2912)等效模擬網路的權重矩陣。權重矩陣的每個元素表示相應連接。
該方法還包括針對權重矩陣產生(2914)電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重,並表示電阻值。
接下來參考圖29B,在一些實現中,針對權重矩陣產生電阻矩陣包括基於簡化梯度下降的反覆運算方法以找到電阻器集合。在一些實現中,針對權重矩陣產生電阻矩陣包括:(i)獲得(2916)可能電阻值的預定範圍{
Figure 02_image159
,
Figure 02_image161
}並選擇在預定範圍內的初始基本電阻值
Figure 02_image163
。例如,根據權重矩陣的元素的值來選擇該範圍和基本電阻;值由製造過程確定;範圍 - 可以實際上被製造的電阻器;大電阻器不是較佳的;可以實際上被製造的東西的量化。在一些實現中,可能電阻值的預定範圍包括(2918)在範圍100 KΩ至1 MΩ中根據標稱系列E24的電阻;(ii)在預定範圍內選擇(2920)電阻值的有限長度集合,電阻值針對在電阻值的有限長度集合內的{
Figure 02_image165
,
Figure 02_image167
}的所有組合提供在範圍
Figure 02_image169
內的可能權重
Figure 02_image171
的最均勻的分佈。在一些實現中,權重值在這個範圍之外,但在這個範圍內的在權重之間的平方平均距離是最小值;(iii)基於每個神經元或等效模擬網路的每個層的傳入連接的最大權重和偏差
Figure 02_image173
,針對每個模擬神經元或者針對等效模擬網路的每個層從電阻值的有限長度集合中選擇(2922)電阻值
Figure 02_image175
=
Figure 02_image177
,使得
Figure 02_image175
=
Figure 02_image177
是最接近於
Figure 02_image179
的電阻器設定值。在一些實現中,針對等效模擬網路的每一層獨立地選擇(2924)
Figure 02_image175
Figure 02_image177
。在一些實現中,針對等效模擬網路的每個模擬神經元獨立地選擇(2926)
Figure 02_image175
Figure 02_image177
;以及(iv)對於權重矩陣的每個元素,在可能電阻值的預定範圍內的
Figure 02_image181
Figure 02_image183
的所有可能值中,選擇(2928)根據方程
Figure 02_image185
最小化誤差的相應的第一電阻值
Figure 02_image181
和相應的第二電阻值
Figure 02_image183
w 是權重矩陣的相應元素,以及
Figure 02_image187
是可能電阻值的預定相對公差值。
接下來參考圖29C,一些實現執行權重減小。在一些實現中,權重矩陣的第一一個或更多個權重和第一一個或更多個輸入表示(2930)到等效模擬網路的第一運算放大器的一個或更多個連接。該方法還包括:在產生(2932)電阻矩陣之前,(i)藉由第一值修改(2934)第一一個或更多個權重(例如,使第一一個或更多個權重除以第一值以減小權重範圍,或者使第一一個或更多個權重乘以第一值以增加權重範圍);以及(ii)在執行啟動函數之前配置(2936)第一運算放大器以使第一一個或更多個權重和第一一個或更多個輸入的線性組合乘以第一值。一些實現執行權重減小,以便改變一個或更多個運算放大器的乘法因數。在一些實現中,電阻器值集合產生某個範圍的權重,並且在該範圍的一些部分中,誤差將高於在其他部分中的誤差。假設只有2個標稱量(例如1Ω和4Ω),這些電阻器可以產生權重[-3; -0.75; 0; 0.75; 3]。假設神經網路的第一層具有{0, 9}的權重,以及第二層具有{0, 1}的權重,一些實現使第一層的權重除以3並使第二層的權重乘以3以減小總體誤差。一些實現考慮在訓練期間藉由調整損失函數(例如,使用l1或l2正則化器)來限制權重值,使得所得到的網路沒有對電阻器集合太大的權重。
接下來參考圖29D,該方法還包括將權重限制到區間。例如,該方法還包括獲得(2938)權重的預定範圍;以及根據權重的預定範圍更新(2940)權重矩陣,使得對於相同的輸入,等效模擬網路產生與訓練後的神經網路相似的輸出。
接下來參考圖29E,該方法還包括降低網路的權重敏感度。例如,該方法還包括再訓練(2942)訓練後的神經網路以降低對權重或電阻值中的誤差的敏感度,該誤差使等效模擬網路產生與訓練後的神經網路相比不同的輸出。換句話說,一些實現包括對已經訓練的神經網路的附加訓練,以便使它對小的隨機分佈的權重誤差有較小敏感度。量化和電阻器製造產生小權重誤差。一些實現變換網路,使得因而得到的網路對每個特定權重值不太敏感。在一些實現中,這藉由在訓練期間向至少一些層中的每個訊號添加小的相對隨機值來被執行(例如,類似於丟棄層(dropout layer))。
接下來參考圖29F,一些實現包括減小權重分佈範圍。一些實現包括再訓練(2944)訓練後的神經網路,以便最小化在任何層中的權重,該權重比該層的平均絕對權重大預定臨界值。一些實現經由再訓練來執行這個步驟。示例懲罰函數包括在所有層上的和(例如A * max(abs(w)) / mean(abs(w)),其中max和mean在一層上被計算。另一個例子包括更高的數量級。在一些實現中,該函數影響權重量化和網路權重敏感度。例如,由於量化引起的權重的小相對變化可能導致高輸出誤差。示例技術包括在訓練期間引入一些懲罰函數,當網路具有這樣的權重被丟棄者(outcast)時,懲罰函數懲罰網路。 用於訓練後的神經網路的模擬硬體實現的最佳化的示例方法
圖30A至圖30M示出了根據一些實現的根據硬體設計約束的神經網路的硬體實現(3002)的方法3000的流程圖。該方法在計算設備200處(例如,使用模擬神經網路最佳化模組246)被執行(3004),該計算設備200具有一個或更多個處理器202和儲存被配置用於由一個或更多個處理器202執行的一個或更多個程式的記憶體214。
該方法包括獲得(3006)訓練後的神經網路(例如網路220)的神經網路拓撲(例如拓撲224)和權重(例如權重222)。
該方法還包括將神經網路拓撲(例如,使用神經網路變換模組226)變換(3008)成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路。每個運算放大器表示等效模擬網路的一個模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接。
接下來參考圖30L,在一些實現中,該方法還包括修剪訓練後的神經網路。在一些實現中,該方法還包括在變換神經網路拓撲之前使用神經網路的修剪技術來修剪(3052)訓練後的神經網路以更新訓練後的神經網路的神經網路拓撲和權重,使得等效模擬網路包括少於預定數量的模擬部件。在一些實現中,考慮到在訓練後的神經網路和等效模擬網路之間的輸出的匹配的準確度或水準,反覆運算地執行(3054)修剪。
接下來參考圖30M,在一些實現中,該方法還包括在將神經網路拓撲變換成等效模擬網路之前,執行(3056)網路知識提取。知識提取不同於像修剪一樣的隨機/學習,但比修剪更具確定性。在一些實現中,獨立於修剪步驟來執行知識提取。在一些實現中,在將神經網路拓撲變換成等效模擬網路之前,藉由知識提取的方法,藉由匯出在隱藏神經元的輸入和輸出之間的因果關係,根據預定的最優性標準(例如,較佳優於其他權重的零權重或在特定範圍內的權重)來調整連接權重。從概念上,在單神經元或神經元的集合中,在特定的資料集上,可能有在輸入和輸出之間的因果關係,其允許權重的重新調整,使得:(1)權重的新集合產生相同的網路輸出,以及(2)權重的新集合更容易用電阻器實現(例如,更均勻地分佈的值、更多零值或沒有連接)。例如,如果某個神經元輸出在某個資料集上始終為1,則一些實現移除該神經元的輸出連接(以及作為整體的神經元),且替代地調整跟隨該神經元的神經元的偏差權重。以這種方式,知識提取步驟不同於修剪,因為修剪需要在移除神經元之後重新學習,且學習是隨機的,而知識提取是確定性的。
回來參考圖30A,該方法還包括基於訓練後的神經網路的權重來計算(3010)等效模擬網路的權重矩陣。權重矩陣的每個元素表示相應連接。
接下來參考圖30J,在一些實現中,該方法還包括基於偏差值來移除或變換神經元。在一些實現中,該方法還包括:對於等效模擬網路的每個模擬神經元:(i)在計算權重矩陣時,基於訓練後的神經網路的權重來計算(3044)相應模擬神經元的相應偏差值;(ii)根據相應偏差值高於預定最大偏差臨界值的確定,從等效模擬網路移除(3046)相應模擬神經元;以及(iii)根據相應偏差值低於預定最小偏差臨界值的確定,用等效模擬網路中的線性結代替(3048)相應模擬神經元。
接下來參考圖30K,在一些實現中,該方法還包括最小化神經元的數量或使網路緊湊。在一些實現中,該方法還包括在產生權重矩陣之前藉由增加來自等效模擬網路的一個或更多個模擬神經元的連接(輸入和輸出)的數量來減少(3050)等效模擬網路的神經元的數量。
回來參考圖30A,該方法還包括針對權重矩陣產生(3012)電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重。
該方法還包括基於電阻矩陣修剪(3014)等效模擬網路以減少複數運算放大器或複數電阻器的數量,以獲得模擬部件的最佳化模擬網路。
接下來參考圖30B,在一些實現中,該方法包括用導體替換無價值的電阻。在一些實現中,修剪等效模擬網路包括用導體替換(3016)以下電阻器,該電阻器與電阻矩陣的具有的電阻值低於預定最小臨界值電阻值的一個或更多個元素對應。
接下來參考圖30C,在一些實現中,該方法還包括移除具有非常高的電阻的連接。在一些實現中,修剪等效模擬網路包括移除(3018)等效模擬網路的、與電阻矩陣的高於預定最大臨界值電阻值的一個或更多個元素對應的一個或更多個連接。
接下來參考圖30D,在一些實現中,修剪等效模擬網路包括移除(3020)等效模擬網路的、與權重矩陣的近似為零的一個或更多個元素對應的一個或更多個連接。在一些實現中,修剪等效模擬網路還包括移除(3022)沒有任何輸入連接的等效模擬網路的一個或更多個模擬神經元。
接下來參考圖30E,在一些實現中,該方法包括移除不重要的神經元。在一些實現中,修剪等效模擬網路包括:(i)當對一個或更多個資料集進行計算時,基於檢測到模擬神經元的使用來對等效模擬網路的模擬神經元排名(3024)。例如,訓練資料集用於對訓練後的神經網路、典型資料集、為修剪程式開發的資料集進行訓練。當經受訓練資料集時,一些實現基於給定神經元或神經元塊的使用頻率來執行用於修剪的神經元的排名。例如,(a)當使用測試資料集時,如果在給定的神經元處從未有訊號,意味著該神經元或神經元塊從未在使用中,並且被修剪;(b)如果神經元的使用頻率非常低,則該神經元被修剪而沒有準確度的顯著損失;以及(c)神經元總是在使用中,則該神經元不能被修剪;(ii)基於排名來選擇(3026)等效模擬網路的一個或更多個模擬神經元;以及(iii)從等效模擬網路移除(3028)一個或更多個模擬神經元。
接下來參考圖30F,在一些實現中,檢測到模擬神經元的使用包括:(i)使用建模軟體(例如SPICe或類似軟體)來建立(3030)等效模擬網路的模型;以及(ii)藉由使用模型(移除塊,其中當使用特殊訓練集時訊號不傳播)以產生一個或更多個資料集的計算來測量(3032)模擬訊號(電流)的傳播。
接下來參考圖30G,在一些實現中,檢測到模擬神經元的使用包括:(i)使用建模軟體(例如SPICe或類似軟體)來建立(3034)等效模擬網路的模型;以及(ii)藉由使用模型以產生一個或更多個資料集的計算來測量(3036)模型的輸出訊號(電流或電壓)(例如,在SPICe模型中或在真實電路中的一些塊或放大器的輸出處的訊號,並且刪除區域,在這些區域中訓練集的輸出訊號總是為零伏)。
接下來參考圖30H,在一些實現中,檢測到模擬神經元的使用包括:(i)使用建模軟體(例如SPICe或類似軟體)來建立(3038)等效模擬網路的模型;以及(ii)藉由使用模型以產生一個或更多個資料集的計算來測量(3040)由模擬神經元消耗的功率(例如,由在SPICE模型中或者在真實電路中的運算放大器表示的某些神經元或神經元塊消耗的功率,並刪除不消耗任何功率的神經元或神經元塊)。
接下來參考圖30I,在一些實現中,該方法還包括在修剪等效模擬網路之後並且在產生用於製造實現等效模擬網路的電路的一個或更多個蝕刻光罩之前,重新計算(3042)等效模擬網路的權重矩陣,並且基於重新計算的權重矩陣更新電阻矩陣。 示例模擬神經形態積體電路和製造方法 用於製造神經網路的模擬積體電路的示例方法
圖31A至圖31Q示出了根據一些實現的用於製造包括模擬部件的模擬網路的積體電路3102的方法3100的流程圖。該方法在計算設備200處(例如,使用積體電路製造模組258)被執行,該計算設備200具有一個或更多個處理器202和儲存被配置用於由一個或更多個處理器202執行的一個或更多個程式的記憶體214。該方法包括獲得(3104)訓練後的神經網路的神經網路拓撲和權重。
該方法還包括(例如,使用神經網路變換模組226)將神經網路拓撲變換(3106)成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路(對於迴圈神經網路,還使用訊號延遲線、乘法器、Tanh模擬塊、Sigmoid模擬塊)。每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接。
該方法還包括基於訓練後的神經網路的權重來計算(3108)等效模擬網路的權重矩陣。權重矩陣的每個元素表示相應連接。
該方法還包括針對權重矩陣產生(3110)電阻矩陣。電阻矩陣的每個元素對應於權重矩陣的相應權重。
該方法還包括基於電阻矩陣來產生(3112)用於製造實現模擬部件的等效模擬網路的電路的一個或更多個蝕刻光罩(例如,使用罩幕產生模組248產生罩幕250和/或252),以及使用光刻製程基於一個或更多個蝕刻光罩來製造(3114)電路(例如IC 262)。
接下來參考圖31B,在一些實現中,積體電路還包括一個或更多個數模轉換器(3116)(例如DAC變換器260),該數模轉換器被配置為基於一個或更多個數位訊號(例如,來自一個或更多個CCD/CMOS影像感測器的訊號)為模擬部件的等效模擬網路產生模擬輸入。
接下來參考圖31C,在一些實現中,積體電路還包括模擬訊號取樣模組(3118),該模擬訊號取樣模組被配置為基於積體電路的推斷的數量以取樣頻率來處理一維或二維模擬輸入(IC的推斷的數量由產品規格確定,我們從神經網路操作和晶片被預期解決的確切任務中知道取樣速率)。
接下來參考圖31D,在一些實現中,積體電路還包括按比例縮小或按比例放大模擬訊號以匹配複數運算放大器的操作範圍的電壓轉換器模組(3120)。
接下來參考圖31E,在一些實現中,積體電路還包括被配置為處理從CCD攝影機獲得的一個或更多個訊框的觸覺訊號處理模組(3122)。
接下來參考圖31F,在一些實現中,訓練後的神經網路是長短期記憶(LSTM)網路,以及積體電路還包括一個或更多個時鐘模組以使訊號觸覺同步並允許時間序列處理。
接下來參考圖31G,在一些實現中,積體電路還包括被配置為基於模擬部件的等效模擬網路的輸出來產生數位訊號的一個或更多個模數轉換器(3126)(例如ADC轉換器260)。
接下來參考圖31H,在一些實現中,積體電路包括被配置為處理從邊緣應用獲得的一維或二維模擬訊號的一個或更多個訊號處理模組(3128)。
接下來參考圖31I,使用包含針對不同氣體混合物的氣體感測器(例如2到25個感測器)的陣列的訊號的訓練資料集來訓練(3130)訓練後的神經網路,用於選擇性地感測包含待檢測的預定量的氣體的氣體混合物中的不同氣體(換句話說,訓練後的晶片的操作用於單獨地確定氣體混合物中的已知神經網路氣體中的每個,儘管在混合物中存在其他氣體)。在一些實現中,神經網路拓撲是被設計用於基於由16個氣體感測器的測量來檢測3個二元氣體成分的一維深度卷積神經網路(1D-DCNN),並且包括(3132)16個感測器式(sensor-wise)一維卷積塊、3個共用或公共的一維卷積塊和3個密集層。在一些實現中,等效模擬網路包括(3134):(i)每模擬神經元最多100個輸入和輸出連接,(ii)延遲塊,其產生任何數量的時間步長的延遲,(iii)訊號限制為5,(iv)15個層,(v)大約100,000個模擬神經元,以及(vi)大約4,900,000個連接。
接下來參考圖31J,使用包含對於不同MOSFET的熱老化時間序列資料的訓練資料集(例如,包含對於42個不同MOSFET的熱老化時間序列的NASA MOSFET資料集;資料每400 ms被取樣一次,且對於每個器件一般包括幾個小時的資料)來訓練(3136)訓練後的神經網路,用於預測MOSFET器件的剩餘使用壽命(RUL)。在一些實現中,神經網路拓撲包括(3138)4個LSTM層,在每個層中有64個神經元,後面是分別具有64個神經元和1個神經元的兩個密集層。在一些實現中,等效模擬網路包括(3140):(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)18個層,(iv)在3,000和3,200個之間的模擬神經元(例如3137個模擬神經元),以及(v)在123,000和124,000個之間的連接(例如123,200個連接)。
接下來參考圖31K,使用包含時間序列資料的訓練資料集來訓練(3142)訓練後的神經網路,時間序列資料包括在不同的市售Li離子電池的連續使用期間的放電和溫度資料(例如,NASA電池使用資料集;該資料集提供6種市售Li離子電池的連續使用的資料;網路操作基於電池的放電曲線的分析),該訓練用於監測鋰離子電池的健康狀態(SOH)和充電狀態(SOC)以在電池管理系統(BMS)中使用。在一些實現中,神經網路拓撲包括(3144)一個輸入層,2個LSTM層,在每個層有64個神經元,後面是具有用於產生SOC和SOH值的2個神經元的一個輸出密集層。等效模擬網路包括(3146):(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)9個層,(iv)在1,200和1,300個之間的模擬神經元(例如1271個模擬神經元),以及(v)在51,000和52,000個之間的連接(例如51,776個連接)。
接下來參考圖31L,使用包含時間序列資料的訓練資料集來訓練(3148)訓練後的神經網路,時間序列資料包括在不同的市售Li離子電池的連續使用期間的放電和溫度資料(例如,NASA電池使用資料集;該資料集提供6種市售Li離子電池的連續使用的資料;網路操作基於電池的放電曲線的分析),該訓練用於監測鋰離子電池的健康狀態(SOH)以在電池管理系統(BMS)中使用。在一些實現中,神經網路拓撲包括(3150)具有18個神經元的輸入層、具有100個神經元的簡單迴圈層和具有1個神經元的密集層。在一些實現中,等效模擬網路包括(3152):(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)4個層,(iv)在200和300個之間的模擬神經元(例如201個模擬神經元),以及(v)在2,200和2,400個之間的連接(例如2,300個連接)。
接下來參考圖31M,使用包含語音命令的訓練資料集(例如,Google語音命令資料集)來訓練(3154)訓練後的神經網路,用於識別話音命令(例如,10個短口語關鍵字,包括“是”、“否”、“上”、“下”、“左”、“右”、“開”、“關”、“停”、“運轉”)。在一些實現中,神經網路拓撲是(3156)具有1個神經元的深度可分離卷積神經網路(DS-CNN)層。在一些實現中,等效模擬網路包括(3158):(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)13個層,(iv)大約72,000個模擬神經元,(v)大約260萬個連接。
接下來參考圖31N,使用包含針對在預定時間段內執行各種身體活動的不同個體的光電容積描記術(PPG)資料、加速度計資料、溫度資料和皮膚電反應訊號資料以及從ECG感測器獲得的參考心率資料(例如,來自PPG-Dalia資料集(CHECK LICENSE)的PPG資料)的訓練資料集來訓練(3160)訓練後的神經網路。針對在每1-4小時期間執行各種身體活動的15個個體收集資料。基於手腕的感測器資料包含從4到64 Hz取樣的PPG、3軸加速度計、溫度和皮膚電反應訊號,以及以大約2 Hz的取樣頻率從ECG感測器獲得的參考心率資料。原始資料以500個時間步長的移位被分成1000個時間步長(約15秒)的序列,因此得到總共16541個樣本。資料集被分成13233個訓練樣本和3308個測試樣本,用於基於PPG感測器資料和3軸加速度計資料來確定在體育鍛煉期間的脈搏率(例如慢跑、健身運動、爬樓梯)。神經網路拓撲包括(3162):兩個Conv1D層,每個層具有執行時間序列卷積的16個濾波器和20的內核;兩個LSTM層,每個層具有16個神經元;以及分別具有16個神經元和1個神經元的兩個密集層。在一些實現中,等效模擬網路包括(3164):(i)延遲塊,其產生任何數量的時間步長,(ii)每模擬神經元最多100個輸入和輸出連接,(iii)訊號限制為5,(iv)16個層,(v)在700和800個之間的模擬神經元(例如713個模擬神經元),以及(vi)在12,000和12,500個之間的連接(例如12,072個連接)。
接下來參考圖31O,訓練後的神經網路被訓練(3166)以基於脈衝多普勒雷達訊號(移除雜波並向多普勒雷達訊號提供雜訊)對不同的物件(例如人、汽車、自行車、踏板車)分類,以及神經網路拓撲包括(3168)多尺度LSTM神經網路。
接下來參考圖31P,訓練後的神經網路被訓練(3170)以基於慣性感測器資料(例如,來自健身追蹤設備、智慧手錶或行動電話的3軸加速度計、磁力計或陀螺儀資料;作為輸入以高達96Hz的頻率被取樣的3軸加速度計資料。網路在3個不同的揭露可得到的資料集上被訓練,呈現諸如“開啟然後關閉洗碗機”、“站著喝水”、“關上左手門”、“慢跑”、“行走”、“爬樓梯”等的活動)來執行人類活動類型識別(例如,行走、跑步、坐著、爬樓梯、鍛煉、活動追蹤)。在一些實現中,神經網路拓撲包括(3172)三個通道式卷積網路,每個通道式卷積網路具有12個濾波器和64的內核尺寸的卷積層,以及每個卷積層後面是最大池化層,以及分別具有1024個神經元和N個神經元的兩個公共密集層,其中N是類別的數量。在一些實現中,等效模擬網路包括(3174):(i)延遲塊,其產生任何數量的時間步長,(ii)每模擬神經元最多100個輸入和輸出連接,(iii)10個模擬神經元的輸出層,(iv)訊號限制為5,(v)10個層,(vi)在1,200和1,300個之間的模擬神經元(例如1296個模擬神經元),以及(vi)在20,000到21,000個之間的連接(例如20,022個連接)。
接下來參考圖31Q,訓練後的神經網路被進一步訓練(3176)以基於使用卷積運算與心率資料合併的加速度計資料來檢測人類活動的異常模式(以便在突發異常模式的情況下檢測中風前或心臟病發作前的狀態或訊號,突發異常模式由由於醫學原因引起的損傷或機能障礙如癲癇等引起)。
一些實現包括未集成到晶片中的部件(即,這些是連接到晶片的外部元件),這些部件選自由下列項組成的組:語音辨識、視訊訊號處理、影像感測、溫度感測、壓力感測、雷達處理、雷射雷達處理、電池管理、MOSFET電路電流和電壓、加速度計、陀螺儀、磁感測器、心率感測器、氣體感測器、體積感測器、液位元感測器、GPS衛星訊號、人體電導感測器、氣體流量感測器、濃度感測器、pH計和IR視覺感測器。
根據一些實現,根據上述過程製造的模擬神經形態積體電路的例子在下面的章節中被提供。用於選擇性氣體檢測的示例模擬神經形態 IC
在一些實現中,根據上述製程製造神經形態IC。神經形態IC基於深度卷積神經網路,其被訓練用於選擇性地感測包含一些量的待檢測氣體的氣體混合物中的不同氣體。使用包含對不同氣體混合物做出回應的氣體感測器的陣列(例如,2至25個感測器)的訊號的訓練資料集來訓練深度卷積神經網路。積體電路(或根據本文所述的技術製造的晶片)可用於確定氣體混合物中的一種或更多種已知氣體,儘管在混合物中存在其他氣體。
在一些實現中,訓練後的神經網路是用於混合氣體分類的多標籤1D-DCNN網路。在一些實現中,網路被設計用於基於由16個氣體感測器的測量來檢測3種二元氣體成分。在一些實現中,1D-DCNN包括感測器式的1D卷積塊(16個這樣的塊)、3個公共1D卷積塊和3個密集層。在一些實現中,該任務的1D-DCNN網路性能為96.3%。
在一些實現中,用下面的參數對原始網路進行T變換:每神經元最大輸入和輸出連接 = 100;延遲塊可以產生任何數量的時間步長的延遲;以及訊號限制為5。
在一些實現中,因而得到的T網路具有下面的特性:15個層、大約100,000個模擬神經元、大約4,900,000個連接。用於 MOSFET 故障預測的示例模擬神經形態 IC
由於熱應力而引起的MOSFET導通電阻退化是在電力電子器件中的眾所周知的嚴重問題。在真實世界應用中,MOSFET器件溫度常常在短時間內改變。這個溫度掃描產生器件的熱退化,這是由於器件可能展示指數分佈。這個效應一般藉由功率迴圈(其產生溫度梯度)來研究,溫度梯度導致MOSFET退化。
在一些實現中,根據上述製程製造神經形態IC。神經形態IC基於在標題為“Real-time Deep Learning at the Edge for Scalable Reliability Modeling of SI-MOSFET Power Electronics Converters”的文章中討論的網路,用於預測MOSFET器件的剩餘使用壽命(RUL)。神經網路可以用於以超過80%的準確度確定器件的剩餘使用壽命(RUL)。
在一些實現中,該網路在包含對於42個不同MOSFET的熱老化時間序列的NASA MOSFET資料集上被訓練。資料每400 ms被取樣一次,且對於每個器件一般包括幾個小時的資料。該網路包含4個LSTM層,每個層有64個神經元,後面是具有64個和1個神經元的2個密集層。
在一些實現中,用下面的參數對網路進行T變換:每神經元最大輸入和輸出連接是100;訊號限制為5,以及因而得到的T網路具有下面的特性:18個層、大約3,000個神經元(例如137個神經元),以及大約120,000個連接(例如123200個連接)。用於鋰離子電池健康和 SoC 監測的示例模擬神經形態 IC
在一些實現中,根據上述製程製造神經形態IC。神經形態IC可用於鋰離子電池的預測分析以在電池管理系統(BMS)中使用。BMS設備一般提供諸如過充電和過放電保護、監測健康狀態(SOH)和充電狀態(SOC)以及幾個電池的負載平衡的功能。SOH和SOC監測通常需要數位資料處理器,這增加了設備的成本並消耗功率。在一些實現中,積體電路用於獲得精確的SOC和SOH資料而不在設備上實現數位資料處理器。在一些實現中,積體電路以超過99%的準確度確定SOC,並以超過98%的準確度確定SOH。
在一些實現中,網路操作基於溫度以及電池的放電曲線的分析,和/或資料被呈現為時間序列。一些實現使用來自NASA電池使用資料集的資料。該資料集提供6種市售Li離子電池的連續使用的資料。在一些實現中,網路包括一個輸入層、2個LSTM層(每層64個神經元)和2個神經元(SOC和SOH值)的輸出密集層。
在一些實現中,用下面的參數對網路進行T變換:每神經元最大輸入和輸出連接數 = 100以及訊號限制為5。在一些實現中,因而得到的T網路包括下面的特性:9個層,大約1,200個神經元(例如1,271個神經元)以及大約50,000個連接(例如51,776個連接)。在一些實現中,網路操作基於溫度以及電池的放電曲線的分析。該網路使用在標題為“State-of-Health Estimation of Li-ion Batteries inElectric Vehicle Using IndRNN under VariableLoad Condition”的論文中揭露的網路IndRnn來訓練,該論文被設計用於處理來自NASA電池使用資料集的資料。該資料集提供6種市售Li離子電池的連續使用的資料。IndRnn網路包含具有18個神經元的輸入層、100個神經元的簡單迴圈層和1個神經元的密集層。
在一些實現中,用下面的參數對IndRnn網路進行T變換:每神經元最大輸入和輸出連接 = 100以及訊號極限為5。在一些實現中,因而得到的T網路具有下面的特性:4個層、約200個神經元(例如201個神經元)和約2,000個連接(例如2,300個連接)。一些實現僅以1.3%的估計誤差輸出SOH。在一些實現中,類似於如何獲得SOH來獲得SOC。用於關鍵字檢出的示例模擬神經形態 IC
在一些實現中,根據上述製程製造神經形態IC。神經形態IC可用於關鍵字檢出。
輸入網路是具有2-D卷積層和2-D深度卷積層的神經網路,其具有大小49乘10的輸入音訊梅爾譜圖。在一些實現中,網路包括5個卷積層、4個深度卷積層、平均池化層和最終密集層。
在一些實現中,網路被預先訓練以從Google語音命令資料集以94.4%的識別準確度識別10個短口語關鍵字(“是”、“否”、“上”、“下”、“左”、“右”、“開”、“關”、“停”、“運轉”)。
在一些實現中,基於深度可分離卷積神經網路(DS-CNN)來製造積體電路,用於話音命令識別。在一些實現中,用下面參數對原始DS-CNN網路進行T變換:每神經元最大輸入和輸出連接 = 100、訊號限制為5。在一些實現中,因而得到的T網路具有下面的特性:13個層、約72,000個神經元以及約260萬個連接。示例 DS-CNN 關鍵字檢出網路
在一個實例中,根據一些實現,關鍵字檢出網路被變換成T網路。該網路是2-D卷積層和2-D深度卷積層的神經網路,其具有大小49x10的輸入音訊譜圖。網路由5個卷積層、4個深度卷積層、平均池化層和最終密集層組成。網路被預先訓練以從Google語音命令資料集https://ai.googleblog.com/2017/08/launching-speech-commands-dataset.html識別10個短口語關鍵字(“是”、“否”、“上”、“下”、“左”、“右”、“開”、“關”、“停”、“運轉”)。有對應於“沉默”和“未知”的兩個額外類別。網路輸出是長度12的softmax。
根據一些實現,訓練後的神經網路(對變換的輸入)具有94.4%的識別準確度。在神經網路拓撲中,每個卷積層後面是BatchNorm層和ReLU層,並且ReLU啟動是無界的,且包括大約250萬次乘法-加法運算。
在變換之後,用1000個樣本(每個口語命令100個)的測試集測試變換的模擬網路。所有測試樣本也用作在原始資料集中的測試樣本。原始DS-CNN網路對這個測試集給出接近5.7%的識別誤差。網路被轉換成由平凡神經元組成的T型網路。在“測試”模式中的BatchNormalization層產生簡單的線性訊號變換,因此可以被解釋為權重乘數 + 某個附加偏差。非常直接地對卷積層、平均池化層和密集層進行T變換。Softmax啟動函數未在T網路中實現,且單獨地應用於T網路輸出。
因而得到的T網路具有12個層,包括一個輸入層,大約72,000個神經元和大約250萬個連接。
圖26A至圖26K分別示出了根據一些實現的層1至11的絕對權重的示例長條圖2600。針對每個層計算權重分佈長條圖(對於絕對權重)。在圖表中的虛線對應於相應層的平均絕對權重值。在變換(即T變換)之後,所轉換的網路與原始網路比較的(在測試集上被計算的)平均輸出絕對誤差被計算為4.1e-9。
根據一些實現,本文描述了用於設定變換的網路的網路限制的各種示例。對於訊號限制,因為在網路中使用的ReLU啟動是無界的,且一些實現在每一層上使用訊號限制。這可能潛在地影響數學等效性。為此,一些實現在所有層上使用訊號限制5,其對應於與輸入訊號範圍相關的為5的電源電壓。
為了量化權重,一些實現使用30個電阻器的標稱集合[0.001, 0.003, 0.01, 0.03, 0.1, 0.324, 0.353, 0.436, 0.508, 0.542, 0.544, 0.596, 0.73, 0.767, 0.914, 0.985, 0.989, 1.043, 1.101, 1.149, 1.157, 1.253, 1.329, 1.432, 1.501, 1.597, 1.896, 2.233, 2.582, 2.844]。
一些實現為每一層單獨地選擇R-和R+值(見上面的描述)。對於每一層,一些實現選擇提供最大權重準確度的值。在一些實現中,隨後在T網路中的所有權重(包括偏差)被量化(例如,被設定為可以利用輸入或所選擇的電阻器來達到的最接近的值)。
一些實現如下轉換輸出層。輸出層是沒有ReLU啟動的密集層。根據一些實現,該層具有softmax啟動,其沒有在T轉換中實現,並且被留給數位部分。一些實現不執行額外的轉換。用於獲得心率的示例模擬神經形態 IC
PPG是可用於檢測在組織的微血管床中的血液體積變化的光學地獲得的體積描記圖。常常藉由使用脈搏血氧計來獲得PPG,該脈搏血氧計照射皮膚並測量光吸收的變化。PPG常常在設備(例如健身追蹤器)中被處理以確定心率。從PPG訊號匯出心率(HR)是在邊緣設備計算中的重要任務。從位於手腕上的設備獲得的PPG資料通常僅在設備穩定時才允許獲得可靠的心率。如果人參與身體鍛煉,從PPG資料獲得心率產生差的結果,除非與慣性感測器資料組合。
在一些實現中,積體電路基於卷積神經網路和LSTM層的組合可以用於基於來自光學體積描記術(PPG)感測器和3軸加速度計的資料來精確地確定脈搏率。該積體電路可用於抑制PPG資料的運動偽影,並以超過90%的準確度確定在身體鍛煉(例如慢跑、健身鍛煉和爬樓梯)期間的脈搏率。
在一些實現中,輸入網路用來自PPG-Dalia資料集的PPG資料訓練。針對在預定持續時間(例如,每個1-4小時)內執行各種身體活動的15個個體收集資料。包括基於手腕的感測器資料的訓練資料包含從4到64 Hz取樣的PPG、3軸加速度計、溫度和皮膚電反應訊號,以及以大約2 Hz的取樣頻率從ECG感測器獲得的參考心率資料。原始資料以500個時間步長的移位被分成1000個時間步長(約15秒)的序列,因此產生總共16541個樣本。資料集被分成13233個訓練樣本和3308個測試樣本。
在一些實現中,輸入網路包括:2個Conv1D層,每個層具有執行時間序列卷積的16個濾波器;2個LSTM層,每個層具有16個神經元;以及具有16個和1個神經元的2個密集層。在一些實現中,網路在測試集上產生小於每分鐘6次跳動的MSE誤差。
在一些實現中,用下面的參數對網路進行T變換:延遲塊可以產生任何數量的時間步長的延遲、每神經元最大輸入和輸出連接 = 100以及訊號限制為5。在一些實現中,因而得到的T網路具有下面的特性:15個層、大約700個神經元(例如713個神經元)以及大約12,000個連接(例如12072個連接)。 T 轉換的 LSTM 網路處理 PPG 資料的示例
如上所述,對於迴圈神經元,一些實現使用訊號延遲塊,其被添加到GRU和LSTM神經元的每個迴圈連接。在一些實現中,延遲塊具有以恆定時間段dt啟動延遲塊的外部迴圈計時器(例如數位計時器)。該啟動產生x(t-dt)的輸出,其中x(t)是延遲塊的輸入訊號。這樣的啟動頻率可以例如對應於網路輸入訊號頻率(例如,由T轉換的網路處理的模擬感測器的輸出頻率)。一般,所有延遲塊用相同的啟動訊號被同時啟動。一些塊可以在一個頻率上被同時啟動,而其他塊可以在另一個頻率上被啟動。在一些實現中,這些頻率具有公共乘法器,並且訊號被同步。在一些實現中,在一個訊號上使用複數延遲塊,產生附加時間移位。上面參考圖13B描述了延遲塊的例子,圖13B示出了根據一些實現的延遲塊的兩個例子。
根據一些實現,用於處理PPG資料的網路使用一個或更多個LSTM神經元。根據一些實現,上面參考圖13A描述了LSTM神經元實現的例子。
該網路還使用Conv1D,一種在時間座標上執行的卷積。根據一些實現,上面參考圖15A和圖15B描述了Conv1D實現的例子。
根據一些實現,在本文描述了PPG資料的細節。PPG是可用於檢測在組織的微血管床中的血液體積變化的光學地獲得的體積描記圖。常常藉由使用脈搏血氧計來獲得PPG,該脈搏血氧計照射皮膚並測量光吸收的變化。PPG常常在設備(例如健身追蹤器)中被處理以確定心率。從PPG訊號匯出心率(HR)是在邊緣設備計算中的重要任務。
一些實現使用來自Capnobase PPG資料集的PPG資料。資料包含42個個體的每個8分鐘持續時間的原始PPG訊號(每秒取樣300個樣本),以及以每秒取樣約1個樣本從ECG感測器獲得的參考心率資料。對於訓練和評估,一些實現以1000個時間步長的移位元將原始資料分成6000個時間步長的序列,因而得到總共5838個樣本的總集合。
在一些實現中,基於訓練後的神經網路NN的輸入在從PPG資料獲得心率(HR)時允許有1-3%的準確度。
本節描述了相對簡單的神經網路,以便演示T轉換和模擬處理可以如何處理這個任務。根據一些實現,該描述作為例子被提供。
在一些實現中,資料集被分成4,670個訓練樣本和1,168個測試樣本。該網路包括:具有16個濾波器和20的內核的1個Conv1D層;2個LSTM層,每個層具有24個神經元;2個密集層(每個層具有24個和1個神經元)。在一些實現中,在訓練該網路200個時期(epoch)之後,測試準確度被發現是2.1%。
在一些實現中,用下面的參數對輸入網路進行T變換:具有1、5和10個時間步長的週期的延遲塊以及下面的特性:17個層、15,448個連接和329個神經元(OP3神經元和乘法器塊,不將延遲塊計算在內)。用於基於脈衝多普勒雷達訊號的物件識別的示例模擬神經形態 積體電路
在一些實現中,基於多尺度LSTM神經網路來製造積體電路,該積體電路可用於基於脈衝多普勒雷達訊號對物件分類。該IC可用於基於多普勒雷達訊號對不同的物件(例如人、汽車、自行車、踏板車)分類,移除雜波,並將雜訊提供給多普勒雷達訊號。在一些實現中,利用多尺度LSTM網路對物件分類的準確度超過90%。用於基於慣性感測器資料的人類活動類型識別的示例模擬神經形態 積體電路
在一些實現中,神經形態積體電路被製造並且可以用於基於多通道卷積神經網路的人類活動類型識別,多通道卷積神經網路具有來自3軸加速度計以及可能來自健身追蹤設備、智慧手錶或行動電話的磁力計和/或陀螺儀的輸入訊號。多通道卷積神經網路可用於區分開不同類型的人類活動,例如行走、跑步、坐著、爬樓梯、鍛煉,並可用於活動追蹤。該IC可用於基於與心率資料卷積地合併的加速度計資料來檢測人類活動的異常模式。根據一些實現,這樣的IC可以在突發異常模式的情況下檢測中風前或心臟病發作前的狀態或訊號,突發異常模式由由於醫學原因引起的損傷或機能障礙如癲癇等引起。
在一些實現中,IC基於在文章“Convolutional Neural Networks for Human Activity Recognition using Mobile Sensors”中討論的通道式1D卷積網路。在一些實現中,該網路接受3軸加速度計資料作為輸入,該資料以高達96Hz的頻率被取樣。在一些實現中,網路在3個不同的揭露可得到的資料集上訓練,呈現諸如“開啟然後關閉洗碗機”、“站著喝水”、“關上左手門”、“慢跑”、“行走”、“爬樓梯”等的這種活動。在一些實現中,該網路包括3個通道式卷積網路,其具有12個濾波器和64的內核的卷積層,每個卷積層後面是最大池化(4)層,以及分別具有1024個和N個神經元的2個公共密集層,其中N是類別的數量。在一些實現中,以低誤差率(例如,3.12%的誤差)執行活動分類。
在一些實現中,用下面的參數對網路進行T變換:延遲塊可以產生任何數量的時間步長的延遲、每神經元最大輸入和輸出連接 = 100、10個神經元的輸出層以及訊號限制為5。在一些實現中,因而得到的T網路具有下面的特性:10個層、大約1,200個神經元(例如1296個神經元),以及大約20,000個連接(例如20022個連接)。用於產生庫的模組化網結構的示例變換
根據一些實現,在本文描述了轉換的神經網路的模組化結構。模組化型神經網路的每個模組在一個或更多個訓練後的神經網路(的全部或一部分)的變換之後被獲得。在一些實現中,一個或更多個訓練後的神經網路被細分成部分,且隨後被變換成等效模擬網路。模組化結構對於目前使用的神經網路中的一些是特有的,且神經網路的模組化劃分對應於在神經網路發展中的趨勢。每個模組可以具有任意數量的輸入或輸入神經元到所連接模組的輸出神經元的任意數量的連接以及連接到後續模組的輸入層的任意數量的輸出。在一些實現中,開發了初步變換模組(或變換模組的種子清單)的庫,包括用於每個模組的製造的蝕刻光罩。最終晶片設計作為初步開發模組的組合(或藉由連接初步開發模組)被獲得。一些實現執行在模組之間的交換。在一些實現中,使用現成的模組設計範本來將在模組內的神經元和連接轉化為晶片設計。這明顯簡化了藉由僅連接對應模組而完成的晶片的製造。
一些實現產生現成的T轉換的神經網路和/或T轉換的模組的庫。例如,CNN網路的一個層是模組化構造塊,LSTM鏈是另一個構造塊,等等。更大的神經網路NN也具有模組化結構(例如LSTM模組和CNN模組)。在一些實現中,神經網路的庫不只是示例過程的副產物,並且可以獨立地被銷售。例如,第三方面可以以在庫中的模擬電路、電路圖或設計開始製造神經網路(例如,使用CADENCE電路、檔和/或蝕刻光罩)。一些實現為典型的神經網路產生T轉換的神經網路(例如,可變換成CADENCE或類似軟體的網路),並且轉換的神經網路(或相關聯資訊)被出售給第三方面。在一些實例中,根據一些實現,第三方面選擇不揭露初始神經網路的結構和/或目的,但使用轉換軟體(例如上面所述的SDK)來將初始網路轉換成梯形狀網路,並將變換的網路傳遞給製造商以製造變換的網路,其中權重矩陣使用上述過程之一被獲得。作為另一個例子,其中現成網路的庫根據本文描述的過程被產生,對應的蝕刻光罩被產生,並且消費者可以為他的任務訓練可用網路架構之一,執行無損變換(有時被稱為T變換),並且向製造商提供權重用於針對訓練後的神經網路製造晶片。
在一些實現中,模組化結構概念也用在多晶片系統或多級3D晶片的製造中,其中3D晶片的每一層表示一個模組。在3D晶片的情況下模組的輸出到所連接模組的輸入的連接將藉由標準互連來建立,該標準互連提供在多層3D晶片系統中的不同層的歐姆接觸。在一些實現中,某些模組的模擬輸出藉由層間互連來連接到所連接模組的模擬輸入。在一些實現中,模組化結構也用於製造多晶片處理器系統。這樣的多晶片組件的區別特徵是在不同晶片之間的模擬訊號資料線。使用在模擬電路系統中開發的模擬訊號交換和去交換的標準方案來實現對將幾個模擬訊號壓縮到一條資料線中和在接收器晶片處的模擬訊號的對應的去交換所特有的模擬交換方案。
根據上述技術製造的晶片的一個主要優點在於,模擬訊號傳播可以擴展到多層晶片或多晶片組件,其中所有訊號互連且資料線傳輸模擬訊號,而沒有對模數或數模轉換的需要。以這種方式,模擬訊號傳輸和處理可以擴展到3D多層晶片或多晶片組件。用於為了神經網路的硬體實現產生庫的示例方法
圖32A至圖32E示出了根據一些實現的用於為了神經網路的硬體實現產生(3202)庫的方法3200的流程圖。該方法在計算設備200處(例如,使用庫產生模組254)被執行(3204),該計算設備200具有一個或更多個處理器202以及儲存被配置用於由一個或更多個處理器202執行的一個或更多個程式的記憶體214。
該方法包括獲得(3206)複數神經網路拓撲(例如拓撲224),每個神經網路拓撲對應於相應的神經網路(例如神經網路220)。
該方法還包括將每個神經網路拓撲(例如,使用神經網路變換模組226)變換(3208)成模擬部件的相應等效模擬網路。
接下來參考圖32D,在一些實現中,將相應網路拓撲變換(3230)成相應等效模擬網路包括:(i)將相應網路拓撲分解(3232)成複數子網拓撲。在一些實現中,分解相應網路拓撲包括將相應網路拓撲的一個或更多個層(例如LSTM層、完全連接層)識別(3234)為複數子網拓撲;(ii)將每個子網拓撲變換(3236)成模擬部件的相應等效模擬子網;以及(iii)組成(3238)每個等效模擬子網以獲得相應等效模擬網路。
回來參考圖32A,該方法還包括產生(3210)用於製造複數電路的複數蝕刻光罩(例如罩幕256),每個電路實現模擬部件的相應等效模擬網路。
接下來參考圖32E,在一些實現中,每個電路藉由下列操作來獲得:(i)產生(3240)模擬部件的相應等效模擬網路的電路圖;以及(ii)基於電路圖產生(3242)相應的電路佈局設計(使用特殊軟體,例如CADENCE)。在一些實現中,該方法還包括在產生用於製造複數電路的複數蝕刻光罩之前組合(3244)一個或更多個電路佈局設計。
接下來參考圖32B,在一些實現中,該方法還包括:(i)獲得(3212)訓練後的神經網路的新神經網路拓撲和權重;(ii)基於新神經網路拓撲與複數神經網路拓撲的比較來從複數蝕刻光罩選擇(3214)一個或更多個蝕刻光罩。在一些實現中,新神經網路拓撲包括複數子網拓撲,並且選擇一個或更多個蝕刻光罩進一步基於將每個子網拓撲與複數網路拓撲中的每個網路拓撲進行比較(3216);(iii)基於權重來計算(3218)新等效模擬網路的權重矩陣;(iv)針對權重矩陣產生(3220)電阻矩陣;以及(v)基於電阻矩陣和一個或更多個蝕刻光罩來產生(3222)用於製造實現新等效模擬網路的電路的新蝕刻光罩。
接下來參考圖32C,複數子網拓撲中的一個或更多個子網拓撲未能與複數網路拓撲中的任何網路拓撲比較(3224),並且該方法還包括:(i)將一個或更多個子網拓撲中的每個子網拓撲變換(3226)成模擬部件的相應等效模擬子網;以及產生(3228)用於製造一個或更多個電路的一個或更多個蝕刻光罩,一個或更多個電路中的每個電路實現模擬部件的相應等效模擬子網。 用於最佳化神經形態模擬積體電路的能量效率的示例方法
圖33A至圖33J示出了根據一些實現的用於最佳化(3302)模擬神經形態電路(其對訓練後的神經網路建模)的能量效率的方法3300的流程圖。該方法在計算設備200處(例如,使用能量效率最佳化模組264)被執行(3204),該計算設備200具有一個或更多個處理器202和儲存被配置用於由一個或更多個處理器202執行的一個或更多個程式的記憶體214。
該方法包括獲得(3306)積體電路(例如IC 262),該積體電路實現包括複數運算放大器和複數電阻器的模擬部件的模擬網路(例如,變換的模擬神經網路228)。模擬網路表示訓練後的神經網路(例如神經網路220),每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接。
該方法還包括使用積體電路為複數測試輸入產生(3308)推斷(例如,使用推斷模組266),包括同時將訊號從模擬網路的一層傳輸到後一層。在一些實現中,模擬網路具有分層結構,訊號同時從前一層到達下一層。在推斷過程期間,訊號藉由電路逐層傳播;在設備級處的仿真;每分鐘的時間延遲。
該方法還包括,在使用積體電路產生推斷時,(例如,使用訊號監測模組268)確定(3310)複數運算放大器的訊號輸出電位準是否被平衡。運算放大器在接收輸入之後經歷瞬變週期(例如,從瞬變到平穩訊號持續小於1毫秒的週期),在此之後訊號的電位準被平衡並且不改變。根據訊號輸出電位準被平衡的確定,該方法還包括:(i)確定(3312)影響用於訊號的傳播的訊號形成的模擬網路的模擬神經元的活動集合。神經元的活動集合不需要是一個層或更多個層的一部分。換句話說,確定步驟起作用,而不考慮模擬網路是否包括神經元的層;以及(ii)在預定時間段內,(例如,使用功率最佳化模組270)關閉(3314)與模擬神經元的活動集合不同的模擬網路的一個或更多個模擬神經元的電源。例如,一些實現(例如,使用功率最佳化模組270)切斷運算放大器的電源,這些運算放大器在活動層後面的層中(此時訊號傳播到活動層),並且不影響在活動層上的訊號形成。這可以基於穿過IC的訊號傳播的RC延遲來計算。因此,在操作層(或活動層)後面的所有層被關閉以節省功率。所以訊號穿過晶片的傳播像衝浪一樣,訊號形成的波傳播穿過晶片,並且不影響訊號形成的所有層被關閉。在一些實現中,對於逐層網路,訊號從一層傳播到另一層,並且該方法還包括在對應於神經元的活動集合的層之前降低功率消耗,因為在該層之前沒有對放大的需要。
接下來參考圖33B,在一些實現中,在一些實現中,確定模擬神經元的活動集合基於計算(3316)穿過模擬網路的訊號傳播的延遲。接下來參考圖33C,在一些實現中,確定模擬神經元的活動集合基於檢測(3318)訊號穿過模擬網路的傳播。
接下來參考圖33D,在一些實現中,訓練後的神經網路是前饋神經網路,並且模擬神經元的活動集合屬於模擬網路的活動層,並且關閉電源包括在模擬網路的活動層之前為一個或更多個層關閉(3320)電源。
接下來參考圖33E,在一些實現中,考慮到訊號延遲(使用特殊軟體,例如CADENCE),基於對訊號穿過模擬網路的傳播進行仿真來計算(3322)預定時間段。
接下來參考圖33F,在一些實現中,訓練後的神經網路是(3324)迴圈神經網路(RNN),並且模擬網路還包括除了複數運算放大器和複數電阻器之外的一個或更多個模擬部件。在這樣的情況下,該方法還包括,根據訊號輸出電位準被平衡的確定,在預定時間段內(例如,使用功率最佳化模組270)為一個或更多個模擬部件關閉(3326)電源。
接下來參考圖33G,在一些實現中,該方法還包括在預定時間段之後(例如,使用功率最佳化模組270)為模擬網路的一個或更多個模擬神經元開啟電源(3328)。
接下來參考圖33H,在一些實現中,確定複數運算放大器的訊號輸出電位準是否被平衡基於檢測(3330)模擬網路的一個或更多個運算放大器是否輸出大於預定臨界值的訊號電位準(例如功率、電流或電壓)。
接下來參考圖33I,在一些實現中,該方法還包括重複(3332)(例如,藉由功率最佳化模組270)在預定時間段內關閉和在預定時間段內開啟模擬神經元的活動集合,同時產生推斷。
接下來參考圖33J,在一些實現中,該方法還包括,根據訊號輸出電位準被平衡的確定,對於每個推斷週期(3334):(i)在第一時間間隔期間,確定(3336)影響用於訊號的傳播的訊號形成的模擬網路的第一層模擬神經元;以及(ii)在第一層之前在預定時間段內(例如,使用功率最佳化模組270)為模擬網路的第一一個或更多個模擬神經元關閉(3338)電源;以及在第一時間間隔之後的第二時間間隔期間,在預定時間段內(例如,使用功率最佳化模組270)為包括模擬網路的第一層模擬神經元和第一一個或更多個模擬神經元的第二一個或更多個模擬神經元關閉(3340)電源。
接下來參考圖33K,在一些實現中,一個或更多個模擬神經元由模擬網路的前一層或更多層的模擬神經元組成(3342),並且模擬神經元的活動集合由模擬網路的第二層的模擬神經元組成,以及模擬網路的第二層不同於前一層或更多層中的層。
一些實現包括用於延遲和/或控制所得到的硬體實現的神經網路的從一層到另一層的訊號傳播的裝置。 MobileNet v.1 的示例變換
根據一些實現,本文描述了MobileNet v.1到等效模擬網路的示例變換。在一些實現中,單個模擬神經元被產生,然後在權重從MobileNet變換成電阻器值的情況下轉換成SPICE電路圖。在圖34中所示的表中描繪MobileNet v1架構。在該表中,第一列3402對應於層和步幅的類型,第二列3404對應於對應層的濾波器形狀,以及第三列3406對應於對應層的輸入大小。在MobileNet v.1中,每個卷積層後面是批量歸一化層和ReLU 6啟動函數(y = max(0, min(6, x))。該網路由27個卷積層和1個密集層組成,並對於224×224×3的輸入影像有大約6億次乘法-累加運算。輸出值是softmax啟動函數的結果,這意味著值分佈在範圍[0, 1]內,且總和為1。一些實現接受MobileNet 32x32和alpha = 1作為輸入用於變換。在一些實現中,網路針對CIFAR-10任務被預先訓練(50,000個32x32x3的影像分為10個不交叉的類別)。批量歸一化層在“測試”模式中操作以產生簡單的線性訊號變換,因此這些層被解釋為權重乘數+一些附加偏差。根據一些實現,使用上述技術來變換卷積層、平均池化層和密集層。在一些實現中,Softmax啟動函數不在變換的網路中實現,而是單獨地應用於變換的網路(或等效模擬網路)的輸出。
在一些實現中,所得到的變換的網路包括30個層,包括輸入層、大約104,000個模擬神經元以及大約1100萬個連接。在變換之後,變換的網路與MobileNet v.1比較的平均輸出絕對誤差(在100個隨機樣本上被計算)為4.9e-8。
因為MobileNet的每個卷積層和其他層具有啟動函數ReLU6,在變換的網路的每個層上的輸出訊號也被值6限制。作為變換的一部分,使權重符合電阻器標稱量集合。在每個標稱量集合下,不同的權重值是可能的。一些實現使用在[0.1 - 1]兆歐姆的範圍內的電阻器標稱量集合e24、e48和e96。假定每個層的權重範圍改變,並且對於大多數層,權重值不超過1-2,為了實現更大的權重準確度,一些實現減小R-和R+值。在一些實現中,從集合[0.05, 0.1, 0.2, 0.5, 1]兆歐姆為每個層單獨地選擇R-和R+值。在一些實現中,對於每個層,選擇提供最大權重準確度的值。然後,在變換的網路中的所有權重(包括偏差)被“量化”,即,被設定為可以用用所使用的電阻器實現的最接近的值。在一些實現中,這根據下面所示的表降低了變換的網路相對於原始MobileNet的準確度。該表示出了根據一些實現當使用不同的電阻器集合時變換的網路的均方誤差。
電阻器集合 均方誤差
E24 0.1-1 MΩ 0.01
E24 0.1-5 MΩ 0.004
E48 0.1-1 MΩ 0.007
E96 0.1-1 MΩ 0.003
在本文中本發明的描述所使用的術語僅為了描述特定實現的目的,且並不意欲限制本發明。如在本發明的描述和所附的請求項中所使用的,單數形式“一(a)”、“一(an)”、和“該(the)”意欲也包括複數形式,除非上下文另外清楚地指示。還要理解的是,如在本文使用的術語“和/或”指相關的所列出的項目中的一個或更多個的任何和所有可能的組合並包括這些組合。還要理解的是,術語“包括(comprises)”和/或“包括(comprising)”當在本說明書中使用時指定所陳述的特徵、步驟、操作、元件和/或部件的存在,但不排除一個或更多個其它特徵、步驟、操作、元件、部件和/或它們的組合的存在或添加。
為了解釋的目的,前面的描述參考了特定的實現進行描述。然而,上面的說明性討論並沒有被規定為無遺漏的或將本發明限制到所揭露的精確形式。鑒於上面的教導,許多修改和變形是可能的。實現被選擇和描述是為了最好地解釋本發明的原理及其實際應用,以從而使本領域中的技術人員能夠以適合於所設想的特定用途的各種修改最好地利用本發明和各種實現。
1D-DCNN:一維深度卷積神經網路 ADC:模數轉換 BMS:電池管理系統 CNN:卷積神經網路 DAC:數模轉換 DS-CNN:深度可分離卷積神經網路 GRU:門控迴圈單元 IC:積體電路 IoT:物聯網 LSTM:長短期記憶 LTH1、LPSH1:隱藏層 LTO、LPSO:輸出層 MLP:多層感知器 P-NN:金字塔神經網路 PPG:光電容積描記術 PSNN:金字塔單神經網路 ReLU:修正線性單元 RNN:迴圈神經網路 RUL:剩餘使用壽命 SDK:軟體發展套件 SNM:單神經元模型 SOH:健康狀態 SOC:充電狀態 WTH1:隱藏層LTH1的權重 WTO:輸出層LTO的權重 100:神經網路的硬體實現的系統 102:訓練後的神經網路 104:模擬神經網路 106:權重 108:示意模型 110:針對連接的蝕刻光罩 112:電阻值 114:最佳化的模擬神經網路 116:蝕刻光罩庫 118:製造的模擬積體電路 120:針對模擬神經元的蝕刻光罩 122:用於推斷的最佳化的模擬積體電路 124:再訓練後的神經網路 126:變換 128:權重量化 130、150、152、158:產生 132:連接產生 134、138系統製造 136:模擬神經元產生 142:再訓練 144:系統重新產生(或重新計算) 146:約束 148:變換 154:系統使用 156:虛線 166:訓練後的神經網 172:電路模型 180:軟體發展套件 184:模擬積體電路設計約束 200:計算設備 202:處理單元/核(CPU) 204:通訊介面 206:使用者介面 210:輸入裝置/機構 212:通訊匯流排 208:顯示器 214:記憶體 216:作業系統 218:通訊模組 220:訓練後的神經網路 222:權重 224:神經網路拓撲 226:神經網路變換模組 228:變換的模擬神經網路 230:數學公式 232:基本函數塊 234:模擬模型 236:模擬IC設計約束 238:權重矩陣計算/權重量化模組 240:電阻計算模組 242:電阻值 244:可選模組 246:模擬神經網路最佳化模組 248:蝕刻光罩產生模組 250:針對電阻的蝕刻光罩 252:針對其他模擬部件的蝕刻光罩 254:庫產生模組 256:蝕刻光罩庫 258:IC製造模組 260:ADC、DAC、其他介面 262:所製造的IC/模組 264:能量效率最佳化模組 266:推斷模組 268:訊號監測模組 270:功率最佳化模組 272:變換的網路的權重 300:用於產生示意模型的過程 308:單神經元模型SNM 302:訓練後的神經網路 304:目標(模擬)神經網路 306:SPICE模型 310:CADENCE模型 314:在Cadence上的單神經元模型(SNM) 316:SNM模型原型 318:片上SNM模型 320:目標晶片模型 420:迴圈網路 408:輸出層 402:輸入層 404、406:隱藏層
為了對前面提到的系統、方法和圖形化使用者介面以及提供資料視覺化分析法和資料準備的額外系統、方法和圖形化使用者介面的更好理解,應結合隨附的附圖來參考下面的實現的描述,在附圖中相似的參考數位在全部附圖中指代對應的部分。 圖1A是根據一些實現的用於使用模擬部件的訓練後的神經網路的硬體實現的系統的框圖。圖1B是根據一些實現的用於使用模擬部件的訓練後的神經網路的硬體實現的圖1A的系統的替代表示的框圖。圖1C是根據一些實現的用於使用模擬部件的訓練後的神經網路的硬體實現的圖1A的系統的另一表示的框圖。 圖2A是根據一些實現的計算設備的系統圖。圖2B示出了根據一些實現的計算設備的可選模組。 圖3A示出了根據一些實現的用於產生對應於訓練後的神經網路的模擬網路的示意性模型的示例過程。圖3B示出了根據一些實現的用於產生目標晶片模型的示例人工原型製作過程(manual prototyping process)。 圖4A、圖4B和圖4C示出了根據一些實現的被變換成數學上的等效模擬網路的神經網路的例子。 圖5示出了根據一些實現的神經元的數學模型的例子。 圖6A至圖6C示出了根據一些實現的用於計算輸入值的異或(XOR)的神經網路的模擬硬體實現的示例過程。 圖7示出了根據一些實現的示例感知器。 圖8示出了根據一些實現的示例金字塔神經網路。 圖9示出了根據一些實現的示例金字塔單神經網路。 圖10示出了根據一些實現的經變換的神經網路的例子。 圖11A至圖11C示出了根據一些實現的單層神經網路的T變換演算法的應用。 圖12示出了根據一些實現的示例迴圈神經網路(RNN)。 圖13A是根據一些實現的LSTM神經元的框圖。 圖13B示出了根據一些實現的延遲塊。 圖13C是根據一些實現的LSTM神經元的神經元圖式(schema)。 圖14A是根據一些實現的GRU神經元的框圖。 圖14B是根據一些實現的GRU神經元的神經元圖式。 圖15A和圖15B是根據一些實現的單個Conv1D濾波器的變型的神經元圖式。 圖16示出了根據一些實現的經變換的神經網路的示例架構。 圖17A至圖17C提供了根據一些實現的示出在輸出誤差和分類誤差或權重誤差之間的相關性的示例圖表。 圖18提供了根據一些實現的用於電阻器量化的神經元模型的示例方案。 圖19A示出了根據一些實現的在CMOS上製造的運算放大器的示意圖。圖19B示出了根據一些實現的圖19A所示的示例電路的描述的表。 圖20A至圖20E示出了根據一些實現的LSTM塊的示意圖。圖20F示出了根據一些實現的圖20A至圖20D所示的示例電路的描述的表。 圖21A至圖21I示出了根據一些實現的乘法器塊的示意圖。圖21J示出了根據一些實現的圖21A至圖21I所示的示意圖的描述的表。 圖22A示出了根據一些實現的sigmoid神經元的示意圖。圖22B示出了根據一些實現的圖22A所示的示意圖的描述的表。 圖23A示出了根據一些實現的雙曲正切函數塊的示意圖。圖23B示出了根據一些實現的圖23A所示的示意圖的描述的表。 圖24A至圖24C示出了根據一些實現的單神經元CMOS運算放大器的示意圖。圖24D示出了根據一些實現的圖24A至圖24C所示的示意圖的描述的表。 圖25A至圖25D示出了根據一些實現的單神經元CMOS運算放大器的變型的示意圖。圖25E示出了根據一些實現的圖25A至圖25D所示的示意圖的描述的表。 圖26A至圖26K示出了根據一些實現的示例權重分佈長條圖。 圖27A至圖27J示出了根據一些實現的用於神經網路的硬體實現的方法的流程圖。 圖28A至圖28S示出了根據一些實現的用於根據硬體設計約束的神經網路的硬體實現的方法的流程圖。 圖29A至圖29F示出了根據一些實現的用於根據硬體設計約束的神經網路的硬體實現的方法的流程圖。 圖30A至圖30M示出了根據一些實現的用於根據硬體設計約束的神經網路的硬體實現的方法的流程圖。 圖31A至圖31Q示出了根據一些實現的用於製造包括模擬部件的模擬網路的積體電路的方法的流程圖。 圖32A至圖32E示出了根據一些實現的用於產生神經網路的硬體實現的庫的方法的流程圖。 圖33A至圖33K示出了根據一些實現的用於最佳化模擬神經形態電路(其模擬訓練後的神經網路)的能量效率的方法的流程圖。 圖34示出了根據一些實現描述MobileNet v1架構的表。 現在將參考實現,其示例在附圖中被示出。在下面的描述中,闡述了許多特定細節,以便提供本發明的透徹理解。然而,對於本領域中的普通技術人員之一將明顯的是,本發明可以被實踐而不需要這些特定細節。
100:神經網路的硬體實現的系統
102:訓練後的神經網路
104:模擬神經網路
106:權重
108:示意模型
110:針對連接的蝕刻光罩
112:電阻值
114:最佳化的模擬神經網路
116:蝕刻光罩庫
118:製造的模擬積體電路
120:針對模擬神經元的蝕刻光罩
122:用於推斷的最佳化的模擬積體電路
124:再訓練後的神經網路
126:變換
128:權重量化
130、150、152:產生
132:連接產生
134、138:系統製造
136:模擬神經元產生
142:再訓練
144:系統重新產生(或重新計算)
146:約束
148:變換
154:系統使用
156:虛線

Claims (113)

  1. 一種用於神經網路的硬體實現的方法,包括: 獲得一訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成模擬部件的一等效模擬網路; 基於該訓練後的神經網路的該權重來計算對於該等效模擬網路的一權重矩陣,其中該權重矩陣的每個元素表示在該等效模擬網路的模擬部件之間的相應連接;以及 基於該權重矩陣來產生用於實現該等效模擬網路的一示意模型,包括選擇該模擬部件的部件值。
  2. 如請求項1所述的方法,其中,產生該示意模型包括針對該權重矩陣產生一電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重,並表示電阻值。
  3. 如請求項2所述的方法,還包括: 獲得對於該訓練後的神經網路的一新權重; 基於該新權重來為該等效模擬網路計算新權重矩陣;以及 針對該新權重矩陣產生新電阻矩陣。
  4. 如請求項1所述的方法,其中,該神經網路拓撲包括一層或更多層神經元,每層神經元基於相應數學函數來計算相應輸出,以及 將該神經網路拓撲變換成模擬部件的該等效模擬網路包括: 對於該一層或更多層神經元中的每層: 基於該相應數學函數針對相應層識別一個或更多個函數塊,其中每個函數塊有相應示意實現,該相應示意實現具有符合相應數學函數的輸出的塊輸出;以及 基於排列該一個或更多個函數塊來產生模擬神經元的相應多層網路,其中每個模擬神經元實現該一個或更多個函數塊的相應函數,並且該多層網路的第一層的每個模擬神經元連接到該多層網路的第二層的一個或更多個模擬神經元。
  5. 如請求項4所述的方法,其中,該一個或更多個函數塊包括選自由下列項組成的組的一個或更多個基本函數塊: 具有塊輸出
    Figure 03_image369
    的加權求和塊,其中
    Figure 03_image003
    是修正線性單元(ReLU)啟動函數或類似的啟動函數,
    Figure 03_image005
    表示第i個輸入,
    Figure 03_image007
    表示對應於第i個輸入的權重,以及
    Figure 03_image009
    表示偏差值,並且
    Figure 03_image371
    求和運算子; 具有塊輸出
    Figure 03_image373
    的訊號乘法器塊,其中
    Figure 03_image005
    表示第i個輸入,以及
    Figure 03_image375
    表示第j個輸入,並且
    Figure 03_image377
    是預定係數; 具有塊輸出
    Figure 03_image379
    的一sigmoid啟動塊,其中
    Figure 03_image021
    表示輸入,以及A和B是該sigmoid啟動塊的預定系數值; 具有塊輸出
    Figure 03_image381
    的雙曲正切啟動塊,其中
    Figure 03_image383
    表示輸入,以及A和B為預定系數值;以及 具有塊輸出
    Figure 03_image385
    的訊號延遲塊,其中
    Figure 03_image029
    表示目前時間段,
    Figure 03_image387
    表示前一時間段
    Figure 03_image315
    的訊號延遲塊的輸出,以及
    Figure 03_image035
    是延遲值。
  6. 如請求項4所述的方法,其中,識別該一個或更多個函數塊包括基於該相應層的類型來選擇該一個或更多個函數塊。
  7. 如請求項1所述的方法,其中,該神經網路拓撲包括一層或更多層神經元,每層神經元基於相應數學函數來計算相應輸出,並且將該神經網路拓撲變換成模擬部件的該等效模擬網路包括: 將該神經網路拓撲的一第一層分解成複數子層,包括分解對應於該第一層的一數學函數以獲得一個或更多個中間數學函數,其中每個子層實現一個中間數學函數;以及 對於該神經網路拓撲的該第一層的每個子層: 基於相應的中間數學函數為相應的子層選擇一個或更多個子函數塊;以及 基於排列該一個或更多個子函數塊來產生模擬神經元的相應多層模擬子網,其中每個模擬神經元實現該一個或更多個子函數塊的相應函數,並且該多層模擬子網的第一層的每個模擬神經元連接到該多層模擬子網的第二層的一個或更多個模擬神經元。
  8. 如請求項7所述的方法,其中,對應於該第一層的該數學函數包括一個或更多個權重,並且分解該數學函數包括調整該一個或更多個權重,使得組合該一個或更多個中間函數產生該數學函數。
  9. 如請求項1所述的方法,還包括: 針對該神經網路拓撲的一個或更多個輸出層產生數位部件的一等效數位網路;以及 將該等效模擬網路的一層或更多層的輸出連接到數位部件的該等效數位網路。
  10. 如請求項1所述的方法,其中,該模擬部件包括複數運算放大器和複數電阻器,每個運算放大器表示該等效模擬網路的模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接。
  11. 如請求項10所述的方法,其中,選擇該模擬部件的部件值包括執行梯度下降方法以識別該複數電阻器的可能電阻值。
  12. 如請求項1所述的方法,其中,該神經網路拓撲包括一個或更多個GRU或LSTM神經元,並且變換該神經網路拓撲包括為該一個或更多個GRU或LSTM神經元的每個迴圈連接產生一個或更多個訊號延遲塊。
  13. 如請求項12所述的方法,其中,該一個或更多個訊號延遲塊以與該神經網路拓撲的預定輸入訊號頻率匹配的頻率被啟動。
  14. 如請求項1所述的方法,其中,該神經網路拓撲包括執行一無限啟動函數的一層或更多層神經元,並且變換該神經網路拓撲包括應用選自由下列項組成的組的一個或更多個變換: 用有限啟動代替該無限啟動函數;以及 調整該等效模擬網路的連接或權重,使得對於預定的一個或更多個輸入,在該訓練後的神經網路和該等效模擬網路之間的輸出中的差異被最小化。
  15. 如請求項2所述的方法,還包括: 基於該電阻矩陣來產生用於製造實現模擬部件的該等效模擬網路的電路的一個或更多個蝕刻光罩。
  16. 如請求項15所述的方法,還包括: 獲得對於該訓練後的神經網路的一新權重; 基於該新權重來計算該等效模擬網路的一新權重矩陣; 針對該新權重矩陣產生一新電阻矩陣;以及 基於該新電阻矩陣來產生用於製造實現模擬部件的該等效模擬網路的該電路的新蝕刻光罩。
  17. 如請求項1所述的方法,其中,使用軟體仿真來訓練該訓練後的神經網路以產生該權重。
  18. 一種用於神經網路的硬體實現的系統,包括: 一個或更多個處理器; 一記憶體; 其中,該記憶體儲存被配置用於由該一個或更多個處理器執行的一個或更多個程式,以及該一個或更多個程式包括指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成模擬部件的一等效模擬網路; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的一權重矩陣,其中該權重矩陣的每個元素表示在該等效模擬網路的模擬部件之間的相應連接;以及 基於該權重矩陣來產生用於實現該等效模擬網路的一示意模型,包括選擇該模擬部件的部件值。
  19. 一種非暫時性電腦可讀儲存媒體,其儲存被配置用於由具有一個或更多個處理器的電腦系統執行的一個或更多個程式,該一個或更多個程式包括一指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成模擬部件的一等效模擬網路; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的一權重矩陣,其中該權重矩陣的每個元素表示在該等效模擬網路的模擬部件之間的相應連接;以及 基於該權重矩陣來產生用於實現該等效模擬網路的一示意模型,包括選擇該模擬部件的部件值。
  20. 一種用於神經網路的硬體實現的方法,包括: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 基於模擬積體電路(IC)設計約束來計算一個或更多個連接約束; 將該神經網路拓撲變換成滿足該一個或更多個連接約束的模擬部件的一等效稀疏連接網路;以及 基於該訓練後的神經網路的該權重來計算該等效稀疏連接網路的權重矩陣,其中該權重矩陣的每個元素表示在該等效稀疏連接網路的模擬部件之間的相應連接。
  21. 如請求項20所述的方法,其中,將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 根據該一個或更多個連接約束匯出可能的輸入連接度
    Figure 03_image037
    和輸出連接度
    Figure 03_image039
  22. 如請求項21所述的方法,其中,該神經網路拓撲包括具有
    Figure 03_image041
    個輸入和
    Figure 03_image043
    個輸出以及權重矩陣
    Figure 03_image045
    的至少一個密集連接層,以及 變換該至少一個密集連接層包括: 建構具有
    Figure 03_image041
    個輸入、
    Figure 03_image043
    個輸出和
    Figure 03_image389
    個層的該等效稀疏連接網路,使得該輸入連接度不超過
    Figure 03_image037
    ,以及輸出連接度不超過
    Figure 03_image039
  23. 如請求項21所述的方法,其中,該神經網路拓撲包括具有
    Figure 03_image041
    個輸入和
    Figure 03_image043
    個輸出以及權重矩陣
    Figure 03_image045
    的至少一個密集連接層,以及 變換該至少一個密集連接層包括: 建構具有
    Figure 03_image041
    個輸入、
    Figure 03_image043
    個輸出和
    Figure 03_image391
    個層的該等效稀疏連接網路,其中每個層m由對應的權重矩陣
    Figure 03_image051
    表示,其中缺少的連接用零表示,使得輸入連接度不超過
    Figure 03_image037
    ,以及輸出連接度不超過
    Figure 03_image039
    ,以及其中方程
    Figure 03_image393
    以預定精度被滿足。
  24. 如請求項21所述的方法,其中,該神經網路拓撲包括具有
    Figure 03_image041
    個輸入和
    Figure 03_image043
    個輸出、最大輸入連接度
    Figure 03_image055
    、最大輸出連接度
    Figure 03_image057
    以及權重矩陣
    Figure 03_image045
    的單個稀疏連接層,其中缺少的連接用零表示,以及 變換該單個稀疏連接層包括: 建構具有
    Figure 03_image041
    個輸入、
    Figure 03_image043
    個輸出、
    Figure 03_image395
    個層的該等效稀疏連接層,每個層m由對應的權重矩陣
    Figure 03_image051
    表示,其中缺少的連接用零表示,使得輸入連接度不超過不超過
    Figure 03_image037
    ,以及輸出連接度不超過
    Figure 03_image039
    ,其中方程
    Figure 03_image393
    以預定精度被滿足。
  25. 如請求項21所述的方法,其中,該神經網路拓撲包括具有
    Figure 03_image041
    個輸入和
    Figure 03_image043
    個輸出的一卷積層,以及 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 將該卷積層分解成具有
    Figure 03_image041
    個輸入、
    Figure 03_image043
    個輸出、最大輸入連接度
    Figure 03_image055
    和最大輸出連接度
    Figure 03_image057
    的單個稀疏連接層,其中
    Figure 03_image061
    以及
    Figure 03_image063
  26. 如請求項20所述的方法,還包括利用該權重矩陣產生用於實現該等效稀疏連接網路的一示意模型。
  27. 如請求項20所述的方法,其中,該神經網路拓撲包括一迴圈神經層,以及 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 將該迴圈神經層變換成具有訊號延遲連接的一個或更多個密集或稀疏連接層。
  28. 如請求項20所述的方法,其中,該神經網路拓撲包括一迴圈神經層,以及 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 將該迴圈神經層分解成若干層,其中該層中的至少一個層等效於具有
    Figure 03_image041
    個輸入和
    Figure 03_image043
    個輸出以及權重矩陣
    Figure 03_image045
    的密集或稀疏連接層,其中缺少的連接用零表示。
  29. 如請求項20所述的方法,其中,該神經網路拓撲包括K 個輸入、權重向量
    Figure 03_image397
    和具有一計算神經元的單層感知器,該計算神經元具有啟動函數F , 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 根據該一個或更多個連接約束為該等效稀疏連接網路匯出連接度N ; 使用方程
    Figure 03_image399
    計算該等效稀疏連接網路的層的數量m ;以及 建構具有K 個輸入、m 個層和該連接度N 的該等效稀疏連接網路,其中該等效稀疏連接網路包括該m 個層中的每個層中的相應的一個或更多個模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,且最後一層的模擬神經元實現該單層感知器的該計算神經元的該啟動函數F ,以及 計算該等效稀疏連接網路的該權重矩陣包括: 藉由基於該權重向量U 對方程組求解來計算該等效稀疏連接網路的連接的權重向量W ,其中該方程組包括具有S 個變數的K 個方程,並且S 使用方程
    Figure 03_image401
    被計算。
  30. 如請求項20所述的方法,其中,該神經網路拓撲包括K 個輸入、具有L 個計算神經元的單層感知器、以及包括該L 個計算神經元中的每個計算神經元的一行權重的權重矩陣V , 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 根據該一個或更多個連接約束為該等效稀疏連接網路匯出連接度N ; 使用方程
    Figure 03_image399
    計算該等效稀疏連接網路的層的數量m ; 將該單層感知器分解成L 個單層感知器網路,其中每個單層感知器網路包括該L 個計算神經元中的相應計算神經元; 對於該L 個單層感知器網路中的每個單層感知器網路: 針對相應單層感知器網路建構具有K 個輸入、m 個層和連接度N 的相應等效金字塔狀子網,其中該等效金字塔狀子網在該m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,且最後一層的模擬神經元實現對應於該相應單層感知器的相應計算神經元的啟動函數;以及 藉由將每個等效金字塔狀子網連接在一起來建構該等效稀疏連接網路,包括將該L 個單層感知器網路的每個等效金字塔狀子網的輸入連接在一起以形成具有L *K 個輸入的輸入向量,以及 計算該等效稀疏連接網路的該權重矩陣包括: 對於該L 個單層感知器網路中的每個單層感知器網路: 設定權重向量
    Figure 03_image071
    ,該權重矩陣V 的第i 行對應於相應計算神經元,該相應計算神經元對應於該相應單層感知器網路;以及 藉由基於該權重向量U 對方程組求解來計算相應等效金字塔狀子網路的連接的權重向量Wi ,其中該方程組包括具有S 個變數的K 個方程,並且S 使用方程
    Figure 03_image401
    被計算。
  31. 如請求項20所述的方法,其中,該神經網路拓撲包括K 個輸入、具有S 個層的多層感知器,該S 個層中的每個層i 包括一組對應的計算神經元Li 和對應的權重矩陣Vi ,該權重矩陣Vi 包括該Li 個計算神經元中的每個計算神經元的一行權重, 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 根據該一個或更多個連接約束為該等效稀疏連接網路匯出連接度N ; 將該多層感知器分解成
    Figure 03_image403
    個單層感知器網路,其中每個單層感知器網路包括
    Figure 03_image075
    個計算神經元中的相應計算神經元,其中分解該多層感知器包括複製由該
    Figure 03_image075
    個計算神經元共用的該K 個輸入中的一個或更多個輸入; 對於Q 個單層感知器網路中的每個單層感知器網路: 使用方程
    Figure 03_image405
    計算相應等效金字塔狀子網路的層的數量m ,其中Ki, j 是在該多層感知器中的相應計算神經元的輸入的數量;以及 為相應單層感知器網路建構具有Ki, j 個輸入、該m 個層和該連接度N 的相應等效金字塔狀子網,其中該等效金字塔狀子網在該m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,以及最後一層的模擬神經元實現對應於該相應單層感知器網路的相應計算神經元的啟動函數;以及 藉由將每個等效金字塔狀子網連接在一起來建構該等效稀疏連接網路,包括將該Q 個單層感知器網路的每個等效金字塔狀子網的輸入連接在一起以形成具有Q *Ki, j 個輸入的輸入向量,以及 計算該等效稀疏連接網路的該權重矩陣包括: 對於該Q 個單層感知器網路中的每個單層感知器網路: 設定權重向量
    Figure 03_image407
    ,該權重矩陣V 的第i 行對應於相應計算神經元,該相應計算神經元對應於該相應單層感知器網路,其中j 是在該多層感知器中的該相應計算神經元的對應層;以及 藉由基於該權重向量U 對方程組求解來計算該相應等效金字塔狀子網的連接的權重向量Wi ,其中該方程組包括具有S 個變數的Ki, j 個方程,以及S 使用方程
    Figure 03_image409
    被計算。
  32. 如請求項20所述的方法,其中,該神經網路拓撲包括具有K 個輸入、S 個層的卷積神經網路(CNN),該S 個層中的每個層i 包括一組對應的計算神經元Li 和對應的權重矩陣Vi ,該權重矩陣Vi 包括該Li 個計算神經元中的每個計算神經元的一行權重, 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 根據該一個或更多個連接約束為該等效稀疏連接網路匯出連接度N ; 將該CNN分解成
    Figure 03_image403
    個單層感知器網路,其中每個單層感知器網路包括
    Figure 03_image075
    個計算神經元中的相應計算神經元,其中分解該CNN包括複製由該
    Figure 03_image075
    個計算神經元共用的該K 個輸入中的一個或更多個輸入; 對於Q 個單層感知器網路中的每個單層感知器網路: 使用方程
    Figure 03_image405
    計算相應等效金字塔狀子網的層的數量m ,其中j 是在該CNN中的相應計算神經元的對應層,以及Ki, j 是在該CNN中的該相應計算神經元的輸入的數量;以及 為相應單層感知器網路建構具有Ki, j 個輸入、該m 個層和該連接度N 的相應等效金字塔狀子網,其中該等效金字塔狀子網在該m 個層中的每個層中包括一個或更多個相應模擬神經元,前m -1個層的每個模擬神經元實現恆等變換,以及最後一層的模擬神經元實現對應於該相應單層感知器網路的相應計算神經元的啟動函數;以及 藉由將每個等效金字塔狀子網連接在一起來建構該等效稀疏連接網路,包括將該Q 個單層感知器網路的每個等效金字塔狀子網的輸入連接在一起以形成具有Q *Ki, j 個輸入的輸入向量,以及 計算該等效稀疏連接網路的該權重矩陣包括: 對於該Q 個單層感知器網路中的每個單層感知器網路: 設定權重向量
    Figure 03_image407
    ,該權重矩陣V 的第i 行對應於相應計算神經元,該相應計算神經元對應於該相應單層感知器網路,其中j 是在該CNN中的該相應計算神經元的對應層;以及 藉由基於該權重向量U 對方程組求解來計算該相應等效金字塔狀子網的連接的權重向量Wi ,其中該方程組包括具有S 個變數的Ki, j 個方程,以及S 使用方程
    Figure 03_image409
    被計算。
  33. 如請求項20所述的方法,其中,該神經網路拓撲包括K 個輸入、具有K 個神經元的層Lp 、具有L 個神經元的層Ln 和權重矩陣
    Figure 03_image411
    ,其中R 是實數的集合,該層Lp 的每個神經元連接到該層Ln 的每個神經元,該層Ln 的每個神經元執行啟動函數F ,使得該層Ln 的輸出使用關於輸入
    Figure 03_image087
    的方程
    Figure 03_image413
    被計算, 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括執行梯形變換,該梯形變換包括: 根據該一個或更多個連接約束匯出可能的輸入連接度
    Figure 03_image091
    和可能的輸出連接度
    Figure 03_image093
    ; 根據
    Figure 03_image095
    的確定,建構三層模擬網路,該三層模擬網路包括具有執行恆等啟動函數的K 個模擬神經元的層LAp 、具有執行恆等啟動函數的
    Figure 03_image415
    個模擬神經元的層LAh 和具有執行該啟動函數FL 個模擬神經元的層LAo ,使得在該層LAp 中的每個模擬神經元具有NO 個輸出,在該層LAh 中的每個模擬神經元具有不多於NI 個輸入和NO 個輸出,以及在該層LAo 中的每個模擬神經元具有NI 個輸入, 計算該等效稀疏連接網路的該權重矩陣包括: 藉由對矩陣方程
    Figure 03_image099
    求解來產生稀疏權重矩陣
    Figure 03_image101
    Figure 03_image103
    ,該矩陣方程
    Figure 03_image099
    包括採用
    Figure 03_image105
    個變數的
    Figure 03_image107
    個方程,使得該層LAo 的總輸出使用方程
    Figure 03_image109
    被計算,其中該稀疏權重矩陣
    Figure 03_image417
    表示在該層LAp LAh 之間的連接,以及該稀疏權重矩陣
    Figure 03_image419
    表示在該層LAh LAo 之間的連接。
  34. 如請求項33所述的方法,其中,執行該梯形變換還包括: 根據
    Figure 03_image115
    的確定: 使該層Lp 分裂以獲得具有K’ 個神經元的子層Lp1 和具有(K - K’ )個神經元的子層Lp2 ,使得
    Figure 03_image117
    ; 對於具有K’ 個神經元的該子層Lp1 ,執行建構和產生步驟;以及 對於具有K - K’ 個神經元的該子層Lp2 ,迴圈地執行分裂、建構和產生步驟。
  35. 如請求項34所述的方法,其中,該神經網路拓撲包括一多層感知器網路,該方法還包括: 對於該多層感知器網路的每對連續層,反覆運算地執行該梯形變換並計算該等效稀疏連接網路的該權重矩陣。
  36. 如請求項34所述的方法,其中,該神經網路拓撲包括一迴圈神經網路(RNN),該迴圈神經網路包括(i)兩個完全連接層的線性組合的計算,(ii)逐元素相加,以及(iii)非線性函數計算,該方法還包括: 執行該梯形變換並計算該等效稀疏連接網路的該權重矩陣,用於(i)該兩個完全連接層,和(ii)該非線性函數計算。
  37. 如請求項34所述的方法,其中,該神經網路拓撲包括一長短期記憶(LSTM)網路或一閘控迴圈單元(GRU)網路,該長短期記憶(LSTM)網路或閘控迴圈單元(GRU)網路包括(i)複數完全連接層的線性組合的計算,(ii)逐元素相加,(iii)Hadamard乘積,以及(iv)複數非線性函數計算,該方法還包括: 執行該梯形變換並計算該等效稀疏連接網路的該權重矩陣,用於(i)該複數完全連接層,和(ii)該複數非線性函數計算。
  38. 如請求項34所述的方法,其中,該神經網路拓撲包括一卷積神經網路(CNN),該卷積神經網路包括(i)複數部分連接層和(ii)一個或更多個完全連接層(),該方法還包括: 藉由插入具有零權重的缺失連接來將該複數部分連接層變換成等效完全連接層;以及 對於該等效完全連接層和該一個或更多個完全連接層中的每對連續層,反覆運算地執行該梯形變換並計算該等效稀疏連接網路的該權重矩陣。
  39. 如請求項20所述的方法,其中,該神經網路拓撲包括K 個輸入、L 個輸出神經元和權重矩陣
    Figure 03_image421
    ,其中R 是實數的集合,每個輸出神經元執行啟動函數F , 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括執行近似變換,該近似變換包括: 根據該一個或更多個連接約束匯出可能的輸入連接度
    Figure 03_image091
    和可能的輸出連接度
    Figure 03_image093
    ; 從集合
    Figure 03_image423
    中選擇參數
    Figure 03_image123
    ; 根據
    Figure 03_image125
    的確定,建構形成該等效稀疏連接網路的前
    Figure 03_image123
    個層的金字塔神經網路,使得該金字塔神經網路具有在它的輸出層中的
    Figure 03_image425
    個神經元,其中該金字塔神經網路中的每個神經元執行恆等函數;以及 建構具有
    Figure 03_image427
    個輸入和
    Figure 03_image043
    個輸出的梯形神經網路,其中該梯形神經網路的最後一層中的每個神經元執行該啟動函數F ,以及所有其他神經元執行恆等函數,以及 計算該等效稀疏連接網路的該權重矩陣包括: 產生該金字塔神經網路的權重,包括(i)根據下面的規則設定該金字塔神經網路的第一層的每個神經元i的權重:(a)
    Figure 03_image429
    ,其中
    Figure 03_image133
    為非零常數,以及
    Figure 03_image135
    ;以及(b)對於除
    Figure 03_image137
    之外的神經元的所有權重j,
    Figure 03_image431
    ;以及(ii)將該金字塔神經網路的所有其他權重設定為1;以及 產生該梯形神經網路的權重,包括(i)根據方程
    Figure 03_image433
    設定該梯形神經網路的第一層的每個神經元i的權重;以及(ii)將該梯形神經網路的其他權重設定為1。
  40. 如請求項39所述的方法,其中,該神經網路拓撲包括多層感知器,該多層感知器具有該
    Figure 03_image041
    個輸入、
    Figure 03_image143
    個層和在第i層中的
    Figure 03_image435
    個計算神經元以及該第i層的權重矩陣
    Figure 03_image437
    ,其中
    Figure 03_image149
    ,以及 將該神經網路拓撲變換成模擬部件的該等效稀疏連接網路包括: 對於該多層感知器的該
    Figure 03_image143
    個層中的每個層
    Figure 03_image439
    : 藉由對由
    Figure 03_image441
    個輸入、
    Figure 03_image443
    個輸出神經元和權重矩陣
    Figure 03_image445
    組成的相應單層感知器執行該近似變換來建構相應金字塔-梯形網路PTNNXj ;以及 藉由堆疊每個金字塔梯形網路來建構該等效稀疏連接網路。
  41. 一種用於神經網路的硬體實現的系統,包括: 一個或更多個處理器; 一記憶體; 其中,該記憶體儲存被配置用於由該一個或更多個處理器執行的一個或更多個程式,以及該一個或更多個程式包括指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 基於模擬積體電路(IC)設計約束來計算一個或更多個連接約束; 將該神經網路拓撲變換成滿足該一個或更多個連接約束的模擬部件的等效稀疏連接網路;以及 基於該訓練後的神經網路的該權重來計算該等效稀疏連接網路的權重矩陣,其中該權重矩陣的每個元素表示在該等效稀疏連接網路的模擬部件之間的相應連接。
  42. 一種非暫時性電腦可讀儲存媒體,其儲存被配置用於由具有一個或更多個處理器的電腦系統執行的一個或更多個程式,該一個或更多個程式包括指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 基於模擬積體電路(IC)設計約束來計算一個或更多個連接約束; 將該神經網路拓撲變換成滿足該一個或更多個連接約束的模擬部件的等效稀疏連接網路;以及 基於該訓練後的神經網路的該權重來計算該等效稀疏連接網路的權重矩陣,其中該權重矩陣的每個元素表示在該等效稀疏連接網路的模擬部件之間的相應連接。
  43. 一種用於神經網路的硬體實現的方法,包括: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的一等效模擬網路,其中每個運算放大器表示該等效模擬網路的模擬神經元,且每個電阻器表示在兩個模擬神經元之間的連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的權重矩陣,其中該權重矩陣的每個元素表示相應連接;以及 針對該權重矩陣產生電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重,並表示電阻值。
  44. 如請求項43所述的方法,其中,針對該權重矩陣產生該電阻矩陣包括: 獲得可能電阻值的預定範圍{
    Figure 03_image159
    ,
    Figure 03_image161
    }並選擇在該預定範圍內的初始基本電阻值
    Figure 03_image447
    ; 在該預定範圍內選擇電阻值的有限長度集合,該電阻值對於在該電阻值的有限長度集合內的{
    Figure 03_image165
    ,
    Figure 03_image449
    }的所有組合提供了在範圍
    Figure 03_image451
    內的可能權重
    Figure 03_image453
    的最均勻的分佈; 基於每個神經元或該等效模擬網路的每個層的傳入連接的最大權重和偏差
    Figure 03_image173
    ,針對該等效模擬網路的每個層或每個模擬神經元從該電阻值的有限長度集合中選擇電阻值
    Figure 03_image455
    =
    Figure 03_image177
    ,使得
    Figure 03_image455
    =
    Figure 03_image177
    是最接近於
    Figure 03_image457
    的電阻器設定值;以及 對於該權重矩陣的每個元素,在可能電阻值的該預定範圍內的
    Figure 03_image181
    Figure 03_image183
    的所有可能值中,選擇根據方程
    Figure 03_image459
    最小化誤差的相應的第一電阻值
    Figure 03_image181
    和相應的第二電阻值
    Figure 03_image183
    ,其中w 是該權重矩陣的相應元素,以及
    Figure 03_image187
    是電阻的預定相對公差值。
  45. 如請求項44所述的方法,其中,可能電阻值的該預定範圍包括在範圍100 KΩ至1 MΩ中根據標稱系列E24的電阻。
  46. 如請求項44所述的方法,其中,
    Figure 03_image455
    Figure 03_image177
    針對該等效模擬網路的每個層被獨立地選擇。
  47. 如請求項44所述的方法,其中,
    Figure 03_image455
    Figure 03_image177
    針對該等效模擬網路的每個模擬神經元被獨立地選擇。
  48. 如請求項43所述的方法,其中,該權重矩陣的第一一個或更多個權重和第一一個或更多個輸入表示到該等效模擬網路的第一運算放大器的一個或更多個連接,該方法還包括: 在產生該電阻矩陣之前, 藉由第一值修改該第一一個或更多個權重;以及 在執行啟動函數之前配置該第一運算放大器,以使該第一一個或更多個權重和該第一一個或更多個輸入的線性組合乘以該第一值。
  49. 根據請求項43所述的方法,還包括: 獲得一權重的預定範圍;以及 根據該權重的預定範圍更新該權重矩陣,使得對於相同的輸入,該等效模擬網路產生與該訓練後的神經網路相似的輸出。
  50. 如請求項43所述的方法,其中,該訓練後的神經網路被訓練,使得該神經網路拓撲的每個層具有量化權重。
  51. 如請求項43所述的方法,還包括: 再訓練該訓練後的神經網路以降低對該權重或該電阻值中的誤差的敏感度,該誤差使該等效模擬網路產生與該訓練後的神經網路相比不同的輸出。
  52. 如請求項43所述的方法,還包括: 再訓練該訓練後的神經網路,以便將在任何層中的權重最小化,該權重比該層的平均絕對權重大預定臨界值。
  53. 一種用於神經網路的硬體實現的系統,包括: 一個或更多個處理器; 一記憶體; 其中,該記憶體儲存被配置用於由該一個或更多個處理器執行的一個或更多個程式,以及該一個或更多個程式包括指令,該指令用於: 獲得訓練後的神經網路的神經網路拓撲和權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路,其中每個運算放大器表示該等效模擬網路的模擬神經元,且每個電阻器表示在兩個模擬神經元之間的連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的權重矩陣,其中該權重矩陣的每個元素表示相應連接;以及 針對該權重矩陣產生電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重,並表示電阻值。
  54. 一種非暫時性電腦可讀儲存媒體,其儲存被配置用於由具有一個或更多個處理器的電腦系統執行的一個或更多個程式,該一個或更多個程式包括一指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的等效模擬網路,其中每個運算放大器表示該等效模擬網路的模擬神經元,且每個電阻器表示在兩個模擬神經元之間的連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的一權重矩陣,其中該權重矩陣的每個元素表示相應連接;以及 針對該權重矩陣產生電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重,並表示電阻值。
  55. 一種用於神經網路的硬體實現的方法,包括: 獲得一訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的一等效模擬網路,其中每個運算放大器表示該等效模擬網路的模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的一權重矩陣,其中該權重矩陣的每個元素表示相應連接; 針對該權重矩陣產生一電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重;以及 基於該電阻矩陣修剪該等效模擬網路以減少複數運算放大器或複數電阻器的數量,從而獲得模擬部件的最佳化模擬網路。
  56. 如請求項55所述的方法,其中,修剪該等效模擬網路包括: 用導體替換與該電阻矩陣的具有低於預定最小臨界值電阻值的電阻值的一個或更多個元素對應的電阻器。
  57. 如請求項55所述的方法,其中,修剪該等效模擬網路包括: 移除該等效模擬網路的、與該電阻矩陣的高於預定最大臨界值電阻值的一個或更多個元素對應的一個或更多個連接。
  58. 如請求項55所述的方法,其中,修剪該等效模擬網路包括: 移除該等效模擬網路的、與該權重矩陣的近似為零的一個或更多個元素對應的一個或更多個連接。
  59. 如請求項58所述的方法,其中,修剪該等效模擬網路還包括: 移除沒有任何輸入連接的該等效模擬網路的一個或更多個模擬神經元。
  60. 如請求項55所述的方法,其中,修剪該等效模擬網路包括: 當對一個或更多個資料集進行計算時,基於檢測到模擬神經元的使用來對該等效模擬網路的模擬神經元排名; 基於該排名來選擇該等效模擬網路的一個或更多個模擬神經元;以及 從該等效模擬網路移除該一個或更多個模擬神經元。
  61. 如請求項60所述的方法,其中,檢測到模擬神經元的使用包括: 使用建模軟體來建立該等效模擬網路的一模型;以及 藉由使用該模型以產生該一個或更多個資料集的計算來測量模擬訊號的傳播。
  62. 如請求項60所述的方法,其中,檢測到該模擬神經元的使用包括: 使用建模軟體來建立該等效模擬網路的一模型;以及 藉由使用該模型以產生該一個或更多個資料集的計算來測量該模型的輸出訊號。
  63. 如請求項60所述的方法,其中,檢測到一模擬神經元的使用包括: 使用建模軟體來建立該等效模擬網路的一模型;以及 藉由使用該模型以產生該一個或更多個資料集的計算來測量由該模擬神經元消耗的功率。
  64. 如請求項55所述的方法,還包括: 在修剪該等效模擬網路之後並且在產生用於製造實現該等效模擬網路的電路的一個或更多個蝕刻光罩之前,重新計算該等效模擬網路的權重矩陣,並且基於重新計算的權重矩陣更新該電阻矩陣。
  65. 如請求項55所述的方法,還包括: 對於該等效模擬網路的每個模擬神經元: 在計算該權重矩陣時,基於該訓練後的神經網路的該權重來計算相應模擬神經元的相應偏差值; 根據該相應偏差值高於預定最大偏差臨界值的確定,從該等效模擬網路移除該相應模擬神經元;以及 根據該相應偏差值低於預定最小偏差臨界值的確定,用該等效模擬網路中的線性結替換該相應模擬神經元。
  66. 如請求項55所述的方法,還包括在產生該權重矩陣之前,藉由增加來自該等效模擬網路的一個或更多個模擬神經元的連接的數量來減少該等效模擬網路的神經元的數量。
  67. 如請求項55所述的方法,還包括: 在變換該神經網路拓撲之前,使用神經網路的修剪技術來修剪該訓練後的神經網路,以更新該訓練後的神經網路的該神經網路拓撲和該權重,使得該等效模擬網路包括少於預定數量的模擬部件。
  68. 如請求項67所述的方法,其中,考慮到在該訓練後的神經網路和該等效模擬網路之間的輸出中的匹配的準確度或水準,該修剪被反覆運算地執行。
  69. 如請求項55所述的方法,還包括: 在將該神經網路拓撲變換成該等效模擬網路之前執行網路知識提取。
  70. 一種用於神經網路的硬體實現的系統,包括: 一個或更多個處理器; 一記憶體; 其中,該記憶體儲存被配置用於由該一個或更多個處理器執行的一個或更多個程式,以及該一個或更多個程式包括一指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的一等效模擬網路,其中每個運算放大器表示該等效模擬網路的模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的一權重矩陣,其中該權重矩陣的每個元素表示相應連接; 針對該權重矩陣產生一電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重;以及 基於該電阻矩陣修剪該等效模擬網路,以減少該複數運算放大器或該複數電阻器的數量,從而獲得模擬部件的最佳化模擬網路。
  71. 一種非暫時性電腦可讀儲存媒體,其儲存被配置用於由具有一個或更多個處理器的電腦系統執行的一個或更多個程式,該一個或更多個程式包括一指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的一等效模擬網路,其中每個運算放大器表示該等效模擬網路的模擬神經元,以及每個電阻器表示在兩個模擬神經元之間的連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的權重矩陣,其中該權重矩陣的每個元素表示相應連接; 針對該權重矩陣產生一電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重;以及 基於該電阻矩陣修剪該等效模擬網路,以減少該複數運算放大器或該複數電阻器的數量,從而獲得模擬部件的最佳化模擬網路。
  72. 一種積體電路,包括: 由包括下列步驟的方法製造的模擬部件的一模擬網路: 獲得一訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的一等效模擬網路,其中每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的權重矩陣,其中該權重矩陣的每個元素表示相應連接; 針對該權重矩陣產生電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重; 基於該電阻矩陣來產生用於製造實現模擬部件的該等效模擬網路的電路的一個或更多個蝕刻光罩;以及 使用光刻製程基於該一個或更多個蝕刻光罩來製造該電路。
  73. 如請求項72所述的積體電路,還包括一個或更多個數模轉換器,該一個或更多個數模轉換器被配置為基於一個或更多個數位訊號為模擬部件的該等效模擬網路產生模擬輸入。
  74. 如請求項72所述的積體電路,還包括一模擬訊號取樣模組,該模擬訊號取樣模組被配置為基於該積體電路的推斷的數量以取樣頻率來處理一維或二維模擬輸入。
  75. 如請求項72所述的積體電路,還包括一電壓轉換器模組,該電壓轉換器模組按比例縮小或按比例放大模擬訊號,以匹配該複數運算放大器的操作範圍。
  76. 如請求項72所述的積體電路,還包括被配置為處理從CCD攝影機獲得的一個或更多個訊框的觸覺訊號處理模組。
  77. 如請求項72所述的積體電路,其中,該訓練後的神經網路是一長短期記憶(LSTM)網路,該積體電路還包括一個或更多個時鐘模組以使訊號觸覺同步並允許時間序列處理。
  78. 如請求項72所述的積體電路,還包括一個或更多個模數轉換器,該一個或更多個模數轉換器被配置為基於模擬部件的該等效模擬網路的輸出來產生數位訊號。
  79. 如請求項72所述的積體電路,其中,該電路包括被配置為處理從邊緣應用獲得的一維或二維模擬訊號的一個或更多個訊號處理模組。
  80. 如請求項72所述的積體電路,其中: 使用包含針對不同氣體混合物的氣體感測器的陣列的訊號的訓練資料集來訓練該訓練後的神經網路,用於選擇性地感測包含預定量的待檢測氣體的氣體混合物中的不同氣體, 該神經網路拓撲是一維深度卷積神經網路(1D-DCNN),其被設計用於基於16個氣體感測器的測量來檢測3個二元氣體成分,並且包括16個感測器式的1-D卷積塊、3個共用或公共的1-D卷積塊和3個密集層,以及 該等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)延遲塊,其產生任何數量的時間步長的延遲,(iii)訊號限制為5,(iv)15個層,(v)大約100,000個模擬神經元,以及(vi)大約4,900,000個連接。
  81. 如請求項72所述的積體電路,其中: 使用包含關於不同MOSFET的熱老化時間序列資料的訓練資料集來訓練該訓練後的一神經網路,用於預測MOSFET器件的剩餘使用壽命(RUL), 該神經網路拓撲包括4個LSTM層,在每個層中有64個神經元,後面是分別具有64個神經元和1個神經元的兩個密集層,以及 該等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)18個層,(iv)在3,000和3,200個之間的模擬神經元,以及(v)在123,000和124,000個之間的連接。
  82. 如請求項72所述的積體電路,其中: 使用包含一時間序列資料的訓練資料集來訓練該訓練後的一神經網路,該時間序列資料包括在不同的市售Li離子電池的連續使用期間的放電和溫度資料,訓練該訓練後的神經網路用於監測鋰離子電池的健康狀態(SOH)和充電狀態(SOC)以在電池管理系統(BMS)中使用, 該神經網路拓撲包括一個輸入層,2個LSTM層,在每個層有64個神經元,後面是具有用於產生SOC和SOH值的2個神經元的一個輸出密集層,以及 該等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)9個層,(iv)在1,200和1,300個之間的模擬神經元,以及(v)在51,000和52,000個之間的連接。
  83. 如請求項72所述的積體電路,其中: 使用包含一時間序列資料的訓練資料集來訓練該訓練後的一神經網路,該時間序列資料包括在不同的市售Li離子電池的連續使用期間的放電和溫度資料,訓練該訓練後的神經網路用於監測鋰離子電池的健康狀態(SOH)以在電池管理系統(BMS)中使用, 該神經網路拓撲包括具有18個神經元的輸入層、具有100個神經元的簡單迴圈層和具有1個神經元的密集層,以及 該等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)4個層,(iv)在200和300個之間的模擬神經元,以及(v)在2,200和2,400個之間的連接。
  84. 如請求項72所述的積體電路,其中: 使用包含語音命令的訓練資料集來訓練該訓練後的神經網路,用於識別話音命令, 該神經網路拓撲是具有1個神經元的深度可分離卷積神經網路(DS-CNN)層,以及 該等效模擬網路包括:(i)每模擬神經元最多100個輸入和輸出連接,(ii)訊號限制為5,(iii)13個層,(iv)大約72,000個模擬神經元,以及(v)大約260萬個連接。
  85. 如請求項72所述的積體電路,其中: 使用一訓練資料集來訓練該訓練後的神經網路,用於基於光電容積描記術(PPG)感測器資料和3軸加速度計資料來確定在體育鍛煉期間的脈搏率,該訓練資料集包含針對在預定時間段內執行各種身體活動的不同個體的PPG資料、加速度計資料、溫度資料和皮膚電反應訊號資料以及從ECG感測器獲得的參考心率資料, 該神經網路拓撲包括:兩個Conv1D層,每個層具有執行時間序列卷積的16個濾波器和20的內核;兩個LSTM層,每個層具有16個神經元;以及分別具有16個神經元和1個神經元的兩個密集層,以及 該等效模擬網路包括:(i)一延遲塊,其產生任何數量的時間步長,(ii)每模擬神經元最多100個輸入和輸出連接,(iii)訊號限制為5,(iv)16個層,(v)在700和800個之間的模擬神經元,以及(vi)在12,000和12,500個之間的連接。
  86. 如請求項72所述的積體電路,其中: 該訓練後的神經網路被訓練以基於脈衝多普勒雷達訊號對不同的物件分類,以及 該神經網路拓撲包括多尺度LSTM神經網路。
  87. 如請求項72所述的積體電路,其中: 該訓練後的神經網路被訓練以執行人類活動類型識別, 該神經網路拓撲包括三個通道式卷積網路,每個通道式卷積網路具有12個濾波器和64的內核尺寸的卷積層,以及每個卷積層後面是最大池化層,以及分別具有1024個神經元和N個神經元的兩個公共密集層,其中N是類別的數量,以及 該等效模擬網路包括:(i)一延遲塊,其產生任何數量的時間步長,(ii)每模擬神經元最多100個輸入和輸出連接,(iii)10個模擬神經元的輸出層,(iv)訊號限制為5,(v)10個層,(vi)在1,200和1,300個之間的模擬神經元,以及(vi)在20,000到21,000個之間的連接。
  88. 如請求項72所述的積體電路,其中,該訓練後的神經網路被進一步訓練以基於使用卷積運算與心率資料合併的加速度計資料來檢測人類活動的異常模式。
  89. 一種用於神經網路的硬體實現的系統,包括: 一個或更多個處理器; 一記憶體; 其中,該記憶體儲存被配置用於由該一個或更多個處理器執行的一個或更多個程式,以及該一個或更多個程式包括指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的一等效模擬網路,其中每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的權重矩陣,其中該權重矩陣的每個元素表示相應連接; 針對該權重矩陣產生一電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重; 基於該電阻矩陣來產生用於製造實現模擬部件的該等效模擬網路的電路的一個或更多個蝕刻光罩;以及 使用光刻製程基於該一個或更多個蝕刻光罩來製造該電路。
  90. 一種非暫時性電腦可讀儲存媒體,其儲存被配置用於由具有一個或更多個處理器的電腦系統執行的一個或更多個程式,該一個或更多個程式包括指令,該指令用於: 獲得訓練後的神經網路的一神經網路拓撲和一權重; 將該神經網路拓撲變換成包括複數運算放大器和複數電阻器的模擬部件的一等效模擬網路,其中每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接; 基於該訓練後的神經網路的該權重來計算該等效模擬網路的權重矩陣,其中該權重矩陣的每個元素表示相應連接; 針對該權重矩陣產生一電阻矩陣,其中該電阻矩陣的每個元素對應於該權重矩陣的相應權重; 基於該電阻矩陣來產生用於製造實現模擬部件的該等效模擬網路的電路的一個或更多個蝕刻光罩;以及 使用光刻製程基於該一個或更多個蝕刻光罩來製造該電路。
  91. 一種產生用於神經網路的硬體實現的庫的方法,包括: 獲得複數神經網路拓撲,每個神經網路拓撲對應於相應神經網路; 將每個神經網路拓撲變換成模擬部件的相應等效模擬網路;以及 產生用於製造複數電路的複數蝕刻光罩,每個電路實現模擬部件的相應等效模擬網路。
  92. 如請求項91所述的方法,還包括: 獲得訓練後的神經網路的一新神經網路拓撲和一權重; 基於該新神經網路拓撲與該複數神經網路拓撲的比較來從該複數蝕刻光罩中選擇一個或更多個蝕刻光罩; 基於該權重來計算新等效模擬網路的一權重矩陣; 針對該權重矩陣產生電阻矩陣;以及 基於該電阻矩陣和該一個或更多個蝕刻光罩產生用於製造實現該新等效模擬網路的電路的新蝕刻光罩。
  93. 如請求項92所述的方法,其中,該新神經網路拓撲包括複數子網拓撲,並且選擇該一個或更多個蝕刻光罩進一步基於每個子網拓撲與該複數網路拓撲中的每個網路拓撲的比較。
  94. 如請求項93所述的方法,其中,該複數子網拓撲中的一個或更多個子網拓撲未能與該複數網路拓撲中的任何網路拓撲比較,該方法還包括: 將該一個或更多個子網拓撲中的每個子網拓撲變換成模擬部件的相應等效模擬子網;以及 產生用於製造一個或更多個電路的一個或更多個蝕刻光罩,該一個或更多個電路中的每個電路實現模擬部件的相應等效模擬子網。
  95. 如請求項91所述的方法,其中,將相應網路拓撲變換成相應等效模擬網路包括: 將該相應網路拓撲分解成複數子網拓撲; 將每個子網拓撲變換成模擬部件的相應等效模擬子網;以及 組合每個等效模擬子網以獲得該相應等效模擬網路。
  96. 如請求項95所述的方法,其中,分解該相應網路拓撲包括將該相應網路拓撲的一個或更多個層識別為該複數子網拓撲。
  97. 如請求項91所述的方法,其中,藉由下列操作來獲得每個電路: 產生用於模擬部件的相應等效模擬網路的一電路圖;以及 基於該電路圖產生相應的電路佈局設計。
  98. 如請求項97所述的方法,還包括: 在產生用於製造該複數電路的該複數蝕刻光罩之前組合一個或更多個電路佈局設計。
  99. 一種用於產生神經網路的硬體實現的庫的系統,包括: 一個或更多個處理器; 一記憶體; 其中,該記憶體儲存被配置用於由該一個或更多個處理器執行的一個或更多個程式,以及該一個或更多個程式包括一指令,該指令用於: 獲得複數神經網路拓撲,每個神經網路拓撲對應於相應神經網路; 將每個神經網路拓撲變換成模擬部件的相應等效模擬網路;以及 產生用於製造複數電路的複數蝕刻光罩,每個電路實現模擬部件的相應等效模擬網路。
  100. 一種非暫時性電腦可讀儲存媒體,其儲存被配置用於由具有一個或更多個處理器的電腦系統執行的一個或更多個程式,該一個或更多個程式包括一指令,該指令用於: 獲得複數神經網路拓撲,每個神經網路拓撲對應於相應神經網路; 將每個神經網路拓撲變換成模擬部件的相應等效模擬網路;以及 產生用於製造複數電路的複數蝕刻光罩,每個電路實現模擬部件的相應等效模擬網路。
  101. 一種用於最佳化模擬神經形態電路的能量效率的方法,該方法包括: 獲得實現一模擬部件的一模擬網路的積體電路,該模擬部件包括複數運算放大器和複數電阻器,其中該模擬網路表示訓練後的神經網路,每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接; 使用該積體電路針對複數測試輸入產生推斷,包括同時將訊號從該模擬網路的一層傳輸到下一層;以及 當使用該積體電路產生推斷時: 確定該複數運算放大器的訊號輸出電位準是否被平衡;以及 根據該訊號輸出電位準被平衡的確定來: 確定影響用於訊號的傳播的訊號形成的該模擬網路的模擬神經元的活動集合;以及 在預定時間段內,為該模擬網路的、不同於模擬神經元的該活動集合的一個或更多個模擬神經元關閉電源。
  102. 如請求項101所述的方法,其中,基於計算穿過該模擬網路的訊號傳播的延遲來確定模擬神經元的該活動集合。
  103. 如請求項101所述的方法,其中,基於檢測到訊號穿過該模擬網路的傳播來確定模擬神經元的該活動集合。
  104. 如請求項101所述的方法,其中,該訓練後的神經網路是一前饋神經網路,以及模擬神經元的該活動集合屬於該模擬網路的活動層,並且關閉電源包括在該模擬網路的該活動層之前為一個或更多個層關閉電源。
  105. 如請求項101所述的方法,其中,考慮到訊號延遲,基於對訊號穿過該模擬網路的傳播進行仿真來計算該預定時間段。
  106. 如請求項101所述的方法,其中,該訓練後的神經網路是一迴圈神經網路(RNN),以及該模擬網路還包括除該複數運算放大器和該複數電阻器之外的一個或更多個模擬部件,該方法還包括: 根據該訊號輸出電位準被平衡的確定,在該預定時間段內為該一個或更多個模擬部件關閉電源。
  107. 如請求項101所述的方法,還包括: 在該預定時間段之後,為該模擬網路的該一個或更多個模擬神經元接通電源。
  108. 如請求項101所述的方法,其中,確定該複數運算放大器的該訊號輸出電位準是否被平衡基於檢測該模擬網路的一個或更多個運算放大器是否輸出大於預定臨界值的訊號電位準。
  109. 如請求項101所述的方法,還包括: 在產生該推斷時,重複在該預定時間段內關閉和在該預定時間段內開啟模擬神經元的該活動集合。
  110. 如請求項101所述的方法,還包括: 根據該訊號輸出電位準被平衡的確定,對於每個推斷迴圈: 在第一時間間隔期間,確定影響用於訊號的傳播的訊號形成的該模擬網路的第一層模擬神經元;以及 在該預定時間段內,在該第一層之前為該模擬網路的第一一個或更多個模擬神經元關閉電源;以及 在該第一時間間隔之後的第二時間間隔期間,在該預定時間段內為包括該模擬網路的該第一層模擬神經元和該第一一個或更多個模擬神經元的第二一個或更多個模擬神經元關閉電源。
  111. 如請求項101所述的方法,其中,該一個或更多個模擬神經元由該模擬網路的第一一個或更多個層的模擬神經元組成,以及模擬神經元的該活動集合由該模擬網路的第二層的模擬神經元組成,並且該模擬網路的第二層不同於該第一一個或更多個層中的層。
  112. 一種用於最佳化模擬神經形態電路的能量效率的系統,包括: 一個或更多個處理器; 一記憶體; 其中,該記憶體儲存被配置用於由該一個或更多個處理器執行的一個或更多個程式,以及該一個或更多個程式包括一指令,該指令用於: 獲得實現模擬部件的模擬網路的積體電路,該模擬部件包括複數運算放大器和複數電阻器,其中該模擬網路表示訓練後的神經網路,每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接; 使用該積體電路為複數測試輸入產生推斷,包括同時將訊號從該模擬網路的一層傳輸到下一層;以及 當使用該積體電路產生推斷時: 確定該複數運算放大器的訊號輸出電位準是否被平衡;以及 根據該訊號輸出電位準被平衡的確定: 確定影響用於訊號的傳播的訊號形成的該模擬網路的模擬神經元的活動集合;以及 在預定時間段內,為該模擬網路的、不同於模擬神經元的該活動集合的一個或更多個模擬神經元關閉電源。
  113. 一種非暫時性電腦可讀儲存媒體,其儲存被配置用於由具有一個或更多個處理器的電腦系統執行的一個或更多個程式,該一個或更多個程式包括一指令,該指令用於: 獲得實現一模擬部件的一模擬網路的積體電路,該模擬部件包括複數運算放大器和複數電阻器,其中該模擬網路表示訓練後的神經網路,每個運算放大器表示相應模擬神經元,以及每個電阻器表示在相應的第一模擬神經元和相應的第二模擬神經元之間的相應連接; 使用該積體電路為複數測試輸入產生推斷,包括同時將訊號從該模擬網路的一層傳輸到下一層;以及 當使用該積體電路產生推斷時: 確定該複數運算放大器的訊號輸出電位準是否被平衡;以及 根據該訊號輸出電位準被平衡的確定: 確定影響用於訊號的傳播的訊號形成的該模擬網路的模擬神經元的活動集合;以及 在預定時間段內,為該模擬網路的、不同於模擬神經元的該活動集合的一個或更多個模擬神經元關閉電源。
TW110122949A 2020-06-25 2021-06-23 神經網路的模擬硬體實現 TWI773398B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
PCT/EP2020/067800 WO2021259482A1 (en) 2020-06-25 2020-06-25 Analog hardware realization of neural networks
WOPCT/RU2020/000306 2020-06-25
PCT/RU2020/000306 WO2021262023A1 (en) 2020-06-25 2020-06-25 Analog hardware realization of neural networks
WOPCT/EP2020/067800 2020-06-25
US17/189,109 2021-03-01
US17/189,109 US20210406661A1 (en) 2020-06-25 2021-03-01 Analog Hardware Realization of Neural Networks

Publications (2)

Publication Number Publication Date
TW202207093A true TW202207093A (zh) 2022-02-16
TWI773398B TWI773398B (zh) 2022-08-01

Family

ID=79031133

Family Applications (2)

Application Number Title Priority Date Filing Date
TW111125566A TWI796257B (zh) 2020-06-25 2021-06-23 神經網路的模擬硬體實現
TW110122949A TWI773398B (zh) 2020-06-25 2021-06-23 神經網路的模擬硬體實現

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW111125566A TWI796257B (zh) 2020-06-25 2021-06-23 神經網路的模擬硬體實現

Country Status (2)

Country Link
US (7) US20210406661A1 (zh)
TW (2) TWI796257B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI805470B (zh) * 2022-08-15 2023-06-11 中原大學 具有虛功補償的三相逆變器裝置
WO2023201773A1 (zh) * 2022-04-22 2023-10-26 浙江大学 基于忆阻器老化感知的神经网络重训练和梯度稀疏方法
TWI830276B (zh) * 2022-07-04 2024-01-21 聯發科技股份有限公司 補償功率放大器失真的方法以及系統

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723823B (zh) * 2020-03-30 2021-04-01 聚晶半導體股份有限公司 基於神經網路的物件偵測裝置和物件偵測方法
US11514326B2 (en) * 2020-06-18 2022-11-29 International Business Machines Corporation Drift regularization to counteract variation in drift coefficients for analog accelerators
CN116232781B (zh) * 2022-12-08 2024-04-16 中国联合网络通信集团有限公司 节能方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3628053A (en) * 1969-12-22 1971-12-14 Ibm Logic switch with variable threshold circuit
US6539531B2 (en) * 1999-02-25 2003-03-25 Formfactor, Inc. Method of designing, fabricating, testing and interconnecting an IC to external circuit nodes
BR112017019821B8 (pt) * 2015-03-20 2024-02-15 Fraunhofer Ges Forschung Atribuição de pontuação de relevância para redes neurais artificiais
WO2017048195A1 (en) * 2015-09-17 2017-03-23 Nanyang Technological University Computer system incorporating an adaptive model, and methods for training the adaptive model
US9659249B1 (en) * 2016-09-27 2017-05-23 International Business Machines Corporation Pre-programmed resistive cross-point array for neural network
WO2018058426A1 (zh) * 2016-09-29 2018-04-05 清华大学 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统
US20180247199A1 (en) * 2017-02-24 2018-08-30 Qualcomm Incorporated Method and apparatus for multi-dimensional sequence prediction
WO2019018564A1 (en) * 2017-07-18 2019-01-24 Syntiant NEUROMORPHIC SYNTHESIZER
TWI672643B (zh) * 2018-05-23 2019-09-21 倍加科技股份有限公司 應用在深度神經網路的全指數運算方法、電腦裝置及電腦可讀取的記錄媒體
US11314210B2 (en) * 2018-08-01 2022-04-26 Nutech Ventures Neuromorphic computing using electrostatic mems devices
US20220083865A1 (en) * 2019-01-18 2022-03-17 The Regents Of The University Of California Oblivious binary neural networks
CN110322010B (zh) * 2019-07-02 2021-06-25 深圳忆海原识科技有限公司 用于类脑智能与认知计算的脉冲神经网络运算系统及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023201773A1 (zh) * 2022-04-22 2023-10-26 浙江大学 基于忆阻器老化感知的神经网络重训练和梯度稀疏方法
TWI830276B (zh) * 2022-07-04 2024-01-21 聯發科技股份有限公司 補償功率放大器失真的方法以及系統
TWI805470B (zh) * 2022-08-15 2023-06-11 中原大學 具有虛功補償的三相逆變器裝置

Also Published As

Publication number Publication date
US20220004861A1 (en) 2022-01-06
US20210406661A1 (en) 2021-12-30
TWI796257B (zh) 2023-03-11
US20210406666A1 (en) 2021-12-30
US20210406664A1 (en) 2021-12-30
US20210406663A1 (en) 2021-12-30
US20210406665A1 (en) 2021-12-30
US20210406667A1 (en) 2021-12-30
TWI773398B (zh) 2022-08-01
TW202242721A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
TWI773398B (zh) 神經網路的模擬硬體實現
JP7371235B2 (ja) ニューラルネットワークのアナログハードウェア実現
Azghadi et al. Hardware implementation of deep network accelerators towards healthcare and biomedical applications
KR20240021743A (ko) 음성 명료도를 위한 훈련된 신경망의 아날로그 하드웨어 구현
Gaikwad et al. Efficient FPGA implementation of multilayer perceptron for real-time human activity classification
WO2021259482A1 (en) Analog hardware realization of neural networks
US20230081715A1 (en) Neuromorphic Analog Signal Processor for Predictive Maintenance of Machines
US20220280072A1 (en) Systems and Methods for Human Activity Recognition Using Analog Neuromorphic Computing Hardware
Yan et al. Efficient reward-based structural plasticity on a SpiNNaker 2 prototype
Su et al. Radial basis function networks with linear interval regression weights for symbolic interval data
CN110232412B (zh) 一种基于多模态深度学习的人体步态预测方法
WO2023167607A1 (en) Systems and methods for human activity recognition
US11885271B2 (en) Systems and methods for detonation control in spark ignition engines using analog neuromorphic computing hardware
WO2024049998A1 (en) Neuromorphic analog signal processor for predictive maintenance of machines
WO2023220437A1 (en) Systems and methods for human activity recognition using analog neuromorphic computing hardware
US20210406662A1 (en) Analog hardware realization of trained neural networks for voice clarity
Nambiar et al. Optimization of structure and system latency in evolvable block-based neural networks using genetic algorithm
Sharma et al. Puffconv: A system for online and on-device puff detection for smoking cessation
RU2796649C2 (ru) Аналоговая аппаратная реализация нейронных сетей
del Campo et al. A hardware/software embedded agent for real-time control of ambient-intelligence environments
US11823037B1 (en) Optocoupler-based flexible weights in neuromorphic analog signal processors
US20240005140A1 (en) Quantization Algorithms for Analog Hardware Realization of Neural Networks
Atibi et al. Parallel and mixed hardware implementation of artificial neuron network on the FPGA platform
Lukasik et al. Fuzzy models synthesis with kernel-density-based clustering algorithm
Yildirim Development of conic section function neural networks in software and analogue hardware