TWI791610B - 對人工神經網路及浮點神經網路進行量化的方法及裝置 - Google Patents

對人工神經網路及浮點神經網路進行量化的方法及裝置 Download PDF

Info

Publication number
TWI791610B
TWI791610B TW107132005A TW107132005A TWI791610B TW I791610 B TWI791610 B TW I791610B TW 107132005 A TW107132005 A TW 107132005A TW 107132005 A TW107132005 A TW 107132005A TW I791610 B TWI791610 B TW I791610B
Authority
TW
Taiwan
Prior art keywords
neural network
artificial neural
segments
quantization error
density function
Prior art date
Application number
TW107132005A
Other languages
English (en)
Other versions
TW201915839A (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 南韓商三星電子股份有限公司
Publication of TW201915839A publication Critical patent/TW201915839A/zh
Application granted granted Critical
Publication of TWI791610B publication Critical patent/TWI791610B/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/0495Quantised networks; Sparse networks; Compressed 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
    • 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/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Feedback Control In General (AREA)
  • Image Processing (AREA)

Abstract

本發明提供一種對人工神經網路進行量化的方法、對人工神經網路進行量化的裝置及對浮點神經網路進行量化的方法。一種對人工神經網路進行量化的方法包括:將所述人工神經網路的輸入分佈劃分成多個節段;通過對所述多個節段中的每一個進行近似來產生近似密度函數;基於所述近似密度函數來計算與用於對所述人工神經網路進行量化的至少一個步長對應的至少一個量化誤差;以及基於所述至少一個量化誤差來確定用於對所述人工神經網路進行量化的最終步長。所述方法同時提供人工神經網路的高的準確性及低的計算複雜度。

Description

對人工神經網路及浮點神經網路進行量化的方法及裝置
本發明是有關於一種裝置及方法涉及人工神經網路,且特別是有關於一種對人工神經網路進行量化。
人工神經網路可指用於產生人工神經元(或神經元模型)的互連集合的由計算器件實行的方法或者計算器件。人工神經元可通過對輸入資料實行簡單的操作來產生輸出資料,且輸出資料可被傳送到其他神經元。作為人工神經網路的實例,深度神經網路或深度學習架構可具有多層式結構且可通過根據多個樣本對各個層中的每一個進行訓練來產生多個樣本分佈。
一個或多個示例性實施例提供一種對人工神經網路進行量化的方法,所述方法同時提供人工神經網路的高的準確性及低的計算複雜度。
一個或多個示例性實施例還提供一種用於對人工神經網路進行量化的裝置,所述裝置同時提供人工神經網路的高的準確性及低的計算複雜度。
根據示例性實施例的一方面,提供一種對人工神經網路進行量化的方法,所述方法包括:將所述人工神經網路的輸入分佈劃分成多個節段;通過對所述多個節段中的每一個進行近似來產生近似密度函數;基於所述近似密度函數來計算與用於對所述人工神經網路進行量化的至少一個步長(step size)對應的至少一個量化誤差;以及基於所述至少一個量化誤差來確定用於對所述人工神經網路進行量化的最終步長。
根據另一個示例性實施例的一方面,提供一種裝置,所述裝置包括:記憶體;以及至少一個處理器,被配置成執行儲存在所述記憶體中的電腦可執行流程,其中所述電腦可執行流程包括:近似器,被配置成通過對從人工神經網路的輸入分佈劃分得到的多個節段中的每一個進行近似來產生近似密度函數,以及量化器,被配置成基於所述近似密度函數來計算與用於對所述人工神經網路進行量化的至少一個步長對應的至少一個量化誤差,並根據所述至少一個量化誤差來確定用於對所述人工神經網路進行量化的最終步長。
根據另一個示例性實施例的一方面,提供一種對浮點神經網路進行量化的方法,所述方法包括:將所述浮點神經網路的輸入分佈劃分成具有均勻寬度的多個節段;通過將所述多個節段中的每一個近似成多項式來產生近似密度函數;基於所述近似密度函數來計算與至少一個分數長度對應的至少一個量化誤差;以及基於所述至少一個量化誤差來確定用於量化所述浮點神經網路的最終步長。
現將參照圖式詳細地提及示例性實施例。在圖式中,省略與所述說明無關的部分以清楚地闡述示例性實施例,且相同的參考編號在本說明書通篇中指代相同的元件。就此來說,本發明各示例性實施例可具有不同的形式且不應被視為僅限於本文所述說明。
圖1是繪示根據示例性實施例的量化系統100的方塊圖。人工神經網路可指根據形成動物大腦的生物神經網路啟發得到的計算系統。不同於根據預定條件實行任務的傳統的不以神經網路為基礎的演算法(例如,基於規則的程式設計),人工神經網路可通過考慮多個樣本(或實例)來學習實行任務。人工神經網路可具有其中人工神經元(或神經元)彼此連接的結構,且各神經元之間的連接可被稱為突觸。神經元中的每一個可處理接收到的信號並通過突觸將經過處理的信號傳送到另一個神經元。神經元的輸出可被稱為“啟動”。神經元及/或突觸可具有變化的權重,且由神經元處理的信號的影響可根據神經元的權重而增大或減小。具體來說,與各別神經元相關聯的權重可被稱為偏置(bias)。
深度神經網路或深度學習架構可具有層結構,且特定層的輸出可為下一層的輸入。在此種多層式結構中,可根據多個樣本來訓練各個層中的每一個。人工神經網路(例如深度神經網路)可由多個處理節點來實施(所述多個處理節點中的每一個對應於人工神經元),且可能需要高的計算複雜度以獲得良好的結果(例如,高準確性結果),且因此可能需要大數目的計算資源。
為降低計算複雜度,可對人工神經網路進行量化。量化可指將輸入值映射到數目比輸入值的數目小的值,例如通過舍入來將實數映射到整數。在人工神經網路中,量化可涉及將浮點神經網路轉換成固定點神經網路的過程。舉例來說,在人工神經網路中,可對層啟動、權重、偏置等應用量化。浮點數可包括符號、指數、及有效數字(或有效數),其中固定點數可包括整數部分及分數部分。在一些實例中,固定點數的整數部分可包括符號位元。使用浮點數的人工神經網路(即,浮點神經網路)可具有較高的準確性以及計算複雜度,而使用固定點數的人工神經網路(即,固定點神經網路)可具有進一步降低的準確性及計算複雜度。
由於人工神經網路中的結果準確性與計算複雜度之間存在折衷關係,因此人工神經網路的量化可導致準確性降低,且準確性降低的程度可取決於量化方法的類型。如以下參照圖式所闡述,根據示例性實施例的量化系統100可在使準確性的降低最小化的同時根據需要提供量化,且因此,可提供性能良好且複雜度降低的固定點神經網路。
量化系統100可為根據示例性實施例實行量化的任何系統,且可被稱為量化裝置。舉例來說,量化系統100可為包括至少一個處理器及記憶體的計算系統。作為非限制性實例,量化系統100可為移動計算系統(例如,膝上型電腦及智慧型電話)以及靜止的計算系統(例如,桌上型電腦及伺服器)。如圖1所示,量化系統100可包括近似器120及量化器140,且近似器120及量化器140中的每一個可利用通過邏輯綜合來實施的邏輯塊、由處理器實行的軟體塊、或其組合來實施。在一些實施例中,近似器120及量化器140中的每一個可為呈由處理器執行的指令集形式的流程,且可被儲存在可由處理器存取的記憶體(例如,揮發性記憶體或非揮發性記憶體)中。
參照圖1,量化系統100可接收輸入分佈IN且可產生經量化的輸出OUT。輸入分佈IN可包括多個輸入分佈IN1及IN2(例如,啟動值的分佈及權重的分佈),且經量化的輸出OUT可包括分別對應於輸入分佈IN1及IN2的經量化的資料OUT1及OUT2。如圖1所示,輸入分佈IN1及IN2可具有與眾所周知的分佈(例如,高斯分佈(Gaussian distribution)、拉普拉斯分佈(Laplacian distribution)、及伽瑪分佈(Gamma distribution))不同的形狀。因此,基於眾所周知的分佈來對具有不規則形狀的輸入分佈IN1及IN2實行量化可受到限制且無法提供高準確性。如以下所闡述,根據示例性實施例的量化系統100可不受限於輸入分佈IN的形狀且可對具有任意形狀的輸入分佈IN提供準確性得到提高的量化。
近似器120可接收輸入分佈IN,且可產生近似密度函數ADF並將所產生的近似密度函數ADF提供到量化器140。在一些實施例中,近似器120可將輸入分佈IN劃分成多個節段且可通過對彼此獨立的所述多個節段中的每一個進行近似來產生近似密度函數ADF。舉例來說,近似器120可將輸入分佈IN均勻地劃分成具有相同寬度的多個節段,通過對所述多個節段中的每一個進行近似來匯出與所述多個節段中的每一個對應的函數,並通過組合所匯出的函數來產生近似密度函數ADF。因此,可產生與具有任意形狀的輸入分佈IN對應的具有低誤差的近似密度函數ADF,且可基於近似密度函數ADF匯出最優化步長,如下所述。本文中針對量化所使用的用語“誤差”是指輸入值與輸入值的經量化值之間的差值。稍後將參照圖4等來闡述近似器120的實例。
量化器140可從近似器120接收近似密度函數ADF且可通過對近似密度函數ADF進行量化來產生經量化的輸出OUT。量化器140可基於近似密度函數ADF來計算與步長對應的量化誤差且可基於量化誤差來確定最終步長。在一些實施例中,量化器140可計算與多個不同的量化步階對應的多個量化誤差,且可確定與所述多個量化誤差中的最小量化誤差對應的量化步階作為最終量化步階。另外,量化器140可基於最終量化步長來對輸入分佈IN進行量化且可產生經量化的輸出OUT。如上所述,可使用經量化的輸出OUT來實現固定點神經網路且與浮點神經網路相比可在使準確性劣化最小化的同時使人工神經網路的計算複雜度降低。
圖2是繪示根據示例性實施例的人工神經網路的實例的圖。具體來說,圖2是示意性地繪示深度神經網路20的結構作為人工神經網路的實例的圖。
如圖2所示,深度神經網路20可包括多個層(即,第一層到第N層L_1、L_2、L_3、...、及L_N),且第一層到第N層L_1、L_2、L_3、...、及L_N中的每一個的輸出可通過至少一個通道被輸入到下一層。舉例來說,第一層L_1可通過對樣本SAM進行處理來通過多個通道CH11到CH1x將輸出提供到第二層L_2,且第二層L_2還可通過多個通道CH21到CH2y將輸出提供到第三層L_3。最終,第N層L_N可輸出結果RES,且結果RES可包括與樣本SAM相關聯的至少一個值。用於分別匯出第一層到第N層L_1、L_2、L_3、...及L_N的輸出的通道的數目可彼此相等或彼此不同。舉例來說,第二層L_2的溝道CH21到CH2y的數目與第三層L_3的溝道CH31到CH3z的數目可彼此相等或彼此不同。
樣本SAM可為將由深度神經網路20處理的輸入資料。舉例來說,樣本SAM可為包含人用筆書寫的字母的圖像,且深度神經網路20可通過從圖像識別所述字母來輸出含有表示所述字母的值的結果RES。結果RES可包括對應於不同字母(即,候選項)的多個概率,且不同字母中最有可能的字母可對應於最高概率。深度神經網路20的第一層到第N層L_1、L_2、L_3、...、及L_N中的每一個可通過基於通過學習包含字母的多個圖像而產生的值(例如,權重、偏置等)對樣本SAM或前一層的輸出進行處理來產生各自的輸出。
根據示例性實施例的用於對人工神經網路進行量化的方法及裝置(例如,圖1中的量化系統100)可以人工神經網路(例如,深度神經網路20)的層為單位及/或以人工神經網路的通道為單位來獲得輸入分佈。舉例來說,由圖1所示量化系統100接收到的輸入分佈IN可從由一個層通過多個通道生成的輸出獲得,且也可從與一個通道對應的輸出獲得。
圖3是繪示根據示例性實施例的對人工神經網路進行量化的方法的流程圖。舉例來說,圖3所示量化方法可由圖1所示量化系統100來實行。在下文中,將參照圖1闡述圖3。
參照圖3,在操作S200中,可實行將輸入分佈IN劃分成多個節段的操作。舉例來說,近似器120可將輸入分佈IN劃分成兩個或更多個節段。在一些實施例中,近似器120可基於輸入分佈IN的最大值及最小值來劃分輸入分佈IN。在一些實施例中,近似器120可基於從量化系統100外部提供的輸入參數來劃分輸入分佈IN。稍後將參照圖4來闡述操作S200的實例。
在操作S400中,可實行產生近似密度函數ADF的操作。舉例來說,近似器120可對通過對彼此獨立的輸入分佈IN進行劃分獲得的節段進行近似,且可基於各種方式來對節段中的每一個進行近似。在一些示例性實施例中,近似器120可根據給定次數的多項式來對節段中的每一個進行近似。另外,近似器120可根據相同的方式(例如,相同次數的多項式)來對各個節段進行近似,或者可根據不同的方式(例如,不同次數的多項式)來對各個節段進行近似。稍後將參照圖5來闡述操作S400的實例。
在操作S600中,可實行計算量化誤差的操作。舉例來說,量化器140可基於近似密度函數ADF來計算與給定步長對應的量化誤差。在一些示例性實施例中,量化器140可將量化誤差表示為步長的函數,且可計算與多個不同的步長對應的多個量化誤差。在一些示例性實施例中,可基於超載畸變(overload distortion)及細微性畸變(granular distortion)來計算量化誤差。稍後將參照圖7至圖11來闡述操作S600的實例。
在操作S800中,可實行確定最終步長的操作。舉例來說,量化器140可確定與最小量化誤差對應的步長。在一些實施例中,量化器140可選擇與多個步長對應的多個量化誤差中的一者。在一些實施例中,量化器140可基於被表示為步長的函數的量化誤差的特性來確定步長。
圖4是繪示根據示例性實施例的對輸入分佈IN進行近似的操作的圖。舉例來說,圖4繪示其中在圖3所示操作S200及S400中對輸入分佈IN進行處理的操作的實例。儘管圖4繪示其中輸入分佈IN被劃分成偶數個節段的實例,然而應理解,輸入分佈IN可被劃分成奇數個節段。
參照圖4,輸入分佈INx可具有最大值MAX及最小值MIN且可具有介於最大值MAX與最小值MIN之間的值處的任何密度。如上所述,為對輸入分佈INx進行近似,當M是大於或等於1的整數時,可將輸入分佈INx劃分成2M個節段SEG-M 、...、及SEG(M-1) 。如圖4所示,包括輸入分佈INx的最大值MAX及最小值MIN的節段可被劃分成具有相同寬度W的2M個節段SEG-M . . .、及SEG( M-1) 。舉例來說,在包括最大值MAX及最小值MIN的區段[-X(M+1) , XM ]中,輸入分佈INx可被劃分成2M個節段SEG-M . . .、及SEG( M-1) 。包括最大值MAX的節段SEG(M-1) 可對應於區段[X(M-1) , XM ],包括最小值MIN的節段SEG-M 可對應於區段[-X(M+1) , -XM ],且‘XM - X(M-1) ’可與‘-XM - (-X(M+1) )’匹配。換句話說,節段SEG-M 及SEG(M-1) 可具有均勻的寬度。
在一些示例性實施例中,不同於圖4所示實例,輸入分佈INx可被劃分成具有不同寬度的節段。舉例來說,輸入分佈INx可被劃分成寬度與輸入分佈INx的密度成反比的節段。這樣一來,由於輸入分佈INx被劃分成2M個節段SEG-M . . .、及SEG( M-1) 且2M個節段SEG-M . . .、及SEG(M-1) 中的每一個被獨立地近似,因此可將具有任意形狀的輸入分佈近似成近似密度函數f(x)(例如,圖1中的近似密度函數ADF),且可基於近似密度函數f(x)來計算量化誤差,如下所述。在下文中,為便於說明起見,將參照圖4所示實例來闡述示例性實施例,然而應理解,示例性實施例並非僅限於此。
圖5是繪示根據示例性實施例的圖3所示操作S400的實例的流程圖。如以上參照圖3所闡述,在圖5所示操作S400a中可實行產生近似密度函數的操作。在下文中,將參照圖4闡述圖5。
參照圖5,在操作S410中,可實行將變數初始化的操作。如圖5所示,可將索引i設定成-M,即與圖4中的最小值MIN對應的節段SEG-M 的索引。
在操作S430中,可實行對節段SEGi 中的輸入分佈INx進行近似的操作。也就是說,可單獨地對圖4中的2M個節段SEG-M . . .、及SEG( M-1) 中的每一個進行近似。輸入分佈INx的節段SEGi 可通過各種方式進行近似。舉例來說,可將節段SEGi 近似成預定次數的多項式(例如,正整數或零),此僅作為非限制性實例,並且可使用切比雪夫近似(Chebyshev approximation)、Remez演算法等。在圖4所示實例中,繪示其中將輸入分佈INx的2M個節段SEG-M . . .、及SEG( M-1) 中的每一個近似成一次多項式的情形。然而可理解,示例性實施例並非僅限於此。通過對輸入分佈INx的節段SEGi 進行近似,可產生函數fi (x)。
在操作S450中,可判斷索引i是否與M-1匹配。換句話說,可判斷是否已完成對與最大值MAX對應的節段SEGM-1 的近似。當索引i不與M-1匹配時,也就是說,當仍存在要進行近似的節段時,在操作S470中可實行將索引i遞增1的操作,且隨後,可在操作S430中實行對節段SEGi 進行近似的操作。另一方面,當索引i與M-1匹配時,即,當輸入分佈INx的2M個節段SEG-M . . .、及SEG( M-1) 分別被近似成2M個函數f-M (x) . . .、及fM-1 (x)時,隨後可實行操作S490。
在操作S490中,可實行對2M個近似函數f-M (x) . . .及fM-1 (x)進行組合的操作,且可產生近似密度函數f(x)。舉例來說,可由以下方程式1來定義近似密度函數f(x)。 [方程式1]
Figure 02_image001
近似密度函數f(x)在節段的邊界處可為連續的或不連續的。換句話說,根據近似方法,在操作S430中進行近似的函數fi (x)可具有與節段SEGi 的邊界值(即,xi 及x(i+1) )處的輸入分佈INx的密度匹配的值、或者不同於輸入分佈INx的密度的值。在一些實施例中,當近似函數fi (x)是使用多項式最小化均方誤差(Mean Squared Error,MSE)從節段SEGi 近似得到時,fi (xi )及fi (x(i+1) )可具有與輸入分佈INx不同的值,且近似密度函數fx可為不連續的。另一方面,在一些示例性實施例中,近似函數fi (x)可被近似成具有與節段SEGi 的邊界值匹配的值,且近似密度函數f(x)可為連續的。
在一些示例性實施例中,可額外地實行將近似密度函數f(x)歸一化的操作。舉例來說,可將近似密度函數f(x)歸一化成滿足以下方程式2的概率密度函數fP (x),且可使用概率密度函數fP (x)來計算量化誤差作為近似密度函數。 [方程式2]
Figure 02_image003
圖6是繪示根據示例性實施例的對人工神經網路進行量化的方法的流程圖。與圖3所示量化方法相比,圖6所示量化方法可包括接收及獲得輸入參數D61。舉例來說,圖6所示量化方法可由圖1所示量化系統來實行,且將省略圖6的與圖3的說明相同的說明。
參照圖6,在操作S100中,可實行獲得輸入參數D61的操作。舉例來說,量化系統100可從外部接收輸入參數D61,輸入參數D61包括與量化相關聯的值。如圖6所示,輸入參數D61可包括節段的數目nSET及多項式的次數kTH中的至少一個。輸入參數D61中所包括的值可用於隨後的操作中。輸入參數D61可包括節段的數目nSET及多項式的次數kTH中的僅一個,且還可包括除節段的數目nSET及多項式的次數kTH之外的其他值。
在操作S200'中,可實行將輸入分佈IN劃分成多個節段的操作。舉例來說,量化系統100的近似器120可根據輸入參數D61中所包括的節段的數目nSET來對輸入分佈IN進行劃分。
在操作S400'中,可實行產生近似密度函數ADF的操作。舉例來說,量化系統100的近似器120可根據輸入參數D61中所包括的多項式的次數kTH來將多個節段中的每一個近似成次數為kTH的多項式。
在操作S600'中,可實行計算量化誤差的操作,且接著在操作S800'中,可實行確定步長的操作。
圖7是繪示根據示例性實施例的圖3所示操作S600的實例的流程圖。如以上參照圖3所闡述,在圖7所示操作S600a中可實行基於近似密度函數ADF來計算量化誤差的操作。參照圖7,操作S600a可包括多個操作S620、S640及S660。在下文中,將參照圖4所示實例闡述圖7。
在操作S620中,可實行計算與步長對應的超載畸變的操作。超載畸變可表示當對有限面積中的輸入實行量化時因輸入超出有限面積而造成的誤差。當根據N個量化級別以及區段[-L, L)中的步長Δ對圖4中的近似密度函數f(x)實行量化時,可建立由方程式L=NΔ/2表示的關係。另外,當一個步階的步長是Si =[xq,i -(Δ/2), xq,i +(Δ/2))時,則可建立[-L, L)=S1 ∪S2 ∪...∪SN ,且在此種情形中,可由以下方程式3來定義超載畸變Dover (Δ)。 [方程式3]
Figure 02_image005
在操作S640中,可實行計算與步長對應的細微性畸變的操作。輸入的有限區內的量化結果之間的間距可被稱為細微性,且細微性畸變可表示因間距造成的誤差。在與用於定義超載畸變Dover (Δ)的條件相同的條件下,可由以下方程式4來定義細微性畸變Dgran (Δ)。 [方程式4]
Figure 02_image007
在操作S660中,可實行將超載畸變與細微性畸變相加的操作。也就是說,可通過方程式5來計算量化誤差D(Δ)。 [方程式5]
Figure 02_image010
根據方程式3、方程式4及方程式5,量化誤差D(Δ)可被表達為步長的函數。
圖8是繪示根據示例性實施例的計算量化誤差的操作的實例的圖。具體來說,圖8繪示計算細微性畸變Dgran (Δ)的實例,且在此種情形中,假設圖4中的2M個節段SEG-M . . .、及SEG( M-1) 中的每一個的寬度W及步長Δ彼此匹配(即,N = 2M),且近似密度函數f(x)包括其中2M個節段SEG-M . . .及SEG(M-1) 中的每一個被近似成一次多項式的函數。另外,假設近似密度函數f(x)通過方程式2被歸一化成fP (x)。
參照圖8,當通過方程式6將2M個節段SEG-M . . .、及SEG(M-1) 所近似成的2M個函數f-M (x) . . .、及fM-1 (x)轉換成2M個函數g-M (z) . . .、及g(M-1) (z)時,近似密度函數f(x)可被轉換成具有處於區段[-Δ/2, Δ/2)中的有效值的函數g(z)。 [方程式6]
Figure 02_image012
如在圖8的左下部分中所示,N個函數g1 (z) . . .、及gN (z)可在區段[-Δ/2, Δ/2)中具有有效值。如在圖8的左上部分中所示,通過將N個函數g1 (z) . . . 、及gN (z)相加獲得的函數g(z)也可在區段[-Δ/2, Δ/2)中具有有效值。由於N個函數g1 (z) . . .、及gN (z)中的每一個是一次多項式,因此函數g(z)也可為一次多項式。因此,函數g(z)可由在區段[-Δ/2, Δ/2)中具有恒定斜率的直線表示。另外,由於近似密度函數f(x)是歸一化的,因此函數g(z)在z=0處可具有值1/Δ(即,g(0)=1/Δ)。
當近似密度函數f(x)被轉換成在區段[-Δ/2, Δ/2)中具有有效值的函數g(z)時,細微性畸變Dgran (Δ)可通過方程式7來定義。 [方程式7]
Figure 02_image014
如在圖8的右部分中所示,當在區段[0, Δ/2)中對函數g(z)進行積分時,細微性畸變Dgran (Δ)可通過以下方程式8來定義且可被表示為步長Δ的簡化函數。
[方程式8]
Figure 02_image015
圖9是繪示根據示例性實施例的計算量化誤差的操作的實例的圖。具體來說,圖9繪示在與圖8所示實例相同的條件下計算超載畸變Dover (Δ)的實例。
在固定點神經網路中,步長Δ可與分數長度FL相關。舉例來說,當步長Δ是2的冪(例如,Δ=2-k ,其中k是正整數)時,分數長度FL及步長Δ可滿足以下方程式9所示關係。 [方程式9]
Figure 02_image018
換句話說,確定步長Δ可對應於確定分數長度FL,且量化誤差D(Δ)還可被表示為分數長度FL的函數D(FL)。在下文中,假設步長Δ及分數長度FL滿足圖9所示關係。
參照圖9,可通過以下方程式10來計算超載畸變Dover (FL)。 [方程式10]
Figure 02_image019
其中
Figure 02_image023
Figure 02_image027
Figure 02_image031
,且
Figure 02_image035
在方程式10中,FLmin 表示防止最大值MAX飽和的分數長度。當固定點神經網路的帶符號的位元寬度是BW時,可通過方程式11來定義FLmin 。 [方程式11]
Figure 02_image037
圖10及圖11是繪示根據示例性實施例的圖3所示操作S600及操作S800的實例的流程圖。如以上參照圖3所述,在圖10所示操作S600b及圖11所示操作S600c中可實行計算量化誤差的操作,且在圖10所示操作S800b及圖11所示操作S800c中可實行確定步長的操作。如以上參照圖9所述,確定步長對應於確定分數長度,且因此,將基於分數長度FL來闡述圖10及圖11所示實例。
參照圖10,在一些示例性實施例中,可使用包括多個分數長度FL1 到FLP 的分數長度集合D11來確定分數長度FL。在一些實施例中,可通過基於固定點神經網路的位元寬度BW而確定的範圍來確定分數長度集合D11。如圖10所示,計算量化誤差的操作S600b可包括多個操作S620b、S640b及S660b,且在操作S600b之後可實行操作S800b。
在操作S620b中,可實行從分數長度集合D11中的第一分數長度FL1 到分數長度FLP 依序選擇分數長度FLi 的操作。換句話說,為計算分別與分數長度集合D11中所包括的所述多個分數長度FL1 到FLP 對應的量化誤差,可依序選擇所述多個分數長度FL1 到FLP
在一些示例性實施例中,分數長度集合D11可包括按照昇冪排列的多個分數長度FL1 到FLP (例如,一次遞增1的次序),且因此,具有較高索引的分數長度可大於具有較低索引的分數長度。在一些示例性實施例中,分數長度集合D11可包括按照降冪排列的多個分數長度FL1 到FLP (例如,一次遞減1的次序),且因此,具有較高索引的分數長度可小於具有較低索引的分數長度。在一些示例性實施例中,分數長度集合D11可包括按照任何次序排列的多個分數長度FL1 到FLP
在操作S640b中,可實行計算量化誤差D(FLi )的操作。舉例來說,如圖10所示,可分別計算根據分數長度FLi 的超載畸變Dover (FLi )及細微性畸變Dgran (FLi ),且可將量化誤差D(FLi )作為超載畸變Dover (FLi )與細微性畸變Dgran (FLi )之和進行計算。在一些示例性實施例中,可根據上述方程式來計算超載畸變Dover (FLi )與細微性畸變Dgran (FLi )。因此,由於在圖3所示操作S400中產生的近似密度函數f(x),因此可準確地且容易地計算根據分數長度FLi 的量化誤差。
在操作S660b中,可實行判斷索引i是否與分數長度集合D11中的元素的數目P匹配的操作。換句話說,可實行判斷是否已完成對分別與分數長度集合D11中的分數長度FL1 到FLP 對應的量化誤差D(FL1 )到D(FLP )的計算的操作。當索引i不與分數長度集合D11的元素的數目P匹配時,可選擇根據在操作S620b中發生改變的索引i的分數長度FLi 。否則,隨後可實行操作S800b。
在操作S800b中,可實行確定與最小量化誤差對應的分數長度FL的操作。因此,所確定的分數長度FL(或步長)可對應於實質上使量化誤差最小化的分數長度,且因此,人工神經網路的量化可提供高準確性。
參照圖11,在一些示例性實施例中,可基於作為分數長度FL的函數的量化誤差的特性來確定分數長度。舉例來說,當分數長度從由方程式11定義的分數長度FLmin 增大時,作為分數長度FL的函數的量化誤差可具有逐漸增大的形狀或向下凸出的形狀。換句話說,當在針對從方程式11的分數長度FLmin 依序增大的分數長度來計算量化誤差的過程中發生比先前計算的量化誤差大的量化誤差時,可停止針對額外的分數長度來計算量化誤差。如圖11所示,計算量化誤差的操作S600c可包括多個操作S610c、S620c、S630c、S640c、S650c及S660c,且在操作S600c之後可實行包括操作S820c及S840c的操作S800c。
在操作S610c中,可實行計算分數長度FLmin 的操作。舉例來說,如以上參照圖9所述,FLmin 可表示防止最大值MAX飽和的分數長度,且分數長度FLmin 可根據方程式11來計算。
在操作S620c中,可實行將變數初始化的操作。舉例來說,如圖11所示,索引i可被設定成1且分數長度FLi 可被設定成在操作S610c中計算的FLmin
在操作S630c中,可實行計算量化誤差D(FLi )的操作。舉例來說,如圖11所示,可計算根據分數長度FLi 的超載畸變Dover (FLi )及細微性畸變Dgran (FLi ),且可將量化誤差D(FLi )作為超載畸變Dover (FLi )與細微性畸變Dgran (FLi )之和進行計算。在一些示例性實施例中,可根據上述方程式來計算超載畸變Dover (FLi )與細微性畸變Dgran (FLi )。
在操作S640c中,可實行用於將當前計算的量化誤差D(FLi )與先前計算的量化誤差D(FL(i-1) )進行比較的操作。換句話說,可實行將具有索引i的分數長度FLi 的量化誤差D(FLi )與具有前一索引i-1的分數長度FL(i-1) 的量化誤差D(FL(i-1) )進行比較的操作。在當前計算的量化誤差D(FLi )大於先前計算的量化誤差D(FL(i-1) )時,可在操作S840c中確定用於計算前一量化誤差D(FL(i-1) )的分數長度FL(i-1) ,而如果當前計算的量化誤差D(FLi )不大於先前計算的量化誤差D(FL(i-1) )時,隨後可實行操作S650c。
在操作S650c中,可實行將索引i與預定數目P進行比較的操作。預定數目P可為任何正整數,且可小於固定點神經網路的位元寬度。當索引i與預定數目P彼此匹配時,也就是說,當與P個不同的分數長度對應的量化誤差連續減小時,可在操作S820c中實行用於確定最終分數長度FLP 的操作。另一方面,當索引i與預定數目P不彼此匹配時,在操作S660c中,可使分數長度FLi 及索引i遞增1,且隨後可實行操作S630c。
圖12是根據示例性實施例的計算系統200的方塊圖。在一些示例性實施例中,圖1所示量化系統100可由圖12所示計算系統200來實施。如圖12所示,計算系統200可包括系統記憶體210、處理器230、儲存裝置250、輸入/輸出(input/output,I/O)器件270及通信連接290。計算系統200的元件可例如通過匯流排進行互連。
系統記憶體210可包括程式212。程式212可使處理器230實行根據示例性實施例的人工神經網路的量化。舉例來說,程式212可包括可由處理器230執行的多個指令,且當處理器230執行程式212中的多個指令時,可執行人工神經網路的量化。作為非限制性實例,系統記憶體210可包括例如靜態隨機存取記憶體(static random access memory,SRAM)及動態隨機存取記憶體(dynamic random access memory,DRAM)等揮發性記憶體,或者可包括例如快閃記憶體等非揮發性記憶體。
處理器230可包括能夠執行任何指令集(例如,英特爾架構-32(Intel Architecture-32,IA-32)、64位擴展英特爾架構-32、x86-64、增強RISC性能優化-性能計算架構(Performance Optimization With Enhanced RISC – Performance Computing,PowerPC)、可擴充處理器架構(Scalable Processor ARChitecture,Sparc)、無內部互鎖流水級的微處理器(Microprocessor without interlocked piped stages,MIPS)、高級精簡指令集機器(Advanced RISC Machine,ARM)及英特爾架構-64)的至少一個核心。處理器230可執行儲存在系統記憶體210中的指令且可通過執行程式212來實行人工神經網路的量化。
即使被供應到計算系統200的電力被切斷時,儲存裝置250仍可保持所儲存的資料。舉例來說,儲存裝置250可包括非揮發性記憶體(例如,電可抹除唯讀記憶體(electrically erasable read-only memory,EEPROM)、快閃記憶體、相變隨機存取記憶體(phase change random access memory,PRAM)、電阻式隨機存取記憶體(resistance random access memory,RRAM)、納米浮閘記憶體(nano floating gate memory,NFGM)、聚合物隨機存取記憶體(polymer random access memory,PoRAM)、磁性隨機存取記憶體(magnetic random access memory,MRAM)、或鐵電式隨機存取記憶體(ferroelectric random access memory,FRAM)),或可包括儲存裝置媒體(例如,磁帶、光碟、或磁片)。在一些示例性實施例中,儲存裝置250可能夠從計算系統200分離。
在一些示例性實施例中,儲存裝置250可儲存用於根據示例性實施例對人工神經網路進行量化的程式212,且來自儲存裝置250的程式212或程式212的至少一部分可在處理器230執行程式212之前被載入到系統記憶體210中。在一些示例性實施例中,儲存裝置250可儲存以程式設計語言寫成的檔,且由編譯器(compiler)等從所述檔產生的程式212或程式212的至少一部分可被載入至系統記憶體210中。
在一些示例性實施例中,儲存裝置250可儲存將由處理器230處理的資料及/或經過處理器230處理的資料。舉例來說,儲存裝置250可儲存與圖1所示輸入分佈IN及/或圖6所示輸入參數D61對應的資料,可儲存與圖1所示經量化的輸出OUT對應的資料,且可儲存在量化期間產生的資料(例如,步長及分數長度)。
輸入/輸出器件270可包括輸入器件(例如,鍵盤及定點器件(例如,滑鼠、觸控板等)),且可包括輸出器件(例如,顯示器件及印表機)。舉例來說,用戶可通過輸入/輸出器件270來觸發由處理器230執行程式212,可輸入圖6所示輸入參數D61,且可檢查圖1所示經量化的輸出OUT及/或錯誤消息。
通信連接290(例如,通信介面、網路介面卡、天線等)可提供對計算系統200外部的網路的存取。舉例來說,網路可包括多個計算系統與通信鏈路,且通信鏈路可包括有線鏈路、光學鏈路、無線鏈路、或任何其他類型的鏈路。
圖13是根據示例性實施例的移動計算器件300的方塊圖。在一些示例性實施例中,在移動計算器件300中可實施根據示例性實施例量化的固定點神經網路。作為非限制性實例,移動計算器件300可為由電池供電或自行發電的任何移動電子器件(例如,行動電話、平板個人電腦(personal computer,PC)、可穿戴器件、及/或物件互聯網器件(例如,物聯網器件))。
如圖13所示,移動計算器件300可包括記憶體子系統310、輸入/輸出(I/O)器件330、處理單元350及網路介面370。記憶體子系統310、輸入/輸出器件330、處理單元350及網路介面可通過匯流排390來彼此通信。在一些示例性實施例中,記憶體子系統310、輸入/輸出器件330、處理單元350及網路介面中的至少兩者可包括在一個封裝中作為系統級晶片(System-on-Chip,SoC)。
記憶體子系統310可包括隨機存取記憶體312及儲存裝置314。隨機存取記憶體312及/或儲存裝置314可儲存由處理單元350執行的指令、以及經過處理單元350處理的資料。舉例來說,隨機存取記憶體312及/或儲存裝置314可儲存變數(例如,人工神經網路的信號、權重及偏置)且還可儲存人工神經網路的人工神經元(或計算節點)的參數。在一些示例性實施例中,儲存裝置314可包括非揮發性記憶體。
處理單元350可包括中央處理器(central processing unit,CPU)352、圖形處理單元(graphics processing unit,GPU)354、數位訊號處理器(digital signal processor,DSP)356、及神經處理單元(neural processing unit,NPU)358。不同於圖13中所示,在一些示例性實施例中,處理單元350可包括中央處理器352、圖形處理單元354、數位訊號處理器356、及神經處理單元358中的僅一些。
中央處理器352可控制移動計算器件300的總體操作。舉例來說,中央處理器352可回應於通過輸入/輸出器件330接收的外部輸入來直接實行特定任務,或者可指示處理單元350的其他元件來實行任務。圖形處理單元354可產生通過輸入/輸出器件330中的顯示器件輸出的圖像的資料且可對從輸入/輸出器件330中的照相機接收到的資料進行編碼。數位訊號處理器356可通過對數位信號(例如,從網路介面370提供的數位信號)進行處理來產生有用的資料。
作為人工神經網路的專用硬體的神經處理單元358可包括與構成人工神經網路的至少一些人工神經元對應的多個計算節點,且所述多個計算節點中的至少一些計算節點可並行地處理信號。根據示例性實施例進行量化的人工神經網路(例如,深度神經網路)具有低計算複雜度以及高準確性,且因此可易於在圖13所示移動計算器件300中實施,可具有快速的處理速度,且還可由例如簡單的且小規模的神經處理單元來實施。
輸入/輸出器件330可包括輸入器件(例如,觸摸式輸入器件、聲音輸入器件及照相機)以及輸出器件(例如,顯示器件及聲音輸出器件)。舉例來說,當通過聲音輸入器件輸入用戶的聲音時,所述聲音可由在移動計算器件300中實施的深度神經網路識別出,且可觸發對應的操作。另外,當通過照相機輸入圖像時,圖像中的物件可由在移動計算器件300中實施的深度神經網路識別出,且可將例如虛擬實境等輸出提供給用戶。網路介面370可為移動計算器件300提供對移動通信網路(例如,長期演進(Long Term Evolution,LTE)或5G)的存取且可提供通過無線保真(wireless fidelity,Wi-Fi)協定對局域網(例如,無線局域網(wireless local network,WLAN))的存取。
儘管已參照本公開的示例性實施例具體繪示並闡述了本公開,然而應理解,在不背離以下申請專利範圍的精神及範圍的條件下,可在本文中作出形式及細節上的各種改變。
20‧‧‧深度神經網路100‧‧‧量化系統120‧‧‧近似器140‧‧‧量化器200‧‧‧計算系統210‧‧‧系統記憶體212‧‧‧程式230‧‧‧處理器250、314‧‧‧儲存裝置270、330‧‧‧輸入/輸出器件290‧‧‧通信連接300‧‧‧移動計算器件310‧‧‧記憶體子系統312‧‧‧隨機存取記憶體350‧‧‧處理單元352‧‧‧中央處理器354‧‧‧圖形處理單元356‧‧‧數位訊號處理器358‧‧‧神經處理單元370‧‧‧網路介面390‧‧‧匯流排ADF‧‧‧近似密度函數CH11~CH1x、CH21~CH2y、CH31~CH3z‧‧‧通道D11‧‧‧分數長度集合D61‧‧‧輸入參數D(FLi)、D(FL(i-1))‧‧‧量化誤差Dover(FLi)‧‧‧超載畸變Dgran(FLi)‧‧‧細微性畸變D(Δ)‧‧‧量化誤差FL‧‧‧分數長度FL1‧‧‧分數長度/第一分數長度FLP‧‧‧分數長度/最終分數長度FLi、FL(i-1)、FLmin‧‧‧分數長度f(x)‧‧‧近似密度函數fi(x)、f-M(x)~fM-1(x)‧‧‧函數/近似函數fP(x)‧‧‧概率密度函數g(z)、g1(z)、gN(z)、g(-z)‧‧‧函數i‧‧‧索引IN、IN1、IN2、INx‧‧‧輸入分佈kTH‧‧‧多項式的次數/次數L_1‧‧‧第一層L_2‧‧‧第二層L_3~L_N‧‧‧第三層~第N層MAX‧‧‧最大值MIN‧‧‧最小值nSET‧‧‧節段的數目OUT‧‧‧經量化的輸出OUT1、OUT2‧‧‧經量化的資料P‧‧‧元素的數目/預定數目RES‧‧‧結果S100、S200、S200'、S400、S400'、S400a、S410、S430、S450、S470、S490、S600、S600'、S600a、S600b、S600c、S610c、S620、S620b、S620c、S630c、S640、S640b、S640c、S650c、S660、S660b、S660c、S800、S800'、S800b、S800c、S820c、S840c‧‧‧操作SAM‧‧‧樣本SEG-M~SEG-2、SEG-1、SEG0、SEG1、SEG2~SEG(M-3)、SEG(M-2)、SEG(M-1)、SEGi‧‧‧節段W‧‧‧寬度Δ‧‧‧步長-X(M+1)、-XM、-X3、-X2、-X1、X1、X2、X3~X(M-3)、X(M-2)、X(M-1)、XM‧‧‧節段的邊界值1/Δ、2/Δ‧‧‧值
通過結合圖式閱讀以下詳細說明,將更清楚地理解以上及/或方面,在圖式中: 圖1是繪示根據示例性實施例的量化系統的方塊圖。 圖2是繪示根據示例性實施例的人工神經網路的實例的圖。 圖3是繪示根據示例性實施例的對人工神經網路進行量化的方法的流程圖。 圖4是繪示根據示例性實施例的對輸入分佈進行近似的操作的圖。 圖5是繪示根據示例性實施例的圖3所示操作S400的實例的流程圖。 圖6是繪示根據示例性實施例的對人工神經網路進行量化的方法的流程圖。 圖7是繪示根據示例性實施例的圖3所示操作S600的實例的流程圖。 圖8是繪示根據示例性實施例的計算量化誤差的操作的實例的圖。 圖9是繪示根據示例性實施例的計算量化誤差的操作的實例的圖。 圖10及圖11是繪示根據示例性實施例的圖3所示操作S600及操作S800的實例的流程圖。 圖12是根據示例性實施例的計算系統的方塊圖。 圖13是根據示例性實施例的移動計算器件的方塊圖。
S200、S400、S600、S800‧‧‧操作

Claims (20)

  1. 一種對人工神經網路進行量化的方法,其中所述方法由至少一個處理器來執行,所述方法包括:將所述人工神經網路的輸入分佈劃分成多個節段;通過對所述多個節段中的每一個進行近似來產生近似密度函數,所述輸入分佈包括包含於所述人工神經網路中的權重的分佈;基於所述近似密度函數來確定與用於對所述人工神經網路進行量化的至少一個步長對應的至少一個量化誤差;基於所述至少一個量化誤差來確定用於對所述人工神經網路進行量化的最終步長;以及使用所述最終步長將所述人工神經網路轉換成固定點神經網路,其中所述產生所述近似密度函數包括:將所述多個節段近似成彼此獨立的多個函數;以及通過組合所述多個函數來產生所述近似密度函數。
  2. 如申請專利範圍第1項所述的方法,其中所述劃分包括將包括所述輸入分佈的最大值及最小值的區段劃分成所述多個節段。
  3. 如申請專利範圍第1項所述的方法,還包括:獲得所述多個節段的數目作為輸入參數,其中所述劃分包括將所述輸入分佈劃分成所述多個節段的 所述數目。
  4. 如申請專利範圍第1項所述的方法,其中所述劃分包括將所述輸入分佈劃分成具有均勻寬度的所述多個節段。
  5. 如申請專利範圍第1項所述的方法,其中所述劃分包括將所述輸入分佈劃分成使所述多個節段中的每一節段具有與所述輸入分佈成反比的寬度。
  6. 如申請專利範圍第1項所述的方法,其中所述多個函數分別為多個多項式。
  7. 如申請專利範圍第6項所述的方法,還包括:獲得多項式的次數作為輸入參數,其中所述近似包括將所述多個節段分別近似成所述次數的所述多個多項式。
  8. 如申請專利範圍第6項所述的方法,其中所述產生所述近似密度函數還包括通過對已加以組合的所述多個多項式進行歸一化來產生所述近似密度函數作為概率密度函數。
  9. 如申請專利範圍第1項所述的方法,其中所述確定所述至少一個量化誤差包括根據所述至少一個步長來確定超載畸變與細微性畸變之和。
  10. 如申請專利範圍第1項所述的方法,還包括:基於所述最終步長來獲得固定點人工神經網路。
  11. 如申請專利範圍第10項所述的方法,其中所述計算所述至少一個量化誤差包括: 存取包括多個分數長度的分數長度集合;以及依序確定分別與所述分數長度集合中的所述多個分數長度對應的量化誤差。
  12. 如申請專利範圍第11項所述的方法,其中所述確定所述至少一個量化誤差包括:確定最小分數長度;以及對從所述最小分數長度逐漸增大的分數長度依序確定所述量化誤差。
  13. 如申請專利範圍第12項所述的方法,其中所述依序確定所述量化誤差回應於量化誤差大於先前確定的量化誤差而停止。
  14. 如申請專利範圍第1項所述的方法,還包括以所述人工神經網路的層為單位及以所述人工神經網路的通道為單位中的一者來獲得所述輸入分佈。
  15. 一種對人工神經網路進行量化的裝置,包括:記憶體;以及至少一個處理器,被配置成執行儲存在所述記憶體中的電腦可執行流程,其中所述電腦可執行流程包括:近似器,被配置成通過對從人工神經網路的輸入分佈劃分得到的多個節段中的每一個進行近似來產生近似密度函數,所述輸入分佈包括包含於所述人工神經網路中的權重的分佈, 量化器,被配置成:基於所述近似密度函數來確定與用於對所述人工神經網路進行量化的至少一個步長對應的至少一個量化誤差,並根據所述至少一個量化誤差來確定用於對所述人工神經網路進行量化的最終步長,並且使用所述最終步長將所述人工神經網路轉換成固定點神經網路,其中所述近似器更被配置成:將所述多個節段近似成彼此獨立的多個函數;以及通過組合所述多個函數來產生所述近似密度函數。
  16. 如申請專利範圍第15項所述對人工神經網路進行量化的裝置,其中所述近似器還被配置成接收所述多個節段的數目作為輸入參數並將所述輸入分佈劃分成所述多個節段的所述數目。
  17. 如申請專利範圍第15項所述對人工神經網路進行量化的裝置,其中所述近似器還被配置成接收多項式的次數作為輸入參數並將所述多個節段分別近似成所述次數的所述多項式。
  18. 如申請專利範圍第15項所述對人工神經網路進行量化的裝置,其中所述量化器還被配置成根據所述至少一個步長來確定超載畸變與細微性畸變之和。
  19. 如申請專利範圍第15項所述對人工神經網路進行量化的裝置,其中所述量化器還被配置成確定最小分數長度以防止 所述輸入分佈的最大值飽和,並對從所述最小分數長度逐漸增大的分數長度依序確定量化誤差直到達到波谷。
  20. 一種對浮點神經網路進行量化的方法,其中所述方法由至少一個處理器來執行,所述方法包括:將所述浮點神經網路的輸入分佈劃分成具有均勻寬度的多個節段,所述輸入分佈包括包含於所述浮點神經網路中的權重的分佈;通過將所述多個節段中的每一個近似成多項式來產生近似密度函數;基於所述近似密度函數來確定與至少一個分數長度對應的至少一個量化誤差;基於所述至少一個量化誤差來確定用於量化所述浮點神經網路的最終步長,並且使用所述最終步長將所述浮點神經網路轉換成固定點神經網路,其中所述產生所述近似密度函數包括:將所述多個節段近似成彼此獨立的多個函數;以及通過組合所述多個函數來產生所述近似密度函數。
TW107132005A 2017-09-25 2018-09-12 對人工神經網路及浮點神經網路進行量化的方法及裝置 TWI791610B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020170123658A KR20190034985A (ko) 2017-09-25 2017-09-25 인공 신경망의 양자화 방법 및 장치
??10-2017-0123658 2017-09-25
KR10-2017-0123658 2017-09-25

Publications (2)

Publication Number Publication Date
TW201915839A TW201915839A (zh) 2019-04-16
TWI791610B true TWI791610B (zh) 2023-02-11

Family

ID=65638919

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107132005A TWI791610B (zh) 2017-09-25 2018-09-12 對人工神經網路及浮點神經網路進行量化的方法及裝置

Country Status (5)

Country Link
US (1) US11275986B2 (zh)
KR (1) KR20190034985A (zh)
CN (1) CN109558945A (zh)
DE (1) DE102018121905A1 (zh)
TW (1) TWI791610B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11195096B2 (en) * 2017-10-24 2021-12-07 International Business Machines Corporation Facilitating neural network efficiency
GB2568084B (en) 2017-11-03 2022-01-12 Imagination Tech Ltd Error allocation format selection for hardware implementation of deep neural network
JP7056225B2 (ja) * 2018-02-26 2022-04-19 富士通株式会社 演算処理装置、情報処理装置、情報処理方法、およびプログラム
US10325352B1 (en) * 2019-01-23 2019-06-18 StradVision, Inc. Method and device for transforming CNN layers to optimize CNN parameter quantization to be used for mobile devices or compact networks with high precision via hardware optimization
US10325185B1 (en) * 2019-01-23 2019-06-18 StradVision, Inc. Method and device for online batch normalization, on-device learning, and continual learning applicable to mobile devices or IOT devices additionally referring to one or more previous batches to be used for military purpose, drone or robot, and testing method and testing device using the same
US10592799B1 (en) * 2019-01-23 2020-03-17 StradVision, Inc. Determining FL value by using weighted quantization loss values to thereby quantize CNN parameters and feature values to be used for optimizing hardware applicable to mobile devices or compact networks with high precision
US11068784B2 (en) * 2019-01-26 2021-07-20 Mipsology SAS Generic quantization of artificial neural networks
EP3772022A1 (en) * 2019-06-12 2021-02-03 Shanghai Cambricon Information Technology Co., Ltd Method for determining quantization parameters in neural network and related products
CN112446472A (zh) * 2019-08-28 2021-03-05 上海寒武纪信息科技有限公司 用于处理数据的方法、装置以及相关产品
CN112446460A (zh) * 2019-08-28 2021-03-05 上海寒武纪信息科技有限公司 用于处理数据的方法、装置以及相关产品
CN113228058A (zh) * 2019-08-29 2021-08-06 乐天集团股份有限公司 学习***、学习方法和程序
CN110717585B (zh) * 2019-09-30 2020-08-25 上海寒武纪信息科技有限公司 神经网络模型的训练方法、数据处理方法和相关产品
CN113112009B (zh) * 2020-01-13 2023-04-18 中科寒武纪科技股份有限公司 用于神经网络数据量化的方法、装置和计算机可读存储介质
KR102384255B1 (ko) 2020-01-20 2022-04-06 경희대학교 산학협력단 인공 신경망의 가중치를 처리하는 방법 및 장치
CN111401518B (zh) * 2020-03-04 2024-06-04 北京硅升科技有限公司 一种神经网络量化方法、装置及计算机可读存储介质
CN111510157B (zh) * 2020-04-15 2022-03-04 腾讯科技(深圳)有限公司 基于神经网络的量子纠错解码方法、装置及芯片
KR102455310B1 (ko) 2020-05-08 2022-10-18 한국전자통신연구원 콘볼루션 신경망 양자화 추론 장치 및 방법
KR102520572B1 (ko) * 2020-06-22 2023-04-11 한양대학교 산학협력단 이미지 근사화 및 가중치 양자화를 이용한 객체 검출 가속화 방법 및 이를 이용하는 뉴럴 가속기
DE102021100404A1 (de) 2021-01-12 2022-07-14 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug
JP7325015B2 (ja) * 2021-03-24 2023-08-14 パナソニックIpマネジメント株式会社 量子化方法、量子化装置、及び、プログラム
CN115311506B (zh) * 2022-10-11 2023-03-28 之江实验室 基于阻变存储器的量化因子优化的图像分类方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140310216A1 (en) * 2013-04-15 2014-10-16 Qualcomm Incorporated Method for generating compact representations of spike timing-dependent plasticity curves
TW201530333A (zh) * 2013-12-17 2015-08-01 Asml Netherlands Bv 良率評估及控制

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961719B1 (en) 2002-01-07 2005-11-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Hybrid neural network and support vector machine method for optimization
US7774143B2 (en) 2002-04-25 2010-08-10 The United States Of America As Represented By The Secretary, Department Of Health And Human Services Methods for analyzing high dimensional data for classifying, diagnosing, prognosticating, and/or predicting diseases and other biological states
WO2007071070A1 (en) 2005-12-23 2007-06-28 Universite De Sherbrooke Spatio-temporal pattern recognition using a spiking neural network and processing thereof on a portable and/or distributed computer
US9620426B2 (en) 2010-02-18 2017-04-11 Kla-Tencor Corporation Method and system for providing process tool correctables using an optimized sampling scheme with smart interpolation
US9092726B2 (en) 2011-08-11 2015-07-28 Greenray Industries, Inc. Neural network frequency control
WO2014155602A1 (ja) 2013-03-28 2014-10-02 富士通株式会社 端末装置、位置推定方法、位置推定システム及びプログラム
AU2014329493B2 (en) 2013-10-04 2020-09-03 Sequenom, Inc. Methods and processes for non-invasive assessment of genetic variations
WO2016037311A1 (en) 2014-09-09 2016-03-17 Microsoft Technology Licensing, Llc Variable-component deep neural network for robust speech recognition
US10262259B2 (en) 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US10373050B2 (en) 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US10643124B2 (en) * 2016-08-12 2020-05-05 Beijing Deephi Intelligent Technology Co., Ltd. Method and device for quantizing complex artificial neural network
CN115841137A (zh) * 2017-06-06 2023-03-24 格兰菲智能科技有限公司 一种用于对待量化数据进行定点化处理的方法及计算装置
US9916531B1 (en) * 2017-06-22 2018-03-13 Intel Corporation Accumulator constrained quantization of convolutional neural networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140310216A1 (en) * 2013-04-15 2014-10-16 Qualcomm Incorporated Method for generating compact representations of spike timing-dependent plasticity curves
TW201530333A (zh) * 2013-12-17 2015-08-01 Asml Netherlands Bv 良率評估及控制

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
.;期刊 Qiu et al. Deep Quantization: Encoding Convolutional Activations with Deep Generative Model IEEE Conference on ComputerVision and Pattern Recognition (CVPR) 2017年7月 pp. 4085-4094 *
;期刊 Zhou et al. Balanced Quantization: An Effective and EfficientApproach to Quantized Neural Nefrlorks 2017 JOURNAL OF COMPUTER SCIENCEAND TECHNOLOGY32(4) 2017年 pp. 667-682 *
期刊 Hwang et al. Fixed-Point Feedforward Deep Neural Network Design Using Weights +1, 0, and -1 2014 IEEE Workshop on Signal Processing Systems (SiPS) 2014 pp. 1-6 *
期刊 Zhou et al. Balanced Quantization: An Effective and EfficientApproach to Quantized Neural Nefrlorks 2017 JOURNAL OF COMPUTER SCIENCEAND TECHNOLOGY32(4) 2017年 pp. 667-682

Also Published As

Publication number Publication date
US11275986B2 (en) 2022-03-15
KR20190034985A (ko) 2019-04-03
TW201915839A (zh) 2019-04-16
DE102018121905A1 (de) 2019-03-28
US20190095777A1 (en) 2019-03-28
CN109558945A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
TWI791610B (zh) 對人工神經網路及浮點神經網路進行量化的方法及裝置
TWI806922B (zh) 對人工神經網路進行量化的方法及裝置及對浮點神經網路進行量化的方法
CN111652367B (zh) 一种数据处理方法及相关产品
US20220108178A1 (en) Neural network method and apparatus
CN109754066B (zh) 用于生成定点型神经网络的方法和装置
Kulkarni et al. Quantization friendly mobilenet (qf-mobilenet) architecture for vision based applications on embedded platforms
CN110413255B (zh) 人工神经网络调整方法和装置
KR102562320B1 (ko) 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치
US20160328646A1 (en) Fixed point neural network based on floating point neural network quantization
US20190244097A1 (en) Information processing apparatus and information processing method
WO2021042857A1 (zh) 图像分割模型的处理方法和处理装置
CN112771547A (zh) 通信***中的端到端学习
KR20190130443A (ko) 뉴럴 네트워크의 양자화 방법 및 장치
WO2022197615A1 (en) Techniques for adaptive generation and visualization of quantized neural networks
CN112561050B (zh) 一种神经网络模型训练方法及装置
KR20210035702A (ko) 인공 신경망의 양자화 방법 및 인공 신경망을 이용한 연산 방법
CN112446461A (zh) 一种神经网络模型训练方法及装置
CN113177627B (zh) 优化***、重新训练***及其方法及处理器和可读介质
WO2020054402A1 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
CN113780518B (zh) 网络架构优化方法、终端设备及计算机可读存储介质
US20220300801A1 (en) Techniques for adaptive generation and visualization of quantized neural networks
CN114254746A (zh) 执行神经网络的方法和设备
CN116306820A (zh) 量化训练方法、装置、设备和计算机可读存储介质
WO2021234437A1 (en) Pseudo-rounding in artificial neural networks
KR20230000686A (ko) 전자 장치 및 전자 장치의 제어 방법