TW202117609A - 具有快速逐點迴旋的高效推斷 - Google Patents

具有快速逐點迴旋的高效推斷 Download PDF

Info

Publication number
TW202117609A
TW202117609A TW109131856A TW109131856A TW202117609A TW 202117609 A TW202117609 A TW 202117609A TW 109131856 A TW109131856 A TW 109131856A TW 109131856 A TW109131856 A TW 109131856A TW 202117609 A TW202117609 A TW 202117609A
Authority
TW
Taiwan
Prior art keywords
point
calculation network
layer
decomposition calculation
cnn model
Prior art date
Application number
TW109131856A
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 TW202117609A publication Critical patent/TW202117609A/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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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/15Correlation function computation including computation of convolution operations
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • 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/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/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/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)

Abstract

本文描述的實施例係關於一種方法,包括以下步驟:在迴旋神經網路(CNN)模型處接收輸入資料;產生包括CNN模型的第一層和CNN模型的第二層之間的複數個連接的分解計算網路,其中:該分解計算網路包括N個輸入,該分解計算網路包括M個輸出,並且該分解計算網路包括從N個輸入之每一者輸入到M個輸出之每一者輸出的至少一條路徑;將該分解計算網路中的複數個連接的連接權重設置為1,以使得分解計算網路的權重密度<100%;使用分解計算網路來執行快速逐點迴旋以產生快速逐點迴旋輸出;及向CNN模型的第二層提供快速逐點迴旋輸出。

Description

具有快速逐點迴旋的高效推斷
本專利申請案主張於2019年9月16日提出申請的題為「EFFICIENT INFERENCING WITH FAST POINTWISE CONVOLUTION(具有快速逐點迴旋的高效推斷)」的非臨時申請案第16/571,760的優先權,該非臨時申請案已轉讓給其受讓人並且由此經由援引被明確納入於此。
本案的各態樣係關於最佳化機器學習模型效能,尤其係關於改良逐點迴旋的效率。
機器學習可以產生經訓練模型,諸如人工神經網路、分類樹等,其表示對被標記的訓練資料集合的廣義擬合。將經訓練模型應用於新資料產生推斷,此舉可被用於獲得關於新資料的洞察。在一些情形中,將經訓練模型應用於新資料被稱為對新資料「執行推斷」。
建立推斷是計算密集型的,尤其是隨著模型複雜度的增加。相應地,需要用於改良機器學習模型的效能的方法,諸如經由使用神經網路模型來使得推斷更高效。
某些實施例提供了一種方法,包括以下步驟:在迴旋神經網路(CNN)模型處接收輸入資料;產生包括CNN模型的第一層和CNN模型的第二層之間的複數個連接的分解計算網路,其中:分解計算網路包括N個輸入,分解計算網路包括M個輸出,並且分解計算網路包括從N個輸入之每一者輸入到M個輸出之每一者輸出的至少一條路徑;將分解計算網路中的複數個連接的連接權重設置為1,以使得分解計算網路的權重密度<100%;使用分解計算網路來執行快速逐點迴旋以產生快速逐點迴旋輸出;及向CNN模型的第二層提供快速逐點迴旋輸出。
某些實施例進一步提供了一種處理系統,包括:記憶體,其包括電腦可執行指令;及第一處理器,其被配置成執行電腦可執行指令並使處理系統執行以下操作:在迴旋神經網路(CNN)模型處接收輸入資料;產生包括CNN模型的第一層和CNN模型的第二層之間的複數個連接的分解計算網路,其中:分解計算網路包括N個輸入,分解計算網路包括M個輸出,並且分解計算網路包括從N個輸入之每一者輸入到M個輸出之每一者輸出的至少一條路徑;將分解計算網路中的複數個連接的連接權重設置為1,以使得分解計算網路的權重密度<100%;使用分解計算網路來執行快速逐點迴旋以產生快速逐點迴旋輸出;及向CNN模型的第二層提供快速逐點迴旋輸出。
某些實施例進一步提供了一種包括指令的非暫時性電腦可讀取媒體,該等指令在由處理系統的第一處理器執行時使處理系統執行方法,該方法包括以下步驟:在迴旋神經網路(CNN)模型處接收輸入資料;產生包括CNN模型的第一層和CNN模型的第二層之間的複數個連接的分解計算網路,其中:分解計算網路包括N個輸入,分解計算網路包括M個輸出,並且分解計算網路包括從N個輸入之每一者輸入到M個輸出之每一者輸出的至少一條路徑;將分解計算網路中的複數個連接的連接權重設置為1,以使得分解計算網路的權重密度<100%;使用分解計算網路來執行快速逐點迴旋以產生快速逐點迴旋輸出;及向CNN模型的第二層提供快速逐點迴旋輸出。
以下描述和相關附圖詳細闡述了一或多個實施例的某些說明性特徵。
本案的各態樣提供了用於最佳化機器學習模型效能的裝置、方法、處理系統和電腦可讀取媒體,尤其用於改良逐點迴旋的效率。 深度神經網路與深度學習
深度學習架構可經由學習以在每一層中以逐次更高的抽象水平來表示輸入、藉此構建輸入資料的有用特徵表示來執行複雜任務(諸如物件辨識)。以此方式,深度學習解決了傳統機器學習的主要瓶頸。
在深度學習出現之前,用於任務的機器學習辦法可能嚴重依賴人類工程設計的特徵,或許與淺分類器相結合。淺分類器可以是兩類線性分類器,例如,其中可將輸入值(例如,輸入向量分量)的加權和與閾值作比較以預測輸入屬於何者類別。人類工程設計的特徵可以是由擁有領域專業知識的工程師針對特定問題領域定製的模版或核。
相比之下,深度學習架構可學習以表示與人類工程師可能會設計的類似的特徵,但深度學習架構是經由訓練來學習的。此外,深度網路(例如,深度神經網路)可以學習以表示和辨識人類可能還沒有考慮過的新類型的特徵。
深度學習架構可被配置成學習特徵階層。例如,若向第一層呈遞視覺資料,則第一層可學習以辨識輸入串流中的相對簡單的特徵(諸如邊緣)。在另一實例中,若向第一層呈遞聽覺資料,則第一層可學習以辨識特定頻率中的頻譜功率。取第一層的輸出作為輸入的第二層可以學習以辨識特徵組合,諸如對於視覺資料辨識簡單形狀或對於聽覺資料辨識聲音組合。例如,更高層可學習以表示視覺資料中的複雜形狀或聽覺資料中的詞語。再高層可學習以辨識常見視覺物件或口語短語。
深度學習架構在被應用於具有自然階層結構的問題時可能表現特別好。例如,機動交通工具的分類可受益於首先學習以辨識輪子、擋風玻璃,以及其他特徵。該等特徵可在更高層以不同方式被組合以辨識轎車、卡車和飛機。
神經網路可被設計成具有各種各樣的連接性模式。例如,在前饋網路中,資訊從較低層被傳遞到較高層,其中給定層之每一者神經元向更高層中的神經元進行傳達。
神經網路亦可具有回流或回饋(亦被稱為自頂向下(top-down))連接。從給定層中的神經元的輸出到相同層中的另一神經元的連接被稱為回流連接。回流架構可有助於辨識跨越多於一個按順序遞送給該神經網路的輸入資料組塊的模式。從給定層中的神經元到更低層中的神經元的連接被稱為回饋(或自頂向下)連接。當高層級概念的辨識可輔助辨別輸入的特定低層級特徵時,具有許多回饋連接的網路可能是有助益的。
神經網路的各層之間的連接可以是全連接的或局部連接的。
圖1A圖示了全連接神經網路102的實例。在全連接神經網路102中,第一層中的神經元可將其輸出傳達給第二層之每一者神經元,從而第二層之每一者神經元將從第一層之每一者神經元接收輸入。
圖1B圖示了局部連接神經網路104的實例。在局部連接的神經網路104中,第一層中的神經元可連接到第二層中有限數目的神經元。更一般化地,局部連接的神經網路104的局部連接層可被配置成使得一層之每一者神經元將具有相同或相似的連接性模式,但其連接強度可具有不同的值(例如,110、112、114和116)。局部連接的連接性模式可能在更高層中產生空間上相異的感受野,此情形是由於給定區域中的更高層神經元可接收到經由訓練被調諧為到網路的總輸入的受限部分的性質的輸入。
局部連接神經網路的一個實例是迴旋神經網路。圖1C圖示了迴旋神經網路106的實例。迴旋神經網路106可被配置成使得與針對第二層中每個神經元的輸入相關聯的連接強度被共享(例如,108)。迴旋神經網路可能非常適合於其中輸入的空間位置有意義的問題。
迴旋網路的每一層的處理可被認為是空間不變模版或基礎投影。若輸入首先被分解成多個通道,諸如彩色圖像的紅色、綠色和藍色通道,則在該輸入上訓練的迴旋網路可被認為是三維的,其具有沿著該圖像的軸的兩個空間維度以及擷取顏色資訊的第三維度。迴旋連接的輸出可被認為在後續層中形成特徵圖,該特徵圖之每一者元素從先前層中一定範圍的神經元以及從該多個通道之每一者通道接收輸入。特徵圖中的值可以用非線性(諸如矯正max(0, x))進一步處理。來自毗鄰神經元的值可被進一步池化(此舉對應於降取樣)並可提供附加的局部不變性以及維度縮減。
一種類型的迴旋神經網路是深度迴旋網路(DCN)。深度迴旋網路(DCN)是迴旋層的網路,其配置有附加的池化和正規化層。DCN可使用受監督式學習來訓練,其中輸入和輸出目標兩者對於許多典範是已知的並被用於經由使用梯度下降法來修改網路的權重。
DCN可以是前饋網路。另外,如前述,從DCN的第一層中的神經元到下一更高層中的神經元群組的連接跨第一層中的神經元被共享。DCN的前饋和共享連接可被利用於進行快速處理。DCN的計算負擔可比例如類似大小的包括回流或回饋連接的神經網路的計算負擔小得多。
圖1D圖示了被設計成辨識來自圖像擷取設備130(諸如車載相機)的圖像126輸入的視覺特徵的DCN 100的詳細實例。可對當前實例的DCN 100進行訓練以辨識交通標誌以及在交通標誌上提供的數值。當然,DCN 200可被訓練用於其他任務,諸如辨識車道標記或辨識交通信號燈。該等僅是一些示例性任務,而許多其他任務是可能的。
可以用受監督式學習來訓練DCN 100。在訓練期間,可向DCN 100呈遞圖像(諸如限速標誌的圖像126),並且隨後可計算「前向傳遞(forward pass)」以產生輸出122。
在該實例中,DCN 100包括特徵提取區段和分類區段。在接收到圖像126之後,迴旋層132向圖像126應用迴旋核(未圖示),以產生第一組特徵圖118。一般而言,核包括被設計成強調輸入資料通道的不同態樣的二維權重陣列,而濾波器包括包含堆疊在一起的多個核的三維結構。三維濾波器在深度學習中被頻繁使用。
在一個實例中,迴旋層132的迴旋核可以是產生28x28特徵圖的5x5核。進一步在本實例中,由於在第一組特徵圖118中產生四個不同的特徵圖,因此在迴旋層132處四個不同的迴旋核被應用於圖像126。迴旋核亦可被稱為濾波器或迴旋濾波器。
第一組特徵圖118可由最大池化層(未圖示)進行子取樣以產生第二組特徵圖120。最大池化層減小第一組特徵圖118的大小。亦即,第二組特徵圖120的大小(諸如14x14)小於第一組特徵圖118的大小(諸如28x28)。經減小的大小向後續層提供類似的資訊,同時減小記憶體消耗。第二特徵圖集合120可經由一或多個後續迴旋層(未圖示)被進一步迴旋,以產生一或多個後續特徵圖集合(未圖示)。
在圖1D的實例中,第二組特徵圖120被迴旋以產生第一特徵向量124。此外,第一特徵向量124被進一步迴旋以產生第二特徵向量128。第二特徵向量128的每個特徵可包括與圖像126的可能特徵(諸如「標誌」、「60」和「100」)相對應的數值。softmax(軟最大化)函數(未圖示)可將第二特徵向量128中的數值轉換為概率。如此,DCN 100的輸出122是圖像126包括一或多個特徵的概率。
在本實例中,輸出122中「標誌」和「60」的概率高於輸出122的其他數值(諸如「30」、「40」、「50」、「70」、「80」、「90」和「100」)的概率。
在訓練DCN 100之前,由DCN 100產生的輸出122很可能是不正確的。由此,可計算輸出122與目標輸出之間的誤差。目標輸出是圖像126的真實(例如,「標誌」和「60」)。DCN 100的權重可隨後被調整以使得DCN 100的輸出122與目標輸出更緊密地對準。
為了調整DCN 100的權重,學習演算法可為權重計算梯度向量。該梯度可指示在權重被調整情況下誤差將增加或減少的量。在頂層處,該梯度可直接對應於連接倒數第二層中的啟用神經元與輸出層中的神經元的權重的值。在較低層中,該梯度可取決於權重的值以及所計算出的較高層的誤差梯度。權重可隨後被調整以減小誤差。此種調整權重的方式可被稱為「後向傳播」,因為其涉及在神經網路中的「後向傳遞(backward pass)」。
在實踐中,權重的誤差梯度可能是在少量實例上計算的,從而計算出的梯度近似於真實誤差梯度。此種近似方法可被稱為隨機梯度下降法。隨機梯度下降法可被重複,直到整個系統可達成的誤差率已停止下降或直到誤差率已達到目標水平。在學習之後,DCN 100可被呈遞新圖像並且在網路中的前向傳遞可產生輸出122,其可被認為是該DCN的推斷或預測。 迴旋神經網路中的迴旋
迴旋是一種用於例如信號處理、圖像處理、機器學習和其他技術領域的資料分析技術。在深度學習中,迴旋被用於從輸入資料集中提取有用的特徵。例如,在迴旋神經網路中,諸如前述,迴旋使得能夠使用濾波器來提取不同的特徵,濾波器的權重在訓練期間被自動學習。隨後組合所提取的特徵以進行推斷。
減少計算負擔(例如,其按每秒浮點運算(FLOP)來量測)和與迴旋神經網路相關聯的參數數目的一種方法是使用可分離逐深度迴旋將迴旋層分解為兩個組成部分:(1)空間融合,其中每個空間通道經由逐深度迴旋被獨立迴旋;及(2)通道融合,其中所有的空間通道經由1x1迴旋來線性組合,稱為逐點迴旋。
在空間融合期間,網路從空間面學習特徵,而在通道融合期間,網路跨通道學習該等特徵之間的關係。有時使用3x3濾波器實現空間融合,並且使用1x1濾波器實現通道融合。一般而言,經由逐點迴旋的通道融合對於高效計算的降維、高效的低維嵌入或特徵池,以及在迴旋之後再次應用非線性皆是有用的,僅列舉幾個實例。
例如,逐點迴旋可以使用1x1xd核,該核反覆運算遍歷深度為d的輸入圖像之每一者單點。逐點迴旋核的深度d通常與輸入資料的通道數相匹配,諸如具有多個用於顏色資料的通道的圖像。
一般而言,啟用層(諸如ReLU、PReLU、Softmax或其他)可以在神經網路的每一層之後應用。應用1x1xd核並在核之後添加啟用層可能增加網路深度,此舉可提高其效能。
圖2圖示了逐點迴旋運算的實例,其中1x1x5核204反覆運算遍歷8x8x5輸入圖像202以產生8x8x1的輸出圖像206。如在該實例中所圖示的,輸出圖像206具有降低的維度(1通道對8通道),此舉允許使用輸出圖像206進行更高效的計算。
儘管未在圖2中圖示,但多個(例如,m個)逐點迴旋核(例如,在濾波器中)可被用來增加輸入資料的輸出通道的數目。因此,例如,可以產生m=256個1x1x5核204,每個核各自輸出8x8x1輸出圖像(例如,206),並且該等輸出圖像可被堆疊以獲得8x8x256的所得圖像,亦即,8圖元寬×8圖元高、具有深度為256個通道的圖像。輸出通道的所得增加為訓練提供了更多的參數,此舉可以改良模型辨識特徵的能力(例如,在輸入圖像202中)。
在推斷時間檢視分解迴旋神經網路的計算輪廓揭示了空間融合的計算負擔比通道融合的計算負擔要小得多。實際上,通道融合中的逐點迴旋的計算複雜度是通道數的二次方(O(n2 ),其中n是通道數)。
圖3圖示了具有N=4個輸入和M=4個輸出的全連接網路300的實例。為了決定在網路300上執行習知逐點迴旋的複雜度,考慮從輸入特徵圖X獲取N個啟用並產生M個啟用作為輸出特徵圖Y的逐點(1x1)迴旋。因此: Y=WX,其中X𝜖RN ,W𝜖RN *M ,並且Y𝜖RM
在習知逐點迴旋運算中,在啟用(X)和權重(W)之間有N*M次乘法;因此,複雜度階數是
Figure 02_image001
。 快速逐點迴旋方法
本文所描述的是快速逐點迴旋方法,其使用分解和減少的權重密度而不是嚴格的逐點乘法來實現以顯著減少的操作複雜度和降低的權重(參數)數目使用運算Y=WX從特徵圖X到特徵圖Y的類似變換。
例如,假定X具有形狀
Figure 02_image003
,並且Y具有形狀
Figure 02_image005
,分別沿著X和Y的
Figure 02_image007
Figure 02_image009
維度,並且進一步假定
Figure 02_image011
Figure 02_image013
。隨後,習知逐點迴旋如下所定義地在權重W上以
Figure 02_image015
的複雜度來運算:
Figure 02_image017
相比之下,本文所描述的方法使用分解和減少的權重密度來減少逐點迴旋所需的權重數和由此的乘法。權重密度通常指網路中加權連接或邊緣佔該網路中所有連接或邊緣的百分比。在習知逐點迴旋中,由於分解計算網路中的所有連接皆被加權,所以權重密度為100%。相比之下,本文所描述的分解和權重密度減少導致N*log2 N+N的所需參數數目和複雜度,其在複雜度和所需參數數目兩者上皆是N*M的顯著改良(如圖7A和圖7B中所圖示的)。
一般而言,給定網路的權重密度越高,網路的可訓練權重就越多,基於該網路的所得模型就越有表現力。然而,如本文進一步描述的,權重密度可以改變以在經訓練模型效能和訓練複雜度之間達成合適的平衡。
本文所描述的快速逐點迴旋方法導致勝過習知方法的許多改良。例如,減少執行逐點迴旋所需的乘法數目減少在執行逐點迴旋的處理系統中的功率使用和等待時間。此外,減少可訓練權重的數目減小了模型大小,此舉有利地減少了記憶體使用(例如,更少的記憶體事務);所需的記憶體大小(例如,用於保持較小的啟用);和等待時間(因為更少的記憶體事務)。減少記憶體(例如,晶片上記憶體)大小進一步降低了功率使用和成本。因此,快速逐點迴旋對於行動設備和資源受限的邊緣設備尤其有利。
快速逐點迴旋在任何機器學習上下文中皆是有益的,其中某一精度是可以用效能來交換的。例如,在釋放實際乘積中的「運行時間」權重之前,可以使用快速逐點迴旋來執行模型壓縮。經壓縮的權重可以有益地減少乘積的記憶體和處理需求。
圖4圖示了網路400上自底向上辦法中的快速逐點迴旋方法的實例。網路400可被稱為分解計算網路或圖。
在該實例中,使用以下約定:
Figure 02_image019
是第i階段中第j個向下連接權重;
Figure 02_image021
是第i階段中第j個向上連接的權重;
Figure 02_image023
是第i階段中第j個直接連接的權重;而所有其他直接連接的權重等於1(替換地被稱為「麼元」)。直接連接權重可替換地被稱為水平連接權重,並且向上和向下連接權重可替換地被稱為交叉連接權重。此外,連接可替換地被稱為邊緣。
一般而言,計算網路400包括複數個階段(402和404),其具有在輸入(例如,[x0 , x1 , x2 , x3 ])、加法節點(例如,408)(其亦可被稱為累加器節點)和輸出(例如,[y0 , y1 , y2 , y3 ])之間連接的階段間連接(例如,
Figure 02_image023
Figure 02_image026
Figure 02_image021
的階段間連接)。階段n的數目可經由
Figure 02_image029
來決定,其中N是輸入的數目(例如,輸入通道的數目)。因此,在該實例中,n=
Figure 02_image031
=2。
在該實例中,在分解的每個階段中,輸入被組織成不同的對,此舉導致輸入[x0 , x1 , x2 , x3 ]在第一階段402中被組織成對[x0 , x1 ]和[x2 , x3 ],而在第二階段404中被組織成[x0 , x2 ]和[x1 , x3 ]。
隨後,計算所有第一階段402的直接連接權重(dij )和交叉連接權重(fij 和gij ),其在該實例中包括d00 、f00 、g00 、d01 、d02 、f01 、g01 和d03 。然而,在第二階段404中,僅計算交叉連接權重,其在該實例中包括f10 、g10 、f11 和g11 。在該實例中,第二階段直接連接權重被設置等於1(或「麼元」),此舉降低了網路400的權重密度,並且因此降低了其複雜度。
注意,在本實例中,由於輸入和輸出節點的索引原點為0,因此階段索引號比其序數參照少1。例如,在此,「第一階段」的階段索引為0,「第二階段」的階段索引為1。該等可替換地被稱為階段0和階段1,與索引一致。
值得注意的是,網路400是完全連接的,因為每個輸入x被連接到每個輸出y,如同圖3中的網路300,但是在基於完全連接的輸入來計算輸出時,減少數目的可訓練權重的減少了必要的乘法數目。具體地,在該實例中,第二階段404中的直接連接權重406皆等於1,並且因此不需要被訓練或相乘。相反,來自第一階段402的權重可以正好沿著直接連接權重404來攜帶。因此,該實例中網路400的分解得到以下等式:
Figure 02_image033
Figure 02_image035
Figure 02_image037
Figure 02_image039
如以上等式組所圖示的,與習知逐點迴旋(例如,如圖3的實例所示)中所需的N*M=16個參數相比,該快速逐點迴旋方法僅有12個參數。因此,在該實例中,網路400的權重密度為12/16=3/4或即75%。儘管複雜度顯著降低,使用該快速逐點迴旋方法所得模型的效能與習知逐點迴旋的效能非常相似。因此,在效能的優先順序勝過絕對效能的上下文中,快速逐點迴旋是有益的。
圖5圖示了網路500上具有自頂向下辦法的快速逐點迴旋方法的實例。在計算上,該自頂向下替換辦法等效於參照圖4所描述和圖示的自底向上辦法。然而,實現考量可導致相對於一種辦法相對於另一種辦法的偏好。
在此處,再次,在分解的每個階段中,輸入被組織成不同的對,並且階段的數目n再次由n=
Figure 02_image029
來決定,其中N是輸入(例如,輸入通道)的數目。因此,在該實例中,分解的階段數目被決定為n=
Figure 02_image031
=2。如前述,輸入[x0 , x1 , x2 , x3 ]可以再次在第一階段502中被組織成對[x0 , x1 ]和[x2 , x3 ],並且在第二階段504中被組織成對[x0 , x2 ]和[x1 , x3 ]。
在該實例中,僅計算第一階段502交叉連接權重(fij 和gij ),其在該實例中包括f00 、f01 、g00 和g01 。隨後,在第二階段504中,計算直接連接權重(dij )和交叉連接權重(fij 和gij ),其在該實例中包括d10 、f10 、g10 、d11 、d12 、f11 、g11 和d13
如同圖4中的網路400,在此,網路500是完全連接的,因為每個輸入x被連接到每個輸出y。並且在此處,再次,跨多個階段(502和504)使用可變加權密度允許減少數目的可訓練權重,以及由此減少數目的乘法。具體地,在該實例中,第一階段504中的直接連接權重506皆等於1(或麼元),並且因此不需要被訓練或相乘。因此,該實例中網路400的分解得到以下等式:
Figure 02_image043
Figure 02_image045
Figure 02_image047
Figure 02_image049
在此處,再次,與將在習知逐點迴旋(例如,如圖3的實例所示)中所需的N*M=16個參數相比,該快速逐點迴旋方法在以上等式組中僅有12個參數。因此,在此,網路500的權重密度再次為3/4或即75%。 用於快速逐點迴旋的通用數學模型
根據以下關於圖3和圖4所描述的實例,用於快速逐點迴旋的通用數學模型可被描述如下。
從簡單的情形開始,N=2個輸入的直接連接權重(DN )可被表示如下:
Figure 02_image051
類似地,N=2個輸入的向下交叉連接權重(FN )可被表示如下:
Figure 02_image053
並且最後,N=2個輸入的向上交叉連接權重(GN )可被表示如下:
Figure 02_image055
因此,對於M=2個輸出,可使用以下運算式:
Figure 02_image057
在以上等式中,
Figure 02_image059
表示逐元素乘法運算。
以上關於N=2的簡單情形的等式可被推廣到任何N個輸入,其中N=2n (或等效地,n=log2 N)並且n是正整數,如下所示。
首先,令
Figure 02_image061
表示Kronecker乘法運算。隨後,從N=2n →2n+1 ,權重矩陣可由下式來表示:
Figure 02_image063
類似地,向下交叉連接權重可被表示如下:
Figure 02_image065
並且最後,向上交叉連接權重可被表示如下:
Figure 02_image067
因此,以下通用運算式:
Figure 02_image069
因此,例如,在N=4個輸入和M=4個輸出的另一實例中,可以使用以下運算式:
Figure 02_image071
並且,在N=4個輸入、M=4個輸出的情況下,可以匯出下式:
Figure 02_image073
值得注意的是,關於N=4的上式僅是一個實例,而可以在對於具有不同輸入節點數目N的網路的各階段上逐步做出相同推導。
在一個實例中,可以經由將某些直接連接權重設置為1來降低計算圖的權重密度,諸如以上參照圖4和圖5所描述的。所以,例如,對於N=4的實例,直接連接權重矩陣的經修改的版本
Figure 02_image075
可被配置成(其中所指示的
Figure 02_image077
的權重中的一者或多者被設置為1):
Figure 02_image079
值得注意的是,此情形僅是一個實例,並且許多其他實例亦是可能的。 快速逐點迴旋線性縮放方法
因為如前述,當建立分解計算網路時,輸入被成對組織,輸入數目N較佳為數值2n ,其中n是正整數。當N不是數值2n 時,n可被推導為n=Ceil[log2 (N)],其中Ceil[]是上限函數,其將實數朝正無窮捨入。對n有此類定義保證計算圖總是等於或大於作為正整數的任意N所需的大小。
此外,若輸入數目N與輸出數目M不匹配,則上述分解方案不直接適用。在任一情形中,可以將具有空啟用跳過的線性縮放應用於快速逐點迴旋計算網路,以使得快速逐點迴旋將如前述地工作。
以下是用於應用具有空啟用能力的線性縮放的示例性演算法。最初,分別假定N和M作為用於輸入和輸出特徵的通道數目。隨後,可以將以下演算法應用於快速逐點迴旋(FPC): 1:設置numStages=int(ceil(log2 (max(N, M))))(將numStages設置為大於或等於N和M中較大者的log2 的最小整數值); 2:設置
Figure 02_image081
;(注意
Figure 02_image083
Figure 02_image085
); 3:將
Figure 02_image087
個0沿通道維度附加到輸入張量; 4:執行
Figure 02_image089
,
Figure 02_image091
,而不是
Figure 02_image093
,
Figure 02_image095
,但跳過所有以「0」值作為輸入啟用的乘法運算;及 5:在輸出處,返回沿通道維度的張量中前
Figure 02_image097
個輸出通道。
假定
Figure 02_image099
,
Figure 02_image101
的計算複雜度(或參數數目)為C。於是使用該提議的線性縮放方法所得的新複雜度(或參數數目)變為
Figure 02_image103
例如,可以在ASIC神經網路加速器或其他具有專用指令/加速器擴展的可程式設計核上實現具有空啟用跳過的線性縮放方法。 具有跳過連接的快速逐點迴旋
習知逐點迴旋不利用「跳過連接」,其是跳過層的連接,並且可以因此亦被稱為「捷徑」連接。跳過層的動機是簡化網路,在初始訓練階段使用較少層。此舉經由減少消失梯度的影響來加速學習,因為要傳播通過的層較少。該網路隨後在其學習特徵空間時逐漸恢復跳過的層。
在參照圖4和圖5所論述的實例中,不存在「跳過連接」。然而,該等實例可被調適成使用跳過連接(亦即,結合快速逐點迴旋)。快速逐點迴旋跳過連接的一般形式可按如下定義的
Figure 02_image105
形式來表達。
關於圖4中自底向上的快速逐點迴旋實例:
Figure 02_image107
Figure 02_image109
Figure 02_image111
Figure 02_image113
以及關於圖5中自頂向下的快速逐點迴旋實例:
Figure 02_image115
Figure 02_image117
Figure 02_image119
Figure 02_image121
儘管
Figure 02_image123
是可個體配置時,模擬已展示
Figure 02_image125
是有效的。例如,將跳過連接等於1與快速逐點迴旋相結合應用,從而實現以降低的計算複雜度並使用減少的權重數目來獲得相等或更好的精度效能。該等值的其他選擇亦是可能的。 具有可變階段加權的快速逐點迴旋
圖6圖示了利用可變權重密度縮減形式的快速逐點迴旋的實例,其中各階段被完全加權或完全不加權。該基於階段的加權減少可被稱為結構化可變權重密度減少。在結構化可變權重密度減少的情況下,權重密度可被更簡單地計算為被加權階段佔分解計算網路中所有階段的百分比。
在圖6所圖示的實例中,N=8,其導致n=
Figure 02_image127
=3個階段。此外,在該實例中,權重密度為2/3,因為在總共三個階段(602、604和606)中第一階段602和第三階段606被加權,此情形意味著2/3的可能連接權重包括不同於1的權重(亦即,麼元)。相比之下,在圖4和圖5中,權重密度為12/16=3/4=75%。
此外,在該實例中:階段0是計算權重的「加權階段」;階段1是不計算權重的「非加權階段」(亦即,沒有直接或交叉連接權重);而階段2是另一加權階段。值得注意的是,此情形是自底向上辦法的另一實例,其中第一階段(階段0)包括可訓練的直接連接權重(dij 的權重)和交叉連接權重(fij 和gij 的權重),而最終階段(階段2)僅包括可訓練的交叉連接權重。
該實例中網路600的分解得到以下等式:
Figure 02_image129
Figure 02_image131
Figure 02_image133
Figure 02_image135
Figure 02_image137
Figure 02_image139
Figure 02_image141
Figure 02_image143
在一些情形中,可執行靈敏度分析,以決定將特定階段作為非加權階段或加權階段的影響(例如,在經訓練模型效能態樣)。 使用快速逐點迴旋的示例性效能改良
圖7A和圖7B圖示了圖示快速逐點迴旋在複雜度和參數數目兩個態樣相對於習知逐點迴旋和蝶形變換逐點迴旋的效能改良的示例性計算。
從圖7A中的表清楚地看出,在將快速逐點迴旋與習知逐點態迴旋、並且甚至與改良效能的逐點迴旋(諸如經由蝶形變換逐點迴旋)進行比較時,用於N→N逐點迴旋的參數(例如,權重)數目存在急劇減少。如上所論述的,該參數減少直接轉化為執行逐點迴旋的處理系統的效能改良。此外,如前述,參數計數的減少意味著可以有益地減少用於支援依賴於逐點迴旋的模型的硬體需求,此舉進一步節省了晶片面積、功率使用和成本,僅舉幾個優點。
類似地,圖7B中圖示的圖圖示了在乘法-累加運算數目態樣,與習知逐點迴旋和蝶形變換逐點迴旋相比,如本文所述的快速逐點迴旋的複雜度減少。在執行逐點迴旋的處理系統中,乘法-累加運算的減少有益地減少了等待時間和功耗。 用於執行快速逐點迴旋的示例性方法
圖8圖示了用於執行快速逐點迴旋的示例性方法800。
方法800始於步驟802,在迴旋神經網路(CNN)模型處接收輸入資料。
方法800隨後行進至步驟804,產生包括CNN模型的第一層和CNN模型的第二層之間的複數個連接的分解計算網路。在一些實施例中,分解計算網路包括N個輸入。在一些實施例中,分解計算網路包括M個輸出。在一些實施例中,分解計算網路包括從N個輸入之每一者輸入到M個輸出之每一者輸出的至少一條路徑。
方法800隨後行進至步驟806,將分解計算網路中的複數個連接的連接權重設置為1,以使得分解計算網路的權重密度<100%。
方法800隨後行進至步驟808,使用分解計算網路執行快速逐點迴旋以產生快速逐點迴旋輸出。
方法800隨後行進至步驟810,向CNN模型的第二層提供快速逐點迴旋輸出。
在方法800的一些實施例中,分解計算網路包括數個,n=log2 N個,階段。
在方法800的一些實施例中,該複數個連接包括連接到CNN模型的第一層和CNN模型的第二層之間的加法節點的複數個加權連接,諸如以上在一個實施例中參照圖4-圖6所描述的。
在一些實施例中,將分解計算網路中的複數個連接的連接權重設置為1包括將該數個階段中的至少一個階段的所有連接權重設置為1,諸如以上參照圖6所描述的。在一些實施例中,將分解計算網路中的複數個連接的連接權重設置為1包括將該數個階段中的至少一個階段的連接權重子集設置為1,諸如以上參照圖4和圖5所描述的。
在一些實施例中,方法800進一步包括以下步驟:對分解計算網路執行具有空啟用跳過的線性縮放,諸如在N
Figure 02_image145
2n 和n是正整數時,或者在
Figure 02_image147
時。
在一些實施例中,諸如執行具有空啟用的線性縮放的彼等實施例,向CNN模型的第二層提供快速逐點迴旋輸出包括向CNN模型的第二層僅提供快速逐點迴旋輸出的前M個通道。
在一些實施例中,方法800進一步包括以下步驟:向分解計算網路添加複數個跳過連接。
在一些實施例中,方法800進一步包括以下步驟:從CNN模型產生模型輸出;及將所產生的模型輸出提供給在行動電子設備上執行的低功率應用程式。
在一些實施例中,方法800進一步包括以下步驟:由第一處理器基於快速逐點迴旋輸出來執行第一推斷;由第二處理器使用分解計算網路執行第二快速逐點迴旋以產生第二快速逐點迴旋輸出;及向CNN模型的第二層提供第二快速逐點迴旋輸出。換言之,在多處理器處理系統中,快速逐點迴旋可以跨硬體資源來並行化。例如,第一處理器和第二處理器可以是以下參照圖9及/或圖10所描述的處理器之一。
在方法800的一些實施例中,從行動電子設備中的感測器(例如,圖9中的感測器914之一)接收輸入資料。在一些實施例中,輸入資料與在行動電子設備上執行的應用程式相關聯,並且配置成用於以下至少一項:生物特徵偵測、人類存在偵測、環境條件偵測、物件偵測或物件分類。
在方法800的一些實施例中,輸入資料是圖像資料、視訊資料、音訊資料或信號資料中的一者。在其他實施例中,輸入資料可以表示已被量化的其他「特徵」。 用於最佳化機器學習模型效能的示例性處理系統
圖9圖示了根據本案的某些態樣的晶片上系統(SOC)900的示例性實現,其可包括配置成執行並行Monte Carlo丟棄(dropout)功能的中央處理單元(CPU)902或多核CPU。變數(例如,神經信號和突觸權重)、與計算設備相關聯的系統參數(例如,帶有權重的神經網路)、延遲、頻段資訊,以及任務資訊可被儲存在與神經處理單元(NPU)908相關聯的記憶體區塊中、與CPU 902相關聯的記憶體區塊中、與圖形處理單元(GPU)904相關聯的記憶體區塊中、與數位信號處理器(DSP)906相關聯的記憶體區塊中、記憶體區塊918中,或可跨多個區塊分佈。在CPU 902處執行的指令可從與CPU 902相關聯的程式記憶體載入或可從記憶體區塊918載入。
SOC 900亦可包括為具體功能定製的附加處理區塊(諸如GPU 904、DSP 906、連接性區塊910,其可包括第五代(5G)連接性、第四代長期進化(4G LTE)連接性、Wi-Fi連接性、USB連接性、藍芽連接性等)以及例如可偵測和辨識姿勢的多媒體處理器912。在一種實現中,NPU實現在CPU 902、DSP 906,及/或GPU 904中。SOC 900亦可以包括與任何種類的感測器相關聯的一或多個感測器處理器914、一或多個圖像信號處理器(ISP)916,及/或導航模組920(其可以包括全球定位系統)。
SOC 900可基於ARM指令集。在本案的一態樣中,載入到CPU 902中的指令可包括用於在與輸入值和濾波器權重的乘積相對應的查閱資料表(LUT)中搜尋所儲存的乘法結果的代碼。載入到CPU 902中的指令亦可包括用於在乘法乘積的查閱資料表命中被偵測到時在該乘法乘積的乘法運算期間禁用乘法器的代碼。另外,載入到CPU 902中的指令可包括用於在乘積的查閱資料表未命中被偵測到時儲存輸入值和濾波器權重的所計算乘積的代碼。
SOC 900及/或其元件可被配置成執行本文所描述的方法。
圖10圖示了可以使用本文所述的實施例來實現的多處理器處理系統1000的示例性示意圖。
在該實例中,系統1000包括處理器1001、1003和1005,但在其他實例中,可以使用任何數目的個體處理器。此外,儘管類似地描述,但處理器1001、1003和1005可以代表電子設備中各種不同類型的處理器,諸如本文所述的CPU、GPU、DSP、NPU等。
處理器1001、1003和1005中的每一者包括指令排程器、各種硬體子元件(例如,硬體X、硬體Y和硬體Z)和局部記憶體。在一些實施例中,局部記憶體可以是緊密耦合記憶體(TCM)。注意,處理器1001、1003和1005中的每一者的元件在該實例中被示為相同,每個處理器可以具有不同的硬體配置、不同的硬體元件等。
處理器1001、1003和1005中的每一者亦與全域記憶體(諸如DDR記憶體或其他類型的揮發性工作記憶體)進行資料通訊。
在一些實現中,在多處理器處理系統(諸如1000)中,處理器之一可以充當主處理器。例如,在該實例中,處理器1001可以是主處理器。主處理器可以包括編譯器,編譯器在被執行可以決定模型(諸如神經網路模型)將如何被處理系統1000的各種元件來處理。例如,硬體並行性可以經由將模型的各處理部分映射到給定處理器(例如,處理器1001)內的各種硬體(例如,硬體X、硬體Y和硬體Z),以及將模型的各處理部分映射到其他處理器(例如,處理器1003和1005)及其相關聯的硬體來實現。
提供先前描述是為了使任何熟習此項技術者均能夠實踐本文中所述的各種實施例。本文所論述的實例並非是對請求項中闡述的範疇、適用性或者實施例的限定。對該等實施例的各種改動將容易為熟習此項技術者所明白,並且在本文中所定義的普適原理可被應用於其他實施例。例如,可以對所論述的元素的功能和佈置作出改變而不會脫離本案的範疇。各種實例可合適地省略、替代,或添加各種程序或元件。例如,可以按與所描述的次序不同的次序來執行所描述的方法,並且可以添加、省略,或組合各種步驟。而且,參照一些實例所描述的特徵可在一些其他實例中被組合。例如,可使用本文中所闡述的任何數目的態樣來實現裝置或實踐方法。另外,本案的範疇意欲覆蓋使用作為本文中所闡述的本案的各個態樣的補充或者不同於本文中所闡述的本案的各個態樣的其他結構、功能性,或者結構及功能性來實踐的此類裝置或方法。應當理解,本文中所揭示的本案的任何態樣可由請求項的一或多個元素來實施。
如本文中所使用的,術語「示例性」意指「用作示例、實例或說明」。本文中描述為「示例性」的任何態樣不必被解釋為優於或勝過其他態樣。
如本文中所使用的,引述一列項目「中的至少一者」的短語是指該等項目的任何組合,包括單個成員。作為實例,「a、b或c中的至少一者」意欲涵蓋:a、b、c、a-b、a-c、b-c和a-b-c,以及具有多重相同元素的任何組合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c和c-c-c,或者a、b和c的任何其他排序)。
如本文中所使用的,術語「決定」涵蓋各種各樣的動作。例如,「決定」可包括演算、計算、處理、推導、研究、檢視(例如,在表、資料庫或另一資料結構中檢視)、查明及諸如此類。而且,「決定」可包括接收(例如,接收資訊)、存取(例如,存取記憶體中的資料)及諸如此類。「決定」亦可包括解析、選擇、選取、確立及諸如此類。
本文中所揭示的各方法包括用於實現方法的一或多個步驟或動作。該等方法步驟及/或動作可以彼此互換而不會脫離請求項的範疇。換言之,除非指定了步驟或動作的特定次序,否則具體步驟及/或動作的次序及/或使用可以改動而不會脫離請求項的範疇。此外,上述方法的各種操作可由能夠執行相應功能的任何合適的構件來執行。該等構件可包括各種硬體及/或軟體元件及/或模組,包括但不限於電路、特殊應用積體電路(ASIC),或處理器。通常,在存在附圖中圖示的操作的場合,該等操作可具有帶相似編號的相應配對構件功能元件。
以下請求項並非意欲被限定於本文中展示的實施例,而是應被授予與請求項的語言相一致的全部範疇。在請求項內,對單數元素的引用不意欲意指「有且僅有一個」(除非專門如此聲明),而是「一或多個」。除非另外特別說明,否則術語「一些」是指一或多個。請求項的任何元素皆不應當在專利法施行細則第18條第8項的規定下來解釋,除非該元素是使用短語「用於……的構件」來明確敘述的或者在方法請求項情形中該元素是使用短語「用於……的步驟」來敘述的。貫穿本案所描述的各種態樣的元素為一般技術者當前或今後所知的所有結構上和功能上的等效方案經由引述被明確納入於此,且意欲被請求項所涵蓋。此外,無論在申請專利範圍中是否明確地記載了此類揭示內容,本文所揭示的內容皆不意欲捐獻於公眾。
100:DCN 102:全連接神經網路 104:局部連接的神經網路 106:迴旋神經網路 108:元件符號 110:元件符號 112:元件符號 114:元件符號 116:元件符號 118:第一組特徵圖 120:第二組特徵圖 122:輸出 124:第一特徵向量 126:圖像 128:第二特徵向量 130:圖像擷取設備 132:迴旋層 202:輸入圖像 204:核 206:輸出圖像 300:全連接網路 400:網路 402:第一階段 404:第二階段 406:直接連接權重 408:加法節點 500:網路 502:第一階段 504:第二階段 506:直接連接權重 600:網路 602:第一階段 604:第二階段 606:第三階段 802:步驟 804:步驟 806:步驟 808:步驟 810:步驟 902:中央處理單元(CPU) 904:圖形處理單元(GPU) 906:數位信號處理器(DSP) 908:神經處理單元(NPU) 910:連接性區塊 912:多媒體處理器 914:感測器處理器 916:圖像信號處理器(ISP) 918:記憶體區塊 920:導航模組 1000:多處理器處理系統 1001:處理器 1003:處理器 1005:處理器
附圖圖示了該一或多個實施例的某些態樣,並且因此不被認為限制本案的範疇。
圖1A-圖1D圖示了各種類型的神經網路的實例。
圖2圖示了逐點迴旋運算的實例。
圖3圖示了具有輸入和輸出啟用的示例性網路。
圖4圖示了自底向上辦法中的快速逐點迴旋方法的實例。
圖5圖示了具有自頂向下辦法的快速逐點迴旋方法的實例。
圖6圖示了利用可變權重密度縮減的形式的快速逐點迴旋的實例,其中各階段完全加權或完全不加權。
圖7A和圖7B圖示了圖示快速逐點迴旋在複雜度和參數數目兩者態樣相對於習知逐點迴旋和蝶形變換逐點迴旋的效能改良的示例性計算。
圖8圖示了用於執行快速逐點迴旋的示例性方法800。
圖9圖示了可以使用本文所描述的實施例來實現的晶片上系統(SOC)的示例性實現。
圖10圖示了可以使用本文所描述的實施例來實現的多處理器處理系統的示例性示意圖。
為了促進理解,在可能之處使用了相同的元件符號來指定各附圖共有的相同元素。構想了一個實施例的元素和特徵可有益地被納入其他實施例而無需具體引述。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
400:網路
402:第一階段
404:第二階段
406:直接連接權重
408:加法節點

Claims (30)

  1. 一種方法,包括以下步驟: 在一迴旋神經網路(CNN)模型處接收輸入資料; 產生包括該CNN模型的一第一層和該CNN模型的一第二層之間的複數個連接的一分解計算網路,其中: 該分解計算網路包括N個輸入, 該分解計算網路包括M個輸出,並且 該分解計算網路包括從該N個輸入之每一者輸入到該M個輸出之每一者輸出的至少一條路徑; 使用該分解計算網路來執行快速逐點迴旋以產生快速逐點迴旋輸出;及 向該CNN模型的該第二層提供該快速逐點迴旋輸出。
  2. 如請求項1之方法,進一步包括以下步驟:將該分解計算網路中的複數個連接的一連接權重設置為1,以使得該分解計算網路的一權重密度<100%。
  3. 如請求項1之方法,其中: 該分解計算網路包括數個階段n=
    Figure 03_image149
    ,並且 該複數個連接包括連接到該CNN模型的該第一層和該CNN模型的該第二層之間的加法節點的複數個加權連接。
  4. 如請求項3之方法,其中將該分解計算網路中的該複數個連接的該連接權重設置為1之步驟包括以下步驟:將該數個階段中的至少一個階段的所有連接權重設置為1。
  5. 如請求項3之方法,其中將該分解計算網路中的該複數個連接的該連接權重設置為1之步驟包括以下步驟:將該數個階段中的至少一個階段的一連接權重子集設置為1。
  6. 如請求項1之方法,其中: N≠2n 或者N≠M,並且 該方法進一步包括以下步驟:在該分解計算網路上執行具有空啟用跳過的線性縮放,以及 向該CNN模型的該第二層提供該快速逐點迴旋輸出之步驟包括以下步驟:向該CNN模型的該第二層僅提供該快速逐點迴旋輸出的前M個通道。
  7. 如請求項1之方法,進一步包括以下步驟:向該分解計算網路添加複數個跳過連接。
  8. 如請求項1之方法,進一步包括以下步驟: 從該CNN模型產生一模型輸出;及 向在一行動電子設備上執行的一低功率應用程式提供該模型輸出。
  9. 如請求項1之方法,進一步包括以下步驟: 由一第一處理器基於該快速逐點迴旋輸出來執行一第一推斷; 由一第二處理器使用該分解計算網路來執行一第二快速逐點迴旋以產生第二快速逐點迴旋輸出;及 向該CNN模型的該第二層提供該第二快速逐點迴旋輸出。
  10. 如請求項1之方法,其中: 該輸入資料是從一行動電子設備中的一感測器接收的,並且 該輸入資料與在該行動電子設備上執行的一應用程式相關聯,並且被配置成用於以下至少一項:生物特徵偵測、人類存在偵測、環境條件偵測、物件偵測或物件分類。
  11. 一種處理系統,包括: 一記憶體,其包括電腦可執行指令;及 一第一處理器,其被配置成執行該等電腦可執行指令並使該處理系統執行以下操作: 在一迴旋神經網路(CNN)模型處接收輸入資料; 產生包括該CNN模型的一第一層和該CNN模型的一第二層之間的複數個連接的一分解計算網路,其中: 該分解計算網路包括N個輸入, 該分解計算網路包括M個輸出,並且 該分解計算網路包括從該N個輸入之每一者輸入到該M個輸出之每一者輸出的至少一條路徑; 使用該分解計算網路來執行快速逐點迴旋以產生快速逐點迴旋輸出;及 向該CNN模型的該第二層提供該快速逐點迴旋輸出。
  12. 如請求項11之處理系統,其中該第一處理器被進一步配置成使該處理系統:將該分解計算網路中的複數個連接的一連接權重設置為1,以使得該分解計算網路的一權重密度<100%。
  13. 如請求項11之處理系統,其中: 該分解計算網路包括數個階段n=
    Figure 03_image151
    ,並且 該複數個連接包括連接到該CNN模型的該第一層和該CNN模型的該第二層之間的加法節點的複數個加權連接。
  14. 如請求項13之處理系統,其中該分解計算網路中設置為1的該複數個連接包括該數個階段中的至少一個階段的所有連接權重。
  15. 如請求項13之處理系統,其中該分解計算網路中設置為1的該複數個連接包括該數個階段中的至少一個階段的一連接權重子集。
  16. 如請求項11之處理系統,其中: N≠2n 或者
    Figure 03_image153
    ,並且 該第一處理器被進一步配置成使該處理系統: 在該分解計算網路上執行具有空啟用跳過的線性縮放,以及 作為該快速逐點迴旋輸出,向該CNN模型的該第二層僅提供該快速逐點迴旋輸出的前M個通道。
  17. 如請求項11之處理系統,進一步包括:向該分解計算網路添加複數個跳過連接。
  18. 如請求項11之處理系統,其中該第一處理器被進一步配置成使該處理系統: 從該CNN模型產生一模型輸出;及 向在一行動電子設備上執行的一低功率應用程式提供該模型輸出。
  19. 如請求項11之處理系統,其中: 該第一處理器被進一步配置成使該處理系統基於該快速逐點迴旋輸出來執行一第一推斷,並且 該處理系統進一步包括被配置成使該處理系統執行以下操作的一第二處理器: 使用該分解計算網路來執行一第二快速逐點迴旋以產生第二快速逐點迴旋輸出;及 向該CNN模型的該第二層提供該第二快速逐點迴旋輸出。
  20. 如請求項11之處理系統,其中: 該輸入資料是從一行動電子設備中的一感測器接收的,並且 該輸入資料與在該行動電子設備上執行的一應用程式相關聯,並且被配置成用於以下至少一項:生物特徵偵測、人類存在偵測、環境條件偵測、物件偵測或物件分類。
  21. 一種包括指令的非暫時性電腦可讀取媒體,該等指令在由一處理系統的一第一處理器執行時使該處理系統執行一方法,該方法包括以下步驟: 在一迴旋神經網路(CNN)模型處接收輸入資料; 產生包括該CNN模型的一第一層和該CNN模型的一第二層之間的複數個連接的一分解計算網路,其中: 該分解計算網路包括N個輸入, 該分解計算網路包括M個輸出,並且 該分解計算網路包括從該N個輸入之每一者輸入到該M個輸出之每一者輸出的至少一條路徑; 使用該分解計算網路來執行快速逐點迴旋以產生快速逐點迴旋輸出;及 向該CNN模型的該第二層提供該快速逐點迴旋輸出。
  22. 如請求項21之非暫時性電腦可讀取媒體,其中該方法進一步包括以下步驟:將該分解計算網路中的複數個連接的一連接權重設置為1,以使得該分解計算網路的一權重密度<100%。
  23. 如請求項21之非暫時性電腦可讀取媒體,其中: 該分解計算網路包括數個階段n=
    Figure 03_image155
    ,並且 該複數個連接包括連接到該CNN模型的該第一層和該CNN模型的該第二層之間的加法節點的複數個加權連接。
  24. 如請求項23之非暫時性電腦可讀取媒體,其中將該分解計算網路中的該複數個連接的該連接權重設置為1包括:將該數個階段中的至少一個階段的所有連接權重設置為1。
  25. 如請求項23之非暫時性電腦可讀取媒體,其中將該分解計算網路中的該複數個連接的該連接權重設置為1包括:將該數個階段中的至少一個階段的一連接權重子集設置為1。
  26. 如請求項21之非暫時性電腦可讀取媒體,其中: N≠2n 或者N≠M,並且 該方法進一步包括以下步驟:在該分解計算網路上執行具有空啟用跳過的線性縮放,以及 向該CNN模型的該第二層提供該快速逐點迴旋輸出包括:向該CNN模型的該第二層僅提供該快速逐點迴旋輸出的前M個通道。
  27. 如請求項21之非暫時性電腦可讀取媒體,其中該方法進一步包括以下步驟:向該分解計算網路添加複數個跳過連接。
  28. 如請求項21之非暫時性電腦可讀取媒體,其中該方法進一步包括以下步驟: 從該CNN模型產生一模型輸出;及 向在一行動電子設備上執行的一低功率應用程式提供該模型輸出。
  29. 如請求項21之非暫時性電腦可讀取媒體,其中該方法進一步包括以下步驟: 由一第一處理器基於該快速逐點迴旋輸出來執行一第一推斷; 由一第二處理器使用該分解計算網路來執行一第二快速逐點迴旋以產生第二快速逐點迴旋輸出;及 向該CNN模型的該第二層提供該第二快速逐點迴旋輸出。
  30. 如請求項21之非暫時性電腦可讀取媒體,其中: 該輸入資料是從一行動電子設備中的一感測器接收的,並且 該輸入資料與在該行動電子設備上執行的一應用程式相關聯,並且被配置成用於以下至少一項:生物特徵偵測、人類存在偵測、環境條件偵測、物件偵測或物件分類。
TW109131856A 2019-09-16 2020-09-16 具有快速逐點迴旋的高效推斷 TW202117609A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/571,760 US11657282B2 (en) 2019-09-16 2019-09-16 Efficient inferencing with fast pointwise convolution
US16/571,760 2019-09-16

Publications (1)

Publication Number Publication Date
TW202117609A true TW202117609A (zh) 2021-05-01

Family

ID=72659953

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109131856A TW202117609A (zh) 2019-09-16 2020-09-16 具有快速逐點迴旋的高效推斷

Country Status (5)

Country Link
US (1) US11657282B2 (zh)
EP (1) EP4032028A1 (zh)
CN (1) CN114365155A (zh)
TW (1) TW202117609A (zh)
WO (1) WO2021055364A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113642730A (zh) * 2021-08-30 2021-11-12 Oppo广东移动通信有限公司 卷积网络剪枝方法和装置、电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201607713D0 (en) * 2016-05-03 2016-06-15 Imagination Tech Ltd Convolutional neural network
US20190228268A1 (en) * 2016-09-14 2019-07-25 Konica Minolta Laboratory U.S.A., Inc. Method and system for cell image segmentation using multi-stage convolutional neural networks
US11157814B2 (en) * 2016-11-15 2021-10-26 Google Llc Efficient convolutional neural networks and techniques to reduce associated computational costs
US11086967B2 (en) * 2017-03-01 2021-08-10 Texas Instruments Incorporated Implementing fundamental computational primitives using a matrix multiplication accelerator (MMA)
US10691975B2 (en) * 2017-07-19 2020-06-23 XNOR.ai, Inc. Lookup-based convolutional neural network
US20190102675A1 (en) * 2017-09-29 2019-04-04 Coupa Software Incorporated Generating and training machine learning systems using stored training datasets
WO2019090325A1 (en) * 2017-11-06 2019-05-09 Neuralmagic, Inc. Methods and systems for improved transforms in convolutional neural networks
US11599795B2 (en) * 2017-11-08 2023-03-07 International Business Machines Corporation Reducing the cost of n modular redundancy for neural networks
US11734545B2 (en) * 2017-11-14 2023-08-22 Google Llc Highly efficient convolutional neural networks
US11556777B2 (en) * 2017-11-15 2023-01-17 Uatc, Llc Continuous convolution and fusion in neural networks
CN107844828B (zh) * 2017-12-18 2021-07-30 南京地平线机器人技术有限公司 神经网络中的卷积计算方法和电子设备
US11636327B2 (en) * 2017-12-29 2023-04-25 Intel Corporation Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism
US20190266478A1 (en) * 2018-02-28 2019-08-29 International Business Machines Corporation Neuromorphic systems for computing characteristics of a set
CN108681539B (zh) * 2018-05-07 2019-06-21 内蒙古工业大学 一种基于卷积神经网络的蒙汉神经翻译方法
CN108960326B (zh) * 2018-07-04 2021-03-23 深圳先进技术研究院 一种基于深度学习框架的点云快速分割方法及其系统
BR112019008055B1 (pt) * 2018-10-24 2022-02-01 Advanced New Technologies Co., Ltd Método implementado por computador, meio não transitório, legível por computador e sistema implementado por computador
US20200202213A1 (en) * 2018-12-19 2020-06-25 Microsoft Technology Licensing, Llc Scaled learning for training dnn
WO2020154830A1 (en) * 2019-01-28 2020-08-06 Intel Corporation Techniques to detect fusible operators with machine learning

Also Published As

Publication number Publication date
WO2021055364A1 (en) 2021-03-25
US20210081765A1 (en) 2021-03-18
EP4032028A1 (en) 2022-07-27
CN114365155A (zh) 2022-04-15
US11657282B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
US10275719B2 (en) Hyper-parameter selection for deep convolutional networks
US11238346B2 (en) Learning a truncation rank of singular value decomposed matrices representing weight tensors in neural networks
US11423323B2 (en) Generating a sparse feature vector for classification
WO2021057056A1 (zh) 神经网络架构搜索方法、图像处理方法、装置和存储介质
US11580356B2 (en) Efficient inferencing with piecewise pointwise convolution
US11586924B2 (en) Determining layer ranks for compression of deep networks
US11562212B2 (en) Performing XNOR equivalent operations by adjusting column thresholds of a compute-in-memory array
US20200073636A1 (en) Multiply-accumulate (mac) operations for convolutional neural networks
CN110222718B (zh) 图像处理的方法及装置
US20180121791A1 (en) Temporal difference estimation in an artificial neural network
US11410040B2 (en) Efficient dropout inference for bayesian deep learning
US20190094941A1 (en) Power state control of a mobile device
US20220121949A1 (en) Personalized neural network pruning
US11449758B2 (en) Quantization and inferencing for low-bitwidth neural networks
WO2022156475A1 (zh) 神经网络模型的训练方法、数据处理方法及装置
US11556798B2 (en) Optimizing machine learning model performance
TW202117609A (zh) 具有快速逐點迴旋的高效推斷
US20200293864A1 (en) Data-aware layer decomposition for neural network compression
CN115641490A (zh) 一种数据处理方法及其装置
US20230419087A1 (en) Adapters for quantization
US20240037150A1 (en) Scheduling optimization in sequence space
WO2023004670A1 (en) Channel-guided nested loop transformation and scalar replacement
US20230306233A1 (en) Simulated low bit-width quantization using bit shifted neural network parameters
WO2024102526A1 (en) Realistic distraction and pseudo-labeling regularization for optical flow estimation
WO2023249821A1 (en) Adapters for quantization