TW201947464A - 用於離散化深度神經網路的量化的連續鬆弛 - Google Patents

用於離散化深度神經網路的量化的連續鬆弛 Download PDF

Info

Publication number
TW201947464A
TW201947464A TW108117002A TW108117002A TW201947464A TW 201947464 A TW201947464 A TW 201947464A TW 108117002 A TW108117002 A TW 108117002A TW 108117002 A TW108117002 A TW 108117002A TW 201947464 A TW201947464 A TW 201947464A
Authority
TW
Taiwan
Prior art keywords
grid
neural network
parameters
point
fixed
Prior art date
Application number
TW108117002A
Other languages
English (en)
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 TW201947464A publication Critical patent/TW201947464A/zh

Links

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/047Probabilistic or stochastic networks
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/045Combinations of 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
    • G06N3/048Activation functions
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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/088Non-supervised learning, e.g. competitive learning

Abstract

用於對神經網路進行量化的方法包括對神經網路的參數的雜訊進行建模。該方法亦包括根據具體分佈來向參數的每一種實現指派網格值,該具體分佈是取決於局部定點量化網格和所建模的雜訊的。該方法亦包括計算表示硬定點量化神經網路的參數的定點值。

Description

用於離散化深度神經網路的量化的連續鬆弛
本專利申請案主張享受於2018年5月17日提出申請的並且名稱為「CONTINUOUS RELAXATION OF QUANTIZATION FOR DISCRETIZED DEEP NEURAL NETWORKS(用於離散化深度神經網路的量化的連續鬆弛)」的希臘專利申請案第20180100211號的優先權,上述申請案的揭示內容經由引用方式將其全部內容明確地併入本文。
概括地說,本案內容的某些態樣係關於機器學習,並且更具體地,本案內容的某些態樣係關於對用於離散化深度神經網路的權重和啟動的量化。
可以由互連的一組人工神經元(例如,神經元模型)組成的人工神經網路是計算設備或者表示由計算設備執行的方法。這些神經網路可以用於各種應用及/或設備,諸如網際網路協定(IP)相機、物聯網路(IoT)設備、自主式運載工具及/或服務機器人。
迴旋神經網路是一種類型的前饋人工神經網路。迴旋神經網路可以包括神經元的聚集,這些神經元均具有感受野並且共同平鋪輸入空間。迴旋神經網路(CNN)具有許多應用。具體地,CNN已經廣泛地在模式辨識和分類領域中使用。
深度學習架構(諸如,深度置信網路和深度神經網路)是分層神經網路架構。在這些分層神經網路架構中,第一層神經元的輸出成為第二層神經元的輸入,第二層神經元的輸出成為第三層神經元的輸入,以此類推。深度神經網路可以用於各種任務,諸如影像辨識、物件偵測和自然語言處理。可以在行動設備上執行這些任務。鑒於行動設備的有限計算能力,期望降低深度神經網路的計算成本。
在本案內容的一個態樣中,揭示一種用於對神經網路進行量化的方法。該方法包括:對神經網路的參數的雜訊進行建模。該方法亦包括:根據具體分佈來向參數的每一種實現指派網格值,該具體分佈是取決於局部定點量化網格和所建模的雜訊的。該方法亦包括:計算表示硬定點量化神經網路的參數的定點值。
本案內容的另一態樣針對於一種裝置,其包括:用於對神經網路的參數的雜訊進行建模的單元。該裝置亦包括:用於根據具體分佈來向參數的每一種實現指派網格值的單元,該具體分佈是取決於局部定點量化網格和所建模的雜訊的。該裝置亦包括:用於計算表示硬定點量化神經網路的參數的定點值的單元。
在本案內容的另一態樣中,一種非暫時性電腦可讀取媒體記錄有程式碼。該程式碼用於對神經網路進行量化。該程式碼由處理器執行並且包括:用於對該神經網路的參數的雜訊進行建模的程式碼。該程式碼亦包括:用於根據具體分佈來向參數的每一種實現指派網格值的程式碼,該具體分佈是取決於局部定點量化網格和所建模的雜訊的。該程式碼亦包括:用於計算表示硬定點量化神經網路的參數的定點值的程式碼。
本案內容的另一態樣針對於一種用於對神經網路進行量化的裝置。該裝置具有記憶體以及耦合到該記憶體的一或多個處理器。該處理器被配置為對該神經網路的參數的雜訊進行建模。該處理器亦被配置為根據具體分佈來向參數的每一種實現指派網格值,該具體分佈是取決於局部定點量化網格和所建模的雜訊的。該處理器亦被配置為計算表示硬定點量化神經網路的參數的定點值。
這已經相當寬泛地概述了本案內容的特徵和技術優點,以便可以更好地理解以下的具體實施方式。下文將描述本案內容的額外的特徵和優點。本發明所屬領域中具有通常知識者應當明白的是,本案內容可以容易地用作用於修改或設計用於實現本案內容的相同目的的其他結構的基礎。本發明所屬領域中具有通常知識者亦應當認識到的是,此類等效構造不脫離如在所附的請求項中闡述的本案內容的教導。當結合附圖考慮時,根據以下的描述將更好地理解被認為是本案內容的特性(關於其組織和操作方法二者)的新穎特徵,以及進一步的目的和優點。然而,要明確地理解的是,附圖中的每一個附圖僅是出於說明和描述的目的而提供的,以及不意欲作為對本案內容的限制的限定。
下文結合附圖闡述的具體實施方式意欲作為對各種配置的描述,以及不意欲表示可以在其中實踐本文所描述的概念的僅有配置。出於提供對各個概念的透徹理解的目的,具體實施方式包括特定細節。然而,對於本發明所屬領域中具有通常知識者將顯而易見的是,可以在沒有這些特定細節的情況下實踐這些概念。在一些實例中,以方塊圖形式圖示公知的結構和部件,以便避免模糊此類概念。
基於教導,本發明所屬領域中具有通常知識者應當領會的是,本案內容的範疇意欲涵蓋本案內容的任何態樣,不管該態樣是獨立於本案內容的任何其他態樣來實現的亦是與本案內容的任何其他態樣相結合地來實現的。例如,使用所闡述的任何數量的態樣,可以實現裝置或可以實踐方法。此外,本案內容的範疇意欲涵蓋此類裝置或方法,其是使用除了或不同於所闡述的揭示內容的各個態樣的其他結構、功能或者結構和功能來實踐的。應當理解的是,本文所揭示的揭示內容的任何態樣可以是經由請求項的一或多個元素來體現的。
本文使用詞語「示例性」來意指「用作實例、例子或說明」。本文中被描述為「示例性」的任何態樣未必被解釋為比其他態樣優選或具有優勢。
儘管本文描述了特定態樣,但是這些態樣的許多變型和置換落在本案內容的範疇之內。儘管提到了優選態樣的一些益處和優點,但是本案內容的範疇不意欲限於特定益處、用途或目的。更確切地說,本案內容的各態樣意欲廣泛地適用於不同的技術、系統組態、網路和協定,其中的一些經由舉例的方式在附圖中和在以下對優選態樣的描述中進行了說明。具體實施方式和附圖僅僅說明本案內容而非進行限制,本案內容的範疇是由所附的請求項及其均等物來限定的。
圖1圖示片上系統(SOC)100的實例實現方式,其可以包括被配置為根據本案內容的某些態樣來執行量化的連續鬆弛的中央處理單元(CPU)102或多核CPU。變數(例如,神經信號和突觸權重)、與計算設備相關聯的系統參數(例如,具有權重的神經網路)、延遲、頻段資訊和任務資訊可以被儲存在與神經處理單元(NPU)108相關聯的記憶體塊中、在與CPU 102相關聯的記憶體塊中、在與圖形處理單元(GPU)104相關聯的記憶體塊中、在與數位訊號處理器(DSP)106相關聯的記憶體塊中、在記憶體塊118中,或者可以跨越多個塊分佈。可以從與CPU 102相關聯的程式記憶體載入或者可以從記憶體塊118載入在CPU 102處執行的指令。
SOC 100亦可以包括:針對特定功能定製的額外處理塊(諸如GPU 104、DSP 106、連線性塊110(其可以包括第五代(5G)連線性、第四代長期進化(4G LTE)連線性、Wi-Fi連線性、USB連線性、藍芽連線性等))、以及例如,可以偵測和辨識手勢的多媒體處理器112。在一種實現方式中,在CPU、DSP及/或GPU中實現NPU。SOC 100亦可以包括感測器處理器114、影像信號處理器(ISP)116及/或導航模組120(其可以包括全球定位系統)。
SOC 100可以是基於ARM指令集的。在本案內容的一態樣中,被載入到CPU 102中的指令可以包括用於學習用於神經網路的參數的定點量化網格的代碼,該神經網路使用第一數量的計算資源。被載入到CPU 102中的指令亦可以包括用於根據取決於所建模的參數雜訊和定點量化網格的具體分佈來將來自定點量化網格的網格值指派給參數的每一種實現方式的代碼。被載入到CPU 102中的指令亦可以包括用於計算表示參數的定點值以形成用於使用第二數量的計算資源的離散化深度神經網路的硬定點量化器的代碼,該第二數量的計算資源是與第一數量的計算資源相比較少的。
深度學習架構可以經由以下操作來執行物件辨識任務:學習在每一層中以連續較高級別的抽象來表示輸入,從而建立輸入資料的有用特徵表示。以這種方式,深度學習解決了習知機器學習的主要瓶頸。在深度學習出現之前,針對物件辨識問題的機器學習方法可能在很大程度上依賴於可能與淺層分類器相結合的人工設計的特徵。淺層分類器可以是兩類線性分類器,例如,其中可以將特徵向量分量的加權和與閥值進行比較以預測輸入屬於哪一類。人工設計的特徵可以是由具有領域專業知識的工程師針對特定問題域定製的範本或核心。相比之下,深度學習架構可以學習表示與人類工程師可能設計的特徵類似的特徵(但是經由訓練)。此外,深度網路可以學習表示和辨識人類可能還沒有考慮過的新類型的特徵。
深度學習架構可以學習特徵的層級。例如,若被呈現視覺資料,則第一層可以學習在輸入流中辨識相對簡單的特徵,諸如邊緣。在另一實例中,若被呈現聽覺資料,則第一層可以學習在特定頻率中辨識頻譜功率。以第一層的輸出作為輸入的第二層可以學習辨識特徵的組合,諸如針對視覺資料的簡單形狀或者針對聽覺資料的聲音組合。例如,較高層可以學習表示在視覺資料中的複雜形狀或在聽覺資料中的單詞。更高層可以學習辨識常見的視覺物件或口頭短語。
當應用於具有自然層級結構的問題時,深度學習架構可以執行得特別好。例如,對機動車輛的分類可以受益於首先學習辨識車輪、擋風玻璃和其他特徵。這些特徵可以在較高層處以不同的方式進行組合以辨識汽車、卡車和飛機。
神經網路可以被設計具有各種連線性模式。在前饋網路中,資訊是從較低層傳遞到較高層的,其中在給定層中的每一個神經元與在較高層中的神經元進行通訊。如前述,可以在前饋網路的連續的層中建立層級表示。神經網路亦可以具有循環或回饋(亦被稱為自上而下)連接。在循環連接中,來自在給定層中的神經元的輸出可以被傳送到在同一層中的另一神經元。循環架構可以有助於辨識橫跨一個以上的輸入資料區塊的模式,該輸入資料區塊按一順序遞送到神經網路。從在給定層中的神經元到在較低層中的神經元的連接被稱為回饋(或自上而下)連接。當對高級概念的辨識可以輔助辨別輸入的特定低級特徵時,具有許多回饋連接的網路可能是有説明的。
在神經網路的各層之間的連接可以是完全連接或局部連接的。圖2A圖示全連接神經網路202的實例。在全連接神經網路202中,在第一層中的神經元可以將其輸出傳送給在第二層中的每一個神經元,使得在第二層中的每一個神經元將從在第一層的每一個神經元接收輸入。圖2B圖示局部連接神經網路204的實例。在局部連接神經網路204中,在第一層中的神經元可以連接到在第二層中的有限數量的神經元。更通常,局部連接神經網路204的局部連接層可以被配置為使得在一層中的每一個神經元將具有相同或類似的連線性模式,但是具有可以具有不同值的連接強度(例如,210、212、214和216)。局部連接的連線性模式可以在較高層中產生在空間上不同的感受野,因為在給定區域中的較高層神經元可以接收經由訓練而調諧為網路的總輸入的受限部分的特性的輸入。
局部連接神經網路的一個實例是迴旋神經網路。圖2C圖示迴旋神經網路206的實例。迴旋神經網路206可以被配置為使得與針對在第二層中的每一個神經元的輸入相關聯的連接強度(例如,208)被共享。迴旋神經網路可能非常適於在其中輸入的空間位置是有意義的問題。
一種類型的迴旋神經網路是深度迴旋網路(DCN)。圖2D圖示被設計為從影像226中辨識視覺特徵的DCN 200的詳細實例,該影像226是從影像擷取裝置230(諸如車載相機)輸入的。當前實例的DCN 200可以被訓練為辨識交通標誌和在交通標誌上提供的數位。當然,DCN 200可以被訓練用於其他任務,諸如辨識車道標記或者辨識交通燈。
可以利用有監督學習來對DCN 200進行訓練。在訓練期間,可以向DCN 200呈現影像(諸如,限速標誌的影像226),並且隨後可以計算前向傳遞以產生輸出222。DCN 200可以包括特徵提取部分和分類部分。在接收到影像226時,迴旋層232可以向影像226應用迴旋核心(未圖示)以產生第一特徵圖集合218。作為一實例,用於迴旋層232的迴旋核心可以是產生28x28個特徵圖的5x5核心。在該實例中,因為在第一特徵圖集合218中產生了四個不同的特徵圖,所以在迴旋層232處四個不同的迴旋核心被應用於影像226。迴旋核心亦可以被稱為濾波器或迴旋濾波器。
可以經由最大池化層(未圖示)來對第一特徵圖集合218進行子取樣,以產生第二特徵圖集合220。最大池化層減小了第一特徵圖集合218的大小。亦即,第二特徵圖集合220的大小(諸如14x14)是小於第一特徵圖集合218的大小(諸如28x28)的。減小的大小向後續層提供類似的資訊,同時減少了記憶體消耗。可以經由一或多個後續迴旋層(未圖示)來進一步對第二特徵圖集合220進行迴旋,以產生一或多個後續特徵圖集合(未圖示)。
在圖2D的實例中,對第二特徵圖集合220進行迴旋以產生第一特徵向量224。此外,對第一特徵向量224進一步迴旋以產生第二特徵向量228。第二特徵向量228中的每一個特徵可以包括對應於影像226的可能特徵(諸如,「標誌」、「60」和「100」)的數字。softmax函數(未圖示)可以將在第二特徵向量228中的數位轉換為概率。這樣,DCN 200的輸出222是影像226包括一或多個特徵的概率。
在該實例中,在輸出222中針對「標誌」和「60」的概率高於輸出222中的其他項(諸如,「30」、「40」、「50」、「70」、「80」、「90」和「100」)的概率。在訓練之前,由DCN 200產生的輸出222可能是不正確的。因此,可以計算在輸出222與目標輸出之間的誤差。目標輸出是影像226的地面真值(例如,「標誌」和「60」)。隨後可以調整DCN 200的權重,使得DCN 200的輸出222是與目標輸出更緊密地對準的。
為了調整權重,學習演算法可以計算針對權重的梯度向量。若調整了權重,則梯度可以指示誤差將增加或減小的量。在頂層處,梯度可以直接對應於連接在倒數第二層中的啟動神經元和在輸出層中的神經元的權重的值。在較低層中,梯度可以取決於權重的值和計算出的較高層的誤差梯度。隨後可以調整權重以減小誤差。這種調整權重的方式可以被稱為「反向傳播」,因為其涉及經由神經網路的「反向傳遞」。
實際上,可以在小數量的實例上計算權重的誤差梯度,使得計算出的梯度近似於真實的誤差梯度。該近似方法可以被稱為隨機梯度下降。可以重複隨機梯度下降,直到整個系統的可實現誤差率已經停止下降為止或者直到誤差率已經達到目標水平為止。在學習之後,可以向DCN呈現新影像(例如,影像226的限速標誌),並且經由網路的前向傳遞可以產生輸出222,該輸出222可以被認為是DCN的推斷或預測。
深度置信網路(DBN)是包括多層隱藏節點的概率模型。DBN可以用於提取訓練資料集的層級表示。可以經由堆疊受限玻爾茲曼機器(RBM)的各層來獲得DBN。RBM是一種類型的人工神經網路,其可以學習在輸入集上的概率分佈。因為RBM可以在不存在關於每一個輸入應當被分類的類的資訊的情況下學習概率分佈,所以RBM通常在無監督學習中使用。使用混合無監督和有監督範例,DBN的底部RBM可以以無監督方式來訓練並且可以用作特徵提取器,以及頂部RBM可以以有監督方式來訓練(在來自先前層的輸入和目標類的聯合分佈上)並且可以用作分類器。
深度迴旋網路(DCN)是迴旋網路的網路,該DCN被配置有額外的池化和正規化層。DCN在許多工上已經實現了最先進的效能。可以使用有監督學習來訓練DCN,在其中輸入目標和輸出目標二者對於許多取樣而言是已知的並且用於經由使用梯度下降方法來修改網路的權重。
DCN可以是前饋網路。另外,如前述,從在DCN的第一層中的神經元到在次高層中的一組神經元的連接是在第一層中的神經元之間共享的。可以利用DCN的前饋和共享連接來進行快速處理。例如,DCN的計算負擔可以是與包括循環或回饋連接的類似大小的神經網路的計算負擔相比小得多的。
對迴旋網路的每一層的處理可以被認為是空間不變的範本或基礎投影。若輸入首先被分解為多個通道(諸如,彩色影像的紅色、綠色和藍色通道),則在該輸入上訓練的迴旋網路可以被認為是三維的,其中兩個空間維度沿著影像的軸線以及第三維度擷取顏色資訊。可以將迴旋連接的輸出視為在後續層中形成特徵圖,其中特徵圖(例如,220)的每一個元素接收來自在先前層(例如,特徵圖218)中的一系列神經元和來自多個通道中的每一個通道的輸入。可以利用非線性(諸如,整流,max(0, x))來進一步處理特徵圖中的值。來自相鄰神經元的值可以被進一步池化(這對應於下取樣),並且可以提供額外的局部不變性和降維。對應於白化的正規化亦可以經由在特徵圖中的神經元之間的橫向抑制來應用。
隨著更多標記資料點變得可用或隨著計算能力增加,深度學習架構的效能可以增加。現代深度神經網路慣常利用比十五年前典型研究人員可用的計算資源大數千倍的計算資源進行訓練。新架構和訓練範例可以進一步提升深度學習的效能。整流線性單元可以減少被稱為梯度消失的訓練問題。新的訓練技術可以減少過度擬合,並且因此使得更大的模型能夠實現更好的泛化。封裝技術可以對在給定感受野中的資料進行抽象並且進一步提高整體效能。
圖3是示出深度迴旋網路350的方塊圖。深度迴旋網路350可以包括基於連線性和權重共享的多種不同類型的層。如圖3中所示,深度迴旋網路350包括迴旋塊354A、迴旋塊354B。迴旋塊354A、迴旋塊354B中的每一個迴旋塊可以被配置有迴旋層(CONV)356、正規化層(LNorm)358和最大池化層(MAX POOL)360。
迴旋層356可以包括一或多個迴旋濾波器,該迴旋濾波器可以應用於輸入資料以產生特徵圖。儘管僅圖示兩個迴旋塊354A、迴旋塊354B,但是本案內容並不限於此,並且相反,根據設計偏好,可以在深度迴旋網路350中包括任何數量的迴旋塊354A、迴旋塊354B。正規化層358可以對迴旋濾波器的輸出進行正規化。例如,正規化層358可以提供白化或橫向抑制。最大池化層360可以在空間上提供下取樣聚合以用於局部不變性和降維。
例如,深度迴旋網路的並行濾波器組可以被裝載在SOC 100的CPU 102或GPU 104上,以實現高效能和低功耗。在替代實施例中,並行濾波器組可以被裝載在SOC 100的DSP 106或ISP 116上。此外,深度迴旋網路350可以存取可以在SOC 100上存在的其他處理塊,諸如分別專用於感測器和導航的感測器處理器114和導航模組120。
深度迴旋網路350亦可以包括一或多個全連接層362(FC1和FC2)。深度迴旋網路350亦可以包括邏輯回歸(LR)層364。在深度迴旋網路350的每一層356、358、360、362、364之間的是要被更新的權重(未圖示)。各層(例如,356、358、360、362、364)中的每一層的輸出可以用作在深度迴旋網路350中的各層(例如,356、358、360、362、364)的後續層的輸入,以從在迴旋塊354A的開始處提供的輸入資料352(例如,影像、音訊、視訊、感測器資料及/或其他輸入資料)學習層級特徵表示。深度迴旋網路350的輸出是針對輸入資料352的分類分數366。分類分數366可以是概率集合,其中每一個概率是輸入資料包括來自特徵集合的特徵的概率。
圖4是示出可以對人工智慧(AI)功能進行模組化的示例性軟體架構400的方塊圖。根據本案內容的各態樣,使用該架構可以設計如下的應用:應用可以使得SOC 420的各個處理塊(例如,CPU 422、DSP 424、GPU 426及/或NPU 428)支援在AI應用402的執行時操作期間的量化的連續鬆弛。
AI應用402可以被配置為調用在使用者空間404中定義的函數,例如,該函數可以提供對指示設備當前進行操作的位置的場景的偵測和辨識。例如,AI應用402可以取決於所辨識的場景是辦公室、演講廳、餐廳還是諸如湖泊的室外設置來以不同的方式配置麥克風和相機。AI應用402可以向與在AI功能應用程式設計介面(API)406中定義的庫相關聯的編譯器代碼提出請求。該請求可以最終依賴於深度神經網路的輸出,例如,該深度神經網路被配置為基於視訊和定位資料來提供推斷回應。
執行時引擎408,其可以是執行時框架的編譯代碼,可以進一步是AI應用402可存取的。例如,AI應用402可以使得執行時引擎以特定的時間間隔或者被由應用的使用者介面偵測到的事件觸發來請求推斷。當使得提供推斷回應發生時,執行時引擎可以進而向在SOC 420上執行的作業系統(OS)空間410(諸如Linux核心412)中的作業系統發送信號。作業系統進而可以使得量化的連續鬆弛在CPU 422、DSP 424、GPU 426、NPU 428或其某種組合上被執行。CPU 422可以被作業系統直接存取,以及其他處理塊可以經由驅動器(諸如分別用於DSP 424、GPU 426或NPU 428的驅動器414、416或418)被存取。在示例性實例中,深度神經網路可以被配置為在諸如CPU 422、DSP 424和GPU 426的處理塊的組合上執行,或者可以在NPU 428上執行。
應用402(例如,AI應用)可以被配置為調用在使用者空間404中定義的函數,例如,該函數可以提供對指示設備當前進行操作的位置的場景的偵測和辨識。例如,應用402可以取決於所辨識的場景是辦公室、演講廳、餐廳還是諸如湖泊的室外設置來以不同的方式配置麥克風和相機。應用402可以向與在SceneDetect應用程式設計介面(API)406中定義的庫相關聯的編譯器代碼提出請求,以提供對當前場景的估計。該請求可以最終依賴於差分神經網路的輸出,例如,該差分神經網路被配置為基於視訊和定位資料來提供場景估計。
執行時引擎408,其可以是執行時框架的編譯代碼,可以進一步是應用402可存取的。例如,應用402可以使得執行時引擎以特定的時間間隔或被由應用的使用者介面偵測到的事件觸發來請求場景估計。當使得估計場景發生時,執行時引擎可以進而向在SOC 420上執行的作業系統410(諸如Linux核心412)發送信號。作業系統410進而可以使得計算在CPU 422、DSP 424、GPU 426、NPU 428或其某種組合上被執行。CPU 422可以被作業系統直接存取,以及其他處理塊可以經由驅動器(諸如,用於DSP 424、GPU 426或NPU 428的驅動器414-418)被存取。在示例性實例中,差分神經網路可以被配置為在諸如CPU 422和GPU 426的處理塊的組合上執行,或者可以在NPU 428(若存在的話)上執行。
在一個態樣中,學習單元、指派單元及/或計算單元可以是被配置為執行所記載的功能的CPU 102、與CPU 102相關聯的程式記憶體、專用記憶體塊118、局部處理單元202、和或路由連接處理單元216。在另一種配置中,前述單元可以是被配置為執行由前述單元所記載的功能的任何模組或任何裝置。
根據本案內容的某些態樣,局部處理單元202中的每一者可以被配置為基於模型的期望的一或多個功能特徵來決定模型的參數,並且隨著所決定的參數被進一步適配、調諧和更新,將一或多個功能特徵朝向期望的功能特徵發展。如下描述了一種新穎的量化程序,其允許學習定點網格並且促進對量化神經網路的權重和啟動的基於梯度的最佳化。如本文所描述的,術語離散化和量化可互換地使用。
由於其靈活的參數性質,神經網路已經在各種大規模問題中表現優異。在習知神經網路中,啟動和權重可以使用浮點格式來表示,諸如32位元浮點格式。習知神經網路可以是在具有高處理和儲存能力的大型計算平臺上實現的。在大型計算平臺上實現的神經網路可以利用高精度數來訓練,諸如具有32位元浮點格式的數。利用高精度數來訓練神經網路提高了神經網路的準確性。
神經網路亦可以是在具有有限儲存和處理能力的設備(諸如,行動電話)上實現的。在資源受限的設備(諸如,行動電話、無人機或IoT設備)上部署用於神經網路的大型模型是具有挑戰性的。例如,由大型模型使用的功率、記憶體和計算資源的量通常超過在資源受限的設備上可用的功率、記憶體及/或計算資源的量。亦即,具有有限儲存和處理能力的設備可能不實用於或不能夠使用32位元浮點格式來執行計算。
因此,對於具有有限儲存和處理能力的設備,其他的、更簡單的神經網路格式可能是更好的選擇。隨著壓縮可以減少對功率、記憶體及/或計算資源的使用,對神經網路壓縮的研究已經增加。神經網路壓縮技術可以分為兩類:修剪和量化。修剪和量化神經網路壓縮技術不是互斥的。修剪針對於經由改變網路架構來減小模型的大小。量化針對於降低網路中的算數運算的精度。
習知的神經網路量化方法在訓練期間類比或實施對網路的離散化,例如,經由對權重和啟動的取整。儘管看似簡單,但是離散化的不連續性使得基於梯度的最佳化不可行。原因是關於神經網路的參數(例如,權重和啟動)不存在損失的梯度。習知的量化解決方案在執行量化時並不考慮在神經網路的損失函數中的變化,亦不考慮神經網路的準確性。神經網路的損失函數用於在訓練期間使損失最小化。
在數學上,離散化是將連續的函數、模型、變數和等式轉換為離散副本(例如,取樣)的程序。隨後,離散副本可以用於在數位電腦上的數值評估和實現方式。為了對神經網路的權重和啟動進行離散化,量化器q(·) 將連續信號離散化為離散值的可數集合。這個程序本質上是有損且不可逆的。具體地,無法根據量化器的輸出來決定輸入的準確值。習知量化器可以使用取整函數,其在給定輸入信號x的情況下,基於以下等式來產生輸出:
(1)
其中α對應於量化器的步長。地板函數將輸入信號x 取整到小於或等於x 的最接近的整數。例如,0.1234被取整為0,-4,67被取整為-5等。括弧指示地板函數應用於位於地板括弧之間的任何項。在α=1的情況下,該函數將輸入信號x 映射到其最接近的整數。
儘管取整函數(諸如,等式1的取整函數)可以減小神經網路的大小,但是取整函數亦可能降低神經網路的效能。例如,量化的有損性質可能引入可能經由神經網路加劇的取整誤差,從而損壞資訊。
為此目的,期望在訓練程序期間訓練神經網路,同時類比量化的效果。這將促進權重和啟動對於量化是穩健的,從而減小在全精度與離散化深度神經網路之間的效能差距。本案內容的各態樣描述了用於實現基於梯度的更新的平滑量化器。
平滑量化器可以減小神經網路的大小和計算複雜度。另外地,與習知量化神經網路的準確性相比,經由實現基於梯度的更新,平滑量化器可以改善離散化深度神經網路的準確性。在一種配置中,量化技術對浮點32位元神經網路進行轉換以支援低位元寬推斷。
習知解決方案使其訓練目標的梯度偏離,導致效能損失。根據本案內容的各態樣,用於學習量化網格的程序受到最終分類效能的影響。為了訓練可以以最小效能損失來進行離散化的神經網路,本案內容的各態樣針對於差分量化程序。可以經由將在神經網路的權重和啟動上的連續分佈變換為在量化網格上的分類分佈來實現差分性。
此外,與限於單一類型的量化網格的習知解決方案相比,量化網格的定義是靈活的。因此,學習程序適用於不同類型的量化網格。例如,可以學習固定網格和浮點網格二者。作為另一實例,若期望的話,可以學習非均勻網格。亦可以對被量化的變數的變化進行建模。可以針對特定網格定製變化。例如,對於浮點網格,相乘雜訊可能是比相加雜訊更為期望的。經由選擇適當的雜訊分佈,可以改善量化方法的效能。
本案內容的各態樣針對於一種新穎的量化程序,其可以在訓練期間繞過量化操作的非差分性。在一種配置中,量化程序用於學習定點網格並且針對量化神經網路的權重和啟動執行基於梯度的更新。具體地,量化器將浮點格式(諸如32位元浮點格式)轉換為低位元寬格式。亦即,神經網路的權重和啟動的值可以被轉換為低位元寬格式,諸如在0與255之間的整數。此外,神經網路可以被訓練為改善權重和啟動到低位元寬格式的轉換。
詞彙表是量化器的元素。詞彙表是可以由量化器產生的可數輸出值的集合。在一種配置中,為了將神經網路量化為低於全精度數(例如,從32位元浮點格式到低位元寬格式),詞彙表是有序值的網格。對於定點量化,網格對應於具有為的大小的整數集合,b 是由對應於離散化深度神經網路(DDNN)的記憶體及/或處理器使用的位元數。可以在諸如行動電話的有限資源的設備中定義記憶體和處理器,以執行DNN。在一個實例中,若使用256個值,則位元數b 可以是八。對量化器的輸入信號x 是DNN的權重或啟動。網格被定義為:
(2)
網格可以被表示為整數向量。經由構造,網格對於對量化器的輸入是不可知的。亦即,網格可能不適於對量化器的輸入的最小值和最大值。為了封裝用於權重及/或啟動的所有值,使用兩個自由參數(尺度α 和偏移β )來產生可適應量化網格。可適應量化網格可以適應輸入信號x 的範圍和位置。作為一實例,輸入信號x 可以具有[1,5]的值。在該實例中,對輸入信號x 的觀測可以是例如,{1.432;4.54;3.244}。因此,網格應當覆蓋與輸入信號x 相同的範圍。該範圍是由最小值和最大值來表徵的。另外地,該範圍可以是由其中心3(例如,[1, 2, 3, 4, 5]的中心)以及由最小值和最大值與中心的距離來表徵的。
例如,若將權重矩陣輸入到量化器中,則觀測是由量化器輸出的權重矩陣的值。權重矩陣是基於在一層處觀測到的權重的。觀測亦可以是基於根據在一層處觀測到的啟動而產生的啟動矩陣的。在一種配置中,用於權重的量化器與用於啟動的量化器是不同的。可適應量化網格可以縮放到權重及/或啟動的值。可適應量化網格是如下決定的:
(3)
其中偏移β被初始化為預定值,諸如= max_val - (0.5 * (max_val - min_val))。其中max_val和min_val分別是輸入的最大值和最小值。在初始化之後,可以利用隨機梯度下降來更新偏移β連同其他參數。用於權重的可適應量化網格與用於啟動的可適應量化網格是不同的。
圖5是根據本案內容的各態樣,示出用於訓練以對離散化深度神經網路(DDNN)進行量化的方法500的示例性流程圖。再次參考圖5,在方塊502處,對權重及/或啟動的雜訊進行建模。亦即,輸入信號x 可能具有一些雜訊。雜訊ϵ決定針對輸入信號x 的特定值移動到量化網格中的每一個網格點的概率。在一種配置中,σ是雜訊ϵ的標準差,其中σ被初始化為預定值。例如,標準差σ被初始化為比量化網格的尺度小三倍。在初始化之後,可以利用隨機梯度下降來更新標準差σ。
雜訊ϵ可以使量化程序平滑,並且因此允許對經量化的權重及/或啟動的基於梯度的更新。在本案內容的各態樣中,雜訊ϵ被建模為加性地作用於輸入信號x 並且由分佈控制。該程序在輸入信號上引起分佈,其中有噪輸入信號是經由定義的(例如,輸入信號x 和雜訊ϵ的和),其中ϵ是從分佈中得出的。在該實例中,假設雜訊是根據具有標準差σ的零均值邏輯分佈L (例如,)來分佈的,因此導致為的輸入分佈,其中均值是實際權重或啟動(x )。
量化程序接下來實現用於DDNN的權重和啟動的局部網格,如在方塊504中所示。實現局部網格亦可以被稱為學習局部網格。例如,局部網格用於當位元(b )寬大於2(參見等式1)時的權重及/或啟動,以在被配置用於執行時神經網路推斷時對深度神經網路進行離散化。
根據本案內容的各態樣,經由假設用於對位於遠離輸入信號x 的網格點gi 進行取樣的零概率,對經量化的值的取樣獨立於量化網格的網格大小。雜訊分佈可以被截短,使得其落在輸入信號x 周圍的局部網格內。可以經由考慮在遠離輸入信號x 的一數量(δ)的標準差內的網格點gi 來截短雜訊分佈。為了簡化用於決定局部網格元素而執行的計算,根據等式4,選擇最接近輸入信號x 的網格元素作為局部網格的中心。等式4是對CDF的修改以提供經截短的分佈(例如,從的分佈):
(4)
在本案內容的該態樣中,可以根據等式5來獲得基於局部網格的平滑量化值,其中gi 對應於的範圍:
在方塊506中,在局部量化網格上產生輸入信號x 的分類分佈。該程序可以包括針對輸入信號x 的每一種實現指派網格值。由於有噪輸入信號的隨機性質,決定性取整函數導致用於輸入信號x 的隨機量化器。在一種配置中,經由將分佈離散化到量化網格上來對輸入信號x 進行量化。隨後可以從量化網格中對網格點進行取樣。具體地,經由採用寬度等於以網格點中的每一個網格點為中心的尺度α的間隔來構造在量化網格上的分類分佈。亦即,間隔是針對每一個網格點來決定的。選擇特定網格點的概率可以等於有噪輸入信號的值在網格點的間隔內的概率:
(6)
(7)
其中對應於經量化的變數,以及P (·)對應於累積分佈函數(CDF),以及。根據本案內容的各態樣,x 是對量化器的輸入,是具有雜訊ϵ的輸入,以及是經量化的輸入。經量化的輸入是從量化網格中選擇的。此外,最後的步驟(等式5)是應歸於邏輯雜訊假設的。CDF決定在給定輸入x 的情況下獲得經量化的輸入的概率。
例如,在最後的步驟中,對於網格點,其中i 表示在量化網格上的給定點,將網格點與尺度的一半(a/2)相加以及將其與尺度的一半(a/2)相減以產生一範圍。網格點的範圍的最大值是(),以及網格點的範圍的最小值是()。網格點的範圍可以被稱為區段。在給定範圍的情況下,量化器預測有噪輸入信號的值在該範圍內的概率P (·)。等式7決定在每一個區段內的概率品質(例如,在分佈下的區段的高度)。概率品質與輸入落入區段內的概率相關。亦即,概率品質越大,輸入x 落入區段內的機會就越大。
在該實例中,假設第一個網格點和最後一個網格點分別位於之內。在此假設下,在輸入信號上的雜訊分佈被截短,使得其僅具有在內的支援。根據等式7,可以經由修改累積分佈函數來提供截短:
(8)
在等式8中,c 是在等式8中指出的間隔內的任意實數。對於訓練,量化器經由抽取隨機取樣來將特定網格值指派給輸入信號x ,如下文進一步詳細描述的(參見等式9和等式10)。抽取隨機取樣可以類似於對原始分佈進行取樣,並且隨後將取樣取整到最接近的網格點。亦即,抽取隨機取樣模擬量化雜訊,這阻止DNN擬合資料。可以經由促進權重和啟動聚集在量化網格上的點的周圍來減少雜訊。經由將權重和啟動聚集在網格上的點的周圍可以降低效能損失。在測試期間,決定性地選擇具有最高類別概率的網格點,而不是抽取隨機取樣。
在訓練期間,在方塊508處,經由利用具體分佈替換分類分佈,來將量化程序轉換為差分量化程序。該轉換對應於分類分佈的連續鬆弛,並且可以稱為有噪softmax。有噪softmax代表softmax函數,其中雜訊被加到softmax的輸入上。變數表示從分佈中選擇的隨機取樣。具體地,使用Gumbel函數,u~均勻分佈(0,1),其中。在一種配置中,是取樣網格點k 的類別概率(例如,。來自具體分佈的隨機取樣被定義為:
(9)
其中λ是控制近似程度的溫度參數,因為隨著λ → 0,具體分佈變為分類分佈。z 是由softmax層輸出的向量,以及k 是來自向量z 的取樣。隨後可以如下獲得平滑量化值:
本案內容的該態樣定義了全差分軟量化程序,其允許既針對量化器尺度α、偏移β和標準差σ參數又針對輸入信號x 的隨機梯度。當在輸入x 處不存在雜訊時,則分類分佈在單個值處將具有非零品質,因此禁止針對輸入信號x 和標準差參數σ的基於梯度的最佳化。在方塊510處,使用差分量化器來對權重及/或啟動進行偽量化。最後,在圖5的方塊512處,根據等式3來學習低位元寬精度量化網格
在測試期間,DDNN可以執行對權重及/或啟動的雜訊的建模(方塊502)。另外地,DDN可以在量化網格上產生輸入信號x 的分類分佈(方塊506)。在測試時,在方塊530處,權重及/或啟動在測試期間是經由恢復到分類分佈(而不是連續代理)或者經由選擇網格的最可能的值來進行量化的。量化網格的最可能的值是經由取整到最接近的網格點來獲得的。
在操作中,如等式8中所描述的,基於從具體分佈中抽取K 個取樣來對平滑量化值進行取樣,對於較大值的K 而言可能是昂貴的。針對在神經網路中的單獨的權重和啟動抽取K 個具體取樣增加了用於評估網路而執行的運算元量。另外地,抽取K 個具體取樣導致儲存在記憶體中的、用於在後向傳遞期間的梯度計算的值的量增加。因此,由於對諸如記憶體的資源的使用增加,抽取K 個具體取樣可能是不期望的。
本案內容的各態樣針對於在訓練程序期間對神經網路進行訓練同時類比量化的效果。如所論述的,訓練促進權重和啟動對於量化而言是穩健的,從而減小在全精度與離散化深度神經網路之間的效能差距。
圖6A根據本案內容的各態樣圖示離散化程序的實例。如圖6A中所示,在給定實線上的分佈600的情況下,該分佈被劃分成具有寬度α的K 個間隔,並且每一個間隔的中心是網格點。例如,間隔602被定義在最小值604與最大值606之間。間隔602亦可以被稱為區段。實線代表所有可能數字的範圍。如圖6B中所示,在給定輸入信號x的情況下,量化器決定輸入x 落在網格點的間隔(例如,寬度α)內的概率。
圖6B圖示在離散化之後獲得的在網格上的分類分佈650的實例。如圖6B中所示,網格點中的每一個網格點的概率等於落入網格點的間隔內的概率。例如,第一網格點652具有最大概率,以及第二網格點654具有最小概率。
圖7根據本案內容的各態樣圖示用於訓練神經網路700的流程圖。在一種配置中,訓練資料702可以被儲存在資料來源(諸如伺服器)處。訓練資料702包括取樣資料712和地面真值資料710。在訓練期間,取樣資料712被輸入到神經元700以進行處理(例如,分類)。
神經網路700可以是利用輸入值x 704的集合來進行初始化的。如前所論述的,輸入值x 704包括權重。輸入值x 704亦可以被稱為輸入信號x 。在一種配置中,在利用輸入值x 來對神經網路700進行初始化之前,輸入值x 是由第一量化器706a來進行量化的。可以在每一層L1、L2、L3之前和之後定義量化器706a、706b、706c、706d。例如,由第一量化器706a進行量化的輸入資料x 可以是由第一層L1使用的。此外,第一層L1的輸出(例如,權重和啟動)可以被輸入到第二量化器706b。量化器706a、706b、706c、706d獨立地對權重及/或啟動中的每一者進行量化。亦即,量化器706a、706b、706c、706d獨立地對權重集合中的每一個權重和啟動集合中的每一個啟動進行量化。諸如雜訊、位置和網格的尺度的一些可學習參數可以是跨越屬於特定層L1、L2,L3的權重和啟動被共享的。
根據本案內容的各態樣,網格對應於具有為的大小的整數集合,b 是由將執行神經網路700的記憶體及/或處理器使用的位元數。例如,可以從將執行神經網路700的行動設備714獲得位元數b 。在訓練之後,神經網路700可以被稱為離散化深度神經網路700。離散化深度神經網路700可以被儲存在行動設備714處以在行動設備714處對資料進行分類。
在訓練期間,神經網路700接收取樣資料712並且經由多個層L1、L2、L3處理取樣資料712。輸出可以是帶註釋的元素的參數,諸如3D邊界框或參數表示。補充地或替代地,輸出可以是針對取樣資料712的分類分數(例如,推斷分數)。在損失模組708處接收神經網路700的輸出。
損失模組708實現將神經網路700與地面真值資料710進行比較的損失函數。誤差L 是在神經網路700的輸出與地面真值資料710之間的差(例如,損失)。將誤差L 從損失模組708輸出到神經網路700。具體地,在最終量化器706d處接收誤差L ,並且經由神經網路700進行反向傳播以更新參數。可以在神經網路700的離線階段期間執行訓練。
當訓練完成時,離散化深度神經網路700可以被儲存在行動設備714處。基於訓練,離散化深度神經網路700可以在測試階段(例如,現實部署)期間對輸入值x 進行量化。由在測試階段期間經量化的輸入值x 使用的資源量是與由非量化的輸入值x 使用的資源量相比較少的。此外,基於訓練,減少了針對離散化深度神經網路700的效能損失。
圖8根據本案內容的各態樣圖示用於使用量化的連續鬆弛來針對離散化深度神經網路進行量化的方法800。在方塊802中,對神經網路的參數的雜訊進行建模。在方塊804中,根據具體分佈來向參數的每一種實現指派來自局部定點量化網格的網格值,該具體分佈是取決於所建模的雜訊和局部定點量化網格的。
差分軟定點量化器可以是基於對來自局部定點量化網格的網格值的指派來獲得的。接下來,根據預定的網格點間隔來將參數指派給定點量化網格的網格點。亦可以經由抽取隨機取樣以將網格值指派給輸入信號x 的參數來執行指派。
定點量化可以表示將32位元浮點格式權重和啟動量化到低位元寬精度(例如,8位元)以用於實現例如,基於硬體的神經網路推斷應用。
在方塊806處,計算表示參數的定點值以形成硬定點量化神經網路。在一種配置中,硬定點量化神經網路是離散化深度神經網路。在該配置中,硬定點量化離散化深度神經網路被配置用於低位元寬精度推斷預測。與未經量化的神經網路(例如,離散化深度神經網路)相比,硬定點量化離散化深度神經網路使用較少的資源。
在一些態樣中,方法500和方法800可以是由SOC 100(圖1)執行的。亦即,例如但不作限制,方法500和方法800的元素中的每一個元素可以是由SOC 100或包括在其中的一或多個處理器(例如,CPU 102)及/或其他部件來執行的。
上文所描述的方法的各種操作可以是由能夠執行相應功能的任何適當的單元來執行的。單元可以包括各種硬體及/或軟體部件及/或模組,包括但不限於:電路、特殊應用積體電路(ASIC)或處理器。通常,在存在圖中所示出的操作的情況下,那些操作可以具有帶有相似編號的對應的配對單元加功能部件。
如本文所使用的,術語「決定」包括多種多樣的動作。例如,「決定」可以包括計算、運算、處理、推導、調查、檢視(例如,在表、資料庫或另一資料結構中檢視)、查明等。另外地,「決定」可以包括接收(例如,接收資訊)、存取(例如,存取記憶體中的資料)等。此外,「決定」可以包括解析、選定、選擇、建立等。
如本文所使用的,提及項目列表「中的至少一個」的短語代表那些項目的任意組合,包括單個成員。作為一實例,「a、b或c中的至少一個」意欲涵蓋:a、b、c、a-b、a-c、b-c和a-b-c。
結合本案內容描述的各種說明性的邏輯區塊、模組和電路可以是利用被設計為執行本文所描述的功能的通用處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列信號(FPGA)或其他可程式設計邏輯裝置(PLD)、個別閘門或電晶體邏輯、個別硬體部件、或其任意組合來實現或執行的。通用處理器可以是微處理器,但是在替代方案中,處理器可以是任何商業可得的處理器、控制器、微控制器或狀態機。處理器亦可以被實現為計算設備的組合,例如,DSP與微處理器的組合、複數個微處理器、一或多個微處理器結合DSP核心,或者任何其他此類配置。
結合本案內容描述的方法或程序的步驟可以直接地體現在硬體中、在由處理器執行的軟體模組中、或在二者的組合中。軟體模組可以位於本發明所屬領域中已知的任何形式的儲存媒體中。可以使用的儲存媒體的一些實例包括隨機存取記憶體(RAM)、唯讀記憶體(ROM)、快閃記憶體、可抹除可程式設計唯讀記憶體(EPROM)、電子可抹除可程式設計唯讀記憶體(EEPROM)、暫存器、硬碟、可移除磁碟、CD-ROM等。軟體模組可以包括單個指令或多個指令,並且可以分佈在若干不同的程式碼片段上、在不同的程式之中和跨越多個儲存媒體。儲存媒體可以耦合到處理器,使得處理器可以從儲存媒體讀取資訊,以及向儲存媒體寫入資訊。在替代的方案中,儲存媒體可以是處理器的組成部分。
本文所揭示的方法包括用於實現所描述的方法的一或多個步驟或動作。在不脫離請求項的範疇的情況下,這些方法步驟及/或動作可以彼此互換。換句話說,除非指定了步驟或動作的特定次序,否則在不脫離請求項的範疇的情況下,可以修改特定步驟及/或動作的次序及/或使用。
所描述的功能可以用硬體、軟體、韌體或其任意組合來實現。若用硬體來實現,則實例硬體設定可以包括設備中的處理系統。處理系統可以是利用匯流排架構來實現的。匯流排可以包括任意數量的互連匯流排和橋接器,這取決於處理系統的特定應用和整體設計約束。匯流排可以將包括處理器、機器可讀取媒體和匯流排介面的各種電路連結在一起。除此之外,匯流排介面亦可以用於將網路介面卡經由匯流排連接至處理系統。網路介面卡可以用於實現信號處理功能。對於某些態樣,使用者介面(例如,小鍵盤、顯示器、滑鼠、操縱桿等)亦可以連接至匯流排。匯流排亦可以連結諸如定時源、周邊設備、電壓調節器、功率管理電路等的各種其他電路,這些電路在本發明所屬領域中是公知的,並且因此將不再進行描述。
處理器可以負責管理匯流排和通用處理,包括執行儲存在機器可讀取媒體上的軟體。處理器可以是利用一或多個通用及/或專用處理器來實現的。實例包括微處理器、微控制器、DSP處理器以及可以執行軟體的其他電路。無論是被稱為軟體、韌體、中介軟體、微代碼、硬體描述語言還是其他術語,軟體都應該被廣義地解釋為意指指令、資料或其任意組合。舉例而言,機器可讀取媒體可以包括隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、可程式設計唯讀記憶體(PROM)、可抹除可程式設計唯讀記憶體(EPROM)、電子可抹除可程式設計唯讀記憶體(EEPROM)、暫存器、磁碟、光碟、硬驅動器、或任何其他適當的儲存媒體、或其任意組合。機器可讀取媒體可以體現在電腦程式產品中。電腦程式產品可以包括封裝材料。
在硬體實現方式中,機器可讀取媒體可以是處理系統的與處理器分開的一部分。然而,如本發明所屬領域中具有通常知識者將容易領會的,機器可讀取媒體或其任何部分可以在處理系統的外部。舉例而言,機器可讀取媒體可以包括傳輸線、由資料調制的載波、及/或與設備分開的電腦產品,全部這些可以由處理器經由匯流排介面來存取。替代地或補充地,機器可讀取媒體或其任何部分可以整合到處理器中,諸如這種情況可以是快取記憶體及/或通用暫存器檔。儘管可能將所論述的各個部件描述為具有特定位置,諸如本機群組件,但是它們亦可以是以各種方式來配置的,諸如某些部件被配置為分散式運算系統的部分。
處理系統可以被配置成通用處理系統,該通用處理系統具有提供處理器功能的一或多個微處理器以及提供機器可讀取媒體的至少一部分的外部記憶體,全部這些經由外部匯流排架構與其他支援電路連結在一起。替代地,處理系統可以包括一或多個神經形態處理器,以用於實現本文所述的神經元模型和神經系統的模型。作為另一替代方案,處理系統可以是利用具有處理器的特殊應用積體電路(ASIC)、匯流排介面、使用者介面、支援電路、以及整合到單個晶片中的機器可讀取媒體的至少一部分來實現的,或者是利用一或多個現場可程式設計閘陣列(FPGA)、可程式設計邏輯裝置(PLD)、控制器、狀態機、閘控邏輯、個別硬體部件、或者可以執行貫穿本案內容所描述的各種功能的任何其他適當的電路或電路的任意組合來實現的。本發明所屬領域中具有通常知識者將認識到的是,如何取決於特定應用和施加在整個系統上的整體設計約束來最佳地實現針對處理系統描述的功能。
機器可讀取媒體可以包括數個軟體模組。軟體模組包括指令,該等指令在由處理器執行時使得處理系統執行各種功能。軟體模組可以包括發送模組和接收模組。每一個軟體模組可以位於單個存放裝置中或跨越多個存放裝置而分佈。舉例而言,當觸發事件發生時,可以將軟體模組從硬驅動器載入到RAM中。在軟體模組的執行期間,處理器可以將指令中的一些指令載入到快取記憶體中以增加存取速度。隨後可以將一或多個快取記憶體行載入到通用暫存器堆中以由處理器執行。將理解的是,當在下文提及軟體模組的功能時,這種功能是由處理器在執行來自該軟體模組的指令時實現的。此外,應當領會的是,本案內容的各態樣導致對處理器、電腦、機器或實現這些態樣的其他系統的功能的改進。
若用軟體來實現,則所述功能可以作為一或多個指令或代碼儲存在電腦可讀取媒體上或在其上傳輸。電腦可讀取媒體包括電腦儲存媒體和通訊媒體兩者,通訊媒體包括促進電腦程式從一個地方傳送到另一個地方的任何媒體。儲存媒體可以是能夠由電腦存取的任何可用的媒體。經由舉例而非限制的方式,此類電腦可讀取媒體可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁存放裝置、或者能夠用於以指令或資料結構形式攜帶或儲存期望的程式碼以及能夠由電腦存取的任何其他媒體。另外地,任何連接被適當地稱為電腦可讀取媒體。例如,若使用同軸電纜、光纖光纜、雙絞線、數位用戶線路路(DSL)或者無線技術(諸如,紅外線(IR)、無線電和微波)從網站、伺服器或其他遠端源傳輸軟體,則同軸電纜、光纖光纜、雙絞線、DSL或者無線技術(諸如,紅外線、無線電和微波)被包括在媒體的定義中。如本文所使用的,磁碟和光碟包括壓縮光碟(CD)、鐳射光碟、光學光碟、數位多功能光碟(DVD)、軟碟和藍光®光碟,其中磁碟通常磁性地複製資料,而光碟則用鐳射來光學地複製資料。因此,在一些態樣中,電腦可讀取媒體可以包括非暫時性電腦可讀取媒體(例如,有形媒體)。此外,對於其他態樣來說,電腦可讀取媒體可以包括暫時性電腦可讀取媒體(例如,信號)。上文的組合亦應當包括在電腦可讀取媒體的範疇之內。
因此,某些態樣可以包括用於執行本文提供的操作的電腦程式產品。例如,這種電腦程式產品可以包括具有儲存(及/或被編碼)在其上的指令的電腦可讀取媒體,該等指令是由一或多個處理器可執行的以執行本文所描述的操作。對於某些態樣來說,電腦程式產品可以包括封裝材料。
此外,應當領會的是,用於執行本文描述的方法和技術的模組及/或其他適當的單元可以由使用者終端及/或基地台在適用的情況下進行下載及/或以其他方式獲得。例如,這種設備可以耦合至伺服器,以促進對用於執行本文所描述的方法的單元的傳送。替代地,本文所描述的各種方法可以經由儲存單元(例如,RAM、ROM、諸如壓縮光碟(CD)或軟碟的實體儲存媒體等)來提供,使得使用者終端及/或基地台在將儲存單元耦合至或提供給設備時可以獲得各種方法。此外,可以利用用於向設備提供本文所描述的方法和技術的任何其他適當的技術。
要理解的是,請求項不限於上文示出的精確配置和部件。在不脫離請求項的範疇的情況下,可以對上文所描述的方法和裝置的排列、操作和細節進行各種修改、改變和變型。
100‧‧‧片上系統(SOC)
102‧‧‧中央處理單元(CPU)
104‧‧‧圖形處理單元(GPU)
106‧‧‧數位訊號處理器(DSP)
108‧‧‧神經處理單元(NPU)
110‧‧‧連線性塊
112‧‧‧多媒體處理器
114‧‧‧感測器處理器
116‧‧‧影像信號處理器(ISP)
118‧‧‧專用記憶體塊
120‧‧‧導航模組
200‧‧‧DCN
202‧‧‧局部處理單元
204‧‧‧局部連接神經網路
206‧‧‧迴旋神經網路
208‧‧‧連接強度
210‧‧‧連接強度
212‧‧‧連接強度
214‧‧‧連接強度
216‧‧‧路由連接處理單元
218‧‧‧第一特徵圖集合
220‧‧‧第二特徵圖集合
222‧‧‧輸出
224‧‧‧第一特徵向量
226‧‧‧影像
228‧‧‧第二特徵向量
230‧‧‧影像擷取裝置
232‧‧‧迴旋層
350‧‧‧深度迴旋網路
352‧‧‧輸入資料
354A‧‧‧迴旋塊
354B‧‧‧迴旋塊
356‧‧‧迴旋層
358‧‧‧正規化層
360‧‧‧最大池化層
362‧‧‧全連接層
364‧‧‧每一層
366‧‧‧分類分數
400‧‧‧軟體架構
402‧‧‧AI應用
404‧‧‧使用者空間
406‧‧‧AI功能應用程式設計介面(API)
408‧‧‧執行時引擎
410‧‧‧作業系統(OS)空間
412‧‧‧Linux核心
414‧‧‧驅動器
416‧‧‧驅動器
418‧‧‧驅動器
420‧‧‧SOC
422‧‧‧CPU
424‧‧‧DSP
426‧‧‧GPU
428‧‧‧NPU
500‧‧‧方法
502‧‧‧方塊
504‧‧‧方塊
506‧‧‧方塊
508‧‧‧方塊
510‧‧‧方塊
512‧‧‧方塊
600‧‧‧分佈
602‧‧‧間隔
604‧‧‧最小值
606‧‧‧最大值
650‧‧‧分類分佈
652‧‧‧第一網格點
654‧‧‧第二網格點
700‧‧‧訓練神經網路
702‧‧‧訓練資料
704‧‧‧輸入值
706a‧‧‧第一量化器
706b‧‧‧量化器
706c‧‧‧量化器
706d‧‧‧量化器
708‧‧‧損失模組
710‧‧‧地面真值資料
712‧‧‧取樣資料
714‧‧‧行動設備
800‧‧‧方法
802‧‧‧方塊
804‧‧‧方塊
806‧‧‧方塊
根據下文結合附圖闡述的具體實施方式,本案內容的特徵、本質和優點將變得更加顯而易見,在附圖中,相同的元件符號始終相應地進行標識。
圖1根據本案內容的某些態樣,圖示使用包括通用處理器的片上系統(SOC)來設計神經網路的實例實現方式。
圖2A、圖2B和圖2C是根據本案內容的各態樣示出神經網路的圖。
圖2D是根據本案內容的各態樣示出示例性深度迴旋網路(DCN)的圖。
圖3是根據本案內容的各態樣示出示例性深度迴旋網路(DCN)的方塊圖。
圖4是根據本案內容的各態樣示出可以對人工智慧(AI)功能進行模組化的示例性軟體架構的方塊圖。
圖5是根據本案內容的各態樣示出使用量化的連續鬆弛來針對離散化深度神經網路進行量化的方法的示例性流程圖。
圖6A和圖6B根據本案內容的各態樣,圖示離散化程序的實例。
圖7根據本案內容的各態樣,圖示用於訓練離散化深度神經網路的系統流程圖。
圖8根據本案內容的各態樣,圖示用於針對神經網路進行量化的方法。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記)
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記)

Claims (25)

  1. 一種用於對一神經網路進行量化的方法,該方法包括以下步驟: 對該神經網路的參數的雜訊進行建模; 根據一具體分佈來向該等參數的每一種實現指派網格值,該具體分佈是取決於一局部定點量化網格和該所建模的雜訊的;及 計算表示一硬定點量化神經網路的參數的一定點值。
  2. 根據請求項1之方法,亦包括以下步驟:在訓練期間學習該局部定點量化網格,該學習包括對有序值的一網格進行縮放和偏移。
  3. 根據請求項1之方法,其中該所建模的雜訊加性地作用於該神經網路的該等參數。
  4. 根據請求項1之方法,其中指派該等網格值包括以下步驟:建立在該局部定點量化網格上的該等參數的一分類分佈。
  5. 根據請求項4之方法,其中指派該等網格值包括以下步驟:從該分類分佈中選擇一最大概率類別以將該等網格值指派給該等參數。
  6. 根據請求項4之方法,亦包括以下步驟: 利用該具體分佈替換在該局部定點量化網格上的該等參數的該分類分佈,以獲得一差分軟量化器;及 在訓練期間使用該差分軟量化器來對該等參數進行偽量化。
  7. 根據請求項1之方法,其中計算該定點值包括以下步驟:從該等參數的一分類分佈中選擇一最可能的網格點以形成該硬定點量化神經網路。
  8. 根據請求項1之方法,其中計算該定點值包括以下步驟:經由取整到一最接近的網格點來選擇一最可能的網格點。
  9. 根據請求項1之方法,其中該等參數包括以下各項中的至少一項:權重、啟動、或其之一組合。
  10. 一種用於對一神經網路進行量化的裝置,該裝置包括: 用於對該神經網路的參數的雜訊進行建模的單元; 用於根據一具體分佈來向該等參數的每一種實現指派網格值的單元,該具體分佈是取決於一局部定點量化網格和該所建模的雜訊的;及 用於計算表示一硬定點量化神經網路的參數的一定點值的單元。
  11. 根據請求項10之裝置,亦包括:用於在訓練期間學習該局部定點量化網格的單元,該用於學習的單元包括用於對有序值的一網格進行縮放和偏移的單元。
  12. 根據請求項10之裝置,其中該所建模的雜訊加性地作用於該神經網路的該等參數。
  13. 一種用於對一神經網路進行量化的裝置,該裝置包括: 一記憶體;及 耦合到該記憶體的至少一個處理器,該至少一個處理器被配置為: 對該神經網路的參數的雜訊進行建模; 根據一具體分佈來向該等參數的每一種實現指派網格值,該具體分佈是取決於一局部定點量化網格和該所建模的雜訊的;及 計算表示一硬定點量化神經網路的參數的一定點值。
  14. 根據請求項13之裝置,其中該至少一個處理器被配置為:經由對有序值的一網格進行縮放和偏移來在訓練期間學習該局部定點量化網格。
  15. 根據請求項13之裝置,其中該所建模的雜訊加性地作用於該神經網路的該等參數。
  16. 根據請求項13之裝置,其中該至少一個處理器被配置為:經由建立在該局部定點量化網格上的該等參數的一分類分佈來指派該等網格值。
  17. 根據請求項16之裝置,其中該至少一個處理器被配置為:經由從該分類分佈中選擇一最大概率類別以將該等網格值指派給該等參數,來指派該等網格值。
  18. 根據請求項16之裝置,其中該至少一個處理器亦被配置為: 利用該具體分佈替換在該局部定點量化網格上的該等參數的該分類分佈,以獲得一差分軟量化器;及 在訓練期間使用該差分軟量化器來對該等參數進行偽量化。
  19. 根據請求項13之裝置,其中該至少一個處理器被配置為:經由從該等參數的一分類分佈中選擇一最可能的網格點來計算該定點值,以形成該硬定點量化神經網路。
  20. 根據請求項13之裝置,其中該至少一個處理器被配置為:經由取整到一最接近的網格點來選擇一最可能的網格點以計算該定點值。
  21. 根據請求項13之裝置,其中該等參數包括以下各項中的至少一項:權重、啟動、或其之一組合。
  22. 一種非暫時性電腦可讀取媒體,其具有記錄在其上的用於對一神經網路進行量化的程式碼,該程式碼由至少一個處理器執行並且包括: 用於對該神經網路的參數的雜訊進行建模的程式碼; 用於根據一具體分佈來向該等參數的每一種實現指派網格值的程式碼,該具體分佈是取決於一局部定點量化網格和該所建模的雜訊的;及 用於計算表示一硬定點量化神經網路的參數的一定點值的程式碼。
  23. 根據請求項22之非暫時性電腦可讀取媒體,其中該程式碼用於在訓練期間學習該局部定點量化網格,該用於學習的程式碼包括用於對有序值的一網格進行縮放和偏移的程式碼。
  24. 根據請求項22之非暫時性電腦可讀取媒體,其中所建模的雜訊加性地作用於該神經網路的該等參數。
  25. 根據請求項22之非暫時性電腦可讀取媒體,其中該用於指派該等網格值的程式碼包括:用於建立在該局部定點量化網格上的該等參數的一分類分佈的程式碼。
TW108117002A 2018-05-17 2019-05-17 用於離散化深度神經網路的量化的連續鬆弛 TW201947464A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GR20180100211 2018-05-17
GR20180100211 2018-05-17
US16/413,535 2019-05-15
US16/413,535 US11562208B2 (en) 2018-05-17 2019-05-15 Continuous relaxation of quantization for discretized deep neural networks

Publications (1)

Publication Number Publication Date
TW201947464A true TW201947464A (zh) 2019-12-16

Family

ID=68533839

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108117002A TW201947464A (zh) 2018-05-17 2019-05-17 用於離散化深度神經網路的量化的連續鬆弛

Country Status (3)

Country Link
US (1) US11562208B2 (zh)
TW (1) TW201947464A (zh)
WO (1) WO2019222543A1 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109543826A (zh) * 2017-09-21 2019-03-29 杭州海康威视数字技术股份有限公司 一种基于深度神经网络的激活量量化方法及装置
CN110826721A (zh) * 2018-08-09 2020-02-21 松下电器(美国)知识产权公司 信息处理方法及信息处理系统
US11847567B1 (en) 2018-12-05 2023-12-19 Perceive Corporation Loss-aware replication of neural network layers
US11507823B2 (en) * 2019-01-22 2022-11-22 Black Sesame Technologies Inc. Adaptive quantization and mixed precision in a network
US10762393B2 (en) * 2019-01-31 2020-09-01 StradVision, Inc. Learning method and learning device for learning automatic labeling device capable of auto-labeling image of base vehicle using images of nearby vehicles, and testing method and testing device using the same
US11847568B2 (en) 2019-07-30 2023-12-19 Perceive Corporation Quantizing neural networks using shifting and scaling
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
US11397694B2 (en) 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
CN110929862B (zh) * 2019-11-26 2023-08-01 陈子祺 定点化的神经网络模型量化装置和方法
CN113111997B (zh) * 2020-01-13 2024-03-22 中科寒武纪科技股份有限公司 用于神经网络数据量化的方法、装置和相关产品
CN111460958B (zh) * 2020-03-26 2023-05-05 暗物智能科技(广州)有限公司 一种物体检测器构建、物体检测方法及系统
US11468276B2 (en) * 2020-04-16 2022-10-11 Robert Bosch Gmbh System and method of a monotone operator neural network
CN113723599A (zh) * 2020-05-26 2021-11-30 上海寒武纪信息科技有限公司 神经网络计算方法、装置、板卡及计算机可读存储介质
CN112052148B (zh) * 2020-08-17 2022-04-29 烽火通信科技股份有限公司 故障预测方法、装置、设备及可读存储介质
US11558617B2 (en) 2020-11-30 2023-01-17 Tencent America LLC End-to-end dependent quantization with deep reinforcement learning
US11017322B1 (en) * 2021-01-28 2021-05-25 Alipay Labs (singapore) Pte. Ltd. Method and system for federated learning
US11132598B1 (en) * 2021-02-23 2021-09-28 Neuraville, Llc System and method for humanoid robot control and cognitive self-improvement without programming
US11909975B2 (en) * 2021-06-18 2024-02-20 Tencent America LLC Dependent scalar quantization with substitution in neural image compression
WO2023224723A1 (en) * 2022-05-19 2023-11-23 Qualcomm Incorporated Fast eight-bit floating point (fp8) simulation with learnable parameters

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078401A1 (en) * 2002-10-22 2004-04-22 Hilton Howard E. Bias-free rounding in digital signal processing
US20070078401A1 (en) 2005-08-10 2007-04-05 Servoss Susan J Intravenous tubing protector and support system
US10223635B2 (en) 2015-01-22 2019-03-05 Qualcomm Incorporated Model compression and fine-tuning
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US11475269B2 (en) 2015-12-15 2022-10-18 Analog Devices, Inc. Convolutional neural network
US10831444B2 (en) * 2016-04-04 2020-11-10 Technion Research & Development Foundation Limited Quantized neural network training and inference
CN109858623B (zh) 2016-04-28 2021-10-15 中科寒武纪科技股份有限公司 用于执行人工神经网络正向运算的装置和方法
US9916531B1 (en) 2017-06-22 2018-03-13 Intel Corporation Accumulator constrained quantization of convolutional neural networks
US10678508B2 (en) * 2018-03-23 2020-06-09 Amazon Technologies, Inc. Accelerated quantized multiply-and-add operations

Also Published As

Publication number Publication date
US20190354842A1 (en) 2019-11-21
WO2019222543A1 (en) 2019-11-21
US11562208B2 (en) 2023-01-24

Similar Documents

Publication Publication Date Title
TW201947464A (zh) 用於離散化深度神經網路的量化的連續鬆弛
US10373050B2 (en) Fixed point neural network based on floating point neural network quantization
JP7037478B2 (ja) 分類のための強制的なスパース性
CN106796580B (zh) 用于处理多个异步事件驱动的样本的方法、装置和介质
US20170091619A1 (en) Selective backpropagation
US20170228646A1 (en) Spiking multi-layer perceptron
US20190354865A1 (en) Variance propagation for quantization
US20160071005A1 (en) Event-driven temporal convolution for asynchronous pulse-modulated sampled signals
WO2018084941A1 (en) Temporal difference estimation in an artificial neural network
US10732694B2 (en) Power state control of a mobile device
US11449758B2 (en) Quantization and inferencing for low-bitwidth neural networks
US11704571B2 (en) Learned threshold pruning for deep neural networks
US20220284260A1 (en) Variable quantization for neural networks
WO2023059723A1 (en) Model compression via quantized sparse principal component analysis
WO2021158830A1 (en) Rounding mechanisms for post-training quantization
US20220108165A1 (en) Quantifying reward and resource allocation for concurrent partial deep learning workloads in multi core environments
US20230419087A1 (en) Adapters for quantization
US20240037150A1 (en) Scheduling optimization in sequence space
WO2022188135A1 (en) Out-of-distribution detection for personalizing neural network models
WO2023249821A1 (en) Adapters for quantization
WO2024054289A1 (en) Hardware-aware federated learning
JP2024509862A (ja) ビデオ処理における改善された時間的一貫性のための効率的なテスト時間適応
TW202411891A (zh) 硬體知悉式聯合學習
WO2023224723A1 (en) Fast eight-bit floating point (fp8) simulation with learnable parameters
EP4162405A1 (en) Federated mixture models