TW202004568A - 應用在深度神經網路的全指數運算方法、電腦裝置及電腦可讀取的記錄媒體 - Google Patents
應用在深度神經網路的全指數運算方法、電腦裝置及電腦可讀取的記錄媒體 Download PDFInfo
- Publication number
- TW202004568A TW202004568A TW107117479A TW107117479A TW202004568A TW 202004568 A TW202004568 A TW 202004568A TW 107117479 A TW107117479 A TW 107117479A TW 107117479 A TW107117479 A TW 107117479A TW 202004568 A TW202004568 A TW 202004568A
- Authority
- TW
- Taiwan
- Prior art keywords
- exponential
- deep neural
- neural network
- quantized
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Neurology (AREA)
- Mathematical Optimization (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
一種應用在深度神經網路的全指數運算方法,其預先將該深度神經網路的每一個神經元的該權重矩陣中的權重值正規化並量化成能以指數2-i
表示的量化後權重值,且預先將要輸入該深度神經網路的一圖像資料的複數圖素值正規化並量化成能以指數2-j
表示的量化後圖素值,再將該等量化後圖素值輸入該深度神經網路,使該深度神經網路的第一層的各該神經元以量化後的該權重矩陣、指數乘法器、指數加法器及指數減法器對該等量化後圖素值進行卷積運算,藉此降低深度神經網路的運算複雜度及電路複雜度,提高深度神經網路的運算速度並減少記憶體空間的佔用。
Description
本發明是有關於全指數運算方法,特別是指一種應用在深度神經網路的全指數運算方法。
深度神經網路是機器學習中一種深度學習的方法,藉由其模仿生物神經系統的數學模型,不斷地對其提供大量的資料進行不同階層與架構的多次運算和訓練,即能訓練出最佳化且最有效的一資料識別模型。如圖1所示,深度神經網路通常包含一輸入層11、一輸出層12以及連接該輸入層11與該輸出層12,且位於該輸入層11與該輸出層12之間的隱藏層13,隱藏層13由複數個前後相互連結的層14構成,其中每一層14具有複數個神經元141,每一個神經元141具有如圖2所示的一由複數個(例如3x3)權重值W構成的權重矩陣10。由該輸入層11輸入的資料D,例如圖2所示之一張具有5x5個圖素D的圖像20會被輸入隱藏層11中的第一層14的每一個神經元141,各該神經元141會在圖像上依序移動該權重矩陣10,並在權重矩陣10每一個經過的位置,讓權重矩陣10中的權重值W與圖像20上重疊(對應)的部分圖素D相乘並加總(即卷積運算)而得到一特徵值R,各該神經元141再將權重矩陣10經過圖像20上所有位置後運算得到的該等特徵值R輸出給第二層14的每一個神經元141,使第二層14的每一個神經元141對輸入的該等特徵值R進行如上所述的卷積運算,並將運算結果再輸出給其下一層14的每一個神經元141,依此類推,直到最後一層141的每一個神經元141輸出運算結果給輸出層12。
但該權重矩陣10中的權重值W和輸入的資料D通常以浮點數表示,因此神經元141除了需要利用浮點乘法器對權重值W和輸入的資料D進行浮點數相乘運算外,由於浮點數相乘運算的運算量大且乘法運算也比加法運算來得相對複雜,因此浮點數的乘法運算比加法運算耗費更多的時間。而且以邏輯電路實現的浮點乘法器體積相較於加法器更為龐大,使得採用浮點乘法器的深度神經網路被實作成硬體電路的體積相對龐大。此外深度神經網路的權重值W和最終輸出的運算結果都是以浮點數儲存,因此會佔用大量的記憶體空間。
因此,本發明之目的,即在提供一種應用在深度神經網路的全指數運算方法,以及實現該方法的電腦裝置和電腦可讀取的記錄媒體,其能降低深度神經網路的運算量、運算複雜度及電路複雜度,以及減少記憶體空間的佔用並提高深度神經網路的運算速度。
於是,本發明一種應用在深度神經網路的全指數運算方法,其中該深度神經網路載於一電腦裝置並具有一由複數個前後相互連結的層構成的隱藏層,該隱藏層中的每一層具有複數個神經元,每一個神經元具有由m個(m為整數且m≧1)權重值構成的一權重矩陣;該方法包括:該電腦裝置的一預處理模組預先將該深度神經網路的每一個神經元的該m個權重值正規化,使該m個正規化權重值落在-1~+1之間的範圍,並將各該正規化權重值量化成能以指數2-i
表示的量化後權重值,且該預處理模組以X位元表示該等量化後權重值的複數個群組;該預處理模組預先將要輸入該深度神經網路的一圖像資料的複數圖素值正規化,使該等正規化圖素值落在-1~+1之間的範圍,並將各該正規化圖素值量化成能以指數2-j
表示的量化後圖素值,且該預處理模組以Y位元表示該等量化後圖素值的複數個群組;該預處理模組將該等量化後圖素值輸入該深度神經網路的該隱藏層中的第一層,使第一層的各該神經元以量化後的該權重矩陣對該等量化後圖素值進行卷積運算,且在每一次的卷積運算中,各該神經元利用一指數乘法器將該m個量化後權重值2-i
分別與該等量化後圖素值中重疊的部分量化後圖素值2-j
相乘而得到m個乘積,其中,該指數乘法器計算每一個乘積的公式為: 2- 𝑖
×2- 𝑗
=,若𝑖,𝑗≠(2N
−1)且𝑖+𝑗≦(2𝑁
−1); 2- 𝑖
×2- 𝑗
=,若𝑖+𝑗>(2𝑁
−1)或𝑖==(2𝑁
−1)或𝑗==(2𝑁
−1); 其中若X=Y則N=X,若X≠Y則N取X、Y兩者中較大者;及 在每一次的卷積運算中,各該神經元將該等乘積m中為正值的部分乘積輸入一指數加法器中累加而得到一正累加值2-p
,並另外將該等乘積m中為負值的部分乘積輸入該第一指數加法器中累加而得到一負累加值2-q
,再將該正累加值2-p
與該負累加值2-q
輸入一指數減法器相減而得到一特徵值r; 其中,該指數加法器計算兩個指數2-a
和2-b
相加的公式為: 2-a
+2-b
=2-c
,若a≠b,則c取a、b兩者中較小者; 2-a
+2-b
=2-a+1
,若a==b且a≠(2N
−1)且2-a+1
<20
; 2-a
+2-b
=20
,若a==b且a≠(2N
−1)且2-a+1
≥20
; 2-a
+2-b
=2-a
,若b==(2N
−1); 其中,該指數減法器計算該特徵值r的公式為: r=2-p
−2-q
=2-p
,若p≦q-1或q==(2𝑁
−1); r=2-p
−2-q
=,若p==q; r=2-p
−2-q
=−2-q
,若p==q+1; r=2-p
−2-q
=2-p
,若q==p+1; r=2-p
−2-q
=−2-q
,若q≦p-1或p==(2𝑁
−1)。
在本發明的一些實施態樣中,各該神經元還將完成全部卷積運算產生的該等特徵值r經由一線性整流函數進行整流運算,而產生相對應的複數個整流後特徵值r’,並將該等整流後特徵值r’輸入與其連結的下一層的該等神經元,使下一層的各該神經元利用量化後的該權重矩陣、該指數乘法器、該指數加法器及該指數減法器對該等整流後特徵值r’進行卷積運算。
在本發明的一些實施態樣中,該線性整流(Rectified Linear Unit, ReLU)函數可以是斜坡函數、泄露線性整流(Leaky ReLU)函數、帶泄露隨機線性整流(Randomized Leaky ReLU)函數及噪聲線性整流(Noisy ReLU)函數其中之一。
再者,本發明實現上述方法的一種電腦裝置,包括一深度神經網路及一預處理模組,其中該深度神經網路具有一由複數個前後相互連結的層構成的隱藏層,該隱藏層中的每一層具有複數個神經元,每一個神經元具有由m個(m為整數且m≧1)權重值構成的一權重矩陣、一指數乘法器、一指數加法器及一指數減法器;該預處理模組,其預先將該深度神經網路的每一個神經元的該m個權重值正規化,使該m個正規化權重值落在-1~+1之間的範圍,並將各該正規化權重值量化成能以指數2-i
表示的量化後權重值,且該預處理模組以X位元表示該等量化後權重值的複數個群組;且該預處理模組預先將要輸入該深度神經網路的一圖像資料的複數圖素值正規化,使該等正規化圖素值落在-1~+1之間的範圍,並將各該正規化圖素值量化成能以指數2-j
表示的量化後圖素值,且該預處理模組以Y位元表示該等量化後圖素值的複數個群組; 且該預處理模組將該等量化後圖素值輸入該深度神經網路的該隱藏層中的第一層,使第一層的各該神經元以量化後的該權重矩陣對該等量化後圖素值進行卷積運算,且在每一次的卷積運算中,各該神經元利用該指數乘法器將該m個量化後權重值2-i
分別與該等量化後圖素值中重疊的部分量化後圖素值2-j
相乘而得到m個乘積,其中,該指數乘法器計算每一個乘積之公式為: 2- 𝑖
×2- 𝑗
=,若𝑖,𝑗≠(2N
−1)且𝑖+𝑗≦(2𝑁
−1); 2- 𝑖
×2- 𝑗
=,若𝑖+𝑗>(2𝑁
−1)或𝑖==(2𝑁
−1)或𝑗==(2𝑁
−1); 其中若X=Y則N=X,若X≠Y則N取X、Y兩者中較大者; 且在每一次的卷積運算中,各該神經元將該等乘積m中為正值的部分乘積輸入該指數加法器中累加而得到一正累加值2-p
,並將該等乘積m中為負值的部分乘積輸入該指數加法器中累加而得到一負累加值2-q
,再將該正累加值2-p
與該負累加值2-q
輸入該指數減法器相減而得到一特徵值r; 其中,該指數加法器計算兩個指數2-a
和2-b
相加的公式為: 2-a
+2-b
=2-c
,若a≠b,則c取a、b兩者中較小者; 2-a
+2-b
=2-a+1
,若a==b且a≠(2N
−1)且2-a+1
<20
; 2-a
+2-b
=20
,若a==b且a≠(2N
−1)且2-a+1
≥20
; 2-a
+2-b
=2-a
,若b==(2N
−1); 其中,該指數減法器計算該特徵值r的公式為: r=2-p
−2-q
=2-p
,若p≦q-1或q==(2𝑁
−1); r=2-p
−2-q
=,若p==q; r=2-p
−2-q
=−2-q
,若p==q+1; r=2-p
−2-q
=2-p
,若q==p+1; r=2-p
−2-q
=−2-q
,若q≦p-1或p==(2𝑁
−1)。
在本發明的一些實施態樣中,該深度神經網路及該預處理模組是儲存於該電腦裝置的一儲存單元中,且能被該電腦裝置的一處理單元讀取並執行的軟體程式。
在本發明的一些實施態樣中,該深度神經網路及/或該預處理模組是整合在該電腦裝置的一特殊應用積體電路晶片或一可程式邏輯電路裝置中,或者是被燒錄在該電腦裝置的一微處理器中的韌體。
此外,本發明實現上述方法的一種電腦可讀取的記錄媒體,其中儲存一包含一深度神經網路及一預處理模組的軟體程式,該深度神經網路具有一由複數個前後相互連結的層構成的隱藏層,該隱藏層中的每一層具有複數個神經元,每一個神經元具有由m個(m為整數且m≧1)權重值構成的一權重矩陣、一指數乘法器、一指數加法器及一指數減法器,且該軟體程式被一電腦裝置載入並執行後,該電腦裝置能完成如上所述應用在深度神經網路的全指數運算方法。
本發明之功效在於:藉由預先將該深度神經網路中各該神經元的該權重矩陣中的該等權重值以及預備輸入深度該神經網路的圖像資料分別進行正規化,並分別量化成以2為底數的指數2-i
及2-j
,再將圖像資料之量化後圖素值輸入該深度神經網路的該隱藏層,使與隱藏層的第一層的各該神經元之量化後權重矩陣進行卷積運算,且藉由各該神經元中的指數乘法器、指數加法器及指數減法器對輸入的指數進行簡單的加、減運算及判斷取代習知浮點數乘法運算,而降低神經元的運算複雜度並快速地完成卷積運算,不但提高深度神經網路的運算速度,並能有效簡化並縮減實作成硬體之深度神經網路的電路體積。且當深度神經網路是以軟體程式實現時,亦能有效提高其運算速度。
在本發明被詳細描述之前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
參閱圖3,是本發明應用在深度神經網路的全指數運算方法的一實施例的主要流程,其由圖4所示的一電腦裝置4執行,該電腦裝置4主要包括一儲存單元41(即電腦可讀取的記錄媒體)及一處理單元42,該儲存單元41中存有一包含一深度神經網路43及一預處理模組44的程式,且該程式能被該電腦裝置4的該處理單元42載入並執行,而完成圖3所示的方法流程,但不以此為限。亦即,該深度神經網路43及/或該預處理模組44也可以被整合在該電腦裝置4的一特殊應用積體電路(Application-specific integrated circuit,縮寫為ASIC)晶片或一可程式邏輯裝置(Programmable Logic Device,縮寫為PLD)中,而使該特殊應用積體電路晶片或該可程式邏輯電路裝置能完成圖3所示的方法流程。且該特殊應用積體電路晶片或該可程式邏輯電路裝置即為本實施例的該處理單元42;或者該深度神經網路43及/或該預處理模組44也可以是被燒錄在該電腦裝置4的一微處理器中的韌體,使該微處理器執行該韌體即能完成圖3所示的方法流程,且該微處理器即為本實施例的該處理單元42。
且如同圖1所示,本實施例的該深度神經網路43除了具有一輸入層11及一輸出層12外,還具有一位於輸入層11和輸出層12之間且由複數個前後相互連結的層141構成的隱藏層14,該隱藏層14中的每一層141具有複數個神經元141,每一個神經元141具有由m個(m為整數且m≧1)權重值構成的一權重矩陣,例如圖2所示具有3x3個權重值W的權重矩陣10,以及如圖5所示的一指數乘法器51、一指數加法器52及一指數減法器53。
且為了降低深度神經網路的運算量及運算複雜度,如圖3的步驟S1,該預處理模組44預先將該深度神經網路43的每一個神經元141的該m個權重值W正規化,使該m個正規化權重值落在-1~+1之間的範圍,並將各該正規化權重值以log2
量化成能以指數2-i
表示的量化後權重值,且該預處理模組44將該等量化後權重值分成複數個群組,並以X位元表示該等群組。
舉例來說,如圖6(a)所示,假設該等權重值W有-2、-1.5、0、0.5、1、1.5等分佈在-2~1.5之間的值,則該預處理模組44將該等權重值W除以2以進行正規化,使該等正規化權重值(-1、-0.75、0、0.25、0.5、0.75)落在-1~+1之間的範圍,如圖6(b)所示;然後,將各該正規化權重值(-1、-0.75、0、0.25、0.5、0.75)以log2
量化成以指數2-i
表示的量化後權重值。因此,1、0.5、0.25及0這四個正規化權重值的絕對值將被以20
、2-1
、2-2
及2-3
表示,且由於以2為底的指數無法表示0.75,因此將0.75量化至最接近的1而以20
來表示。所以該預處理模組44將該等量化後權重值的絕對值分成四個群組(即20
、2-1
、2-2
及2-3
),並以2位元表示該等群組,亦即00、01、10、11分別代表20
、2-1
、2-2
及2-3
,並另外記錄(標記)量化後權重值為正值或負值。
因此,假設落在-1~+1之間的正規化權重值還包含正或負的0.125、0.0625、0.03125及0.015625或接近這些數值的值時,其以指數2-i
表示的量化後權重值將分別為2-4
、2-5
、2-6
及2-7
,則該預處理模組44需使用3位元才能表示20
~2-7
共8個群組,即以000、001、010、011、100、101、110、111分別代表20
、2-1
、2-2
…2-7
。同理,若量化後權重值還包含小於2-7
的值,則該預處理模組44需使用4位元或4位元以上的位元數來表示超過8個以上的量化後權重值(絕對值)群組,以此類推。
然後,如圖3的步驟S2,該預處理模組44預先將要輸入該深度神經網路43的一圖像資料,例如圖2所示具有5x5個圖素D的圖像20正規化,使該等正規化圖素的圖素值落在-1~+1之間的範圍,並將各該正規化圖素值以log2
量化成能以指數2-j
表示的量化後圖素值,且該預處理模組44將該等量化後圖素值分成複數個群組,並以Y位元表示該等群組。同理,如圖6所示的例子,若量化後圖素值有20
、2-1
、2-2
及2-3
這四個絕對值群組,則該預處理模組44將以2位元表示該等群組,亦即以00、01、10、11分別代表20
、2-1
、2-2
及2-3
,並另外記錄量化後圖素值為正值或負值。而若量化後圖素值還包含更小的絕對值(例如0.125、0.0625、0.03125及0.015625或更小的值)時,則該預處理模組44將以3位元或更多位元來表示20
~2-7
這8個群組或超過8個以上的更多群組,即以000、001、010、011、100、101、110、111分別代表20
、2-1
、2-2
…2-7
,依此類推。因此,用來表示量化後權重值2-i
和量化後圖素值2-j
的位元數可能會相同或不同,端視量化後權重值2-i
和量化後圖素值2-j
的絕對值群組數而定。此外,步驟S1和步驟S2並無先後順序之分,也可以同步進行。
然後,如圖3之步驟S3,該預處理模組44將該等量化後圖素值2-j
經由該深度神經網路43的輸入層11輸入該隱藏層13中的第一層14,使第一層14的各該神經元141以量化後的該權重矩陣10對該等量化後圖素值2-j
進行卷積運算。亦即,如圖2所示,該神經元141會在圖像20上一次移動一個單位(圖素)地依序移動量化後的該權重矩陣10,並在量化後的該權重矩陣10每一個經過的位置,讓量化後的該權重矩陣10中的量化後權重值2-i
與圖像20上重疊(對應)部分的量化後圖素值2-j
相乘並將該等乘積加總(即卷積運算)而得到一特徵值r。
且在每一次的卷積運算中,各該神經元141利用該指數乘法器51將該m個量化後權重值2-i
分別與該等量化後圖素值2-j
中重疊的部分量化後圖素值2-j
相乘而得到m個乘積,其中,該指數乘法器51計算每一個乘積的公式為: 2- 𝑖
×2- 𝑗
=,若𝑖,𝑗≠(2N
−1)且𝑖+𝑗≦(2𝑁
−1); 2- 𝑖
×2- 𝑗
=,若𝑖+𝑗>(2𝑁
−1)或𝑖==(2𝑁
−1)或𝑗==(2𝑁
−1); 其中,若X=Y則N=X,若X≠Y則N取X、Y兩者中較大者; 舉例來說,若量化後權重值2-i
和量化後圖素值2-j
的絕對值群組數都在4或4以下,則X=Y=2,N=2,該指數乘法器51計算每一個乘積的公式則為: 2- 𝑖
×2- 𝑗
=,若𝑖,𝑗≠3且𝑖+𝑗≦3; 2- 𝑖
×2- 𝑗
=2−3
,若𝑖+𝑗>3或𝑖==3或𝑗==3; 而若量化後權重值2-i
的絕對值群組數在4或4以下,但量化後圖素值2-j
的絕對值群組數在5~7之間,則X=2,Y=3,N=3,該指數乘法器51計算每一個乘積之公式則為: 2- 𝑖
×2- 𝑗
=,若𝑖,𝑗≠7且𝑖+𝑗≦7; 2- 𝑖
×2- 𝑗
=2−7
,若𝑖+𝑗>7或𝑖==7或𝑗==7; 由此可知,在𝑖,𝑗≠(2N
−1)且𝑖+𝑗≦(2𝑁
−1)的情況下,該指數乘法器51實際上只是將量化後權重值2-i
和量化後圖素值2-j
的指數i、j相加,即得到兩者的乘積,並不需要進行乘法運算,且在𝑖+𝑗>(2𝑁
−1)或𝑖==(2𝑁
−1)或𝑗==(2𝑁
−1)的情況下,該指數乘法器51甚至不需進行實際運算,即能輸出量化後權重值2-i
和量化後圖素值2-j
的乘積。
且在每一次的卷積運算中,各該神經元141將該等乘積m中為正值的部分乘積輸入該指數加法器52中進行累加而得到一正累加值2-p
,再另外將該等乘積m中為負值的部分乘積輸入該第一指數加法器52中進行累加而得到一負累加值2-q
,再將該正累加值2-p
與該負累加值2-q
輸入該指數減法器53相減而得到該特徵值r。 其中,該指數加法器53計算兩個指數(例如乘積2-a
和2-b
或一個乘積2-a
和一個累加值2-b
)相加的公式為: 2-a
+2-b
=2-c
,若a≠b,則c取a、b兩者中較小者; 2-a
+2-b
=2-a+1
,若a==b且a≠(2N
−1)且2-a+1
<20
; 2-a
+2-b
=20
,若a==b且a≠(2N
−1)且2-a+1
≥20
; 2-a
+2-b
=2-a
,若b==(2N
−1); 舉例來說, 若a=2,b=3,則c=a,2-a
+2-b
=2-a
; 若a=b=2,且N=2時,則 2-a
+2-b
=2-a+1
,若a==b且a≠3且2-a+1
<20
; 2-a
+2-b
=20
,若a==b且a≠3且2-a+1
≥20
; 2-a
+2-b
=2-a
,若b==3; 其中,該指數減法器53計算該特徵值r的公式為: r=2-p
−2-q
=2-p
,若p≦q-1或q==(2𝑁
−1); r=2-p
−2-q
=,若p==q; r=2-p
−2-q
=-2-q
,若p==q+1; r=2-p
−2-q
=2-p
,若q==p+1; r=2-p
−2-q
=−2-q
,若q≦p-1或p==(2𝑁
−1); 舉例來說, 若p=1,q=3,則r=2-p
−2-q
=2-p
; 若p=q=3且N=2,則r=2-p
−2-q
=2-3
; 若p=2,q=1,則r=2-p
−2-q
=-2-q
; 若p=1,q=2,則r=2-p
−2-q
=2-q
; 若q=1,p=3,則r=2-p
−2-q
=−2-q
因此,各該神經元141藉由該指數乘法器51(實際上只進行加法運算)、指數加法器52及指數減法器53取代習知的浮點乘法器,並以簡單的加法及減法取代乘法運算,不但降低運算量且運算速度快,而且只要相對簡單的邏輯電路即能實作出該指數乘法器51、指數加法器52及指數減法器53,因此當該深度神經網路43被實作成實體電路時,神經元141的電路將能簡化,進而有效縮減該深度神經網路43的整體電路體積。
再者,當該深度神經網路43的第一層14的各該神經元141完成全部的卷積運算而得到複數個特徵值r後,各該神經元141還將完成全部卷積運算產生的該等特徵值r經由一線性整流(Rectified Linear Unit, ReLU)函數進行整流運算,而產生相對應的複數個整流後特徵值r’,再將該等整流後特徵值r’輸入與其連結的下一層14的該等神經元141,使下一層14的各該神經元141同樣利用其中量化後的該權重矩陣10、該指數乘法器51、該指數加法器52及該指數減法器53對該等整流後特徵值r’進行卷積運算,然後再將其完成全部卷積運算產生的該等特徵值r經由線性整流函數進行整流運算,產生相對應的複數個整流後特徵值r’, 再將該等整流後特徵值r’輸入與其連結的下一層14的該等神經元141,依此類推,直到該深度神經網路43的最後一層14輸出運算結果至輸出層12。其中線性整流函數可以是斜坡函數、泄露線性整流(Leaky ReLU)函數、帶泄露隨機線性整流(Randomized Leaky ReLU)函數及噪聲線性整流(Noisy ReLU)函數其中之一,但不以此為限。
且由於輸入該深度神經網路43的圖像資料20及神經元141中的權重值皆已從原本使用浮點數表示轉換成最少以2位元即能表示,且該深度神經網路43輸出的運算結果也是最少以2位元即能表示,大大地減少了電腦裝置4之記憶體空間的佔用。
綜上所述,上述實施例藉由預先將深度神經網路43中各該神經元141之權重矩陣10中的該等權重值W以及預備輸入深度神經網路43的圖像資料20分別進行正規化,並分別量化成以2為底數的指數2-i
及2-j
,再將圖像資料20之量化後圖素值輸入深度神經網路43與其中各該神經元141之量化後權重矩陣10進行卷積運算,且藉由各該神經元141中的指數乘法器51、指數加法器52及指數減法器53對輸入的指數進行簡單的加、減運算及判斷,取代習知的浮點數乘法運算,降低運算複雜度且能快速地完成卷積運算,不但提高深度神經網路43的運算速度,並且以簡單的加法器取代乘法器而能有效地簡化並縮減實作成硬體之深度神經網路43的電路體積。而當深度神經網路43是以軟體實現時,由於卷積運算只需對輸入的指數進行簡單的加、減運算及判斷,不需乘法運算,故能有效提高其運算速度,而確實達到本發明之功效與目的。
惟以上所述者,僅為本發明之實施例而已,當不能以此限定本發明實施之範圍,凡是依本發明申請專利範圍及專利說明書內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。
10‧‧‧權重矩陣11‧‧‧輸入層12‧‧‧輸出層13‧‧‧隱藏層14‧‧‧層141‧‧‧神經元20‧‧‧圖像4‧‧‧電腦裝置41‧‧‧儲存單元42‧‧‧處理單元43‧‧‧深度神經網路44‧‧‧預處理模組51‧‧‧指數乘法器52‧‧‧指數加法器53‧‧‧指數減法器W‧‧‧權重值D‧‧‧圖素S1~S3‧‧‧步驟
本發明之其他的特徵及功效,將於參照圖式的實施方式中清楚地顯示,其中: 圖1是習知深度神經網路的基本組成架構示意圖; 圖2說明一神經元以一權重矩陣對一輸入資料進行卷積運算的過程; 圖3是本發明應用在深度神經網路的全指數運算方法的一實施例的主要流程圖; 圖4是本發明實現圖3的方法的電腦裝置的一實施例的主要元件方塊圖; 圖5說明本實施例的深度神經網路中的每一神經元具有一指數乘法器、一指數加法器及一指數減法器;及 圖6說明本實施例的該預處理模組對深度神經網路的神經元中的權重值以及要輸入深度神經網路的資料執行正規化及量化的過程。
S1~S3‧‧‧步驟
Claims (10)
- 一種應用在深度神經網路的全指數運算方法,該深度神經網路載於一電腦裝置並具有一由複數個前後相互連結的層構成的隱藏層,該隱藏層中的每一層具有複數個神經元,每一個神經元具有由m個(m為整數且m≧1)權重值構成的一權重矩陣;該方法包括: 該電腦裝置的一預處理模組預先將該深度神經網路的每一個神經元的該m個權重值正規化,使該m個正規化權重值落在-1~+1之間的範圍,並將各該正規化權重值量化成能以指數2-i 表示的量化後權重值,且該預處理模組以X位元表示該等量化後權重值的複數個群組; 該預處理模組預先將要輸入該深度神經網路的一圖像資料的複數圖素值正規化,使該等正規化圖素值落在-1~+1之間的範圍,並將各該正規化圖素值量化成能以指數2-j 表示的量化後圖素值,且該預處理模組以Y位元表示該等量化後圖素值的複數個群組; 該預處理模組將該等量化後圖素值輸入該深度神經網路的該隱藏層中的第一層,使第一層的各該神經元以量化後的該權重矩陣對該等量化後圖素值進行卷積運算,且在每一次的卷積運算中,各該神經元利用一指數乘法器將該m個量化後權重值2-i 分別與該等量化後圖素值中重疊的部分量化後圖素值2-j 相乘而得到m個乘積,其中,該指數乘法器計算每一個乘積的公式為: 2- 𝑖 ×2- 𝑗 =,若𝑖,𝑗≠(2N −1)且𝑖+𝑗≦(2𝑁 −1); 2- 𝑖 ×2- 𝑗 =,若𝑖+𝑗>(2𝑁 −1)或𝑖==(2𝑁 −1)或 𝑗==(2𝑁 −1); 其中若X=Y則N=X,若X≠Y則N取X、Y兩者中較大者;及 在每一次的卷積運算中,各該神經元將該等乘積m中為正值的部分乘積輸入一指數加法器中累加而得到一正累加值2-p ,並另外將該等乘積m中為負值的部分乘積輸入該第一指數加法器中累加而得到一負累加值2-q ,再將該正累加值2-p 與該負累加值2-q 輸入一指數減法器相減而得到一特徵值r; 其中,該指數加法器計算兩個指數2-a 和2-b 相加的公式為: 2-a +2-b =2-c ,若a≠b,則c取a、b兩者中較小者; 2-a +2-b =2-a+1 ,若a==b且a≠(2N −1)且2-a+1 <20 ; 2-a +2-b =20 ,若a==b且a≠(2N −1)且2-a+1 ≥20 ; 2-a +2-b =2-a ,若b==(2N −1); 其中,該指數減法器計算該特徵值r的公式為: r=2-p −2-q =2-p ,若p≦q-1或q==(2𝑁 −1); r=2-p −2-q =,若p==q; r=2-p −2-q =−2-q ,若p==q+1; r=2-p −2-q =2-p ,若q==p+1; r=2-p −2-q =−2-q ,若q≦p-1或p==(2𝑁 −1)。
- 如請求項1所述應用在深度神經網路的全指數運算方法,其中各該神經元還將完成全部卷積運算產生的該等特徵值r經由一線性整流函數進行整流運算,而產生相對應的複數個整流後特徵值r’,並將該等整流後特徵值r’輸入與其連結的下一層的該等神經元,使下一層的各該神經元利用量化後的該權重矩陣、該指數乘法器、該指數加法器及該指數減法器對該等整流後特徵值r’進行卷積運算。
- 如請求項2所述應用在深度神經網路的全指數運算方法,其中線性整流(Rectified Linear Unit,ReLU )函數是斜坡函數、泄露線性整流(Leaky ReLU)函數、帶泄露隨機線性整流(Randomized Leaky ReLU)函數及噪聲線性整流(Noisy ReLU)函數其中之一。
- 一種電腦裝置,包括: 一深度神經網路,其具有一由複數個前後相互連結的層構成的隱藏層,該隱藏層中的每一層具有複數個神經元,每一個神經元具有由m個(m為整數且m≧1)權重值構成的一權重矩陣、一指數乘法器、一指數加法器及一指數減法器;及 一預處理模組,其預先將該深度神經網路的每一個神經元的該m個權重值正規化,使該m個正規化權重值落在-1~+1之間的範圍,並將各該正規化權重值量化成能以指數2-i 表示的量化後權重值,且該預處理模組以X位元表示該等量化後權重值的複數個群組; 且該預處理模組預先將要輸入該深度神經網路的一圖像資料的複數圖素值正規化,使該等正規化圖素值落在-1~+1之間的範圍,並將各該正規化圖素值量化成能以指數2-j 表示的量化後圖素值,且該預處理模組以Y位元表示該等量化後圖素值的複數個群組; 且該預處理模組將該等量化後圖素值輸入該深度神經網路的該隱藏層中的第一層,使第一層的各該神經元以量化後的該權重矩陣對該等量化後圖素值進行卷積運算,且在每一次的卷積運算中,各該神經元利用該指數乘法器將該m個量化後權重值2-i 分別與該等量化後圖素值中重疊的部分量化後圖素值2-j 相乘而得到m個乘積,其中,該指數乘法器計算每一個乘積之公式為: 2- 𝑖 ×2- 𝑗 =,若𝑖,𝑗≠(2N −1)且𝑖+𝑗≦(2𝑁 −1); 2- 𝑖 ×2- 𝑗 =,若𝑖+𝑗>(2𝑁 −1)或𝑖==(2𝑁 −1)或 𝑗==(2𝑁 −1); 其中若X=Y則N=X,若X≠Y則N取X、Y兩者中較大者; 且在每一次的卷積運算中,各該神經元將該等乘積m中為正值的部分乘積輸入該指數加法器中累加而得到一正累加值2-p ,並將該等乘積m中為負值的部分乘積輸入該指數加法器中累加而得到一負累加值2-q ,再將該正累加值2-p 與該負累加值2-q 輸入該指數減法器相減而得到一特徵值r; 其中,該指數加法器計算兩個指數2-a 和2-b 相加的公式為: 2-a +2-b =2-c ,若a≠b,則c取a、b兩者中較小者; 2-a +2-b =2-a+1 ,若a==b且a≠(2N −1)且2-a+1 <20 ; 2-a +2-b =20 ,若a==b且a≠(2N −1)且2-a+1 ≥20 ; 2-a +2-b =2-a ,若b==(2N −1); 其中,該指數減法器計算該特徵值r的公式為: r=2-p −2-q =2-p ,若p≦q-1或q==(2𝑁 −1); r=2-p −2-q =,若p==q; r=2-p −2-q =−2-q ,若p==q+1; r=2-p −2-q =2-p ,若q==p+1; r=2-p −2-q =−2-q ,若q≦p-1或p==(2𝑁 −1)。
- 如請求項4所述的電腦裝置,其中各該神經元還將完成全部卷積運算產生的該等特徵值r經由一線性整流函數進行整流運算,而產生相對應的複數個整流後特徵值r’,並將該等整流後特徵值r’輸入與其連結的下一層的該等神經元,使下一層的各該神經元利用量化後的該權重矩陣、該指數乘法器、該指數加法器及該指數減法器對該等整流後特徵值r’進行卷積運算。
- 如請求項4所述的電腦裝置,其中線性整流(Rectified Linear Unit, ReLU)函數是斜坡函數、泄露線性整流(Leaky ReLU)函數、帶泄露隨機線性整流(Randomized Leaky ReLU)函數及噪聲線性整流(Noisy ReLU)函數其中之一。
- 如請求項4至6其中任一項所述的電腦裝置,其中該深度神經網路及該預處理模組是儲存於該電腦裝置的一儲存單元中,且能被該電腦裝置的一處理單元讀取並執行的軟體程式。
- 如請求項4至6其中任一項所述的電腦裝置,其中該深度神經網路及/或該預處理模組是整合在該電腦裝置的一特殊應用積體電路晶片或一可程式邏輯電路裝置中。
- 如請求項4至6其中任一項所述的電腦裝置,其中該深度神經網路及/或該預處理模組是燒錄在該電腦裝置的一微處理器中的韌體。
- 一種電腦可讀取的記錄媒體,其中儲存一包含一深度神經網路及一預處理模組的軟體程式,該深度神經網路具有一由複數個前後相互連結的層構成的隱藏層,該隱藏層中的每一層具有複數個神經元,每一個神經元具有由m個(m為整數且m≧1)權重值構成的一權重矩陣、一指數乘法器、一指數加法器及一指數減法器,且該軟體程式被一電腦裝置載入並執行後,該電腦裝置能完成如請求項1至3其中任一項所述應用在深度神經網路的全指數運算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107117479A TWI672643B (zh) | 2018-05-23 | 2018-05-23 | 應用在深度神經網路的全指數運算方法、電腦裝置及電腦可讀取的記錄媒體 |
CN201810772630.9A CN110531955B (zh) | 2018-05-23 | 2018-07-13 | 用在深度神经网络的指数运算方法、计算机装置、记录介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107117479A TWI672643B (zh) | 2018-05-23 | 2018-05-23 | 應用在深度神經網路的全指數運算方法、電腦裝置及電腦可讀取的記錄媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI672643B TWI672643B (zh) | 2019-09-21 |
TW202004568A true TW202004568A (zh) | 2020-01-16 |
Family
ID=68619274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107117479A TWI672643B (zh) | 2018-05-23 | 2018-05-23 | 應用在深度神經網路的全指數運算方法、電腦裝置及電腦可讀取的記錄媒體 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110531955B (zh) |
TW (1) | TWI672643B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI743710B (zh) * | 2020-03-18 | 2021-10-21 | 國立中山大學 | 卷積神經網路的方法、電子裝置與電腦程式產品 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112639836A (zh) * | 2020-02-25 | 2021-04-09 | 深圳市大疆创新科技有限公司 | 数据处理装置、电子设备和数据处理方法 |
US20210406661A1 (en) * | 2020-06-25 | 2021-12-30 | PolyN Technology Limited | Analog Hardware Realization of Neural Networks |
CN112199072B (zh) * | 2020-11-06 | 2023-06-02 | 杭州海康威视数字技术股份有限公司 | 一种基于神经网络层的数据处理方法、装置及设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10134018A (ja) * | 1996-07-08 | 1998-05-22 | Nippon Telegr & Teleph Corp <Ntt> | 法則発見方法と装置及び法則発見プログラムを格納した記憶媒体、及びニューラルネット学習方法と装置及びニューラルネット学習プログラムを格納した記憶媒体 |
CN101350155A (zh) * | 2008-09-09 | 2009-01-21 | 无敌科技(西安)有限公司 | 通过类神经网络生成/验证密码的方法及系统 |
US20160026912A1 (en) * | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
JP2017049907A (ja) * | 2015-09-04 | 2017-03-09 | 国立研究開発法人情報通信研究機構 | ニューラルネットワーク、その学習方法、及びコンピュータプログラム |
US10776690B2 (en) * | 2015-10-08 | 2020-09-15 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with plurality of selectable output functions |
EP3154001B1 (en) * | 2015-10-08 | 2019-07-17 | VIA Alliance Semiconductor Co., Ltd. | Neural network unit with neural memory and array of neural processing units that collectively shift row of data received from neural memory |
US10353860B2 (en) * | 2015-10-08 | 2019-07-16 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with neural processing units dynamically configurable to process multiple data sizes |
CN106228238B (zh) * | 2016-07-27 | 2019-03-22 | 中国科学技术大学苏州研究院 | 现场可编程门阵列平台上加速深度学习算法的方法和系统 |
US11222263B2 (en) * | 2016-07-28 | 2022-01-11 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
US20180053086A1 (en) * | 2016-08-22 | 2018-02-22 | Kneron Inc. | Artificial neuron and controlling method thereof |
-
2018
- 2018-05-23 TW TW107117479A patent/TWI672643B/zh active
- 2018-07-13 CN CN201810772630.9A patent/CN110531955B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI743710B (zh) * | 2020-03-18 | 2021-10-21 | 國立中山大學 | 卷積神經網路的方法、電子裝置與電腦程式產品 |
Also Published As
Publication number | Publication date |
---|---|
CN110531955A (zh) | 2019-12-03 |
TWI672643B (zh) | 2019-09-21 |
CN110531955B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI672643B (zh) | 應用在深度神經網路的全指數運算方法、電腦裝置及電腦可讀取的記錄媒體 | |
Lim et al. | DSLR: Deep stacked Laplacian restorer for low-light image enhancement | |
Tian et al. | Image denoising using deep CNN with batch renormalization | |
CN109949255B (zh) | 图像重建方法及设备 | |
WO2019238029A1 (zh) | 卷积神经网络系统和卷积神经网络量化的方法 | |
CN110363279A (zh) | 基于卷积神经网络模型的图像处理方法和装置 | |
WO2021164725A1 (zh) | 去除摩尔纹的方法与装置 | |
CN112508125A (zh) | 一种图像检测模型的高效全整数量化方法 | |
CN111507910B (zh) | 一种单图像去反光的方法、装置及存储介质 | |
Fan et al. | Neural sparse representation for image restoration | |
JP2019128806A (ja) | データ圧縮装置、データ圧縮方法およびデータ圧縮プログラム | |
CN111696149A (zh) | 针对基于cnn的立体匹配算法的量化方法 | |
Tan et al. | Pixelwise Estimation of Signal‐Dependent Image Noise Using Deep Residual Learning | |
CN110809126A (zh) | 一种基于自适应可变形卷积的视频帧插值方法及系统 | |
CN114978189A (zh) | 一种数据编码方法以及相关设备 | |
Chen et al. | Semantic attention and relative scene depth-guided network for underwater image enhancement | |
Adams et al. | Energy-efficient approximate MAC unit | |
CN113033448A (zh) | 一种基于多尺度卷积和注意力的遥感影像去云残差神经网络系统、方法、设备及存储介质 | |
WO2021081854A1 (zh) | 一种卷积运算电路和卷积运算方法 | |
WO2023059215A1 (en) | Apparatus and method for winograd convolution | |
Li et al. | Real-time image enhancement with efficient dynamic programming | |
CN113919479B (zh) | 一种提取数据特征的方法和相关装置 | |
CN111027670B (zh) | 特征图处理方法、装置、电子设备及存储介质 | |
Wu et al. | Contrast enhancement based on reflectance-oriented probabilistic equalization | |
Otair et al. | The effect of using minimum decreasing technique on enhancing the quality of lossy compressed images |