TWI769875B - 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介 - Google Patents

深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介 Download PDF

Info

Publication number
TWI769875B
TWI769875B TW110123222A TW110123222A TWI769875B TW I769875 B TWI769875 B TW I769875B TW 110123222 A TW110123222 A TW 110123222A TW 110123222 A TW110123222 A TW 110123222A TW I769875 B TWI769875 B TW I769875B
Authority
TW
Taiwan
Prior art keywords
layer
node
hidden
deep learning
hidden layer
Prior art date
Application number
TW110123222A
Other languages
English (en)
Other versions
TW202301130A (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 TW110123222A priority Critical patent/TWI769875B/zh
Priority to US17/406,458 priority patent/US20220414458A1/en
Application granted granted Critical
Publication of TWI769875B publication Critical patent/TWI769875B/zh
Publication of TW202301130A publication Critical patent/TW202301130A/zh

Links

Images

Classifications

    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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
    • 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/084Backpropagation, e.g. using gradient descent
    • 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/09Supervised learning
    • 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
    • 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/096Transfer learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Feedback Control In General (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本發明實施例提供一種用於訓練深度學習網路時所使用的記憶體存取方法以及採用所述記憶體存取方法的訓練深度學習網路裝置,其係在計算當層往前一層進行權重更新時,取用後一層往當層進行權重更新計算所產生的差異值,以減少對記憶體的存取次數。由於所述記憶體存取方法對記憶體存取的次數大幅地減少,故能減少訓練時間與功耗,以及延長訓練深度學習網路裝置之電池與記憶體的使用壽命。特別是在電池電量有限的情況下,所述訓練深度學習網路裝置能夠運行地更久。

Description

深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介
本發明是有關於深度學習網路,且特別是在訓練模式下能夠減少記憶體存取次數與消耗功率的深度學習網路與其使用的記憶體存取方法。
深度學習網路技術是近期常用於實現人工智慧的一項重要技術,深度學習網路中的捲積分類神經網包括有由輸入層、至少一隱藏層與輸出層構成的類神經網路,其中捲積分類神經網路更將此類神經網路命名為全連接層,若以第1圖的類神經網路或全連接層為例,類神經網路或全連接層具有一個輸入層IL、兩個隱藏層L1、L2與一個輸出層OL。輸入層、至少一隱藏層與輸出層的每一者都會具有一個以上的節點,某一層之某一個節點獲得的接收值為與其連接之各前一層節點的輸出值的權重加總,且此節點會將獲得的接收值輸入其激勵函數,以產生此節點的輸出值。
舉例來說,針對第1圖的隱藏層L2的第1個節點
Figure 02_image001
,其獲取的接收值為
Figure 02_image003
,且其輸出值為
Figure 02_image005
,其中
Figure 02_image007
Figure 02_image009
表示與節點
Figure 02_image001
連接之前一層(隱藏層L1)節點
Figure 02_image011
Figure 02_image013
的輸出值,
Figure 02_image015
Figure 02_image017
表示節點
Figure 02_image011
Figure 02_image013
至節點
Figure 02_image001
的路徑權重,以及
Figure 02_image019
為節點
Figure 02_image001
的激勵函數。
權重
Figure 02_image021
必須透過不斷更新才能獲得正確訓練結果,以使得深度學習網路在判讀模式下根據輸入資料來精確地產生判讀結果。現有最常見的方式採用反向傳播方式來更新權重
Figure 02_image021
,其計算公式為:
Figure 02_image023
公式(1) ;其中,
Figure 02_image025
為更新後的權重向量,
Figure 02_image027
為當前的權重向量,
Figure 02_image029
為學習率,以及L為損失函數。
從輸出層往前一層(最後一層隱藏層)更新權重
Figure 02_image021
時,於公式(1)中,針對損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
),可透過連鎖律而能夠改寫成:
Figure 02_image035
公式(2) ;其中,
Figure 02_image037
為輸出層節點
Figure 02_image039
將其接收值經過激活函數產生的輸出值,以及
Figure 02_image041
為輸出層節點
Figure 02_image039
獲取的接收值。
以第2圖之不同層的節點的關係示意為例,公式(2)可以表示成:
Figure 02_image043
公式(3) ;其中
Figure 02_image045
表示輸出層節點
Figure 02_image039
的目標值,
Figure 02_image047
為輸出層節點
Figure 02_image039
的激活函數之微分,以及
Figure 02_image049
為對應權重
Figure 02_image021
的節點
Figure 02_image051
(即與輸出層節點
Figure 02_image039
連接的最後一層隱藏層之節點
Figure 02_image051
)的輸出值。從輸出層往前一層(最後一層隱藏層)更新權重
Figure 02_image021
並計算損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
)時,共需要對記憶體進行三次的存取,以獲得
Figure 02_image037
Figure 02_image049
Figure 02_image045
的數值。因此,更新輸出層與最後一層隱藏層之間的所有權重時,共需要
Figure 02_image053
次的接取,其中
Figure 02_image055
Figure 02_image057
分別是輸出層的節點數量與後一層隱藏層之節點數量。若以第1圖的神經網路或全連接層為例,則
Figure 02_image059
=2。
從最後一層隱藏層往前一層隱藏層(或輸入層,如果僅有一層隱藏層的話)更新權重
Figure 02_image021
時,於公式(1)中,針對損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
),可以透過連鎖律而能夠改寫成:
Figure 02_image061
公式(5) ;其中,
Figure 02_image063
為最後一層隱藏層節點
Figure 02_image065
將其接收值經過激活函數產生的輸出值,以及
Figure 02_image067
為最後一層隱藏層節點
Figure 02_image065
獲取的接收值。
公式(5)可以再進一步地表示成:
Figure 02_image069
公式(6) ;其中
Figure 02_image071
表示輸出層節點
Figure 02_image073
的目標值,
Figure 02_image075
為輸出層節點
Figure 02_image073
的激活函數之微分,
Figure 02_image077
為輸出層的節點數量
Figure 02_image057
Figure 02_image079
為最後一層隱藏層節點
Figure 02_image081
的激活函數之微分,
Figure 02_image083
為對應權種
Figure 02_image021
之節點
Figure 02_image081
至輸出層節點
Figure 02_image073
的權重,以及
Figure 02_image085
為對應權重
Figure 02_image021
的節點
Figure 02_image087
(即與最後一層隱藏層節點
Figure 02_image081
連接的前一層之節點
Figure 02_image087
)的輸出值。最後一層隱藏層往前一層(倒數第二層隱藏層或輸入層)更新權重
Figure 02_image021
並計算損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
)時,共需要對記憶體進行
Figure 02_image089
次的存取,以獲得計算時所需使用數值。
若以第1圖為例,更新第2層隱藏層與第1層隱藏層之間的所有權重時,對記憶體進行接取的次數共需要
Figure 02_image091
次,其中
Figure 02_image093
Figure 02_image095
分別是第1層隱藏層與第2層隱藏層之節點數量s與y。以第一圖為例,使用上述類似的方式去計算,更新第1層隱藏層與輸入層之間的所有權重時,對記憶體進行接取的次數共需要
Figure 02_image097
次,其中
Figure 02_image099
是之輸入層的節點數量m。
不論是否使用遷移式學習,類神經網路或捲積分類神經網路的全連接層都需要進行訓練,且在訓練時,越靠近輸入層的權重在更新時,需要更多次地對記憶體進行存取。對記憶體進行存取的次數一但太多,則訓練時間會很耗時,且對應地,記憶體消耗的功率也會增加。在一些需要使用邊緣計算裝置對類神經網路或捲積分類神經網路的全連接層進行訓練的情況時,則先前技術的作法並無法滿足對訓練時間與功耗的要求。
根據本發明之目的,提供一種用於訓練深度學習網路時所使用的記憶體存取方法,其中深度學習網路為類神經網路或捲積分類神經網路,類神經網路或捲積分類神經網路的全連階層由輸入層、
Figure 02_image031
個隱藏層與輸出層構成,且記憶體存取方法包括:更新輸出層與第
Figure 02_image031
層隱藏層之間的權重,並存入輸出層的每一個節點的差異項至記憶體中;透過取用輸出層的每一個節點的差異項來更新第
Figure 02_image031
層隱藏層與第
Figure 02_image101
層隱藏層之間的權重,並存入第
Figure 02_image031
層隱藏層的每一個節點的差異項至記憶體中;透過取用第
Figure 02_image103
層隱藏層的每一個節點的差異項來更新第
Figure 02_image105
層隱藏層與第
Figure 02_image107
層隱藏層之間的權重,並存入第
Figure 02_image105
層隱藏層的每一個節點的差異項至記憶體中,其中
Figure 02_image105
為2至
Figure 02_image101
;以及透過取用第2層隱藏層的每一個節點的差異項來更新第1層隱藏層與輸入層之間的權重。
根據上述技術特徵,深度學習網路為捲積分類神經網路,且訓練方式採用遷移式學習,以僅訓練捲積分類神經網路的全連接層。
根據上述技術特徵,輸出層的節點
Figure 02_image039
的差異項表示為:
Figure 02_image109
;其中
Figure 02_image045
表示輸出層的節點
Figure 02_image039
的目標值,
Figure 02_image111
為輸出層的節點
Figure 02_image039
的激活函數之微分。
根據上述技術特徵,第
Figure 02_image031
層隱藏層的節點
Figure 02_image113
的差異項表示為:
Figure 02_image115
;其中,
Figure 02_image077
為輸出層的節點數量,
Figure 02_image117
為對應權種
Figure 02_image021
之第
Figure 02_image031
層隱藏層的節點
Figure 02_image113
至輸出層的節點
Figure 02_image073
的權重,以及
Figure 02_image119
為輸出層的節點
Figure 02_image073
的差異項。
根據上述技術特徵,第
Figure 02_image105
層隱藏層的節點
Figure 02_image121
的差異項表示為:
Figure 02_image123
;其中
Figure 02_image125
為第
Figure 02_image105
層隱藏層的節點數量,
Figure 02_image117
為對應權種
Figure 02_image021
之第
Figure 02_image105
層隱藏層的節點
Figure 02_image121
至第
Figure 02_image103
層節點
Figure 02_image127
的權重,以及
Figure 02_image129
為第
Figure 02_image103
層隱藏層的節點
Figure 02_image127
的差異項。
根據上述技術特徵,在更新第
Figure 02_image105
層隱藏層與第
Figure 02_image107
層隱藏層之間的所有權種時,該記憶體進行接取的次數共需要
Figure 02_image131
次,其中
Figure 02_image133
為第
Figure 02_image105
層隱藏層的節點數量,
Figure 02_image135
為第
Figure 02_image107
層隱藏層的節點數量,以及
Figure 02_image137
為第
Figure 02_image103
層隱藏層的節點數量。另外,本發明雖然會增加計算隱藏層之差異值所需要額外產生的記憶體之存取次數
Figure 02_image139
,但相較於先前技術所需要的記憶體之總存取次數,本發明整體來說的記憶體之總存取次數少得非常多,其中
Figure 02_image141
Figure 02_image143
表示第
Figure 02_image145
個隱藏層與第
Figure 02_image147
個隱藏層節點數量,以及
Figure 02_image077
表示任一隱藏層連街到單個節點的權重數量。
根據本發明之目的,提供一種深度學習網路裝置,係透過計算機裝置配合軟體而實現,或者透過純硬體電路實現,係用在執行前述的記憶體存取方法,以訓練深度學習網路。
根據上述技術特徵,深度學習網路裝置更包括:通訊單元,用於與外部電子裝置進行通訊;其中在通訊單元無法與跟外部電子裝置通訊時,才執行記憶體存取方法,以訓練深度學習網路。
根據上述技術特徵,深度學習網路裝置為邊緣計算裝置、物連網感測器或監控感測器。
根據本發明之目的,提供一種非揮發性儲存媒介,用以儲存前述記憶體存取方法的多個程式碼。
總而言之,相對於先前技術,本發明實施例提供一種用於訓練深度學習網路時所使用的記憶體存取方法與採用所述記憶體存取方法的訓練深度學習網路裝置,且所述記憶體存取方法可以大幅地減少對記憶體存取的次數。因此,本發明能夠有效地減少訓練時間與記憶體的消耗功率。
為利 貴審查員瞭解本發明之技術特徵、內容與優點及其所能達成之功效,茲將本發明配合附圖,並以實施例之表達形式詳細說明如下,而其中所使用之圖式,其主旨僅為示意及輔助說明書之用,未必為本發明實施後之真實比例與精準配置,故不應就所附之圖式的比例與配置關係解讀、侷限本發明於實際實施上的權利範圍,合先敘明。
為了減少訓練類神經網路或捲積分類神經網路的全連接層時需要對記憶體存取的次數,本發明實施例提供一種用於訓練深度學習網路時所使用的記憶體存取方法以及採用所述記憶體存取方法的訓練深度學習網路裝置。由於對記憶體存取的次數大幅地減少,故能減少訓練時間與功耗,以及延長訓練深度學習網路裝置之電池與記憶體的使用壽命。
首先,請參照第3圖,第3圖是本發明第一實施例的深度學習網路裝置的方塊圖。深度學習網路裝置3主要是透過計算機裝置配合軟體而實現,深度學習網路裝置3包括圖形處理單元31、處理單元32、記憶體33、記憶體直接存取單元34以及通訊單元35,其中處理單元32電性連接圖形處理單元31、記憶體33與通訊單元35,以及記憶體直接存取單元34電性連接圖形處理單元31與記憶體33。
於其中一種實現方式中,圖形處理單元31用以根據處理單元32的控制執行深度學習網路的判讀與訓練之運算,且可以透過記憶體直接存取單元34直接地存取記憶體33。於其中另一種實現方式,記憶體直接存取單元34可以移除,圖形處理單元31用以根據處理單元32的控制執行深度學習網路的判讀與訓練之運算,但須透過處理單元32存取記憶體33。於其中又一種實現方式中,處理單元32執行深度學習網路的判讀與訓練之所有運算,且在此實現方式中,可以將記憶體直接存取單元34與圖形處理單元31移除。
通訊單元35用以跟外部的電子裝置通訊,例如跟雲端運算裝置通訊。在通訊單元35可以跟外部電子裝置通訊時,深度學習網路的訓練可以由外部電子裝置通訊進行;在通訊單元35無法跟外部電子裝置通訊時(例如,發生天災人禍並斷網,且深度學習網路裝置3為電量有限之救難空拍機,其定時或不定時地訓練,以精準地判讀救災影像時),深度學習網路的訓練則由深度學習網路裝置3進行。於本發明實施例中,深度學習網路的訓練可以僅對類神經網路或全連接層進行訓練,例如,遷移式學習的情況下,僅對全連接層進行訓練,或者,也可以是對整個捲積分類神經網路的訓練(包括特徵濾波矩陣的訓練等),且本發明不以此為限制。
另外,請參照第4圖,第4圖是本發明第二實施例的深度學習網路裝置的方塊圖。不同於第一實施例,深度學習網路裝置4主要是由純硬體電路實現(例如,但不限制於場可程式閘陣列(FPGA)或特定應用整合晶片(ASIC)),深度學習網路裝置4包括深度學習網路電路41、控制單元42、記憶體43與通訊單元44,其中控制單元42電性連接深度學習網路電路41、記憶體43與通訊單元44。深度學習網路電路41用於執行深度學習網路的判讀與訓練之運算,並透過控制單元42對記憶體43進行存取。
通訊單元44用以跟外部的電子裝置通訊,例如跟雲端運算裝置通訊。在通訊單元44可以跟外部電子裝置通訊時,深度學習網路的訓練可以由外部電子裝置通訊進行;在通訊單元44無法跟外部電子裝置通訊時,深度學習網路的訓練則由深度學習網路裝置4進行。於本發明實施例中,深度學習網路的訓練可以僅指類神經網路或全連接層的訓練(遷移式學習的情況),或者也可以是包括整個捲積分類神經網路的訓練(包括特徵濾波矩陣的訓練等),且本發明不以此為限制。附帶一提的是,深度學習網路裝置3或4可以是邊緣計算裝置、物連網感測器或監控感測器,且本發明不以此為限制。
深度學習網路裝置3或4會在訓練類神經網路或全連接層,是由輸出層開始往前一層,一層一層逐漸地更新權重(即採反向傳播方式)。為了減少對記憶體33或43存取的存取次數,深度學習網路裝置3或4在針對當層與前一層的權重更新時,會將當層每一個節點的差異項存入至記憶體33或43,例如,在更新輸出層與最後一層隱藏層的權重時,會將每一個輸出層節點的差異項存入至記憶體33或43,或者,在更新第3層隱藏層與第2層隱藏層的權重時,會將每一個第3層隱藏層節點的差異項存入至記憶體33或43。如此,在更新當層至前一層的權重時,可以重複取用當層之後一層節點的差異項,以減少對記憶體33或43的存取,例如,在更新第2層隱藏層與第1層隱藏層的權重時,可以取用第3層隱藏層節點(或輸出層節點,如果僅有兩層隱藏層的話)的差異項。
前述輸出層節點
Figure 02_image039
的差異項可以定義為:
Figure 02_image109
公式(7) 。透過公式(7)的替換,可以將前面公式(6)改寫成:
Figure 02_image149
公式(8) ;其中
Figure 02_image117
為對應權種
Figure 02_image021
之節點
Figure 02_image081
至輸出層節點
Figure 02_image073
的權重。透過取用輸出層節點
Figure 02_image073
的差異項,於最後一層隱藏層往前一層更新權重
Figure 02_image021
並計算損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
)時,共需要對記憶體進行
Figure 02_image151
次的存取,以獲得計算時所需使用數值。若以第1圖為例,更新第2層隱藏層與第1層隱藏層之間的所有權重時,對記憶體進行接取的次數共需要
Figure 02_image153
次,簡單地說,相較於先前技術,減少了
Figure 02_image155
次的存取次數。
若假設共有
Figure 02_image031
個隱藏層,更新第
Figure 02_image031
層隱藏層與第
Figure 02_image101
層隱藏層之間的權重時,第
Figure 02_image031
層隱藏層的差異項會存入記憶體中。第
Figure 02_image031
層隱藏層的每一個差異項可以定義為:
Figure 02_image115
公式(9) ;其中
Figure 02_image117
為對應權種
Figure 02_image021
之第
Figure 02_image031
層隱藏層節點至輸出層節點
Figure 02_image073
的權重。因此,在更新第
Figure 02_image101
層隱藏層與第
Figure 02_image157
層隱藏層之間的權重
Figure 02_image021
,針對損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
),其計算公式可以為:
Figure 02_image159
公式(10) ;其中,
Figure 02_image161
為第
Figure 02_image163
-1)層隱藏層節點
Figure 02_image165
的激活函數之微分,
Figure 02_image059
為第
Figure 02_image031
層隱藏層的節點數量,以及
Figure 02_image167
為對應權重
Figure 02_image021
的節點
Figure 02_image169
(即與第
Figure 02_image101
層隱藏層節點
Figure 02_image165
連接的第
Figure 02_image157
層隱藏層之節點
Figure 02_image169
)的輸出值。透過取用第
Figure 02_image031
層隱藏層的所有差異項,在更新第
Figure 02_image101
層隱藏層與第
Figure 02_image157
層隱藏層之間的權重
Figure 02_image021
並計算損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
)時,共需要對記憶體進行
Figure 02_image171
次的存取,以獲得計算時所需使用數值,其中
Figure 02_image173
為第
Figure 02_image031
層隱藏層的節點數量。在更新第
Figure 02_image101
層隱藏層與第
Figure 02_image157
層隱藏層之間的所有權種時,對記憶體進行接取的次數共需要
Figure 02_image175
次,其中
Figure 02_image177
為第
Figure 02_image101
層隱藏層的節點數量,以及
Figure 02_image179
為第
Figure 02_image157
層隱藏層的節點數量。簡單地說,相較於先前技術,減少了
Figure 02_image181
次的存取次數。
根據以上描述,在更新第
Figure 02_image105
層隱藏層與第
Figure 02_image107
層隱藏層之間的權重時,第
Figure 02_image105
層隱藏層的差異項會存入記憶體中,其中
Figure 02_image105
為2至
Figure 02_image101
。第
Figure 02_image105
層隱藏層的每一個差異項可以定義為:
Figure 02_image123
公式(9) ,其中
Figure 02_image125
為第
Figure 02_image105
層隱藏層的節點數量,以及
Figure 02_image117
為對應權種
Figure 02_image021
之第
Figure 02_image105
層隱藏層節點
Figure 02_image121
至第
Figure 02_image103
層節點
Figure 02_image127
的權重。因此,在更新第
Figure 02_image107
層隱藏層與第
Figure 02_image183
層隱藏層之間的權重
Figure 02_image021
,針對損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
),其計算公式可以為:
Figure 02_image185
公式(11) ;其中
Figure 02_image187
為第
Figure 02_image107
層隱藏層節點
Figure 02_image189
的激活函數之微分,
Figure 02_image191
為第
Figure 02_image105
層隱藏層的節點數量,以及
Figure 02_image193
為對應權重
Figure 02_image021
的節點
Figure 02_image195
(即與第
Figure 02_image107
層隱藏層節點
Figure 02_image189
連接的第
Figure 02_image183
層隱藏層之節點
Figure 02_image195
)的輸出值。透過取用第
Figure 02_image105
層隱藏層的所有差異項,在更新第
Figure 02_image107
層隱藏層與第
Figure 02_image183
層隱藏層之間的權重
Figure 02_image021
並計算損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
)時,共需要對記憶體進行
Figure 02_image197
次的存取,以獲得計算時所需使用數值,其中
Figure 02_image133
為第
Figure 02_image105
層隱藏層的節點數量。在更新第
Figure 02_image107
層隱藏層與第
Figure 02_image183
層隱藏層之間的所有權種時,對記憶體進行接取的次數共需要
Figure 02_image199
次,其中
Figure 02_image135
為第
Figure 02_image107
層隱藏層的節點數量,以及
Figure 02_image201
為第
Figure 02_image183
層隱藏層的節點數量。
在更新第1層隱藏層與輸入層之間的權重
Figure 02_image021
,針對損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
),其計算公式可以為:
Figure 02_image203
公式(11) ;其中,
Figure 02_image205
為第1層隱藏層節點
Figure 02_image207
的激活函數之微分,
Figure 02_image209
為第2層隱藏層的節點數量,以及
Figure 02_image211
為對應權重
Figure 02_image021
的輸入層節點
Figure 02_image213
(即與第1層隱藏層節點
Figure 02_image207
連接的輸入層之節點
Figure 02_image213
的輸出值。透過取用第2層隱藏層的所有差異項,在更新第1層隱藏層與輸入層之間的權重
Figure 02_image021
並計算損失函數
Figure 02_image031
對權重
Figure 02_image021
的微分(
Figure 02_image033
)時,共需要對記憶體進行
Figure 02_image215
次的存取,以獲得計算時所需使用數值,其中
Figure 02_image217
為第2層隱藏層的節點數量。在更新第1層隱藏層與輸入層之間的所有權種時,對記憶體進行接取的次數共需要
Figure 02_image219
次,其中
Figure 02_image221
為第1層隱藏層的節點數量,以及
Figure 02_image099
為輸入層的節點數量。
在此請注意,在更新第1層隱藏層與輸入層之間的所有權種時,因為後續不會使用到第1層隱藏層的所有差異值,故無須再去將第1層隱藏層的所有差異值進行存取。另外,透過上述的記憶體存取方法,記憶體需要額外的記憶空間來記錄各差異值
Figure 02_image119
Figure 02_image223
,但增加的記憶體空間並不大,僅有額外地增加儲存
Figure 02_image225
筆差異值的儲存空間。
進一步地,請參照本發明第5圖,假設類神經網路或全連階層由一個輸入層、
Figure 02_image031
個隱藏層與一個輸出層構成,則總共有步驟S5_1至步驟S5_(L+1)須執行。在步驟S5_1中,更新輸出層與第
Figure 02_image031
層隱藏層之間的權重,並存入每一個輸出層節點的差異項至記憶體中。然後,在步驟S5_2中,更新第
Figure 02_image031
層隱藏層與第
Figure 02_image101
層隱藏層之間的權重,並存入每一個第
Figure 02_image031
層隱藏層節點的差異項至記憶體中,其中在更新第
Figure 02_image031
層隱藏層與第
Figure 02_image101
層隱藏層之間的權重時,自記憶體中取用每一個輸出層節點的差異項。之後,在步驟S5_3中,更新第
Figure 02_image031
層隱藏層與第
Figure 02_image101
層隱藏層之間的權重,並存入每一個第
Figure 02_image101
層隱藏層節點的差異項至記憶體中,其中在更新第
Figure 02_image031
層隱藏層與第
Figure 02_image157
層隱藏層之間的權重時,自記憶體中取用每一個第
Figure 02_image031
層隱藏層節點的差異項。步驟S5_4~步驟S5_L則可以依此類推。最後,在步驟S5_(L+1)中,更新第1層隱藏層與輸入層之間的權重,其中在更新第1層隱藏層與輸入層之間的權重時,自記憶體中取用每一個第2層隱藏層節點的差異項。另外,本發明實施例還提供一種非揮發性儲存媒介,用以儲存上述記憶體存取方法的多個程式碼。
具體而言,本發明實施例提供一種用於訓練深度學習網路時所使用的記憶體存取方法以及採用所述記憶體存取方法的訓練深度學習網路裝置。由於所述記憶體存取方法對記憶體存取的次數大幅地減少,故能減少訓練時間與功耗,以及延長訓練深度學習網路裝置之電池與記憶體的使用壽命。特別是在電池電量有限的情況下,所述訓練深度學習網路裝置能夠運行地更久。
綜觀上述,可見本發明在突破先前之技術下,確實已達到所欲增進之功效,且也非熟悉該項技藝者所易於思及,再者,本發明申請前未曾公開,且其所具之進步性、實用性,顯已符合專利之申請要件,爰依法提出專利申請,懇請  貴局核准本件發明專利申請案,以勵發明,至感德便。
以上所述之實施例僅係為說明本發明之技術思想及特點,其目的在使熟習此項技藝之人士能夠瞭解本發明之內容並據以實施,當不能以之限定本發明之專利範圍,即大凡依本發明所揭示之精神所作之均等變化或修飾,仍應涵蓋在本發明之專利範圍內。
IL:輸入層 L1、L2:隱藏層 OL:輸出層 I 1~I m、H 21~H 2s、H 31~H 3y、O 1~O n、Hi、Hi+1、Ox:節點 w1~w16:權重 3、4:深度學習網路裝置 31:圖形處理單元 32:處理單元 33、43:記憶體 34:記憶體直接存取單元 35、44:通訊單元 41:深度學習網路電路 42:控制單元 S5_1~S5_(L+1):步驟
本發明之多個附圖僅是用於使本發明所屬技術領域的通常知識者易於了解本發明,其尺寸與配置關係僅為示意,且非用於限制本發明,其中各附圖簡要說明如下: 第1圖是一種包括兩個隱藏層之類神經網路或全連接層的示意圖; 第2圖是類神經網路或全連接層中輸出層節點與最後一層隱藏節點之間關係的示意圖; 第3圖是本發明第一實施例的深度學習網路裝置的方塊圖; 第4圖是本發明第二實施例的深度學習網路裝置的方塊圖;以及 第5圖是本發明實施例提供用於訓練深度學習網路時所使用的記憶體存取方法之流程圖。
S5_1~S5_(L+1):步驟

Claims (10)

  1. 一種用於訓練一深度學習網路時所使用的記憶體存取方法,其中該深度學習網路為一類神經網路或一捲積分類神經網路,該類神經網路或該捲積分類神經網路的一全連階層由一輸入層、
    Figure 03_image031
    個隱藏層與一輸出層構成,且該記憶體存取方法包括: 更新該輸出層與該第
    Figure 03_image031
    層隱藏層之間的權重,並存入該輸出層的每一個節點的差異項至一記憶體中; 透過取用該輸出層的每一個節點的差異項來更新該第
    Figure 03_image031
    層隱藏層與該第
    Figure 03_image101
    層隱藏層之間的權重,並存入該第
    Figure 03_image031
    層隱藏層的每一個節點的差異項至該記憶體中; 透過取用該第
    Figure 03_image103
    層隱藏層的每一個節點的差異項來更新該第
    Figure 03_image105
    層隱藏層與該第
    Figure 03_image107
    層隱藏層之間的權重,並存入該第
    Figure 03_image105
    層隱藏層的每一個節點的差異項至該記憶體中,其中
    Figure 03_image105
    為2至
    Figure 03_image101
    ;以及 透過取用該第2層隱藏層的每一個節點的差異項來更新該第1層隱藏層與該輸入層之間的權重。
  2. 如請求項1所述之記憶體存取方法,其中該深度學習網路為該捲積分類神經網路,且訓練方式採用遷移式學習,以僅訓練該捲積分類神經網路的該全連接層。
  3. 如請求項1所述之記憶體存取方法,其中該輸出層的節點
    Figure 03_image039
    的差異項表示為:
    Figure 03_image109
    ;其中
    Figure 03_image045
    表示該輸出層的節點
    Figure 03_image039
    的目標值,
    Figure 03_image111
    為該輸出層的節點
    Figure 03_image039
    的激活函數之微分。
  4. 如請求項3所述之記憶體存取方法,其中該第
    Figure 03_image031
    層隱藏層的節點
    Figure 03_image113
    的差異項表示為:
    Figure 03_image115
    ;其中,
    Figure 03_image077
    為該輸出層的節點數量,
    Figure 03_image117
    為對應權種
    Figure 03_image021
    之該第
    Figure 03_image031
    層隱藏層的節點
    Figure 03_image113
    至該輸出層的節點
    Figure 03_image073
    的權重,以及
    Figure 03_image119
    為該輸出層的節點
    Figure 03_image073
    的差異項。
  5. 如請求項4所述之記憶體存取方法,其中該第
    Figure 03_image105
    層隱藏層的節點
    Figure 03_image121
    的差異項表示為:
    Figure 03_image123
    ;其中
    Figure 03_image125
    為該第
    Figure 03_image105
    層隱藏層的節點數量,
    Figure 03_image117
    為對應權種
    Figure 03_image021
    之該第
    Figure 03_image105
    層隱藏層的節點
    Figure 03_image121
    至第
    Figure 03_image103
    層節點
    Figure 03_image127
    的權重,以及
    Figure 03_image129
    為該第
    Figure 03_image103
    層隱藏層的節點
    Figure 03_image127
    的差異項。
  6. 如請求項5所述之記憶體存取方法,其中在更新該第
    Figure 03_image105
    層隱藏層與該第
    Figure 03_image107
    層隱藏層之間的所有權種時,對該記憶體進行接取的次數共需要
    Figure 03_image131
    次,其中
    Figure 03_image133
    為該第
    Figure 03_image105
    層隱藏層的節點數量,
    Figure 03_image135
    為該第
    Figure 03_image107
    層隱藏層的節點數量,以及
    Figure 03_image137
    為該第
    Figure 03_image103
    層隱藏層的節點數量。
  7. 一種深度學習網路裝置,係透過一計算機裝置配合一軟體而實現,或者透過一純硬體電路實現,係用在執行如請求項1至6其中一項的記憶體存取方法,以訓練該深度學習網路。
  8. 如請求項7所述之深度學習網路裝置,更包括: 一通訊單元,用於與一外部電子裝置進行通訊; 其中在該通訊單元無法與跟該外部電子裝置通訊時,才執行該記憶體存取方法,以訓練該深度學習網路。
  9. 如請求項7所述之深度學習網路裝置,其中該深度學習網路裝置為一邊緣計算裝置、一物連網感測器或一監控感測器。
  10. 一種非揮發性儲存媒介,用以儲存如請求項1至6其中一項的記憶體存取方法的多個程式碼。
TW110123222A 2021-06-24 2021-06-24 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介 TWI769875B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110123222A TWI769875B (zh) 2021-06-24 2021-06-24 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介
US17/406,458 US20220414458A1 (en) 2021-06-24 2021-08-19 Deep learning network device, memory access method and non-volatile storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110123222A TWI769875B (zh) 2021-06-24 2021-06-24 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介

Publications (2)

Publication Number Publication Date
TWI769875B true TWI769875B (zh) 2022-07-01
TW202301130A TW202301130A (zh) 2023-01-01

Family

ID=83439611

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110123222A TWI769875B (zh) 2021-06-24 2021-06-24 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介

Country Status (2)

Country Link
US (1) US20220414458A1 (zh)
TW (1) TWI769875B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116187399A (zh) * 2023-05-04 2023-05-30 北京麟卓信息科技有限公司 一种基于异构芯片的深度学习模型计算误差定位方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050729A1 (en) * 2018-03-26 2019-02-14 Intel Corporation Deep learning solutions for safe, legal, and/or efficient autonomous driving
TW202001693A (zh) * 2018-06-11 2020-01-01 瑞士商Inait公司 將人工神經網路中之活動特徵化之方法及包含一或多個可執行該方法之計算機之系統
TW202044123A (zh) * 2019-05-02 2020-12-01 美商超捷公司 用於深度學習人工神經網路中之類比神經記憶體的可組態輸入塊及輸出塊與實體佈局
US20210150306A1 (en) * 2019-11-14 2021-05-20 Qualcomm Incorporated Phase selective convolution with dynamic weight selection
US20210174203A1 (en) * 2019-12-10 2021-06-10 Samsung Electronics Co., Ltd. Neural network device, operation method thereof, and neural network system including the same
CN113011567A (zh) * 2021-03-31 2021-06-22 深圳精智达技术股份有限公司 一种卷积神经网络模型的训练方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050729A1 (en) * 2018-03-26 2019-02-14 Intel Corporation Deep learning solutions for safe, legal, and/or efficient autonomous driving
TW202001693A (zh) * 2018-06-11 2020-01-01 瑞士商Inait公司 將人工神經網路中之活動特徵化之方法及包含一或多個可執行該方法之計算機之系統
TW202044123A (zh) * 2019-05-02 2020-12-01 美商超捷公司 用於深度學習人工神經網路中之類比神經記憶體的可組態輸入塊及輸出塊與實體佈局
US20210150306A1 (en) * 2019-11-14 2021-05-20 Qualcomm Incorporated Phase selective convolution with dynamic weight selection
US20210174203A1 (en) * 2019-12-10 2021-06-10 Samsung Electronics Co., Ltd. Neural network device, operation method thereof, and neural network system including the same
CN113011567A (zh) * 2021-03-31 2021-06-22 深圳精智达技术股份有限公司 一种卷积神经网络模型的训练方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116187399A (zh) * 2023-05-04 2023-05-30 北京麟卓信息科技有限公司 一种基于异构芯片的深度学习模型计算误差定位方法
CN116187399B (zh) * 2023-05-04 2023-06-23 北京麟卓信息科技有限公司 一种基于异构芯片的深度学习模型计算误差定位方法

Also Published As

Publication number Publication date
TW202301130A (zh) 2023-01-01
US20220414458A1 (en) 2022-12-29

Similar Documents

Publication Publication Date Title
CN107169563B (zh) 应用于二值权重卷积网络的处理系统及方法
CN108345939A (zh) 基于定点运算的神经网络
EP4120138B1 (en) System and method for molecular property prediction using hypergraph message passing neural network (hmpnn)
WO2019102984A1 (ja) 学習装置及び学習方法、識別装置及び識別方法、プログラム並びに記録媒体
CN107480696A (zh) 一种分类模型构建方法、装置及终端设备
CN113011155B (zh) 用于文本匹配的方法、装置、设备和存储介质
CN110378470A (zh) 神经网络模型的优化方法、装置以及计算机存储介质
TWI769875B (zh) 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介
CN113392229A (zh) 供应链关系构建和预测方法、装置、设备、存储介质
CN116500449A (zh) 电芯温度预测方法、装置、存储介质及电子设备
WO2022111002A1 (zh) 用于训练神经网络的方法、设备和计算机可读存储介质
CN113240177B (zh) 训练预测模型的方法、预测方法、装置、电子设备及介质
CN113626610A (zh) 知识图谱嵌入方法、装置、计算机设备和存储介质
CN112966193A (zh) 出行意图推断方法、模型训练方法、相关装置及电子设备
CN113490955A (zh) 用于产生金字塔层的架构的系统和方法
WO2023174064A1 (zh) 自动搜索方法、自动搜索的性能预测模型训练方法及装置
CN117351299A (zh) 图像生成及模型训练方法、装置、设备和存储介质
CN110009091B (zh) 学习网络在等价类空间中的优化
US20230025626A1 (en) Method and apparatus for generating process simulation models
CN117011118A (zh) 模型参数更新方法、装置、计算机设备以及存储介质
CN113610709B (zh) 模型量化方法、装置、电子设备和计算机可读存储介质
US20190095782A1 (en) Calculation device for and calculation method of performing convolution
CN112784967A (zh) 信息处理方法、装置以及电子设备
WO2022050426A1 (ja) 推定装置、推定方法及びプログラム
Zhang et al. DA-LSTM: A long short-term memory with depth adaptive to non-uniform information flow in sequential data