TWI724503B - 具有推論時期位元寬度調整彈性的神經網路方法、系統,及其電腦程式產品 - Google Patents
具有推論時期位元寬度調整彈性的神經網路方法、系統,及其電腦程式產品 Download PDFInfo
- Publication number
- TWI724503B TWI724503B TW108129664A TW108129664A TWI724503B TW I724503 B TWI724503 B TW I724503B TW 108129664 A TW108129664 A TW 108129664A TW 108129664 A TW108129664 A TW 108129664A TW I724503 B TWI724503 B TW I724503B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- neural network
- bits
- group
- training
- Prior art date
Links
Images
Classifications
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06N3/045—Combinations of networks
-
- 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
- G06N3/047—Probabilistic or stochastic networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
一種訓練N位元神經網路的方法,N大於等於二,該訓練N位元神經網路的方法包含:提供一包括多個待訓練之權重的N位元神經網路,每一權重由N個位元所組成,該等N個位元分別對應於被分為多個位元階群組的N個位元階,其中,該等權重的該等位元係根據該等權重的該等位元所對應的該等位元階被分為多個分別對應於該等位元階群組的位元群組;及藉由逐一訓練該等位元群組已決定N位元神經網路的該等權重。
Description
本發明是有關於一種神經網路,特別是指一種具有推論時期位元寬度調整彈性的神經網路的方法、系統,及電腦程式產品。
最近卷積神經網路成為有希望且成功的技術去處理重要的人工智慧問題,如電腦視覺。舉例來說,最新型的卷積神經網路能以優於一般人的速度與準確性來辨認ImageNet圖像資料集中一千種物件的類別。
卷積神經網路是運算密集的類型,以AlexNet為例,其深度卷積網路包括五個卷積層,每一層動用到一億到四億五千萬個乘法運算。因此,辨認一224*224像素之影像的計算成本高達動用到超過十億個乘法運算,更不用說處理大型影像及影片的計算成本。
低位元寬度卷積神經網路和加速器依賴簡化過的乘法運算,通常僅限於使用一至四位元、定點權重值和激活值取代全精確值,例如,一個一位元卷積神經網路的乘法運算相當於邏輯XNOR運算,相較於全精確整數或浮點乘法運算較為簡單也消耗較少功率。
參閱圖1,一個一位元卷積神經網路及一個三位元卷積神經網路在實驗中分別被訓練,不意外地,在推論時期一個三位元加速器執行該三位元卷積神經網路的準確性高於一個一位元加速器執行該一位元卷積神經網路,準確性的提高導致更多計算成本,由於一個三位元乘法器大約比一個一位元乘法器複雜九倍。然而,當該一位元加速器執行該三位元卷積神經網路時(亦即,以四捨五入或省略權重(權重值)和激活(激活值)的最低有效位(LSB)的方式),其準確度低於該一位元加速器執行該一位元卷積神經網路而且位於不能接受的水準。
另外,該卷積神經網路的權重包括正整數及負整數,所以習知的二補數系統被用來描述該權重。然而,卷積神經網路的權重分布可能相對於零互相對稱,但是該二補數系統並不提供相對於零的一對稱範圍,如此將損壞該卷積神經網路的準確性。
因此,本發明的一個目的,即在提供一種訓練N位元神經網路的方法,其中N為整數且大於等於二,使得受過訓練的該N位元神經網路執行在縮限位元寬度時有較高準確性。
根據本發明,該方法包含:提供一包括多個待訓練之權重的N位元神經網路,每一權重由N個位元所組成,該等N個位元分別對應於被分為多個位元階群組的N個位元階,其中,該等權重的該等位元係根據該等權重的該等位元所對應的該等位元階被分為多個分別對應於該等位元階群組的位元群組;及藉由逐一訓練該等位元群組已決定N位元神經網路的該等權重。需要指出的是,在以下揭露中,實際上該N位元神經網路可能包含除了該等權重外的額外權重,且該等額外權重可能是N位元以外的不同的位元寬度。
本發明的一個目的,在於提供一種電腦程式產品,當該電腦程式產品被執行時,建立一個可在不同位元寬度下操作的神經網路並具有相對良好的準確性。
根據本發明,該電腦程式產品包含儲存在一可讀式電腦儲存媒體的一神經網路程式碼,而且當該神經網路程式碼被一神經網路加速器執行時,建立一具有多組批次標準化參數及多個權重的神經網路。該神經網路在多個分別對應於不同位元寬度的位元寬度模式中切換。該等多組批次標準化參數分別對應於不同位元寬度。在每一位元寬度模式中,每一權重具有對應於該位元寬度模式的位元寬度。當該神經網路程式碼被該神經網路加速器執行時,該神經網路操作在該神經網路加速器之一位元寬度所對應的位元寬度模式下,並且對應於該神經網路加速器之位元寬度的批次標準化參數被該神經網路加速器使用。
本發明的一個目的,在於提供一種電腦化神經網路系統能在不同位元寬度下操作並具有相對良好的準確性。
根據本發明,該電腦化神經網路系統包含一儲存模組,儲存有如本發明所述的電腦程式產品,及一神經網路加速器電連接該儲存媒體並用以執行該電腦程式產品的該神經網路程式碼。
本發明的一個目的,在於提供一種電腦化系統,該電腦化系統使用一提供相對於零的一對稱範圍的二進位系統。
根據本發明,該電腦化系統包含多個乘法器及多個連接該等乘法器的加法器,該等乘法器及該等加法器能彼此配合進行運算,對於每一資料片段包括分別對應多個位元階之多個位元並被使用於該等加法器與該等乘法器之某些運算,第i個位元階在具有一第一位元值時,代表2i
,而在具有一第二位元值時,代表-2i
,其中N為該等資料片段的位元數量,i為整數且(N-1)≧i≧0。
本發明的一個目的,在於提供一種電腦化神經網路系統具有複雜與準確度的取捨彈性。
根據本發明,該電腦化神經網路系統包含一儲存一神經網路的儲存模組,及一電連接該儲存模組的神經網路加速器。該神經網路具有多個權重,每一權重包括一對應數量的位元,且該等權重總共具有一第一數量的位元。該神經網路加速器係藉由使用該權重所對應之該對應數量的位元之一部分來執行運算以執行該神經網路,藉此,用於運算之該等權重之位元的一總數量小於該第一數量。
本發明的一個目的,在於提供一種電腦化神經網路系統在減少非必要能源消耗時可達到所需準確性。
根據本發明,該電腦化神經網路系統包含一儲存一神經網路的儲存模組,及一電連接該儲存模組的神經網路加速器。該神經網路具有多個權重,且能在多個分別對應於不同位元寬度的位元寬度模式中切換。該神經網路加速器根據該神經網路的一準確性要求被配置來致使該神經網路操作在該等位元寬度模式之至少二者間,並執行操作在該等位元寬度模式之至少二者間的該神經網路。
在本發明被詳細描述前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
圖2說明一卷積神經網路的一般計算過程,其中該卷積神經網路包含多個卷積層及選擇性的一或多個且互相連接的完全連接層。每一卷積層和完全連接層輸出作為下一層之輸入資料(亦即,激活)的一資料群組。卷積神經網路的輸入資料(亦即,該卷積神經網路第一層的激活)以一影像為範例。每一卷積層和完全連接層具有至少一具有多個權重的通道。對圖2的每一層而言,該層的厚度代表該層的通道數量。每一通道為該等激活與權重之一特定集合之點積(也稱為內積)的群組。例如,一具有六十四個通道的層包括六十四組用以與該等激活執行卷積的權重。每一卷積層及完全連接層被配置來運算該層中該等激活與該等權重的點積、在該等點積上可選擇性地執行最大池化(降階取樣)、在該等點積或最大池化後的點積上執行批量正規化,及在批量正規化的輸出上執行的量化,藉此獲得作為下一層的該等激活之對應的資料群組。
本發明介紹一種適用於訓練一N位元神經網路的位元漸進式訓練方法,N為整數且N大於等於2,可使該受訓練的神經網路在推論時期具有位元寬度彈性。該位元漸進式訓練方法能由一或多台電腦上來實施,但本發明不以此為限。
該N位元神經網路包括多個待訓練之權重,每一權重由N個位元所組成,該等N個位元分別對應於0至N-1的N個位元階(或位元位置)。該位元漸進式訓練方法將N個位元階分為多個位元階群組。該等權重的該等位元係根據該等權重的該等位元所對應的該等位元階被分割為多個分別對應於該等位元階群組的位元群組,其中每一位元群組具有一對應於該位元階群組中的最高位元階的代表性位元階。之後,該等位元群組逐一接受訓練。在一實施例中,在已經由一先前的訓練而被訓練的位元群組中之每一者之每一位元被固定在透過先前訓練而針對該位元決定出之一對應值的條件下對該位元群組進行訓練。在一實施例中,訓練該等位元群組的接替順序由最高顯著性的位元群組到最低顯著性的位元群組依序排列,其中最高顯著性的位元群組是在該等位元群組中具有一最高代表性位元階的位元群組,最低顯著性的位元群組是在位元群組中具有一最低代表性位元階的位元群組。
在圖3中,該N位元神經網路以一個三位元卷積神經網路為例,其中該三位元卷積神經網路中的每一權重W1
至Wk
包括三個位元。在一實施例中,該等權重W1
至Wk
中的該等位元被分割為分別對應於位元階為2、1,及0的第一至第三位元群組(三個位元階群組,每一位元階群組包含一特定位元階)。在所提出的該位元漸進式訓練方法中,對應於該位元階為二(本例中的最高位元階)的第一位元群組最先以訓練一位元卷積神經網路的方式接受訓練。之後,對應於該位元階為一的該第二位元群組在該第一位元群組的每一位元被固定在對第一位元群組的訓練中所決定出之一對應值的情況下被訓練,就像在只有對應於最低顯著性位元的該等位元可以在訓練中被調整的狀況下訓練一個二位元卷積神經網路。最後,對應於該位元階為零的第三位元群組在該第一位元群組及該第二位元群組的每一位元被固定在對訓練該第一位元群組及該第二位元群組的訓練中所決定出之一對應值的情況下被訓練,就像在只有對應於最低顯著性位元的該等位元可以在訓練中被調整的狀況下訓練一個三位元卷積神經網路。應當注意的是本發明不限於以一從最高位元階到最低位元階的接續順序來訓練該等位元群組,雖然這樣安排可以讓該訓練後之卷積神經網路在推論時期中達到更好的準確度。
該N位元神經網路利用該位元漸進式訓練方法來被訓練,因而在多個對應不同位元寬度的位元寬度模式中具有可切換性。例如,在圖3中被訓練的該三位元卷積神經網路能在分別對應於位元寬度為一(具有位元階為二的該等位元被使用),位元寬度為二(具有位元階為二及一的該等位元被使用),及位元寬度為三(具有位元階為二、一,及零的該等位元被使用)的三個位元寬度模式中切換,在每一位元寬度模式中,每一權重有一對應該位元寬度模式的位元寬度(然而,實際上,雖然會降低一些效率,可能只有一些權重有對應該位元寬度模式的位元寬度)。為了最佳化受訓練後的卷積神經網路在不同位元寬度模式中之推論時期的準確性,對於每一位元群組的訓練,包含決定出一組專用於該位元群組及已被訓練之位元群組之整體的批次標準化參數。換言之,該組批次標準化參數對應於該位元群組及所有之前受訓練的位元群組整體。以圖3的該三位元卷積神經網路為例,對於該第一位元群組之訓練,一對應該第一位元群組的第一組批次標準化參數(即,對應位元寬度為一)與該第一位元群組一起被確定。對於該第二位元群組之訓練,一專用於該第二位元群組及受訓練的該第一位元群組(即,對應位元寬度為二) 之整體的第二組批次標準化參數與該第二位元群組一起被確定。對於該第三位元群組之訓練,一專用於該第三群組以及受訓練的該第一位元群組與該第二位元群組(即,符合位元寬度為三) 之整體的第三組批次標準化參數與該第三位元群組一起被確定。因此,對於不同位元寬度模式分別準備多組批次標準化參數。
在圖3中,每一位元階群組只對應單一位元階,但本發明不限於此。在一個四位元卷積神經網路的例子中,四個位元階可能被分為三個各自對應該位元階為三、該位元階為二,及該位元階為一和零的位元階群組,且在對應於該等位元階為一和零之該位元群組中的該等位元在對應該位元階為二和三的該等位元被固定在一個數值的情況下一起被訓練;對應地,對於三個位元寬度模式分別準備三組批次標準化參數,其中該等位元寬度模式的該等位元寬度分別為一位元、二位元,及四位元。在一個八位元卷積神經網路的例子中,八個位元階可能被分為四個分別對應該位元階為七、該位元階為六、該位元階為五及四,及該位元階為三、二、一及零的位元階群組,其中在對應於該等位元階為五及四之該位元群組中的該等位元在對應該等位元階為七及六的該等位元被固定在一個數值的情況下一同被訓練,而在對應於該等位元階為三至零之該位元群組的該等位元在對應該等位元階為七至四的該等位元被固定在一個數值的情況下一同被訓練;相對應地,對於四個位元寬度模式分別準備四組批次標準化參數,其中該等位元寬度模式的該等位元寬度分別為一、二、四,及八。在以上的例子中,對於每一具有至少二位元階的位元階群組,該至少二位元階是連續的(即,該等位元階為五和四,該等位元階為三、二、一和零),但本發明不限於此。
應當注意的是,一新穎的二進位數字系統,在下文中被稱為一雙極數字系統,可應用於本發明以提高該神經網路的位元寬度彈性。在該雙極數字系統中,對於每一包括分別對應多個位元階之多個位元的資料片段,該等位元中之對應於第i個位元階的位元在具有一第一位元值時(例如,雙極的1),代表十進制的2i,而在具有一第二位元值時(例如,雙極的0),代表十進制的-2i,其中i為整數。例如,〝010〞在雙極數字系統中表示的值為十進位的(-22
+21
-20
)=(-4+2-1)=(-3)。
圖4展示該二補數系統與該雙極數字系統在十進位數表示法之間的比較,其中該雙極數字系統具有一相對於零的對稱範圍,所以該等神經網路的該等權重分配也會相對於零而對稱,因此能提升該神經網路的位元寬度彈性。圖5呈現兩雙極數字的乘積。兩個1位元雙極數字的乘積為十進位的1和-1,兩個2位元雙極數字的乘積分佈在十進位的9和-9間,依此類推。應當注意的是,該雙極數字系統的用途不僅限於該等神經網路,同時也能應用在所欲使用的其他電腦化系統。
圖6比較使用該雙極數字系統和該二補數系統訓練二位元卷積神經網路的前五名準確度(前五名機率的結果(或猜測)有包括正確類別的百分比)以協助顯現該雙極數字系統的好處。可以看到的是,使用該雙極數字系統之準確度持續超越使用該二補數系統之準確度達4%。
圖7呈現一用於藉由該位元漸進式訓練方法訓練一卷積神經網路的一3位元權重Wi
的示例性電路(或運算圖),其中ai
代表一對應該權重Wi
的一3位元激活。在所繪圖示中,對應於該等位元階為二和一之最顯著的二個位元的訓練已經完成,因此最顯著的二個位元在對應於該位元階為零之最低顯著的位元的訓練期間被固定,其中該最低顯著位元被當作一目前正被漸進式訓練的目標位元。該示例性電路包含多個乘法器和多個加法器,該等乘法器和該等加法器用以執行所欲進行的計算(例如,在本實施例中,權重和激活的點乘積)。該目標位元的值根據一浮點變數的一正負號而決定(例如,當浮點變數為正值時其為雙極〝1〞,當浮點變數為負值時其為雙極〝0〞)。該浮點變數的值在訓練的過程中藉由倒傳遞被調整。由於倒傳遞的演算法為本技術領域之通常知識者的所熟知的一般技術,在此為了簡潔,而省略了倒傳遞的細節。實施上,某些計算可透過該雙極數字系統來執行,而某些計算可透過該二補數系統執行。
參考圖8,本發明電腦化神經網路系統7被顯示出包含一M位元神經網路加速器71,及一儲存模組70(為一可讀式電腦儲存媒體,例如正反器、動態隨機存取記憶體、靜態隨機存取記憶體、非揮發性記憶體、硬碟、固態硬碟、雲端儲存等等)。該儲存模組70電連接該加速器71(如,多核心中央處理器、圖形處理器、可程式化邏輯電路、收縮處理矩陣、計算用記憶單元等等),並儲存有一神經網路程式碼,當該神經網路程式碼被該加速器71執行時,建立一已受過該位元漸進式訓練方法(不論是否包含多組批次標準化參數之使用)訓練的N位元神經網路700,其中M為正整數,N為正整數並大於等於M。實施上,該電腦化神經網路系統7可透過一電腦化裝置(例如,智慧型手機、平板電腦、筆記型電腦、桌上型電腦等等)被實現,且該包含該神經網路程式碼的電腦程式產品可被儲存在軟體供應商的一伺服器電腦中並可透過該電腦化裝置被下載,故已下載該神經網路程式碼的該電腦化裝置可以執行該神經網路程式碼而獨自建立該神經網路700,但本發明不限於此。在一實施例,該M位元神經網路加速器71可被設置在一行動裝置上,儲存該神經網路程式碼的該儲存模組70可位在一透過一通訊網路遠端連接該行動裝置的伺服器電腦內(因此該M位元神經網路加速器71能透過該通訊網路遠端連接該儲存模組70),且該M位元神經網路加速器71能透過該通訊網路執行該位於該伺服器電腦中的N位元神經網路700。該N位元神經網路700能在分別對應不同位元寬度的不同位元寬度模式中切換,並具有多組分別對應該等位元寬度模式所對應之該等不同位元寬度的批次標準化參數。在M=N的案例中,該神經網路加速器71致使該神經網路700在一位元寬度為N(N位元模式)的位元寬度模式中進行操作,並藉由使用對應該神經網路加速器71之該位元寬度為N的該組批次標準化參數執行在N位元模式中進行操作的該神經網路700。在M>N的案例中,該神經網路加速器71藉由將該神經網路700的每一權重從N位元限縮到M位元(然而,實施上,即便這樣的作法可能比較沒效,但可能只有一些權重從N位元被縮限為M位元)以致使該神經網路700在一位元寬度為M(M位元模式)的位元寬度模式中進行操作,其中該M位元與該權重中的M個具有最高顯著性的位元相關,並藉由使用對應該神經網路加速器71之該位元寬度為M的該組批次標準化參數執行在M位元模式中進行操作的該神經網路700。對於每一權重,藉由從該N位元捨入(rounding)成該權重中具有最高顯著性的M位元,該等位元數目可從N位元限縮至M位元。一種最簡單且適合該位元漸進式訓練方法的做法是直接截去該權重中最低顯著性的(N-M)個位元,但本發明不限於此。
在本實施例中,該神經網路700被示例為一個三位元卷積神經網路,該三位元卷積神經網路可在三種不同位元寬度模式中切換(如下文所提及之分別對應位元寬度為一、二及三之神經網路加速器的一位元模式、二位元模式,及三位元模式),且三組分別對應於該位元寬度為一、二,及三的三組批次標準化參數BN1、BN2,和BN3被儲存在該儲存模組70中。
在該神經網路加速器71為一個三位元卷積神經網路加速器的案例中,該神經網路加速器71執行該神經網路700,其中該神經網路700透過使用該組批次標準化參數BN3在該對應該位元寬度為三的三位元模式中進行操作。
在該神經網路加速器71為一個二位元卷積神經網路加速器的案例中,該神經網路加速器71藉由截去該神經網路700之每一權重之最低顯著性的位元來致使該神經網路700操作在該二位元模式下,並透過使用該組批次標準化參數BN2來執行操作在該二位元模式中的該神經網路700。
相似地, 在該神經網路加速器71為一個一位元卷積神經網路加速器的案例中,該神經網路加速器71藉由截去該神經網路700之每一權重之最低顯著性的兩個位元來致使該神經網路700操作在該一位元模式下,並透過使用該組批次標準化參數BN1來執行操作在該一位元模式中的該神經網路700。
圖9展示實驗結果來說明藉由本發明在ImageNet分類的前五名準確度中所獲得之改進。實驗藉由使用一個在三種不同方式中訓練的三位元AlexNet卷積神經網路來進行。在第一方式中(對應圖9的基準線),該三位元卷積神經網路藉由習知訓練方法配合使用該雙極數字系統進行訓練,其中,對於該三位元卷積神經網路的每一權重,三個位元會一起被訓練(而非分別訓練),且針對三位元加速器只有一組批次標準化參數被訓練。在第二模式中(對應圖9的基準線+多組批次標準化參數),該三位元卷積神經網路藉由習知訓練方法配合使用該雙極數字系統進行訓練,且針對加速器有多組批次標準化參數在不同位元寬度被訓練。在第三模式中(對應圖9的位元漸進式+多組批次標準化參數),該三位元卷積神經網路藉由該位元漸進式訓練方法配合使用該雙極數字系統進行訓練,且針對加速器有多組批次標準化參數在不同位元寬度被訓練。該圖進一步展示藉由二位元和一位元加速器分別執行原生二位元和一位元AlexNet卷積神經網路的實驗結果。當一個三位元加速器執行該等受訓練的卷積神經網路,該等受訓練的卷積神經網路的前五名準確度是相似的。當一個一位元加速器以消除每一權重之兩個最低顯著性的位元之方式來執行該等受訓練的卷積神經網路,基準線和基準線+多BN的前五名準確度分別跌落至0.75%和11%,兩者皆遠低於以該一位元加速器執行該原生一位元AlexNet卷積神經網路的準確度而無法接受。另一方面,當該一位元加速器執行以該第三模式受訓練的該卷積神經網路,前五名準確度只跌落至61.2%,其與以該一位元加速器執行該原生一位元AlexNet卷積神經網路的準確度相同。此外,從基準線和基準線+多組批次標準化參數的一比較結果可以看出,當以較小的位元寬度執行利用習知訓練方法訓練出的卷積神經網路時,使用多組批次標準化參數能有效的提升準確度。值得注意的是,本發明和以下所揭示之發明不以上述ImageNet分類為限。例如,本發明可適用於預測、物件偵測、生成式對抗網路、影像處理等等。
實施上,該加速器可執行該神經網路,其中該神經網路根據本發明被訓練,以致使該神經網路能根據卷積神經網路的一條件(例如,電腦化神經網路系統的一準確性要求、一能源消耗時程、一電量等級,及一溫度等級)操作在不同位元寬度模式間。圖10展示根據本發明(位元進步訓練+多組批次標準化參數+雙極數字系統)訓練的神經網路而得到的一能源與準確度權衡線。實心點代表一位元、二位元,及三位元模式,而空心點代表藉由調變該加速器和該神經網路的位元寬度而得到的能源與準確度點。如圖所示,花費越多能源能得到越高的準確度。如果一電腦化裝置(例如,智慧型手機)所需的準確性為67%,該電腦化裝置所需的準確度67%相較於該一位元模式(61%)較高但比該二位元模式低(73%),該電腦化裝置可以透過使用該一位元模式處理一半的影像而使用該二位元模式處理另一半影像((61%+73%)/2=67%)的方式節省能源。由於本發明提供的位元寬度彈性,該電腦裝置多獲得一個維度(例如,除了電壓和頻率外的位元寬度)來解決不斷增加的電力和熱能管理問題,此問題特別被智慧型手機、平板電腦、筆記型電腦等可攜式裝置所關切。相似地,如果該電腦化裝置的能源消耗預算是每一影像200mJ,則該電腦化裝置的能源消耗200mJ高於該二位元模式而低於該三位元模式,該電腦化裝置可以透過使用該二位元模式處理一半的影像而使用該三位元模式處理另一半影像的方式達到最高的準確度。
在一實施過程中,對於每一權重,該加速器係藉由使用該權重所對應數量的位元之一部分來執行運算以執行該神經網路,以使用於運算之該等權重之位元的一總數量小於所有權重的位元數量。例如,該神經網路加速器可透過縮限該神經網路(至少)一層的該位元寬度來執行該神經網路,並/或透過縮限該(至少)一層之(至少)一通道的該位元寬度來執行該神經網路。以一個三位元卷積神經網路(即,每一權重包含三個位元)為例,該加速器可透過使用一些權重的全部三個位元,一些權重的三個位元中的兩個位元(例如,具有最高顯著性的兩個位元),及一些權重的三個位元中的一個位元(例如,具有最高顯著性的位元)來執行該三位元卷積神經網路(即,每一權重包含三位元)以獲得複雜性準確度的彈性。圖11示例性地展示一個三位元卷積神經網路的不同層可使用不同位元寬度(縮限一些層的該等位元寬度至一位元或二位元)的運算。圖12示例性地展示同一層的不同通道使用不同位元寬度(縮限一些通道的該位元寬度至一位元或二位元)進行運算。
總之,本發明使用該位元漸進式訓練方法、多組批次標準化參數,及該雙極數字系統使一神經網路由於在推論時期縮減的位元寬度而具有可接受的準確度。該位元寬度彈性還進一步處理電力和熱能管理問題。
在以上描述中,基於解釋目的,已經闡述許多具體細節以便提供對實施例的透徹理解。然而,對於本領域技術人員顯而易見的是,可以在沒有一些具體細節的情況下實踐一個或多個其他實施例。還應當理解的是,說明書中對〝一實施例〞、〝實施例〞,具有順序的指示等實施例的引用意味著特定的特徵、結構或特性可以包括在本發明的實踐中。應進一步了解的是,在說明書中,有時將各種特徵組合在單一實施例、圖表或其描述中,以便簡化並幫助理解本發明,在適當的情況下,本發明一個實施例的具體細節可以與另一實施例的一或多個特徵或具體細節一起實踐。
惟以上所述者,僅為本發明的實施例而已,當不能以此限定本發明實施的範圍,凡是依本發明申請專利範圍及專利說明書內容所作的簡單的等效變化與修飾,皆仍屬本發明專利涵蓋的範圍內。
7:電腦化神經網路系統
70:儲存模組
71:神經網路加速器
700:神經網路
BN1:第一組批次標準化參數
BN2:第二組批次標準化參數
BN3:第三組批次標準化參數
本發明的其他特徵和功效,將於參照圖式的實施方式中清楚地呈現,其中:
圖1是一圖表,說明當一個三位元卷積神經網路藉由一個一位元加速器來執行時其準確度之下降;
圖2是一示意圖,說明一卷積神經網路的一般計算過程;
圖3是一示意圖,說明本發明使用一位元漸進式訓練方法訓練一個三位元卷積神經網路的步驟;
圖4是一示意圖,說明現有的一個二補數系統可表示之範圍與本發明的一雙極數字系統可表示之範圍的比較;
圖5是一示意圖,說明在該雙極數字系統中的多個乘法器;
圖6是一曲線圖,說明該雙極數字系統的好處;
圖7是一示意圖,說明透過該位元漸進式訓練方法訓練該三位元卷積神經網路的示例性電路;
圖8是一方塊圖,說明根據本發明的一個電腦化神經網路系統的一實施例;
圖9是一圖表,說明以前五名準確度而言本發明的好處;
圖10是一圖表,說明藉由根據本發明所訓練出的該三位元神經網路而得到的一能源與準確度權衡線;
圖11是一示意圖,說明對於不同層使用不同位元寬度;及
圖12是一示意圖,說明對於同一層的不同通道使用不同位元寬度。
Claims (20)
- 一種訓練N位元神經網路的方法,N為正整數且大於等於二,該訓練N位元神經網路的方法包含:提供一包括多個待訓練之權重的N位元神經網路,每一權重由N個位元所組成,該等N個位元分別對應於被分為多個位元階群組的N個位元階,其中,該等權重的該等位元係根據該等權重的該等位元所對應的該等位元階被分為多個分別對應於該等位元階群組的位元群組;及藉由逐一訓練該等位元群組以決定N位元神經網路的該等權重。
- 如請求項1所述的訓練N位元神經網路的方法,其中,逐一訓練該等位元群組包括:對於每一位元群組,在已經由一先前的訓練而被訓練的位元群組中之每一者之每一位元被固定在透過先前訓練而針對該位元決定出之一對應值的條件下對該位元群組進行訓練。
- 如請求項2所述的訓練N位元神經網路的方法,其中,每一位元群組具有一代表性位元階,該代表性位元階為在對應於該位元群組之位元階群組中的一最高位元階,其中訓練該等位元群組的接替順序由最高顯著性的位元群組到最低顯著性的位元群組依序排列,而最高顯著性的位元群組是在該等位元群組中具有一最高代表性位元階的位元群組,最低顯著性的位元群組是在位元群組中具有一最低代表性位元階的位元群組。
- 如請求項3所述的訓練N位元神經網路的方法,其中,對於 每一具有至少二個位元階的位元階群組,該至少二個位元階是連續的。
- 如請求項4所述的訓練N位元神經網路的方法,還包含:對於每一位元群組的訓練,決定一組專用於該位元群組之整體及每一已被訓練之位元群組的批次標準化參數。
- 如請求項1所述的訓練N位元神經網路的方法,其中,該等N個位元中之對應於第i個位元階的位元在具有一第一位元值時,代表十進制的2i,而在具有一第二位元值時,代表十進制的-2i,其中i為整數且(N-1)≧i≧0。
- 如請求項1所述的訓練N位元神經網路的方法,還包含:對於每一位元群組的訓練,在該位元組被訓練前,決定一組專用於該位元群組之整體及每一已被訓練之位元群組的批次標準化參數。
- 一種電腦程式產品,包含儲存在一可讀式電腦儲存媒體的一神經網路程式碼,而且當該神經網路程式碼被一神經網路加速器執行時,建立一具有多組批次標準化參數及多個權重的神經網路,該神經網路在多個分別對應於不同位元寬度的位元寬度模式中切換,其中該等多組批次標準化參數分別對應於不同位元寬度,並且在每一位元寬度模式中,每一權重具有對應於該位元寬度模式的位元寬度;其中,當該神經網路程式碼被該神經網路加速器執行時,該神經網路操作在該神經網路加速器之一位元寬度所對應的位元寬度模式下,並且對應於該神經網路加速器之位元寬度的批次標準化參數被該神經網路加速器使用。
- 如請求項8所述的電腦程式產品,其中,該神經網路為N位元神經網路且N為正整數,而該神經網路的每一權重由N個位元所組成;其中,對每一位元寬度模式,對應該位元寬度模式的位元寬度不大於N,其中,該神經網路加速器為一M位元神經網路加速器,該神經網路加速器有位元寬度為M,M為一正整數且等於分別對應該等位元寬度模式之不同的位元寬度之其中一者,且M<N;及其中,該神經網路因該神經網路加速器而藉由將一部分該等權重由N個位元限縮到M個位元而操作在該等位元寬度模式之一個對應一M位元寬度的位元寬度模式,其中該等M個位元相關於該一部分該等權重的M個具有最高顯著性的位元,而該神經網路加速器使用該等多組批次標準化參數中一組對應M位元寬度的批次標準化參數執行該神經網路。
- 如請求項9所述的電腦程式產品,進一步藉由直接截去最低顯著性的N-M個位元來將該權重自N個位元值縮至M個位元。
- 如請求項9所述的電腦程式產品,其中,該等N個位元中之對應於第i個位元階的位元在具有一第一位元值時,代表十進制的2i,而在具有一第二位元值時,代表十進制的-2i,其中i為整數且(N-1)≧i≧0。
- 一種電腦化神經網路系統,包含: 一儲存模組,儲存有如請求項8所述的電腦程式產品;及一神經網路加速器,電連接該儲存媒體並用以執行該電腦程式產品的該神經網路程式碼。
- 如請求項12所述的電腦化神經網路系統,還包含一伺服器電腦及一藉由一網際網路遠端連接至該伺服器電腦的裝置,該儲存模組位於該伺服器電腦內,該神經網路加速器位於該裝置內且透過該網際網路遠端連接至該儲存模組。
- 一種電腦化系統,包含多個乘法器及多個連接該等乘法器的加法器,該等乘法器及該等加法器能彼此配合一神經網路之權重和激活的點乘積運算,其中,對於某些資料片段,每一資料片段包括分別對應多個位元階之多個位元並被使用於該等乘法器之某些運算,該等位元中之對應於第i個位元階的位元在具有一第一位元值時,代表十進制的2i,而在具有一第二位元值時,代表十進制的-2i,其中i為整數且(N-1)≧i≧0。
- 一種電腦化神經網路系統,包含:一儲存模組,儲存有一神經網路,該神經網路具有多個權重,每一權重包括一對應數量的位元,該等權重總共具有一第一數量的位元;及一神經網路加速器,電連接該儲存模組並用以執行該神經網路,對於每一權重,該神經網路加速器係藉由使用該權重所對應之該對應數量的位元之一部分來執行運算以執行該神經網路,以使用於運算之該等權重之位元的一 總數量小於該第一數量。
- 如請求項15所述的電腦化神經網路系統,其中,該神經網路還包括多個層,每一層具有該等權重之一部份,並具有被定義為該層之權重的每一者所具有之位元數量的對應位元寬度;及其中,該神經網路加速器被配置來藉由縮限該等層之其中一者的位元寬度以執行該神經網路。
- 如請求項15所述的電腦化神經網路系統,其中,該神經網路包括多個層,每一層具有至少一包括該等權重之一部份的通道及被定義為該至少一通道之權重的每一者所具有之位元數量的對應位元寬度,其中,該神經網路加速器被配置來藉由縮限該等層中其中一層的該至少一通道其中一通道的位元寬度執行該神經網路。
- 一種電腦化神經網路系統,包含:一儲存模組,儲存有一神經網路,該神經網路具有多個權重,且能在多個分別對應於不同位元寬度的位元寬度模式中切換,在每一位元寬度模式中,每一權重具有對應於該位元寬度模式的位元寬度;及一神經網路加速器,連接該儲存模組,並被配置來根據該電腦化神經網路系統的一條件致使該神經網路操作在該等位元寬度模式之至少二者間,並執行操作在該等位元寬度模式之至少二者間的該神經網路。
- 如請求項18所述的電腦化神經網路系統,其中,對於每一 權重,當該權重具有一位元寬度N時,該權重包括N個位元,且該等N個位元中之對應於第i個位元階的位元在具有一第一位元值時,代表十進制的2i,而在具有一第二位元值時,代表十進制的-2i,其中i為整數且(N-1)≧i≧0。
- 如請求項18所述的電腦化神經網路系統,其中,該條件為該電腦化神經網路系統的一準確性要求、一能源消耗時程、一電量等級,及一溫度等級的其中一者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862721003P | 2018-08-22 | 2018-08-22 | |
US62/721003 | 2018-08-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202026953A TW202026953A (zh) | 2020-07-16 |
TWI724503B true TWI724503B (zh) | 2021-04-11 |
Family
ID=69587248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108129664A TWI724503B (zh) | 2018-08-22 | 2019-08-20 | 具有推論時期位元寬度調整彈性的神經網路方法、系統,及其電腦程式產品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200065676A1 (zh) |
TW (1) | TWI724503B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200117981A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Data representation for dynamic precision in neural network cores |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160328647A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CN106484362A (zh) * | 2015-10-08 | 2017-03-08 | 上海兆芯集成电路有限公司 | 利用使用者指定二维定点算术运算的装置 |
TWI625681B (zh) * | 2017-05-11 | 2018-06-01 | 國立交通大學 | 神經網路處理系統 |
TW201822076A (zh) * | 2016-12-13 | 2018-06-16 | 瑞典商安訊士有限公司 | 用於訓練神經網路之方法、電腦程式產品及裝置 |
CN108399185A (zh) * | 2018-01-10 | 2018-08-14 | 中国科学院信息工程研究所 | 一种多标签图像的二值向量生成方法及图像语义相似度查询方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100402734B1 (ko) * | 2001-12-21 | 2003-10-22 | 한국전자통신연구원 | 부호화된 피승수를 사용하는 고정 소수점 곱셈 장치 및 그방법 |
US10831444B2 (en) * | 2016-04-04 | 2020-11-10 | Technion Research & Development Foundation Limited | Quantized neural network training and inference |
US10277202B2 (en) * | 2016-07-14 | 2019-04-30 | Texas Instruments Incorporated | Methods and apparatus for efficient linear combiner |
US20180062978A1 (en) * | 2016-08-29 | 2018-03-01 | Fujitsu Limited | Sliced architecture for a current mode driver |
-
2019
- 2019-08-20 US US16/545,181 patent/US20200065676A1/en not_active Abandoned
- 2019-08-20 TW TW108129664A patent/TWI724503B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160328647A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
CN106484362A (zh) * | 2015-10-08 | 2017-03-08 | 上海兆芯集成电路有限公司 | 利用使用者指定二维定点算术运算的装置 |
TW201822076A (zh) * | 2016-12-13 | 2018-06-16 | 瑞典商安訊士有限公司 | 用於訓練神經網路之方法、電腦程式產品及裝置 |
TWI625681B (zh) * | 2017-05-11 | 2018-06-01 | 國立交通大學 | 神經網路處理系統 |
CN108399185A (zh) * | 2018-01-10 | 2018-08-14 | 中国科学院信息工程研究所 | 一种多标签图像的二值向量生成方法及图像语义相似度查询方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200065676A1 (en) | 2020-02-27 |
TW202026953A (zh) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xia et al. | Switched by input: Power efficient structure for RRAM-based convolutional neural network | |
US20180046901A1 (en) | Hardware accelerator for compressed gru on fpga | |
US10872295B1 (en) | Residual quantization of bit-shift weights in an artificial neural network | |
CN112292816A (zh) | 处理核心数据压缩和存储系统 | |
KR20200079059A (ko) | 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치 | |
Kim et al. | Mosaic-CNN: A combined two-step zero prediction approach to trade off accuracy and computation energy in convolutional neural networks | |
US10747501B2 (en) | Providing efficient floating-point operations using matrix processors in processor-based systems | |
TWI724503B (zh) | 具有推論時期位元寬度調整彈性的神經網路方法、系統,及其電腦程式產品 | |
Yang et al. | An approximate multiply-accumulate unit with low power and reduced area | |
US11907380B2 (en) | In-memory computation in homomorphic encryption systems | |
Manukian et al. | Memcomputing numerical inversion with self-organizing logic gates | |
EP4024281A1 (en) | Method and apparatus for processing data, and related product | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
Xu et al. | A low-power arithmetic element for multi-base logarithmic computation on deep neural networks | |
Tang et al. | A high-accuracy hardware-efficient multiply–accumulate (mac) unit based on dual-mode truncation error compensation for cnns | |
WO2022247368A1 (en) | Methods, systems, and mediafor low-bit neural networks using bit shift operations | |
Sanjeet et al. | Energy-efficient FPGA implementation of power-of-2 weights-based convolutional neural networks with low bit-precision input images | |
CN113791756A (zh) | 转数方法、存储介质、装置及板卡 | |
WO2021036904A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN114267391A (zh) | 机器学习硬件加速器 | |
CN111258542B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
Madadum et al. | A resource-efficient convolutional neural network accelerator using fine-grained logarithmic quantization | |
CN112784971A (zh) | 基于数模混合神经元的神经网络运算电路 | |
Yang et al. | FPGA-based approximate calculation system of General Vector Machine | |
US20220398067A1 (en) | Multiply-accumlate device |