TWI832406B - 反向傳播訓練方法和非暫態電腦可讀取媒體 - Google Patents

反向傳播訓練方法和非暫態電腦可讀取媒體 Download PDF

Info

Publication number
TWI832406B
TWI832406B TW111133231A TW111133231A TWI832406B TW I832406 B TWI832406 B TW I832406B TW 111133231 A TW111133231 A TW 111133231A TW 111133231 A TW111133231 A TW 111133231A TW I832406 B TWI832406 B TW I832406B
Authority
TW
Taiwan
Prior art keywords
impulse response
layer
function
kernel
hidden layer
Prior art date
Application number
TW111133231A
Other languages
English (en)
Other versions
TW202411890A (zh
Inventor
白惟旻
洪浩喬
Original Assignee
國立陽明交通大學
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
Application filed by 國立陽明交通大學 filed Critical 國立陽明交通大學
Priority to TW111133231A priority Critical patent/TWI832406B/zh
Application granted granted Critical
Publication of TWI832406B publication Critical patent/TWI832406B/zh
Publication of TW202411890A publication Critical patent/TW202411890A/zh

Links

Images

Landscapes

  • Feedback Control In General (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

反向傳播訓練方法,適用於使用脈衝響應模型之脈衝類神經網路系統,脈衝類神經網路系統包含輸入層、輸出層與L-1層隱藏層,L為大於或等於2的整數,反向傳播訓練方法包含:依據輸出層的每個神經元的輸出脈衝、目標脈衝與脈衝響應核計算損失函數,脈衝響應核的函數圖形具有相等的初始值與結束值,包含二區間,一者單調上升,另一者單調下降;依據損失函數計算第一梯度,以更新輸出層的權重;依據相鄰於輸出層的第L-1層隱藏層的輸出脈衝、脈衝響應核、輸出層的權重與第一梯度計算第L-1層隱藏層的第二梯度,利用第二梯度更新第L-1層隱藏層的權重。

Description

反向傳播訓練方法和非暫態電腦可讀取媒體
本揭示文件是關於一種反向傳播訓練方法和非暫態電腦可讀取媒體,特別是關於一種適用於使用脈衝響應模型之脈衝類神經網路系統的反向傳播訓練方法和非暫態電腦可讀取媒體。
人工神經元(artificial neuron)是以真實神經元為藍本,架構出的簡化運算用模型。真實神經元以樹突(dendrite)接收多個以脈衝(spikes)方式表達資料的輸入後交由細胞體(soma)進行運算,後由軸突(axon)輸出一以相同脈衝方式表達的結果。所有人工神經元都自帶一組權重,能在以各突觸(synapse)接收多個輸入的同時讓資料與突觸對應的權重相乘並加總,最後經過一個被稱為激勵函數(activation function)的函數處理以產生輸出。而由多個人工神經元組成的多層網路架構則稱為類神經網路。脈衝類神經網路(spiking neural network,SNN)為一種模仿人腦的行為,在神經元間傳遞脈衝並產生相對應的輸出脈衝,以此完成資料處理計算的類神經網路。
藉由調整不同的權重,類神經網路能夠處理各式複雜的運算。當然,縱使深度類神經網路能藉由多個類神經網路層組成的巨大架構獲得龐大的計算能力,如何調整其數量龐大的權重直到網路能輸出想要的運算結果也絕非易事。類神經網路運算可以在雲端平台或是如手機和物聯網裝置等邊緣設備上進行。然而,與雲端平台相比,由於邊緣設備的電力有限且運算速度較慢,目前大多類神經網路的運算仍在雲端平台上進行,而邊緣設備可以上傳運算所需的資料至雲端平台並自雲端平台下載運算結果,但這可能使運算速度受到網路傳輸速度的限制。
脈衝類神經網路具有低延遲與低功耗的優點,因而相較其他非脈衝類神經網路更適合應用於邊緣設備。不過,目前用於訓練多層脈衝類神經網路的反向傳播訓練法,存在計算繁雜與準確度不足等問題。
為了解決上述問題,本揭示文件提供一種反向傳播訓練方法,適用於使用脈衝響應模型(spike response model)之脈衝類神經網路系統,脈衝類神經網路系統包含一輸入層、一輸出層以及L-1層隱藏層,其中L為大於或等於2的正整數,反向傳播訓練方法包含:(a)根據輸出層的多個神經元每一者的輸出脈衝、至少一個目標脈衝以及脈衝響應核(spike response kernel),計算一損失函數,其中脈衝響應核的函數圖形具有相等的初始值與結束值,且包含兩個連續的單調區間,這兩個單調區間的其中一者為單調上升,另一者為單調下降,函數圖形在這兩個單調區間之外的函數值為0;(b)依據損失函數計算輸出層的多個第一梯度,並利用多個第一梯度更新輸出層的多個權重;以及(c)依據第L-1層隱藏層的多個輸出脈衝、脈衝響應核、輸出層的多個權重與多個第一梯度計算第L-1層隱藏層的多個第二梯度,並利用第L-1層隱藏層的多個第二梯度更新第L-1層隱藏層的多個權重,其中第L-1層隱藏層相鄰於輸出層。
在本揭示文件的一些反向傳播訓練方法的實施例中,反向傳播訓練方法更包含:(d)更新第L-2層隱藏層至第1層隱藏層中每層隱藏層的多個權重,此步驟包含:依據脈衝響應核、該層隱藏層的多個輸出脈衝、該層隱藏層的後一層隱藏層的多個權重以及該後一層隱藏層的多個第二梯度,計算該層隱藏層的多個第二梯度,以及依據該層隱藏層的多個第二梯度更新該層隱藏層的多個權重。
本揭示文件提供一種非暫態電腦可讀取媒體,儲存有多個電腦可讀取指令,當電腦可讀取指令由一或多個處理器執行以透過反向傳播法訓練包含一輸入層、一輸出層以及L-1層隱藏層的脈衝類神經網路系統時,處理器用於執行以下運作:(a)根據輸出層的多個神經元每一者的輸出脈衝、至少一個目標脈衝以及脈衝響應核,計算損失函數,其中脈衝響應核的函數圖形具有相等的初始值與結束值,且包含兩個連續的單調區間,這兩個單調區間的其中一者為單調上升,另一者為單調下降,函數圖形在這兩個單調區間之外的函數值為0;(b)依據損失函數計算輸出層的多個第一梯度,並利用多個第一梯度更新輸出層的多個權重;以及(c)依據第L-1層隱藏層的多個輸出脈衝、脈衝響應核、輸出層的多個權重與多個第一梯度計算第L-1層隱藏層的多個第二梯度,並利用第L-1層隱藏層的多個第二梯度更新第L-1層隱藏層的多個權重,其中第L-1層隱藏層相鄰於輸出層,L為大於或等於2的正整數。
在一些非暫態電腦可讀取媒體的實施例中,處理器更用於執行以下運作:(d)更新第L-2層隱藏層至第1層隱藏層中每層隱藏層的多個權重,此步驟包含:依據脈衝響應核、該層隱藏層的多個輸出脈衝、該層隱藏層的後一層隱藏層的多個權重以及該後一層隱藏層的多個第二梯度,計算該層隱藏層的多個第二梯度;以及依據該層隱藏層的多個第二梯度更新該層隱藏層的多個權重。
以下將配合相關圖式來說明本揭示文件的實施例。在圖式中,相同的標號表示相同或類似的元件或方法流程。
第1圖為根據一些實施例的脈衝類神經網路1的示意圖。在一些實施例中,脈衝類神經網路1為L層的脈衝類神經網路,且包含具有三個輸入層神經元 ~ 的輸入層10、(L-1)層隱藏層12以及輸出層14,其中,L為大於或等於2的正整數,亦即脈衝類神經網路可具有至少一層隱藏層12。神經元 ~ 分別具有輸出脈衝 ~ ,其中N以及X的上標「0」代表此神經元當前位於第0層(即輸入層10),N以及X的下標「1」~「3」則代表此神經元為當層的第1~3個神經元。
每層隱藏層12包含三個神經元。舉例而言,在第1圖中,輸入層10下一層的隱藏層12為第一個隱藏層12,其具有三個神經元 ~ ,且神經元 ~ 分別具有輸出脈衝 ~ 。第一個隱藏層12還具有權重 ~ ~ 以及 ~ ,其中符號W的上標「1」代表此權重為第1層隱藏層的權重,W的下標「1,1」代表此權重關聯於前一層的第1個神經元(例如神經元 )與當前層的第1個神經元(例如神經元 ),W的下標「2,1」代表此權重關聯於前一層的第2個神經元(例如神經元 )與當前層的第1個神經元(例如神經元 ),以此類推。相關技術領域具有通常知識者可依據以上的描述理解每一個隱藏層12的權重的標示方式,為簡潔起見,在此不重複贅述。
在第1圖的實施例中,輸出層14包含兩個神經元 ,其分別具有輸出脈衝 。輸出層14還具有權重 ~ ,其標示方式相似於上述隱藏層12的權重,為簡潔起見,在此不重複贅述。
應注意,第1圖中的隱藏層12的數量、每層的神經元的數量以及每層的輸出脈衝的數量僅為示例,而非限制本揭示文件。其他隱藏層12的數量、每層的神經元的數量以及每層的輸出脈衝的數量均在本揭示文件的範圍內。
第2圖為依據本揭示文件一實施例的脈衝響應模型(spike response model,簡稱SRM)200的功能方塊圖。脈衝響應模型200可用於實現第1圖的脈衝類神經網路1的所有神經元 ~ 。舉例而言,脈衝響應模型200可以是第3層的第1個神經元(即神經元 ),當前一層隱藏層12的神經元 ~ 的輸出脈衝 ~ 輸入至脈衝響應模型200時(亦即輸出脈衝 ~ 可視為神經元 的多個輸入脈衝),神經元 之膜電位會根據時間產生變化,例如上升一不特定數值。此不特定數值為輸出脈衝 ~ 與脈衝響應核κ(t)進行卷積(convolution)運算後,再分別與對應的權重 ~ 相乘的結果。輸出脈衝 ~ 三者造成膜電位上升的數值累加後,若在某一時刻使膜電位超過閾值電位θ,神經元 會在該時刻於其輸出發射一輸出脈衝 。接著,神經元 之膜電位會開始下降一不特定數值,此不特定數值(根據時間變化)為輸出脈衝 與不反應核 進行卷積運算後的結果。透過脈衝響應模型200,可以模擬真實的神經細胞的行為。在一實施例中,脈衝響應模型200包含比較器和脈衝產生器。比較器包含輸入端A和輸入端B,其中輸入端A和輸入端B分別用於接收膜電位和閾值電位θ。比較器用於比較膜電位和閾值電位θ並輸出比較結果至脈衝產生器。當膜電位超過閾值電位θ時,脈衝產生器會產生一輸出脈衝。在一些實施例中,若閾值電位θ小於零,則當膜電位低於閾值電位θ時,脈衝產生器會產生一輸出脈衝 ,並依據輸出脈衝 與不反應核 進行卷積運算後的結果使膜電位會開始上升一不特定數值。
為了增加訓練方法的精準度,在完成運算且發出多個輸出層14的輸出脈衝 後,輸出層14的輸出脈衝 會被用於與多個目標脈衝進行比較。在一些實施例中,多個目標脈衝是藉由轉換訓練資料中的多個目標資料所產生,且可用於檢驗脈衝類神經網路1的準確度以評估訓練成效,當輸出層14的多個輸出脈衝 與多個目標脈衝在輸出時間上的相似程度越高,脈衝類神經網路1的準確度越高。詳細而言,前述比較可以是根據輸出層14的輸出脈衝 、目標脈衝以及脈衝響應核κ(t),所計算出一損失函數(Loss Function)的值作為比較的標準。損失函數的計算方法包含:(a)針對輸出層14的多個神經元 的其中之一神經元,計算以下兩者之差:(1)脈衝響應核κ(t)與該神經元的輸出脈衝的卷積結果;以及(2)脈衝響應核κ(t)與該神經元的目標脈衝的卷積結果;(b)針對輸出層14的每個神經元 ,重複步驟(a);以及(c)將每次執行步驟(a)的計算結果取平方後相加之後,再進行積分,以計算損失函數的函數值。因此,損失函數的算式如下: 《公式一》
其中,LF代表損失函數,L(t)代表誤差平方和函數, 代表最後一層(即輸出層14)的神經元數量, 代表輸出層14的第j個神經元的輸出脈衝數量, 代表輸出層14的第j個神經元的第f根輸出脈衝的發射時間, 代表輸出層14的第j個神經元的目標脈衝在時間軸上的位置,以下將目標脈衝在時間軸上的位置稱為目標脈衝的放置時間。脈衝類神經網路1經過訓練後,若輸出層14的每個輸出脈衝的發射時間越接近於對應的目標脈衝的放置時間,則脈衝類神經網路1的準確度越高。
第3A~3B圖為根據本揭示文件的實施例的脈衝響應核κ(t)的函數圖形。在一些實施例中,脈衝響應核κ(t)是一函數,其函數圖形包含兩個單調區間,且脈衝響應核κ(t)在此二單調區間之外函數值皆為零,如第3A~3B圖所示,在兩個單調區間的其中一者中,脈衝響應核κ(t)的函數圖形先單調上升,接著在兩個單調區間的另一者(以時間T +為起點)中脈衝響應核κ(t)的函數圖形單調下降,並在時間T K下降至一不小於零的值(例如0),且其函數圖形的起始點與結束點具有相同輸出值,亦即具有相同的縱軸高度。在另一些未繪示的實施例中,閾值電位θ小於零,此時的脈衝響應核κ(t)的函數圖形在兩個單調區間的其中一者中單調下降,接著在兩個單調區間的另一者(時間T +為起點)中,脈衝響應核κ(t)的函數圖形單調上升,並在時間T K上升至一不大於零的值(例如0)。在一些實施例中,如第3B圖所示,脈衝響應核κ(t)是一函數,其函數圖形單調下降與單調上升時的斜率分別皆為定值,且其函數圖形的起始點與結束點具有相同輸出值。
利用損失函數LF以及脈衝響應核κ(t),可以計算輸出層14中的神經元 每一者的第一梯度 (如第1圖所示的 ),以利於更新神經元 每一者中的權重。
再次參照第1圖,第1圖一展示了脈衝類神經網路1透過使用反向傳播訓練法來進行訓練。以第1圖的實例為例,如同前文,在利用損失函數LF以及脈衝響應核κ(t)計算出第一梯度 之後,可以利用第一梯度 計算輸出層14的神經元的權重的更新值 ,並根據更新值 來更新輸出層14的神經元的權重,其中,第一梯度 的上標「(L)」代表第L層神經元(即輸出層14),下標「j,f」代表第j個神經元的第f根輸出脈衝。接著,利用第一梯度 可以計算出與輸出層14相鄰的隱藏層12(即第(L-1)層)的第二梯度 ,並根據第二梯度 計算此隱藏層12的神經元的權重的更新值 ,再利用更新值 來更新此隱藏層12的神經元的權重。在完成第(L-1)層隱藏層12的權重更新後,利用第二梯度 可以進一步計算出(L-2)層隱藏層12的第二梯度 ,依此類推,直到完成更新所有隱藏層12的權重。第二梯度 的下標「i,h」代表其屬於第i個神經元的第h根輸出脈衝。以下將接著說明輸出層14的第一梯度 與隱藏層12的第二梯度 的計算方式。
第一梯度 包含預設梯度 與假想梯度 ,其中第4圖為根據一些實施例的預設梯度 與假想梯度 之計算過程的示意圖。預設梯度 為誤差平方和函數(即L(t))對輸出層14的輸出脈衝的發射時間(即 )的偏微分。預設梯度 的算式如下: 《公式二》
在《公式二》中「 」代表目標脈衝的放置時間。換言之,預設梯度 關聯於:(1)脈衝響應核κ(t)與脈衝響應核的導數 的乘積,且脈衝響應核κ(t)與脈衝響應核的導數 皆以輸出脈衝的發射時間差為輸入參數,亦即「 」;以及(2)脈衝響應核κ(t)與脈衝響應核的導數 的乘積,且脈衝響應核κ(t)以目標脈衝的放置時間差為輸入參數,脈衝響應核的導數 以輸出脈衝的發射時間差為輸入參數,亦即「 」。
然而,如第4圖所示的情況,當《公式二》中的函數 以及函數 兩者大於0的區間在時間軸上不重疊時,會使得「 」為0,進而使得第一梯度 在第4圖的情況下會不受目標脈衝影響,故無法利用目標脈衝協助神經元的權重的更新,使訓練效果減弱。
假想梯度 用於補回目標脈衝對輸出層14的第一梯度 的影響。假想梯度 的算式如下: 《公式三》
假想梯度 關聯於:(1)脈衝響應核κ(t)與脈衝響應核的導數 的乘積,且脈衝響應核κ(t)以輸出脈衝的發射時間差為輸入參數,脈衝響應核的導數 以目標脈衝的放置時間差為輸入參數,亦即「 」;以及(2)脈衝響應核κ(t)與脈衝響應核的導數 的乘積,且脈衝響應核κ(t)與脈衝響應核的導數 皆以目標脈衝的放置時間差為輸入參數,亦即「 」。
因此,在一些實施例中,第一梯度 的算式如下: 《公式四》
由於假想梯度 裡的函數 與函數 的函數圖形不等於0的區域完全重疊,因此可以完整保留目標脈衝帶來的影響,大幅提升權重更新的正確性。
《公式四》的第一梯度 可以理解為誤差平方和函數L(t)對輸出層14的輸出脈衝的梯度。為了計算最終層14的權重 的更新值 ,可利用第一梯度 進一步計算誤差平方和函數L(t)對輸出層14的權重 的梯度,如以下透過微積分連鎖率(chain rule)得到的算式。 《公式五》
在《公式五》中,「 」代表誤差平方和函數L(t)對最終層14中的權重 的梯度, 代表第L層(即輸出層14)的第j個神經元的膜電位, 的代表第L層神經元(即輸出層14)的第j個神經元的第f根輸出脈衝的第一梯度, 代表第L層(即輸出層14)的第j個神經元的第f根輸出脈衝的發射時間。
第5圖為根據本揭示文件的一實施例的不反應核 的函數圖形。如第5圖所示,不反應核 為一函數,其函數圖形可以在特定區間具有固定斜率 ,並自時間0開始逐漸下降至一不小於零的不反應核終點值(例如0),亦即不反應核 的導數在0<t<T K時為 ,且此函數圖形在時間0至時間T K的時間區間中不為0,在此時間區間之外為0。在一些實施例中,脈衝響應核κ(t)的函數圖形不等於0的區間重疊於不反應核 的函數圖形不等於0的區間,亦即脈衝響應核κ(t)的函數圖形在前述時間區間中不等於0。在一些閾值電位θ小於零的實施例中,不反應核 的函數圖形可以自時間0開始以固定斜率逐漸上升至一不大於零的不反應核終點值(例如0),且在時間0至時間T K的時間區間之外為0。當不反應核 的函數圖形在特定區間具有固定斜率 且與脈衝響應核不等於零的區間相同時,《公式五》中的「 」可簡化為「 」。因此,《公式五》可進一步改寫為以下的《公式六》。 《公式六》
由於誤差平方和函數L(t)對輸出層14的權重 的梯度為時間的函數,故需使用其積分結果來更新輸出層14的權重 。因此,輸出層14的神經元 的權重的更新值 的算式如下: 《公式七》
其中, 代表輸出層14的第j個神經元的輸出脈衝數量, 代表輸出層14的上一層隱藏層12的第i個神經元的輸出脈衝數量。
其中, ,且 。換言之,輸出層14的權重的更新值 關聯於:(1)學習率η;(2)不反應核 的導數;(3)多個第一梯度 的總和;以及(4)第L-1層的隱藏層12的多個輸出脈衝對脈衝響應核κ(t)的卷積結果的總和。
在完成對輸出層14的神經元 的權重更新後,需將第一梯度 傳遞到前層(即與輸出層14相鄰的隱藏層12)以更新其權重。因為只有輸出層14存在目標脈衝,其他隱藏層12若想使用目標脈衝更新其權重,則需利用微分算得第二梯度 ,並反向傳遞第二梯度 到所有隱藏層12(如第1圖所示)。以第L-1層的隱藏層12為例,其第二梯度 的算式如下: 《公式八》
其中, 。換言之,第二梯度 關聯於脈衝響應核κ(t)、脈衝響應核κ(t)的導數、輸出層14的多個權重、第一梯度 以及第L-1層的隱藏層12的輸出脈衝。
藉由將《公式七》中的第一梯度 替換為第二梯度 ,且將標號(L-1)替換成標號(L-2),將標號L替換成標號(L-1),以此類推,可以得到以下的《公式九》以計算第(L-1)層的隱藏層12的神經元的權重的更新值 (如第1圖所示)。 《公式九》
換言之,第L-1層的隱藏層12的權重的更新值 關聯於:(1)學習率η;(2)不反應核 的導數;(3)第L-1層的隱藏層12的多個第二梯度 的總和以及(4)第L-2層的隱藏層12的多個輸出脈衝對脈衝響應核κ(t)的卷積結果的總和。透過將第L-1層的隱藏層12的多個權重與第二梯度 代入《公式八》取代輸出層14的權重與第一梯度 ,且將標號(L-1)替換成標號(L-2),將標號L替換成標號(L-1),依此類推,便可以計算出第L-2層的隱藏層12的第二梯度 。重複進行前述計算,便可計算出脈衝類神經網路1第1層至第L-1層的第二梯度 ~ ,並以此更新每一層的權重,完成脈衝類神經網路1的訓練。應注意,《公式七》與《公式九》僅為利用誤差平方和函數L(t)對權重的梯度計算權重更新值的示例,而非限制本揭示文件。採用其他優化器(Optimizer)(例如自適應矩估計(Adaptive Moment Estimation))等利用誤差平方和函數L(t)對權重的梯度計算權重更新值的方式均在本揭示文件的範圍內。
第6圖為依據本揭示文件一實施例的第一梯度 和第二梯度 繪製的函數圖形。在一些實施例中,第一梯度 和第二梯度 ~ 具有相似的函數圖形,以第L-1層的第二梯度 為例,如第6圖所示,第一梯度 和第二梯度 各自的函數圖形各自包含兩個單調上升區間,且此兩個單調上升區間之間具有一向下跳躍不連續點。藉此,本揭示文件提出的反向傳播訓練方法可具有脈衝時序依賴可塑性訓練法(spike-time-dependent plasticity,簡稱STDP)的特性,亦即當輸入脈衝在目標脈衝放置時間之前輸入神經元,則對應該輸入脈衝的權重會增大。反之,當輸入脈衝在目標脈衝放置時間之後輸入神經元,則對應該輸入脈衝的權重會減小。在另一些實施例中,第一梯度 和第二梯度 各自的函數圖形各自包含兩個單調下降區間,且此兩個單調下降區間之間具有一向上跳躍不連續點。
在一些實施例中,若脈衝響應核κ(t)的函數圖形在單調下降與單調上升時的斜率分別皆為定值(如第3B圖所示),則隱藏層12與輸出層14的神經元的權重的更新值的計算可以再進一步簡化,以增進計算的速度,以下舉例說明。
第7圖為根據一些實施例的加速輸出層14以及隱藏層12的權重的更新值的計算方法的示意圖。以下以輸出層14的權重的更新值 舉例說明,在第7圖中,令《公式七》的項次 為第一函數 ,且令項次 為第二函數 ,其中項次 為多個第一梯度 的總和,項次 為第L-1層隱藏層12的多個輸出脈衝對脈衝響應核κ(t)的卷積運算後的總和。將第一函數 以及第二函數 分別針對時間t進行作圖,可以得到第7圖中的函數圖形。由《公式七》可知,更新值 為第一函數 與第二函數 的乘積之積分結果,相當於將第7圖中,每相鄰兩個時間點之間第一函數 以及第二函數 之乘積之積分進行累加的結果。可以藉由以下步驟簡化《公式七》的計算:(1)獲得第一函數 的轉折點或起始點所對應的多個第一時間點;(2)獲得第二函數 的轉折點或起始點所對應的多個第二時間點;(3)計算這些第一時間點與第二時間點中,每相鄰兩個時間點之間第一函數 及第二函數 之乘積之積分,以得到多個子積分結果;以及(4)加總步驟(3)得到的多個子積分結果。
舉例而言,在第7圖中,第一函數 以及第二函數 在時間t 0~t 5時具有轉折點或起始點,所以在時間t 0~t 5的任二者之間第一函數 及第二函數 可視為兩個直線方程式。因此,《公式七》中的「 」可簡化為計算五次兩個直線方程式之乘積之積分,並加總這五次積分結果。以時間t 2至時間t 3的時間區間為例,在時間t 2時,第二函數 對應的數值為m s2,第一函數 對應的數值為m s1;在時間t 3時,第二函數 對應的數值為m e2,第一函數 對應的數值為m e1。因此,在時間t 2至時間t 3的時間區間中,第一函數 與第二函數 的乘積之積分為: 《公式十》
上述簡化《公式七》(亦即輸出層14的權重的更新值 )計算量的方法也適用於簡化《公式九》(亦即隱藏層12的權重更新值)的計算量,以下舉例說明。在一些實施例中,令《公式九》的項次 為第三函數 ,且令項次 為第四函數 ,其中項次 為多個第二梯度 的總和,項次 為第L-2層隱藏層12的多個輸出脈衝對脈衝響應核κ(t)的卷積運算後的總和。在另一些未繪示的實施例中,將第三函數 以及第四函數 分別針對時間t進行作圖,可以得到函數圖形。由《公式九》可知,更新值 為第三函數 與第四函數 的乘積之積分結果,相當於將函數圖形中,每相鄰兩個時間點之間第三函數 以及第四函數 之乘積之積分。可以藉由以下步驟簡化《公式九》的計算:(1)獲得第三函數 的轉折點或起始點所對應的多個第三時間點;(2)獲得第四函數 的轉折點或起始點所對應的多個第四時間點;(3)計算這些第三時間點與第四時間點中,每相鄰兩個時間點之間第三函數 及第四函數 之乘積之積分,以得到多個子積分結果;以及(4)加總步驟(3)得到的多個子積分結果。
根據前文可以得知,使用函數圖形在單調下降與單調上升時的斜率分別皆為定值的脈衝響應核κ(t)可以使運算大幅簡化因而本揭示文件提出的脈衝類神經網路的反向傳播訓練法,具有計算簡單與功耗低等優點,使其適合在智慧型手機、筆記型電腦或平板電腦等電力受限的邊緣設備上運行。
本揭示文件提供一種非暫態電腦可讀取媒體,儲存有多個電腦可讀取指令,當電腦可讀取指令由一或多個處理器執行時,此一或多個處理器用以執行上文所述之反向傳播訓練方法。在一些實施例中,非暫態電腦可讀取媒體可以是電子、磁、光學、電磁、紅外線及/或半導體系統(或裝置或設備)。舉例而言,非暫態電腦可讀取媒體包含半導體或固態記憶體、磁帶、磁碟片、隨機存取記憶體(Random Access Memory, RAM)、唯讀記憶體(Read Only Memory, ROM)、硬碟及/或光碟片。在一些使用光碟片的實施例中,非暫態電腦可讀取媒體包含唯讀光碟片(Compact Disk-Read Only Memory, CD-ROM)、可讀寫光碟片(Compact Disk-Read /Write, CD-R/W)及/或數位影像光碟片(Digital Video Disc, DVD)。
以上僅為本揭示文件的較佳實施例,在不脫離本揭示文件的範圍或精神的情況下,本揭示文件的結構可以進行各種修飾和均等變化。綜上所述,凡在以下請求項的範圍內對於本揭示文件所做的修飾以及均等變化,皆為本揭示文件所涵蓋的範圍。
1:脈衝類神經網路 10:輸入層 12:隱藏層 14:輸出層 200:脈衝響應模型 A,B:輸入端 θ:閾值電位 ~ :輸入層神經元 ~ , ~ , ~ :神經元 ~ , ~ , ~ , , ~ , ~ :輸出脈衝 ~ , ~ , , ~ :權重 , , :權重更新值 , , :第一梯度 , , :第二梯度 , , :脈衝響應核 :脈衝響應核之導數 :不反應核 :預設梯度 :假想梯度 :第一函數 :第二函數 t 0~t 5:時間 m s1,m s2,m e1,m e2:數值 T +,T K:時間
為使本揭露之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之說明如下: 第1圖為根據一些實施例的脈衝類神經網路的示意圖; 第2圖為根據本揭示文件一實施例的脈衝響應模型(spike response model,SRM)的功能方塊圖; 第3A~3B圖為根據本揭示文件的實施例的脈衝響應核(spike response kernel)的函數圖形; 第4圖為根據一些實施例的預設梯度與假想梯度之計算過程的示意圖; 第5圖為根據本揭示文件的實施例的不反應核(refractory kernel)的函數圖形; 第6圖為根據本揭示文件一實施例的第一梯度和第二梯度繪製的函數圖形;以及 第7圖為根據一些實施例的加速輸出層以及隱藏層的權重的更新值的計算方法的示意圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
1:脈衝類神經網路
10:輸入層
12:隱藏層
14:輸出層
Figure 111133231-A0305-02-0002-43
:輸入層神經元
Figure 111133231-A0305-02-0002-59
,
Figure 111133231-A0305-02-0002-47
,
Figure 111133231-A0305-02-0002-49
:神經元
Figure 111133231-A0305-02-0002-50
,
Figure 111133231-A0305-02-0002-52
,
Figure 111133231-A0305-02-0002-53
,
Figure 111133231-A0305-02-0002-54
:輸出脈衝
Figure 111133231-A0305-02-0002-55
,
Figure 111133231-A0305-02-0002-58
,
Figure 111133231-A0305-02-0002-57
:權重
Figure 111133231-A0305-02-0003-2
,
Figure 111133231-A0305-02-0003-3
,
Figure 111133231-A0305-02-0003-4
:權重更新值
Figure 111133231-A0305-02-0003-5
,
Figure 111133231-A0305-02-0003-6
:第一梯度
Figure 111133231-A0305-02-0003-7
,
Figure 111133231-A0305-02-0003-8
:第二梯度

Claims (9)

  1. 一種反向傳播訓練方法,適用於使用一脈衝響應模型之一脈衝類神經網路系統,其中該脈衝類神經網路系統包含一輸入層、一輸出層以及L-1層隱藏層,L為大於或等於2的正整數,該反向傳播訓練方法包含:(a)根據該輸出層的多個神經元每一者的一輸出脈衝、至少一目標脈衝以及一脈衝響應核(spike response kernel),計算一損失函數,其中該脈衝響應核的一函數圖形具有相等的一初始值與一結束值,且由連續的二單調區間組成,該二單調區間的其中一者為單調上升,另一者為單調下降,該函數圖形在該二單調區間之外的函數值為0;(b)依據該損失函數計算該輸出層的多個第一梯度,並利用該多個第一梯度更新該輸出層的多個權重;以及(c)依據一第L-1層隱藏層的多個輸出脈衝、該脈衝響應核、該輸出層的該多個權重與該多個第一梯度計算該第L-1層隱藏層的多個第二梯度,並利用該第L-1層隱藏層的該多個第二梯度更新該第L-1層隱藏層的多個權重,其中該第L-1層隱藏層相鄰於該輸出層,其中該多個第一梯度各自包含一假想梯度以及一預設梯度,其中該假想梯度關聯於:(1)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核以該輸出層的該多個輸出脈衝的發射時間差為輸入參數,該脈衝響應核的導數以 該至少一目標脈衝的一放置時間差為輸入參數;以及(2)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核與該脈衝響應核的導數皆以該至少一目標脈衝的該放置時間差為輸入參數,且其中該預設梯度關聯於:(1)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核與該脈衝響應核的導數皆以該輸出層的該多個輸出脈衝的發射時間差為輸入參數;以及(2)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核以該至少一目標脈衝的放置時間差為輸入參數,該脈衝響應核的導數以該輸出層的該多個輸出脈衝的發射時間差為輸入參數。
  2. 如請求項1所述之反向傳播訓練方法,更包含:(d)更新一第L-2層隱藏層至一第1層隱藏層中每層隱藏層的多個權重,包含:依據該脈衝響應核、該層隱藏層的多個輸出脈衝、該層隱藏層的一後一層隱藏層的該多個權重以及該後一層隱藏層的多個第二梯度,計算該層隱藏層的多個第二梯度;以及依據該層隱藏層的該多個第二梯度更新該層隱藏層的該多個權重。
  3. 如請求項1所述之反向傳播訓練方法,其中 步驟(a)包含:(a1)針對該輸出層的該多個神經元的其中之一神經元,計算以下兩者之差:(1)該脈衝響應核與該神經元的該輸出脈衝的卷積結果;以及(2)該脈衝響應核與該神經元的該至少一目標脈衝的卷積結果;(a2)針對該輸出層的每個神經元,重複步驟(a1);以及(a3)將每次執行步驟(a1)的計算結果取平方後相加,再進行積分,以計算該損失函數的函數值。
  4. 如請求項1所述之反向傳播訓練方法,其中每層隱藏層的每個第二梯度關聯於一不反應核的導數,該不反應核的一函數圖形為自一時間區間以固定斜率變化直到該不反應核的該函數圖形的函數值為一不反應核終點值,當該脈衝響應模型的一閾值電位大於零時,該不反應核終點值不小於零,當該脈衝響應模型的該閾值電位小於零時,該不反應核終點值不大於零,且該不反應核的該函數圖形的函數值在該時間區間之外為0,該脈衝響應核的該函數圖形的函數值在該時間區間不等於0。
  5. 如請求項1所述之反向傳播訓練方法,其中該輸出層的該多個權重其中之一的一更新值關聯於:(1) 一學習率;(2)一不反應核的導數;(3)該多個第一梯度的總和;以及(4)該L-1層隱藏層的該多個輸出脈衝對該脈衝響應核的卷積結果的總和;且該L-1層隱藏層的該多個權重其中之一的一更新值關聯於:(1)該學習率;(2)該不反應核的導數;(3)該L-1層隱藏層的該多個第二梯度的總和;以及(4)該L-2層隱藏層的該多個輸出脈衝對該脈衝響應核的卷積結果的總和,其中,該不反應核的一函數圖形為自一時間區間以固定斜率變化直到該不反應核的該函數圖形的函數值為一不反應核終點值,當該脈衝響應模型的一閾值電位大於零時,該不反應核終點值不小於零,當該脈衝響應模型的該閾值電位小於零時,該不反應核終點值不大於零,且該不反應核的該函數圖形的函數值在該時間區間之外為0,該脈衝響應核的該函數圖形的函數值在該時間區間不等於0。
  6. 如請求項5所述之反向傳播訓練方法,其中當該脈衝響應核的該函數圖形在該時間區間中單調上升與單調下降時的斜率分別皆為定值時,則該輸出層的該多個權重其中之一的該更新值的計算包含:獲得一第一函數的函數圖形的轉折點或起始點對應的 多個第一時間點,其中該第一函數為該多個第一梯度的總和;獲得一第二函數的函數圖形的轉折點或起始點對應的多個第二時間點,其中該第二函數為該第L-1層隱藏層的該多個輸出脈衝對該脈衝響應核的卷積結果的總和;在該多個第一時間點與該多個第二時間點中每相鄰兩者之間的一子時間區間,計算該第一函數與該第二函數的乘積的積分結果,以得到多個子積分結果;以及加總該多個子積分結果;且該L-1層隱藏層的該多個權重其中之一的該更新值的計算包含:獲得一第三函數的函數圖形的轉折點或起始點對應的多個第三時間點,其中該第三函數為該多個第二梯度的總和;獲得一第四函數的函數圖形的轉折點或起始點對應的多個第四時間點,其中該第四函數為該第L-2層隱藏層的該多個輸出脈衝對該脈衝響應核的卷積結果的總和;在該多個第三時間點與該多個第四時間點中每相鄰兩者之間的該子時間區間,計算該第三函數與該第四函數的乘積的積分結果,以得到該多個子積分結果;以及加總該多個子積分結果。
  7. 如請求項1所述之反向傳播訓練方法,其中該多個第一梯度與該第L-1層隱藏層的該多個第二梯度各 自的函數圖形各自包含二單調區間,當該二單調區間同為單調上升時,該二單調區間之間具有一向下跳躍不連續點,當該二單調區間同為單調下降時,該二單調區間之間具有一向上跳躍不連續點。
  8. 一種非暫態電腦可讀取媒體,儲存有多個電腦可讀取指令,當該多個電腦可讀取指令由一或多個處理器執行以透過反向傳播法訓練包含一輸入層、一輸出層以及L-1層隱藏層的一脈衝類神經網路系統時,該一或多個處理器用於執行以下運作:(a)根據該輸出層的多個神經元每一者的一輸出脈衝、至少一目標脈衝以及一脈衝響應核,計算一損失函數,其中該脈衝響應核的一函數圖形具有相等的一初始值與一結束值,且由連續的二單調區間組成,該二單調區間的其中一者為單調上升,另一者為單調下降,該函數圖形在該二單調區間之外的函數值為0;(b)依據該損失函數計算該輸出層的多個第一梯度,並利用該多個第一梯度更新該輸出層的多個權重;以及(c)依據一第L-1層隱藏層的多個輸出脈衝、該脈衝響應核、該輸出層的該多個權重與該多個第一梯度計算該第L-1層隱藏層的多個第二梯度,並利用該第L-1層隱藏層的該多個第二梯度更新該第L-1層隱藏層的多個權重,其中該第L-1層隱藏層相鄰於該輸出層,其中L為大於或等 於2的正整數,其中該多個第一梯度各自包含一假想梯度以及一預設梯度,其中該假想梯度關聯於:(1)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核以該輸出層的該多個輸出脈衝的發射時間差為輸入參數,該脈衝響應核的導數以該至少一目標脈衝的一放置時間差為輸入參數;以及(2)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核與該脈衝響應核的導數皆以該至少一目標脈衝的該放置時間差為輸入參數,且其中該預設梯度關聯於:(1)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核與該脈衝響應核的導數皆以該輸出層的該多個輸出脈衝的發射時間差為輸入參數;以及(2)該脈衝響應核與該脈衝響應核的導數的乘積,且該脈衝響應核以該至少一目標脈衝的放置時間差為輸入參數,該脈衝響應核的導數以該輸出層的該多個輸出脈衝的發射時間差為輸入參數。
  9. 如請求項8所述之非暫態電腦可讀取媒體,其中該一或多個處理器還用於執行以下運作:(d)更新一第L-2層隱藏層至一第1層隱藏層中每層隱藏層的多個權重,包含:依據該脈衝響應核、該層隱藏層的多個輸出脈衝、該層隱藏層的一後一層隱藏層的該多個權重以及該後一層 隱藏層的多個第二梯度,計算該層隱藏層的多個第二梯度;以及依據該層隱藏層的該多個第二梯度更新該層隱藏層的該多個權重。
TW111133231A 2022-09-01 2022-09-01 反向傳播訓練方法和非暫態電腦可讀取媒體 TWI832406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW111133231A TWI832406B (zh) 2022-09-01 2022-09-01 反向傳播訓練方法和非暫態電腦可讀取媒體

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111133231A TWI832406B (zh) 2022-09-01 2022-09-01 反向傳播訓練方法和非暫態電腦可讀取媒體

Publications (2)

Publication Number Publication Date
TWI832406B true TWI832406B (zh) 2024-02-11
TW202411890A TW202411890A (zh) 2024-03-16

Family

ID=90824690

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111133231A TWI832406B (zh) 2022-09-01 2022-09-01 反向傳播訓練方法和非暫態電腦可讀取媒體

Country Status (1)

Country Link
TW (1) TWI832406B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200210807A1 (en) * 2017-07-25 2020-07-02 Commissariat A L'Energie Atomique Et Aux Energie Alternatives Computer for spiking neural network with maximum aggregation
CN113255905A (zh) * 2021-07-16 2021-08-13 成都时识科技有限公司 脉冲神经网络中神经元的信号处理方法及该网络训练方法
TW202135529A (zh) * 2020-03-03 2021-09-16 美商高通公司 使用基於循環的機器學習系統的視頻壓縮
CN114565079A (zh) * 2022-02-24 2022-05-31 深圳时识科技有限公司 空时域脉冲神经网络训练方法、芯片及电子产品
CN114580622A (zh) * 2022-05-07 2022-06-03 中科南京智能技术研究院 一种神经元膜电位转脉冲序列的方法及系统
CN114819113A (zh) * 2022-07-01 2022-07-29 深圳时识科技有限公司 Snn训练方法及设备、存储介质、芯片及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200210807A1 (en) * 2017-07-25 2020-07-02 Commissariat A L'Energie Atomique Et Aux Energie Alternatives Computer for spiking neural network with maximum aggregation
TW202135529A (zh) * 2020-03-03 2021-09-16 美商高通公司 使用基於循環的機器學習系統的視頻壓縮
CN113255905A (zh) * 2021-07-16 2021-08-13 成都时识科技有限公司 脉冲神经网络中神经元的信号处理方法及该网络训练方法
CN114565079A (zh) * 2022-02-24 2022-05-31 深圳时识科技有限公司 空时域脉冲神经网络训练方法、芯片及电子产品
CN114580622A (zh) * 2022-05-07 2022-06-03 中科南京智能技术研究院 一种神经元膜电位转脉冲序列的方法及系统
CN114819113A (zh) * 2022-07-01 2022-07-29 深圳时识科技有限公司 Snn训练方法及设备、存储介质、芯片及电子设备

Also Published As

Publication number Publication date
TW202411890A (zh) 2024-03-16

Similar Documents

Publication Publication Date Title
WO2023284142A1 (zh) 脉冲神经网络中神经元的信号处理方法及该网络训练方法
US11651259B2 (en) Neural architecture search for convolutional neural networks
US10339041B2 (en) Shared memory architecture for a neural simulator
EP3564866A1 (en) Computation method
US10339447B2 (en) Configuring sparse neuronal networks
CN111047085B (zh) 一种基于元学习的混合动力车辆工况预测方法
CN104751842B (zh) 深度神经网络的优化方法及系统
KR20170031695A (ko) 신경망들에서의 콘볼루션 동작의 분해
JP6092477B2 (ja) ニューラルダイナミクスを修正するための自動化された方法
TW201602807A (zh) Cold神經元尖峰時序反向傳播
CN111967586B (zh) 一种用于脉冲神经网络存内计算的芯片及计算方法
JP2017520825A (ja) 共通特徴にわたるカスタマイズされた識別子
US20150248609A1 (en) Neural network adaptation to current computational resources
CN111639754A (zh) 一种神经网络的构建、训练、识别方法和系统、存储介质
WO2014189717A1 (en) Spike time windowing for implementing spike-timing dependent plasticity (stdp)
CN108171319A (zh) 网络连接自适应深度卷积模型的构建方法
CN112329327B (zh) 一种硬件感知的液体状态机网络生成方法及系统
CN112288080A (zh) 面向脉冲神经网络的自适应模型转化方法及系统
TW201351309A (zh) 用於尖峰神經網路中的策略性突觸失效和學習的方法和裝置
CN113792857B (zh) 一种基于膜电位自增机制的脉冲神经网络训练方法
KR20160125967A (ko) 일반적인 뉴런 모델들의 효율적인 구현을 위한 방법 및 장치
Kemal et al. Performance analysis of optimization algorithms on stacked autoencoder
CN110197251A (zh) 基于深度学习网络的预测方法、装置、设备及存储介质
KR101825933B1 (ko) 좌표 변환을 위한 위상 코딩
KR20160068823A (ko) 스파이킹 신경세포들의 망들에서의 정체 회피