TWI837388B - 用於深度神經網路中的深度優先迴旋的方法、設備及媒體 - Google Patents

用於深度神經網路中的深度優先迴旋的方法、設備及媒體 Download PDF

Info

Publication number
TWI837388B
TWI837388B TW109120413A TW109120413A TWI837388B TW I837388 B TWI837388 B TW I837388B TW 109120413 A TW109120413 A TW 109120413A TW 109120413 A TW109120413 A TW 109120413A TW I837388 B TWI837388 B TW I837388B
Authority
TW
Taiwan
Prior art keywords
layer
core
input
receptive field
width
Prior art date
Application number
TW109120413A
Other languages
English (en)
Other versions
TW202105258A (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 TW202105258A publication Critical patent/TW202105258A/zh
Application granted granted Critical
Publication of TWI837388B publication Critical patent/TWI837388B/zh

Links

Classifications

    • 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/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification 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/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/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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects

Landscapes

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

Abstract

在一個實施例中,深度優先深度迴旋網路(DCN)具有第一迴旋層和第二迴旋層,第一迴旋層具有第一第一層核心並且適於對第一輸入進行迴旋,第二迴旋層具有第一第二層核心並且適於對第二層輸入進行迴旋。一種用於DCN的方法,包括以下步驟:啟動在第一迴旋層中的、第一輸入張量與第一第一層核心的迴旋,以產生第二輸入張量的值條帶,並且在第一迴旋層中的迴旋完成之前,啟動在第二迴旋層中的、第二輸入與第一第二層核心的迴旋,以產生用於第三層的值條帶。

Description

用於深度神經網路中的深度優先迴旋的方法、設備及媒體
本專利申請案主張享有於2019年6月17日提出申請的題為「DEPTH-FIRST CONVOLUTION IN DEEP NEURAL NETWORKS」的非臨時申請案第16/443,695的優先權,該申請案被轉讓給本案的受讓人,並由此經由引用的方式明確地併入本文。
本案內容大體而言係關於人工神經網路,並且更具體而言,係關於深度神經網路中的迴旋。
人工神經網路可以由互連的人工神經元(例如,神經元模型)群組組成,人工神經網路可以是計算設備或由計算設備執行的方法的表示。神經網路可以用於各種應用及/或設備,諸如網際網路協定(IP)相機、物聯網路(IoT)設備、自主車輛及/或服務機器人。
人工神經網路中的各個人工神經元或節點可以經由取得輸入資料並對資料執行簡單運算來模擬生物神經元。對輸入資料執行的簡單運算的結果被選擇性地傳遞到其他節點。權重值與網路之每一者節點相關聯,並且該等值約束了輸入資料如何與輸出資料相關。例如,每個節點的輸入可以乘以對應的權重值,並且可以對乘積求和。乘 積之和可以經由可選的偏置來調整,並且可以對結果應用激勵函數,從而產生節點的輸出信號或「輸出激勵」。權重值最初可以由經由網路的訓練資料的反覆運算流程來決定(例如,權重值是在訓練階段期間建立的,在訓練階段中,網路學習如何經由特定類別的典型輸入資料特性來辨識該等特定類別)。
存在不同類型的人工神經網路,諸如遞迴神經網路(RNN)、多層感知器(MLP)神經網路、迴旋神經網路(CNN)等。RNN的工作原理是保存一個層的輸出並將該輸出回饋回到輸入以幫助預測該層的結果。在MLP神經網路中,可以將資料饋入到輸入層,並且一或多個隱藏層提供對資料的提取級別。隨後,可以基於所提取的資料在輸出層上進行預測。MLP可以特別適合於其中為輸入分配了類別或標籤的分類預測問題。
迴旋神經網路(CNN)是一種類型的前饋人工神經網路。迴旋神經網路可以包括人工神經元的集合,每個人工神經元具有感受野(receptive field)(例如,輸入空間的空間局部區域),並且該等人工神經元共同地用重疊的區塊(tile)對輸入空間進行區塊劃分。迴旋神經網路具有許多應用。特別地,CNN已經廣泛地用於模式辨識和分類領域。一種類型的迴旋神經網路是深度迴旋網路(DCN)。深度神經網路是在輸入層和輸出層之間具有多個隱藏層的神經網路。
在分層神經網路架構(例如,MLP和DCN)中,第一層人工神經元的輸出成為第二層人工神經元的輸入,第二層人工神經元的輸出成為第三層人工神經元的輸入,並且依此類推。可以訓練迴旋神經網路以辨識特徵的層次。迴旋神經網路架構中的計算可以分佈在處理節點群上,其可以被配置在一或多個計算鏈中。該等多層架構可以一次一層地訓練,並且可以使用反向傳播來微調。如前述,訓練是一個在其中調整和設置神經網路的權重值,以使得神經網路能夠經由學習到的輸入資料特性來辨識特定類別的階段。在訓練了神經網路之後,該神經網路可以用於推斷,其中網路使用設置的權重值來對新的輸入進行分類。
訓練是一個高計算強度的程序,其通常在伺服器系統上執行,因為邊緣設備(例如,行動計算設備或智慧型電話)通常缺乏記憶體、計算和功率資源來實際執行訓練。推斷的計算強度明顯低得多,並且可以由邊緣設備較好地完成。經訓練的模型可以用於推斷而無需進一步的訓練。然而,注意,儘管進一步訓練不是必需的,但是可以採用來自推斷設備本身或來自外部輸入的新輸入來進一步微調經訓練的模型。儘管推斷比訓練計算強度低,然而相對於行動計算設備執行的其他任務而言,推斷仍計算強度較大,並且因此期望用於減少計算負荷的系統和方法。
本案內容的某些態樣係關於一種用於使用深度迴旋網路的電腦實現的方法。該深度迴旋網路包括:第一迴旋層,被配置為使用第一層核心對第一層輸入張量進行迴旋以產生第二層輸入張量;第二迴旋層,被配置為使用第二層核心對第二層輸入張量進行迴旋以產生第三層輸入張量;及第三層,被配置為接收第三層輸入張量。第一層核心具有第一層核心長度和第一層核心寬度。第一層輸入張量具有第一層輸入長度和第一層輸入寬度。第二層輸入張量具有第二層輸入長度和第二層輸入寬度。第二層核心具有第二層核心長度和第二層核心寬度。該方法包括以下步驟:將第一層核心與第一層輸入張量的第一第一層拉伸感受野(stretched receptive field)進行迴旋,以產生用於第二層輸入張量的第一條帶(strip)的值,隨後將第二層核心與第二層輸入張量的第一第二層拉伸感受野進行迴旋,以產生用於第三層輸入張量的第一條帶的值,並且隨後將第一層核心與第一層輸入張量的第二第一層拉伸感受野進行迴旋,以產生用於第二層輸入張量的第二條帶的值。第一層感受野具有等於第一層核心長度的長度和大於第一層核心寬度的第一層拉伸感受野寬度。第二層感受野具有等於第二層核心長度的長度和大於第二層核心寬度的第二層拉伸感受野寬度。
本案內容的某些態樣係關於一種用於使用深度迴旋網路的計算設備。該深度迴旋網路包括:第一迴旋層, 被配置為使用第一層核心對第一層輸入張量進行迴旋以產生第二層輸入張量;第二迴旋層,被配置為使用第二層核心對第二層輸入張量進行迴旋以產生第三層輸入張量;及第三層,被配置為接收第三層輸入張量。第一層核心具有第一層核心長度和第一層核心寬度。第一層輸入張量具有第一層輸入長度和第一層輸入寬度。第二層輸入張量具有第二層輸入長度和第二層輸入寬度。第二層核心具有第二層核心長度和第二層核心寬度。該計算設備被配置為:將第一層核心與第一層輸入張量的第一第一層拉伸感受野進行迴旋,以產生用於第二層輸入張量的第一條帶的值,隨後將第二層核心與第二層輸入張量的第一第二層拉伸感受野進行迴旋,以產生用於第三層輸入張量的第一條帶的值,並且隨後將第一層核心與第一層輸入張量的第二第一層拉伸感受野進行迴旋以產生用於第二層輸入張量的第二條帶的值。第一層拉伸感受野具有等於第一層核心長度的長度和大於第一層核心寬度的第一層拉伸感受野寬度。第二層拉伸感受野具有等於第二層核心長度的長度和大於第二層核心寬度的第二層拉伸感受野寬度。
本案內容的某些態樣針對一種用於使用深度迴旋網路的計算設備。該深度迴旋網路包括:第一迴旋層,被配置為使用第一層核心對第一層輸入張量進行迴旋以產生第二層輸入張量;第二迴旋層,被配置為使用第二層核心對第二層輸入張量進行迴旋以產生第三層輸入張量;及第三層,被配置為接收第三層輸入張量。第一層核心具有第 一層核心長度和第一層核心寬度。第一層輸入張量具有第一層輸入長度和第一層輸入寬度。第二層輸入張量具有第二層輸入長度和第二層輸入寬度。第二層核心具有第二層核心長度和第二層核心寬度。該計算設備包括:用於將第一層核心與第一層輸入張量的第一第一層拉伸感受野進行迴旋以產生用於第二層輸入張量的第一條帶的值的構件,用於隨後將第二層核心與第二層輸入張量的第一第二層拉伸感受野進行迴旋以產生用於第三層輸入張量的第一條帶的值的構件,以及用於隨後將第一層核心與第一層輸入張量的第二第一層拉伸感受野進行迴旋以產生用於第二層輸入張量的第二條帶的值的構件。第一層拉伸感受野具有等於第一層核心長度的長度和大於第一層核心寬度的第一層拉伸感受野寬度。第二層拉伸感受野具有等於第二層核心長度的長度和大於第二層核心寬度的第二層拉伸感受野寬度。
本案內容的某些態樣係關於一種包括指令的非暫時性電腦可讀取媒體,該等指令在由至少一個處理器執行時使該處理器執行用於使用深度迴旋網路的方法。該深度迴旋網路包括:第一迴旋層,被配置為使用第一層核心對第一層輸入張量進行迴旋以產生第二層輸入張量;第二迴旋層,被配置為使用第二層核心對第二層輸入張量進行迴旋以產生第三層輸入張量;及第三層,被配置為接收第三層輸入張量。第一層核心具有第一層核心長度和第一層核心寬度。第一層輸入張量具有第一層輸入長度和第一層輸 入寬度。第二層輸入張量具有第二層輸入長度和第二層輸入寬度。第二層核心具有第二層核心長度和第二層核心寬度。該方法包括以下步驟:將第一層核心與第一層輸入張量的第一第一層拉伸感受野進行迴旋,以產生用於第二層輸入張量的第一條帶的值,隨後將第二層核心與第二層輸入張量的第一第二層拉伸感受野進行迴旋,以產生用於第三層輸入張量的第一條帶的值,並且隨後將第一層核心與第一層輸入張量的第二第一層拉伸感受野進行迴旋,以產生用於第二層輸入張量的第二條帶的值。第一層拉伸感受野具有等於第一層核心長度的長度和大於第一層核心寬度的第一層拉伸感受野寬度。第二層拉伸感受野具有等於第二層核心長度的長度和大於第二層核心寬度的第二層拉伸感受野寬度。
在審閱整個申請案之後,本案內容的其他態樣、優點和特徵可變得顯而易見。
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:DCN
352:輸入資料
354(1):迴旋區塊
354(2):迴旋區塊
354(3):迴旋區塊
356(1):迴旋層
356(2):迴旋層
356(3):迴旋層
358(1):正規化層(LNorm)
358(3):正規化層(LNorm)
360(1):最大池化層(MAX POOL)
360(3):最大池化層(MAX POOL)
362(1):完全連接層
362(2):完全連接層
364:多項邏輯回歸(MLR)層
366:分類
400:進展
401(1):DCN
401(2):DCN
401(3):DCN
401(4):DCN
401(5):DCN
401(6):DCN
401(n):DCN
402:層
403:層
404:層
405:層
406(1):元素
406(2):元素
406(3):元素
406(4):元素
406(5):元素
406(6):元素
406(n):第n個元素
406(n-3):元素
407(1):感受野
407(2):感受野
407(3):感受野
407(4):感受野
407(5):感受野
407(6):感受野
407(n):感受野
408(1):輸出值
408(2):輸出值
408(3):輸出值
408(4):輸出值
408(5):輸出值
408(6):輸出值
408(n):輸出值
409(3):感受野
409(4):感受野
409(5):感受野
409(6):感受野
409(n):感受野
410(3):輸出值
410(4):輸出值
410(5):輸出值
410(6):輸出值
410(n):輸出值
411(5):感受野
411(6):感受野
411(n):感受野
412(5):輸出值
412(6):輸出值
412(n):輸出值
420(1):二維對角圖案化漏斗
421(2):第一值
421(3):第二元素
421(4):第三元素
422(3):對角圖案化漏斗
500:進展
501(1):DCN
501(2):DCN
501(3):DCN
502:迴旋層
502(x(i)):長度
502(x(k)):長度
502(y(i)):寬度
503:迴旋層
503(x(k)):長度
503(y(i)):寬度
504:迴旋層
504(y(i)):
505:第四層
506(1):感受野
506(2):拉伸感受野
506(3):感受野
507(1):輸入條帶
507(2):輸入條帶
507(3):輸入條帶
508(2):元素條帶
508(3):元素
509(3):輸入條帶
510:楔形
512(3):拉伸感受野
600:程序
601:步驟
602:步驟
603:步驟
604:步驟
605:步驟
圖1是可以用於實現本案內容的實施例的示例性晶片上系統(SoC)的示意圖。
圖2A是示例性完全連接的神經網路層的圖示。
圖2B是示例性局部連接的神經網路層的圖示。
圖2C是示例性迴旋神經網路層的圖示。
圖2D是被設計為從圖像中辨識視覺特徵的深度迴旋網路(DCN)的具體實例的圖示。
圖3是示例性深度迴旋網路(DCN)的方塊圖圖示。
圖4是根據本案內容的實施例,在DCN中的1維迴旋層的深度優先迴旋處理的幾個階段的示例性進展的圖示。
圖5是根據本案內容的另一實施例,在DCN中的2維迴旋層的深度優先迴旋處理的幾個階段的示例性進展的圖示。
圖6是根據本案內容的實施例的示例性程序的流程圖。
參考附圖,描述了本案內容的若干示例性態樣。詞語「示例性」在本文中用於表示「用作示例、實例或說明」。本文中描述為「示例性」的任何態樣不一定被解釋為較佳的或優於其他態樣。
圖1是可用於實現本案內容的實施例的示例性晶片上系統(SoC)100的示意圖。SoC 100包括中央處理單元(CPU)102或多核CPU、圖形處理單元(GPU)104、數位信號處理器(DSP)106、神經處理單元(NPU)108、連接區塊110、多媒體處理器112、感測器處理器114、圖像信號處理器(ISP)116、記憶體區塊118和可選的導航模組120中的一或多個。
變數(例如,節點輸入和權重)、資料、指令、系統參數等可儲存於與NPU 108相關聯的記憶體區塊 中、與CPU 102相關聯的記憶體區塊中、與GPU 104相關聯的記憶體區塊中、與DSP 106相關聯的記憶體區塊中、記憶體區塊118中,或可分佈於多個區塊中。
連接區塊110可以包括第五代(5G)連接、第四代長期進化(4G LTE)連接、Wi-Fi連接、USB連接、藍芽連接等。多媒體處理器112可以例如偵測並辨識手勢。在一種實施方式中,NPU在CPU 102、DSP 106及/或GPU 104中實施。導航模組120可以包括全球定位系統。
SoC 100及/或其元件可以被配置為根據下文論述的本案內容的各個態樣來執行深度優先迴旋運算。經由使用深度優先迴旋,計算設備可以增加推斷效率,從而允許設備減少資料傳送(例如,讀取和寫入)操作的數量、利用現有硬體處理更大的輸入(例如,圖像),及/或使用更少的硬體處理習知大小的輸入。
深度學習架構可以經由進行學習以在每層中在相繼更高的提取級別處表示輸入,來執行物件辨識任務,從而構建針對輸入資料的有用特徵表示。如此,深度學習解決了傳統機器學習的主要瓶頸。在深度學習出現之前,針對物件辨識問題的機器學習方法會嚴重依賴於人工設計的特徵(並且可能與淺分類器相結合)。淺分類器可以是兩類別的線性分類器,例如,其中輸入值(例如,輸入向量分量)的加權和可以與閾值進行比較以預測該輸入屬於何者類別。人工設計的特徵可以是由具有領域專業知識的工程師針對具體問題領域定製的範本或核心。相反,深度學 習架構可以進行學習以表示與人類工程師可能設計的特徵類似的特徵,但是是經由訓練。此外,深度網路可以進行學習以表示和辨識人類可能沒有考慮到的新類型的特徵。
深度學習架構可以學習特徵層次。例如,若用視覺資料呈現,則第一層可以進行學習以辨識輸入串流中的相對簡單的特徵,例如邊緣。在另一實例中,若用聽覺資料呈現,則第一層可以進行學習以辨識特定頻率中的頻譜功率。將較低(亦即較早)層的輸出作為輸入的較高(亦即後續)層可以進行學習以辨識特徵的組合,諸如視覺資料的簡單形狀或聽覺資料的聲音組合。例如,較高層可以進行學習以表示視覺資料中的複雜形狀或聽覺資料中的詞語。更高層可以進行學習以辨識常見的視覺物件或口語短語。
當應用於具有自然層次結構的問題時,深度學習架構可以執行得特別好。例如,機動車輛的分類可以受益於首先學習以辨識車輪、擋風玻璃和其他特徵。該等特徵可以在較高層以不同的方式組合以辨識例如小汽車、卡車及/或飛機。
神經網路可以被設計成具有各種連接模式。在前饋網路中,資訊從較低層傳遞到較高層,其中在較低層之每一者神經元與在較高層中的神經元通訊。如前述,可以在前饋網路的連續的層中建立層次表示。神經網路亦可以具有循環或回饋(亦稱為自頂向下)連接。在循環連接中,可以將來自給定層中的神經元的輸出傳送到相同層中的另 一神經元。在辨識跨按順序傳遞到神經網路的多於一個輸入資料區塊的模式時,循環架構可能是有幫助的。從給定層中的神經元到較低層中的神經元的連接被稱為回饋(或自頂向下)連接。當高級概念的辨識可幫助區分輸入的特定低級特徵時,具有許多回饋連接的網路可能是有幫助的。
神經網路的層之間的連接可以是完全連接的或局部連接的。圖2A圖示完全連接的神經網路段202的實例。在完全連接的神經網路段202中,第一層中的神經元可以將其輸出傳送到第二層之每一者神經元,使得第二層之每一者神經元將從第一層之每一者神經元接收輸入。圖2B圖示局部連接的神經網路段204的實例。在局部連接的神經網路段204中,第一層中的神經元可以連接到第二層中的有限數量的神經元。更通常,局部連接的神經網路段204的局部連接層可以被配置成使得一個層之每一者神經元將具有相同或相似的連接模式,但是具有可擁有不同值的連接強度(例如,210、212、214和216)。局部連接的連接模式可以引起較高層中的空間上有區別的區域,因為給定區域中的較高層神經元可以接收經由針對網路的總輸入的受限部分的屬性進行訓練而被調諧的輸入。
局部連接的神經網路的一個實例是迴旋神經網路。圖2C圖示迴旋神經網路段206的實例。迴旋神經網路段206可以被配置成使得與第二層之每一者神經元的輸入相關聯的連接強度被共享(例如208)。迴旋神經網路可 以很好地適合於其中輸入的空間位置有意義的問題。可以根據本案內容的各個態樣來使用迴旋神經網路段206。
圖2D圖示DCN 200的詳細實例,其被設計為根據從諸如車載攝像機的圖像擷取設備230輸入的圖像226中辨識視覺特徵。可以訓練當前實例的DCN 200以辨識交通標誌和在交通標誌上提供的數值。當然,可以訓練DCN 200以用於其他任務,諸如辨識車道標誌或辨識交通信號燈。
可以用有監督的學習來訓練DCN 200。在訓練期間,可以向DCN 200提供圖像的張量表示,諸如限速標誌的圖像226,並且隨後可以計算前向傳遞以產生輸出222。圖像的張量表示可以包括針對圖像的每個圖元的、表示圖元的顏色和亮度資訊的資訊。注意,在本文中,術語圖像可以用作圖像的張量表示的簡寫。DCN 200可以包括特徵提取部分和分類部分。在接收到圖像226之後,迴旋層232可以將迴旋核(未圖示)應用於張量以產生第一特徵映射集合218。作為實例,用於迴旋層232的迴旋核可以是5×5核心,其產生28×28個特徵映射。在本實例中,由於在迴旋層232處將四個不同的迴旋核應用於圖像226,因此在第一特徵映射集合218中產生四個不同的特徵映射。迴旋核亦可被稱為濾波器或迴旋濾波器。
第一特徵映射集合218可以由池化(pooling)層(未圖示)進行子取樣,以產生第二特徵映射集合220。例如,該池化可以是僅選擇一組輸入中的最大值的最大池 化,或者是僅選擇一組輸入的平均值的平均池化。池化層減小了第一特徵映射集合218中每一個特徵映射的大小。亦即,第二特徵映射集合220中每一個的特徵映射大小(諸如14×14)比第一特徵映射集合218的大小(諸如28×28)更小。減小的大小在降低記憶體消耗的同時向後續層提供類似的資訊。第二特徵映射集合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提供新圖像,並且經由網路的前向傳遞可以產生輸出222,該輸出222可以被認為是DCN的推斷或預測。
DCN已經實現了許多任務的現有技術水平的效能。可以使用有監督的學習來訓練DCN,其中輸入和輸出目標對於許多實例皆是已知的,並且用於經由使用梯度下降法來修改網路的權重。
DCN可以是前饋網路。此外,如前述,從DCN的第一層中的神經元到下一較高層中的一組神經元的連接是在第一層中的神經元之間共享的。DCN的前饋和共享連接可以被用於快速處理。DCN的計算負荷可以例如比包括 循環或回饋連接的類似大小的神經網路的計算負荷小得多。
可以將迴旋網路的每一層的處理認為是空間上不變的範本或基投影。若首先將輸入分解成多個通道,諸如彩色圖像的紅色、綠色和藍色通道,則可以將針對該輸入所訓練的迴旋網路認為是三維的,具有沿圖像的軸的兩個空間維度,及擷取彩色資訊的第三維度。可以將迴旋連接的輸出認為是形成後續層中的特徵映射,其中特徵映射(例如,第二特徵映射集合220)的每個元素從先前層中的一系列神經元(例如,第一特徵映射集合218)和多個通道之每一者通道接收輸入。可以經由校正線性單元(ReLU)以非線性(諸如校正,max(0,x))進一步處理特徵映射中的值。ReLU用於濾除任何負值,其被替換為零。來自相鄰神經元的值可以被進一步池化,此舉對應於下取樣,並且可以提供附加的局部不變性和維數減小。
圖3是圖示示例性DCN 350的方塊圖。DCN 350可以基於連接性和權重共享而包括多個不同類型的層。如圖3所示,DCN 350包括三個迴旋區塊354,亦即迴旋區塊354(1)、354(2)和354(3)。每個迴旋區塊354包括相應的迴旋層(CONV)層356,並且可以可選地包括正規化層(LNorm)358和最大池化層(MAX POOL)360。例如,迴旋區塊354(1)包括CONV 356(1)、LNorm 358(1)和MAX POOL 360(1),而迴旋區塊354(2)包 括迴旋層356(2),但不包括相應的正規化層或最大池化層。
迴旋層356可以包括一或多個迴旋濾波器(核心),每個迴旋濾波器包括權重集,權重集可被應用到輸入張量(諸如輸入資料352),以產生同樣是張量的相應的特徵映射(未圖示)。如下進一步所述,將核心迴旋應用到輸入張量涉及將核心掃過輸入張量,將核心的權重乘以輸入張量的相應值,並將乘積相加,以產生結果得到的特徵映射的相應值。迴旋層356可以包括或者隨後緊接著非線性激勵層(未圖示),該非線性激勵層執行非線性函數,諸如例如非線性校正(ReLU)、階躍函數、sigmoid函數或tanh函數。執行非線性函數有助於提高DCN 350的準確率和效率。
正規化層358可以對由前面的迴旋濾波器輸出的每一個特徵映射進行正規化。例如,正規化層358可以提供白化或橫向抑制。最大池化層360可以僅選擇輸入群集中的最大值以用於傳播,以針對局部平移不變性提供空間上的下取樣聚合。換言之,最大池化允許由感受野的最大激勵表徵整個感受野,而不考慮該最大激勵在感受野內的精確定位。注意,可以使用諸如例如平均池化層之類的其他下取樣層來代替任何最大池化層360。
儘管圖3中僅圖示三個迴旋區塊354(1)-(3),但是本案內容不限於此,並且可替換地,可以在DCN 350 中包括具有組成層的任意組合的任意數量的迴旋區塊354。
DCN 350亦可以包括一或多個完全連接層362,諸如層362(1)(標記為「FC1」)和層362(2)(標記為「FC2」)。完全連接層用於或平坦化和分類,如上文參考圖2D所述。DCN 350可以進一步包括多項邏輯回歸(MLR)層364,其例如可以實施softmax函數以為輸出分類特徵集合中的每一個輸出分類特徵提供概率。
DCN 350的層356、358、360、362、364中的任何兩個連續層之間的變換是基於訓練期間更新的權重和偏置(未圖示)的。每個層(例如356、358、360、362、364)的輸出可以用作DCN 350中的層(例如356、358、360、362、364)中的後續層的輸入,以從提供給迴旋區塊中的第一個354(1)的輸入資料352(例如,圖像、音訊、視訊、感測器資料及/或其他輸入資料)中學習層次化的特徵表示。DCN 350的輸出是針對輸入資料352的分類366。分類366可以是概率集合,其中每個概率是輸入資料包括來自分類特徵集合中的特徵的概率。
在由DCN 350對圖像進行的示例性習知處理中,圖像資料將從諸如晶片外DRAM模組的相對低速的保持記憶體中提取出來,並上傳到諸如NPU 108的緊耦合記憶體(TCM)(未圖示)的相對高速的操作記憶體或其他本端記憶體,並作為輸入資料352提供。TCM可以被實施為例如靜態隨機存取記憶體(SRAM)。除圖像資料外, 第一迴旋層356(1)的核心的權重亦將從保持記憶體中提取到操作記憶體中。在該等提取之後,將使用迴旋區塊354(1)的迴旋層356(1)的核心來對整個圖像進行迴旋,結果由相應的ReLU進行濾波,由正規化層358(1)進行正規化,並由最大池化層360(1)進行聚集,以產生將形成迴旋區塊354(2)的輸入的特徵映射。在迴旋區塊354(1)的處理期間,將該等特徵映射寫入保持記憶體。在迴旋區塊354(1)對輸入資料352的處理完成之後,將該等特徵映射從保持記憶體中提取出來,並上傳到操作記憶體中以用於由迴旋區塊354(2)進行處理。該處理需要大的操作記憶體,以用於處理大的輸入張量和大的權重張量。此外,資料在保持記憶體和操作記憶體之間的來回移動耗費資源高,限制了效能,並且消耗功率。
在本案內容的一個態樣,使用深度優先迴旋來最小化處理特定大小的輸入所需的操作記憶體的大小,並最小化用於在保持記憶體和操作記憶體之間傳送資料的記憶體頻寬。深度優先迴旋包括:在當前層的迴旋處理完成之前開始下一迴旋層的迴旋處理。此外,在當前層的迴旋終止之前,根據當前處理感受野的需要來上傳輸入值,並且在不再需要時丟棄輸入值。
圖4是如下所述的幾個階段DCN(n)中所示的,在DCN 401中的1維迴旋層的深度優先迴旋處理的幾個階段的示例性進展400的圖示。DCN 401包括層402、403、404和405。層402、403和404中的每一層是執行局部濾 波的層,該局部濾波諸如例如迴旋、池化或按元素濾波。層402、403、404和405在任何兩個相鄰層之間可以具有中間層(未圖示),諸如例如非線性層、正規化層及/或池化層。
注意,層402、403、404和405在圖4中由其輸入向量表示。在一個實施例中,層402、403、404和405對應於圖3的層356(1)、356(2)、356(3)和362(1),其中層402、403和404是迴旋層。在一個實施例中,層402使用3分接點(亦即,3權重)核心(未圖示)來與輸入向量的相應3元素感受野407進行迴旋。
在處理DCN的第一階段401(1),將層402的輸入向量的三個元素406(1)從保持記憶體讀入操作記憶體中以形成感受野407(1)。另外,將層402的核心的權重從保持記憶體讀入操作記憶體。感受野407(1)與層402的第一核心進行矩陣相乘,以產生用於層403的輸出值408(1)。該處理可以由二維對角圖案化漏斗420(1)直觀地表示,其基部是感受野407(1),並且其頂點或主幹是輸出值408(1)。通常,任何局部濾波步驟(諸如迴旋或池化)皆可以直觀地表示為錐體或漏斗,其基部是感受野,並且其頂點或主幹是輸出。
注意,層402使用一個元素的跨距。在處理DCN的隨後第二階段401(2)中,將層402的輸入向量的下一元素406(2)從保持記憶體讀入操作記憶體以形成下一感受野407(2),該感受野407(2)相對於第一階段DCN 401(1)的感受野407(1)偏移一個元素。感受野407(2)隨後與層402的第一核心進行矩陣相乘,以產生用於層403的輸出值408(2)。由於不再需要層402的輸入向量的第一值421(2),因此將其在操作記憶體中的點(以棋盤圖案圖示)釋放並重新用於任何其他元素。
在處理DCN的隨後第三階段401(3)中,將層402的輸入向量的下一元素406(3)從保持記憶體讀入操作記憶體以形成下一感受野407(3),其隨後與層402的第一核心進行矩陣相乘以產生用於層403的輸出值408(3)。用於層402的輸入向量的第二元素421(3)的操作記憶體點可以被釋放並重新使用。層403亦使用3分接點核心(未圖示)。由於已經決定了值408(1)-(3),值408(1)-(3)形成感受野409(3),隨後該感受野409(3)與層403的第一核心進行矩陣相乘,以產生用於層404的輸出值410(3)。該處理由對角圖案化漏斗422(3)圖示。
在處理DCN的隨後第四階段401(4)中,將層402的輸入向量的下一元素406(4)從保持記憶體讀入操作記憶體以形成下一感受野407(4),隨後將其與層402的第一核心進行矩陣相乘,以產生用於層403的輸出值408(4)。用於層402的輸入向量的第三元素421(4)的操作記憶體點可以被釋放並重新使用。使用新產生的值408(4),將感受野409(4)與層403的第一核心進行矩陣相乘,以產生用於層404的輸出值410(4)。用於值408(1) 的操作記憶體點(現在以棋盤圖案圖示)現在可以被釋放並重新使用。
在處理DCN的隨後第五階段401(5)中,將層402的輸入向量的下一個元素406(5)讀入操作記憶體以形成下一感受野407(5),將其與層402的第一核心進行矩陣相乘,以產生用於層403的輸出值408(5)。由輸入向量的元素406(2)使用的操作記憶體點現在可以被釋放並重新使用。使用新產生的值408(5),將層403的感受野409(5)與層403的第一核心進行矩陣相乘,以產生用於層404的輸出值410(5)。用於值408(2)的操作記憶體點可以被釋放並重新使用。層404亦使用3分接點核心(未圖示)。由於已經決定了層404的值410(3)-(5),值410(3)-(5)形成感受野411(5),將其與層404的第一核心進行矩陣相乘,以產生用於層405的輸出值412(5)。該處理由對角圖案化漏斗423(5)圖示。
在處理DCN的隨後第六階段401(6)中,將層402的輸入向量的下一元素406(6)讀入操作記憶體以形成下一感受野407(6),將其與層402的第一核心進行矩陣相乘,以產生用於層403的輸出值408(6)。用於輸入向量的元素406(3)的操作記憶體點可以被釋放並重新使用。使用新產生的值408(6),將感受野409(6)與層403的第一核心進行矩陣相乘,以產生用於層404的輸出值410(6)。用於值408(3)的操作記憶體點可以被釋放並重新使用。使用新產生的值410(6),將感受野411(6)與層404的第一 核心進行矩陣相乘,以產生用於層405的輸出值412(6)。由值410(3)使用的操作記憶體點可以被釋放並重新使用。可以將先前產生的值412(5)(現在以網格圖案圖示)寫入保持記憶體,並且可以釋放並重新使用操作記憶體中的對應點。
在處理DCN的隨後第n階段401(n)中,其中n>6,將層402的輸入向量的第n個元素406(n)讀入操作記憶體以形成感受野407(n),將其與層402的第一核心進行矩陣相乘以產生用於層403的輸出值408(n)。用於輸入向量的元素406(n-3)的操作記憶體點可以被釋放並重新使用。使用新產生的值408(n),將感受野409(n)與層403的第一核心進行矩陣相乘,以產生用於層404的輸出值410(n)。用於值408(n-3)的操作記憶體點可以被釋放並重新使用。使用新產生的值410(n),將感受野411(n)與層404的第一核心進行矩陣相乘,以產生用於層405的輸出值412(n)。由值410(n-3)使用的操作記憶體點可以被釋放並重新使用。可以將先前產生的值412(n-1)寫入保持記憶體,並且可以釋放並重新使用操作記憶體中的對應點。
若元素406(n)是層402的輸入向量的最後元素,則隨後,可以釋放並重新使用由層402、403、404和405使用的所有剩餘的操作記憶體點,其中首先將層405的產生值412(n)寫入保持記憶體。可以看出,在該說明性實例中,對層402的輸入向量進行處理以產生用於層405的值需要:(1)從保持記憶體中僅讀取該輸入向量的元素 以及層402、403和404的核心的權重,(2)向保持記憶體僅寫入層405的經計算的值,以及(3)在處理期間在操作記憶體中僅保存層402、403和404的核心的權重、感受野407、409和411中的值以及相應的值412。
相比之下,使用逐層地處理DCN 401的習知方法將需要更多的讀取和寫入操作以及大得多的操作記憶體。具體而言,習知處理將需要從保持記憶體中讀取層402的輸入向量的所有元素連同相應的核心權重,將其全部儲存在操作記憶體中,將層403的所有元素寫入到保持記憶體中,隨後從保持記憶體中讀取層403的所有元素連同相應的核心權重,將其全部儲存在操作記憶體中,隨後將層404的所有元素寫入到保持記憶體中,隨後從保持記憶體中讀取層404的所有元素連同相應的核心權重,將其全部儲存在操作記憶體中,隨後將層405的所有元素寫入到保持記憶體中。
使用深度優先迴旋,可以同時處理操作記憶體的大小所允許數量的層。該數量可以是預定的,或者可以使用所謂的貪婪演算法來動態地決定,其中在操作記憶體被保留用於層的感受野和權重之後,決定操作記憶體是否能夠支援下一層的感受野和核心,並且若能夠,則將下一層添加到深度優先迴旋。若不能,則可以在完成了正在進行的深度優先迴旋程序之後,將下一層的計算值寫入保持記憶體以便進一步處理。無論同時處理的層數是多少,或者無論選擇的數量是多少,深度優先層集合中的最後一個層 可以被稱為截止層,其值被寫出到保持記憶體。在DCN 401的上述實施方式中,截止層是層405。
注意,使用大於1的步長,在一層中具有多個通道(例如,使用多個濾波器),或者處理多維張量,將會改變需要儲存在操作記憶體中的元素的相應數量,然而,整體方法一在仍處理當前層的同時在隨後的層中執行迴旋和其他運算一將保持基本相同。
在一個實施例中,層402、403、404和405可以分別對應於圖2D的迴旋層232、第一特徵映射集合218、第二特徵映射集合220和第一特徵向量224,其中層402、403和404是迴旋層,並且輸入張量和核心是二維陣列。在該實施例中,可以將圖4視為圖示層402、403、404和405的橫截面,其中可以將迴旋程序形象化為細長的楔形,該楔形具有二維錐形或漏斗形形式的第一橫截面和梯形形式的第二橫截面,其中如下所述,感受野可以是拉伸感受野。
圖5是示例性DCN 501中的2維迴旋層的深度優先迴旋處理的幾個階段的示例性進展500的圖示。DCN 501包括三個迴旋層502、503和504和第四層505,其中該四層例如可以分別對應於圖2D的DCN 200的迴旋層232、第一特徵映射集合218、第二特徵映射集合220和第一特徵向量224,或者圖3的DCN 350的層356(1)-(3)和362(1)。注意,DCN 501可以具有在任何兩個連續迴旋層之間的居間非迴旋層(未圖示),諸如例如非線性層、正規化層及/或池化層。
每個迴旋層接收具有長度x(i)和寬度y(i)的輸入張量,並使用具有長度x(k)和寬度y(k)的核心。注意,本文中使用長度x和寬度y作為張量的第一維度和張量的正交的第二維度的簡寫,而並不表示實體量測值。在習知迴旋處理中,使用具有與核心相同的尺寸的感受野來處理輸入張量,DCN 501使用具有長度x(k)和寬度y(i)的拉伸感受野。換言之,DCN 501的層的拉伸感受野具有與相應核心相同的長度和與相應輸入張量相同的寬度。注意,對於任何特定層,可以選擇長度軸和寬度軸,使得長度x(i)大於或等於寬度y(i)。如圖5所示,第一層502接收長度502(x(i))為15且寬度502(y(i))為13(亦即15×13)的輸入張量,使用長度502(x(k))為3且寬度為3(亦即3×3)的核心(未圖示),以及長度502(x(k))為3且寬度502(y(i))為13(亦即3×13)的拉伸感受野506。
在處理DCN的第一階段501(1)中,將輸入張量的502(x(k))×502(y(i))(換言之,3×13=39)個元素從保持記憶體提取到操作記憶體中以形成感受野506(1)。將感受野與層502的第一核心進行迴旋,以產生用於層503的第二層輸入張量的輸入條帶507(1)。輸入條帶507(1)是11元素向量的形式或者長度為一且寬度503(y(i))為11的矩陣的形式。如可以看出的,從感受野506產生輸入條帶507可以直觀地表示為楔形510,其基部是感受野506,其頂點是條帶507。
在處理DCN的第二階段501(2)中,從保持記憶體提取輸入張量的寬度為502(y(i))或13個附加元素的條帶,以便與一些先前提取的元素一起形成拉伸感受野506(2)。將拉伸感受野506(2)與層502的第一核心進行迴旋,以產生用於層503的第一第二層輸入張量的輸入條帶507(2)。由層502的輸入張量的元素條帶508(2)使用的操作記憶體點可以被釋放並重新使用,因為任何未來的迴旋皆將不需要彼等值。應當注意,一旦完成了前一階段的相應計算,並且在從保持記憶體中提取輸入張量的附加元素之前,就可以釋放上述操作記憶體點以及任何其他操作記憶體點。
在處理DCN的第三階段501(3)中,從保持記憶體提取輸入張量的另一502(y(i))或13個附加元素,以便與一些先前提取的元素一起形成感受野506(3),將感受野506(3)與層502的第一核心進行迴旋,以產生用於第一第二層輸入張量的輸入條帶507(3)。由層502的輸入張量的元素508(3)使用的操作記憶體點可以被釋放並重新使用。
迴旋層503使用3×3的核心,並且因此,拉伸感受野512具有為3的長度503(x(k))和為11的寬度503(y(i))(亦即,3×11)。經由處理DCN的第三階段501(3),已經產生了用於拉伸感受野512(3)的所有元素,並且由此,感受野512(3)可以與層503的第一核心進行迴旋,以產生用於層504的第三層輸入張量的輸入條帶509(3)。輸入條帶509(3)是11元素向量的形式或者長度 為一且寬度504(y(i))為11的矩陣的形式。注意,層503的迴旋可以涉及使用填充(未圖示)來產生具有與層503的輸入相同尺寸的層504的輸出(而不是假設不使用填充則會產生的較小輸出)。
在隨後的階段(未圖示),將以與以上參考層502描述的相同的方式,釋放並重新使用由層503的不再需要的元素條帶所使用的記憶體點。在進一步的後續階段中,一旦層504具有足夠的輸入元素以填充整個拉伸感受野(未圖示)並提供用於層505的輸入張量的值,就將同樣的處理應用於層504。注意,例如,若沒有足夠的操作記憶體來儲存層505的輸入張量的值,則可以將其寫出到保持記憶體。迴旋層502、503和504將先後地連續地對其各自的輸入張量進行迴旋,直到該三層的迴旋完成為止。隨後,可以將層505的輸入張量從保持記憶體中讀入到操作記憶體中,以便進一步處理。
注意,在一些具有有限的操作記憶體的實施方式中,可以使用多個相應的拉伸感受野以代替單個拉伸感受野,其中每個拉伸感受野被拉伸至相應輸入張量的寬度的一部分。此舉將需要一些附加處理以適當地將部分拉伸的感受野拼接在一起,但是大部分處理將是如上參考圖5的DCN 501所述。注意,就本案內容的實施方式僅在一個維度上移動滑動的拉伸感受野的程度而言,可以因此避免重疊錐體的重新計算。
如前述,上述層中的任何層可以具有多個核心(例如,用於多個通道),此舉將產生用於後續層的多個對應輸入張量(例如,特徵映射)。以上說明僅描述了每層的第一核心以簡化說明。在一層中具有多個核心的DCN將基本上如前述地針對每個核心進行操作。
圖6是根據本案內容的實施例的程序600的流程圖。程序600開始於將第一第一層核心以及第一層輸入的一部分從保持記憶體提取到操作記憶體中(步驟601)。該程序繼續使用第一第一層核心和提取到的部分來開始第一層輸入的迴旋處理以產生用於第一第二層輸入的值條帶(步驟602)。在完成第一層輸入的迴旋之前,該程序提取第一第二層核心,並使用第一第二層核心來開始第一第二層輸入的迴旋處理,以產生用於第一第三層輸入的值(步驟603)。該程序繼續提取第一層輸入的部分,先後地對第一層輸入和第一第二層輸入執行迴旋,並且釋放並重新使用包含不再需要的值的操作記憶體點(步驟604)。該程序繼續直到第一層輸入的迴旋和第一第二層輸入的迴旋完成,以產生完整的第一第三層輸入(步驟605)。
結合本文所述的態樣描述的各種說明性電路可在積體電路(IC)中或用積體電路(IC)來實施,該積體電路諸如處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)或其他可程式設計邏輯設備。處理器可以是微處理器,但在替代方案中,處理器可以是任何習知處理器、控制器、微控制 器或狀態機。處理器亦可以實現為計算設備的組合,例如DSP和微處理器的組合、複數個微處理器、一或多個微處理器結合DSP核心,或者任何其他此種配置。
亦應注意,描述了本文任何示例性態樣中描述的操作步驟以提供實例。所描述的操作可以以不同於所說明的順序的許多不同順序來執行。此外,在單個操作步驟中描述的操作在實踐中可以在多個不同步驟中執行。另外,可以組合在示例性態樣中論述的一或多個操作步驟。應當理解,流程圖中所示的操作步驟可以進行許多不同的修改,此情形對於熟習此項技術者而言是顯而易見的。熟習此項技術者亦將理解,可以使用多種不同的技術和方法中的任何種來表示資訊和信號。例如,在以上全部描述中提及的資料、指令、命令、資訊、信號、位元、符號和碼片可以用電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子或者其任意組合來表示。
如本文中所使用的,提及項目列表中的「至少一個」的短語是指該等項目的任何組合,包括單個成員。作為實例,「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的任何其他排序)。
提供本案內容以使得任何熟習此項技術者能夠實現或使用本案內容的態樣。熟習此項技術者將容易明白對 本案內容的各種修改,並且可以在不脫離本案內容的精神或範疇的情況下將本文定義的一般原理應用於其他變化。因此,本案內容並不意欲限於本文所描述的實例和設計,而應被給予與本文揭示的原理和新穎特徵相一致的最大範疇。
500:進展
501(1):DCN
501(2):DCN
501(3):DCN
502:迴旋層
502(x(i)):長度
502(x(k)):長度
502(y(i)):寬度
503:迴旋層
503(x(k)):長度
503(y(i)):寬度
504:迴旋層
504(y(i)):
505:第四層
506(1):感受野
506(2):拉伸感受野
506(3):感受野
507(1):輸入條帶
507(2):輸入條帶
507(3):輸入條帶
508(2):元素條帶
508(3):元素
509(3):輸入條帶
510:楔形
512(3):拉伸感受野

Claims (22)

  1. 一種用於使用一深度迴旋網路的電腦實現的方法,其中該深度迴旋網路包括:一第一迴旋層、一第二迴旋層和一第三層,該方法包括以下步驟:將一第一層核心與一第一層輸入張量的一第一第一層拉伸感受野進行迴旋,以產生用於一第二層輸入張量的一第一條帶的值;隨後將一第二層核心與該第二層輸入張量的一第一第二層拉伸感受野進行迴旋,以產生用於一第三層輸入張量的一第一條帶的值;及隨後將該第一層核心與該第一層輸入張量的一第二第一層拉伸感受野進行迴旋,以產生用於該第二層輸入張量的一第二條帶的值,其中:該第一層核心具有一第一層核心長度和一第一層核心寬度;該第一層輸入張量具有一第一層輸入長度和一第一層輸入寬度;該第二層輸入張量具有一第二層輸入長度和一第二層輸入寬度;該第二層核心具有一第二層核心長度和一第二層核心寬度;該第一第一層拉伸感受野和該第二第一層拉伸感受野具有等於該第一層核心長度的一長度和大於該第一層核心寬度的一第一層拉伸感受野寬度;及 該第一第二層拉伸感受野具有等於該第二層核心長度的一長度和大於該第二層核心寬度的一第二層拉伸感受野寬度。
  2. 根據請求項1之方法,亦包括以下步驟:將該第一第一層拉伸感受野和該第二第一層拉伸感受野與一或多個附加的第一層核心進行迴旋,以產生用於該第二層輸入張量的對應附加條帶的值;及將該第一第二層拉伸感受野與一或多個附加的第二層核心進行迴旋,以產生用於該第三層輸入張量的對應附加條帶的值。
  3. 根據請求項1之方法,其中:該第一層拉伸感受野寬度等於該第一層輸入寬度;及該第二層拉伸感受野寬度等於該第二層輸入寬度。
  4. 根據請求項3之方法,其中:該第二層輸入張量的該等條帶具有為一的一長度和等於該第二層輸入寬度的一寬度;該第三層輸入張量具有一第三層輸入長度和一第三層輸入寬度;及該第三層輸入張量的該等條帶具有為一的一長度和等於該第三層輸入寬度的一寬度。
  5. 根據請求項1之方法,其中:該深度迴旋網路亦包括在該第一迴旋層與該第二迴旋層之間的至少一個非迴旋層;及產生該第二層輸入張量之步驟包括以下步驟:除了該 第一層輸入張量的該迴旋之外亦執行該至少一個非迴旋層的操作。
  6. 根據請求項5之方法,其中該至少一個非迴旋層包括一池化層、一非線性層和一正規化層中的一或多個。
  7. 根據請求項1之方法,其中:每個核心包括一對應的權重集;該方法亦包括以下步驟:將該第一層核心的該等權重、該第二層核心的該等權重從一保持記憶體讀入到一操作記憶體中;及將該第一層核心與該第一第一層拉伸感受野進行迴旋之步驟包括以下步驟:將用於該第一第一層拉伸感受野的值從該保持記憶體讀入到該操作記憶體中,而不將該第一層輸入張量的所有值皆讀入到該操作記憶體中。
  8. 根據請求項7之方法,其中:將該第一層核心與該第一第一層拉伸感受野進行迴旋之後,在隨後將該第一層核心與該第一層輸入張量的該第二第一層拉伸感受野進行該迴旋之前,釋放並重新使用在該操作記憶體中的至少一些點作為該第一第一層拉伸感受野。
  9. 根據請求項1之方法,其中:該第三層為一迴旋層;該深度迴旋網路包括零個或更多個附加迴旋層,該零個或更多個附加迴旋層被連續地配置在該第三層之後, 以用於在一層集合中與該第一迴旋層、該第二迴旋層和該第三層同時進行處理;及該層集合包括一截止層。
  10. 根據請求項9之方法,其中該截止層是使用一貪婪演算法動態地決定的。
  11. 一種用於使用一深度迴旋網路的計算設備,其中:該深度迴旋網路包括:一第一迴旋層,被配置為使用一第一層核心來對一第一層輸入張量進行迴旋,以產生一第二層輸入張量;一第二迴旋層,被配置為使用一第二層核心來對該第二層輸入張量進行迴旋,以產生一第三層輸入張量;及一第三層,被配置為接收該第三層輸入張量;該第一層核心具有一第一層核心長度和一第一層核心寬度;該第一層輸入張量具有一第一層輸入長度和一第一層輸入寬度;該第二層輸入張量具有一第二層輸入長度和一第二層輸入寬度;該第二層核心具有一第二層核心長度和一第二層核心寬度;該計算設備被配置為: 將該第一層核心與該第一層輸入張量的一第一第一層拉伸感受野進行迴旋,以產生用於該第二層輸入張量的一第一條帶的值;隨後將該第二層核心與該第二層輸入張量的一第一第二層拉伸感受野進行迴旋,以產生用於該第三層輸入張量的一第一條帶的值;隨後將該第一層核心與該第一層輸入張量的一第二第一層拉伸感受野進行迴旋,以產生用於該第二層輸入張量的一第二條帶的值;該第一第一層拉伸感受野和該第二第一層拉伸感受野具有等於該第一層核心長度的一長度和大於該第一層核心寬度的一第一層拉伸感受野寬度;及該第一第二層拉伸感受野具有等於該第二層核心長度的一長度和大於該第二層核心寬度的一第二層拉伸感受野寬度。
  12. 根據請求項11之設備,其中:該第一迴旋層被配置為以與該第一層核心相同的方式使用一或多個附加的第一層核心,以產生用於該第二層輸入張量的對應附加條帶的值;及該第二迴旋層被配置為以與該第二層核心相同的方式使用一或多個附加的第二層核心,以產生用於該第三層輸入張量的對應附加條帶的值。
  13. 根據請求項11之設備,其中:該第一層拉伸感受野寬度等於該第一層輸入寬度;及 該第二層拉伸感受野寬度等於該第二層輸入寬度。
  14. 根據請求項13之設備,其中:該第二層輸入張量的該等條帶具有為一的一長度和等於該第二層輸入寬度的一寬度;該第三層輸入張量具有一第三層輸入長度和一第三層輸入寬度;及該第三層輸入張量的該等條帶具有為一的一長度和等於該第三層輸入寬度的一寬度。
  15. 根據請求項11之設備,其中:該深度迴旋網路亦包括在該第一迴旋層與該第二迴旋層之間的至少一個非迴旋層;及產生該第二層輸入張量包括:除了該第一層輸入張量的該迴旋之外亦執行該至少一個非迴旋層的操作。
  16. 根據請求項15之設備,其中該至少一個非迴旋層包括一池化層、一非線性層和一正規化層中的一或多個。
  17. 根據請求項11之設備,其中:每個核心包括一對應的權重集;該設備亦被配置為將該第一層核心的該等權重、該第二層核心的該等權重從一保持記憶體讀入到一操作記憶體中;及在將該第一層核心與該第一第一層拉伸感受野進行迴旋時,該設備被配置為將用於該第一第一層拉伸感受野的值從該保持記憶體讀入到該操作記憶體中,而不將該 第一層輸入張量的所有值皆讀入到該操作記憶體中。
  18. 根據請求項17之設備,其中該設備被配置為:在該第一層核心與該第一第一層拉伸感受野進行迴旋之後,在隨後將該第一層核心與該第一層輸入張量的該第二第一層拉伸感受野進行迴旋之前,釋放並重新使用在該操作記憶體中的至少一些點作為該第一第一層拉伸感受野。
  19. 根據請求項11之設備,其中:該第三層為一迴旋層;該深度迴旋網路包括零個或更多個附加迴旋層,該零個或更多個附加迴旋層被連續地配置在該第三層之後,以用於在一層集合中與該第一迴旋層、該第二迴旋層和該第三層同時進行處理;該層集合包括一截止層。
  20. 根據請求項19之設備,其中該設備被配置為使用一貪婪演算法來動態地決定該截止層。
  21. 一種用於使用一深度迴旋網路的計算設備,其中:該深度迴旋網路包括:一第一迴旋層,被配置為使用一第一層核心來對一第一層輸入張量進行迴旋,以產生一第二層輸入張量;一第二迴旋層,被配置為使用一第二層核心對該第二層輸入張量進行迴旋以產生一第三層輸入張量;及 一第三層,被配置為接收該第三層輸入張量;該第一層核心具有一第一層核心長度和一第一層核心寬度;該第一層輸入張量具有一第一層輸入長度和一第一層輸入寬度;該第二層輸入張量具有一第二層輸入長度和一第二層輸入寬度;該第二層核心具有一第二層核心長度和一第二層核心寬度;該計算設備包括:用於將該第一層核心與該第一層輸入張量的一第一第一層拉伸感受野進行迴旋以產生用於該第二層輸入張量的一第一條帶的值的構件;用於隨後將該第二層核心與該第二層輸入張量的一第一第二層拉伸感受野進行迴旋以產生用於該第三層輸入張量的一第一條帶的值的構件;用於隨後將該第一層核心與該第一層輸入張量的一第二第一層拉伸感受野進行迴旋以產生用於該第二層輸入張量的一第二條帶的值的構件;該第一第一層拉伸感受野和該第二第一層拉伸感受野具有等於該第一層核心長度的一長度和大於該第一層核心寬度的一第一層拉伸感受野寬度;及該第一第二層拉伸感受野具有等於該第二層核心長度的一長度和大於該第二層核心寬度的一第二層拉伸感受 野寬度。
  22. 一種包括指令的非暫時性電腦可讀取媒體,該等指令在由至少一個處理器執行時使該處理器執行用於使用一深度迴旋網路的一方法,其中該深度迴旋網路包括一第一迴旋層、一第二迴旋層和一第三層,該方法包括以下步驟:將一第一層核心與一第一層輸入張量的一第一第一層拉伸感受野進行迴旋,以產生用於一第二層輸入張量的一第一條帶的值;隨後將一第二層核心與該第二層輸入張量的一第一第二層拉伸感受野進行迴旋,以產生用於一第三層輸入張量的一第一條帶的值;及隨後將該第一層核心與該第一層輸入張量的一第二第一層拉伸感受野進行迴旋,以產生用於該第二層輸入張量的一第二條帶的值,其中:該第一層核心具有一第一層核心長度和一第一層核心寬度;該第一層輸入張量具有一第一層輸入長度和一第一層輸入寬度;該第二層輸入張量具有一第二層輸入長度和一第二層輸入寬度;該第二層核心具有一第二層核心長度和一第二層核心寬度;該第一第一層拉伸感受野和該第二第一層拉伸感受 野具有等於該第一層核心長度的一長度和大於該第一層核心寬度的一第一層拉伸感受野寬度;及該第一第二層拉伸感受野具有等於該第二層核心長度的一長度和大於該第二層核心寬度的一第二層拉伸感受野寬度。
TW109120413A 2019-06-17 2020-06-17 用於深度神經網路中的深度優先迴旋的方法、設備及媒體 TWI837388B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/443,695 US11487998B2 (en) 2019-06-17 2019-06-17 Depth-first convolution in deep neural networks
US16/443,695 2019-06-17

Publications (2)

Publication Number Publication Date
TW202105258A TW202105258A (zh) 2021-02-01
TWI837388B true TWI837388B (zh) 2024-04-01

Family

ID=71465446

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109120413A TWI837388B (zh) 2019-06-17 2020-06-17 用於深度神經網路中的深度優先迴旋的方法、設備及媒體

Country Status (8)

Country Link
US (1) US11487998B2 (zh)
EP (1) EP3983952A1 (zh)
KR (1) KR20220020816A (zh)
CN (1) CN113841162B (zh)
AU (1) AU2020297435A1 (zh)
BR (1) BR112021024591A2 (zh)
TW (1) TWI837388B (zh)
WO (1) WO2020257245A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704197B (zh) * 2019-10-17 2022-12-09 北京小米移动软件有限公司 处理内存访问开销的方法、装置及介质
KR20210079785A (ko) * 2019-12-20 2021-06-30 삼성전자주식회사 뉴럴 네트워크의 컨볼루션 연산 처리 방법 및 장치
CN112801266B (zh) * 2020-12-24 2023-10-31 武汉旷视金智科技有限公司 神经网络构建方法、装置、设备及介质
KR102361249B1 (ko) * 2021-08-02 2022-02-14 오픈엣지테크놀로지 주식회사 브로드캐스팅 멀티플라이 최적화 방법 및 이를 이용한 하드웨어 가속기, 이를 이용한 컴퓨팅 장치
US20240112297A1 (en) * 2022-09-30 2024-04-04 Advanced Micro Devices, Inc. Cnn seamless tile processing for low-power inference accelerator

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170300786A1 (en) * 2015-10-01 2017-10-19 Intelli-Vision Methods and systems for accurately recognizing vehicle license plates
TW201833819A (zh) * 2016-12-07 2018-09-16 美商克萊譚克公司 用於以迴旋神經網路為基礎之缺陷檢測之資料擴增
CN108596066A (zh) * 2018-04-13 2018-09-28 武汉大学 一种基于卷积神经网络的字符识别方法
TW201841130A (zh) * 2017-03-07 2018-11-16 美商高通公司 經由弱監督的神經網路壓縮
US20180349477A1 (en) * 2017-06-06 2018-12-06 Facebook, Inc. Tensor-Based Deep Relevance Model for Search on Online Social Networks
CN108985376A (zh) * 2018-07-17 2018-12-11 东北大学 一种基于卷积-循环神经网络的回转窑序列工况识别方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10706348B2 (en) * 2016-07-13 2020-07-07 Google Llc Superpixel methods for convolutional neural networks
US10733505B2 (en) * 2016-11-10 2020-08-04 Google Llc Performing kernel striding in hardware
US10929749B2 (en) 2017-04-24 2021-02-23 Intel Corporation Neural network optimization mechanism
WO2018217829A1 (en) 2017-05-23 2018-11-29 Intel Corporation Methods and apparatus for enhancing a neural network using binary tensor and scale factor pairs
US20190044942A1 (en) * 2017-08-01 2019-02-07 Twosense, Inc. Deep Learning for Behavior-Based, Invisible Multi-Factor Authentication
RU2691214C1 (ru) * 2017-12-13 2019-06-11 Общество с ограниченной ответственностью "Аби Продакшн" Распознавание текста с использованием искусственного интеллекта
US11741342B2 (en) * 2018-05-18 2023-08-29 Baidu Usa Llc Resource-efficient neural architects
US11861484B2 (en) 2018-09-28 2024-01-02 Qualcomm Incorporated Neural processing unit (NPU) direct memory access (NDMA) hardware pre-processing and post-processing
CN110378468B (zh) 2019-07-08 2020-11-20 浙江大学 一种基于结构化剪枝和低比特量化的神经网络加速器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170300786A1 (en) * 2015-10-01 2017-10-19 Intelli-Vision Methods and systems for accurately recognizing vehicle license plates
TW201833819A (zh) * 2016-12-07 2018-09-16 美商克萊譚克公司 用於以迴旋神經網路為基礎之缺陷檢測之資料擴增
TW201841130A (zh) * 2017-03-07 2018-11-16 美商高通公司 經由弱監督的神經網路壓縮
US20180349477A1 (en) * 2017-06-06 2018-12-06 Facebook, Inc. Tensor-Based Deep Relevance Model for Search on Online Social Networks
CN108596066A (zh) * 2018-04-13 2018-09-28 武汉大学 一种基于卷积神经网络的字符识别方法
CN108985376A (zh) * 2018-07-17 2018-12-11 东北大学 一种基于卷积-循环神经网络的回转窑序列工况识别方法

Also Published As

Publication number Publication date
WO2020257245A1 (en) 2020-12-24
EP3983952A1 (en) 2022-04-20
CN113841162B (zh) 2024-04-26
US11487998B2 (en) 2022-11-01
TW202105258A (zh) 2021-02-01
KR20220020816A (ko) 2022-02-21
BR112021024591A2 (pt) 2022-01-25
CN113841162A (zh) 2021-12-24
AU2020297435A1 (en) 2021-12-16
US20200394500A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
TWI837388B (zh) 用於深度神經網路中的深度優先迴旋的方法、設備及媒體
KR102582194B1 (ko) 선택적 역전파
EP3785176B1 (en) Learning a truncation rank of singular value decomposed matrices representing weight tensors in neural networks
TWI795447B (zh) 基於關注提議進行視訊動作定位
US20180247199A1 (en) Method and apparatus for multi-dimensional sequence prediction
US11776608B2 (en) Static random-access memory (SRAM) compute in-memory integration
JP7539971B2 (ja) コンピュートインメモリアレイの列しきい値を調整することによってxnor等価演算を実施すること
US11580356B2 (en) Efficient inferencing with piecewise pointwise convolution
US11500960B2 (en) Memory cell for dot product operation in compute-in-memory chip
US11410040B2 (en) Efficient dropout inference for bayesian deep learning
US11340867B2 (en) Compute-in-memory (CIM) binary multiplier
US20220156528A1 (en) Distance-based boundary aware semantic segmentation
US20200293864A1 (en) Data-aware layer decomposition for neural network compression
US20230076290A1 (en) Rounding mechanisms for post-training quantization
JP2023546582A (ja) 個人化ニューラルネットワークプルーニング
CN116863194A (zh) 一种足溃疡图像分类方法、系统、设备及介质
EP3401840A1 (en) Compressed data streams in object recognition
US20230108248A1 (en) Model compression via quantized sparse principal component analysis
EP4058940A1 (en) Permutation invariant convolution (pic) for recognizing long-range activities
TWI853083B (zh) 用於經由調整記憶體內計算陣列的列閾值來執行 xnor 等效運算的裝置、方法與電腦可讀取媒體
US20220292725A1 (en) Data compression with a multi-scale autoencoder
WO2024123391A1 (en) Folding cumulative summation operations using matrix multiplications
EP4233048A1 (en) Sub-spectral normalization for neural audio data processing
WO2024102526A1 (en) Realistic distraction and pseudo-labeling regularization for optical flow estimation
WO2024073437A1 (en) Graph cuts for explainability