TWI806987B - 用於訓練神經網路的方法及神經網路訓練系統 - Google Patents
用於訓練神經網路的方法及神經網路訓練系統 Download PDFInfo
- Publication number
- TWI806987B TWI806987B TW108108359A TW108108359A TWI806987B TW I806987 B TWI806987 B TW I806987B TW 108108359 A TW108108359 A TW 108108359A TW 108108359 A TW108108359 A TW 108108359A TW I806987 B TWI806987 B TW I806987B
- Authority
- TW
- Taiwan
- Prior art keywords
- continuously differentiable
- neural network
- differentiable model
- training
- model
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
- Electrophonic Musical Instruments (AREA)
- Feedback Control In General (AREA)
Abstract
本發明闡述一種用於訓練神經網路的方法及神經網路訓練系統。所述方法包括提供神經網路的至少一個可連續微分的模型。所述至少一個可連續微分的模型專用於所述神經網路的硬體。所述方法更包括使用所述至少一個可連續微分的模型以反覆運算方式訓練所述神經網路,以為所述神經網路提供至少一個輸出。每一次反覆運算均使用前一次反覆運算的至少一個輸出以及所述至少一個可連續微分的模型中的當前可連續微分的模型。
Description
本揭露大體來說涉及一種用於訓練神經網路的方法,且更具體來說,涉及改善神經網路的推斷準確性。
涉及到深度學習神經網路(Neural Network,NN)或神經形態計算(例如,圖像識別、自然語言處理以及更一般來說各種圖案匹配或分類任務)的應用正迅速變得與通用計算一樣重要。神經網路或神經元的基本計算元素包括多個輸入、及輸出。與每一個輸入相關聯的是數字或權重。神經元的啟動是通過(使用權重)執行各輸入的加權求和來計算的,接著通過啟動函數來對輸入的加權和進行處理。所述啟動函數通常是閾限函數(thresholding function)。因此,神經元一般來說執行向量-矩陣乘積運算(vector-matrix product)或乘法-累加(multiply-accumulate,MAC)運算,接著對所述運算進行閾限。
由神經網路的數學描述定義的權重是實數,且因此為連續的。然而,神經網路的許多硬體構建方式使用或主張使用權重真實值的低精度離散近似值。舉例來說,一些最近的神經網路是同或網路或者門控同或(gated XNOR,GXNOR)網路,其僅使用兩個(二進位)離散層級或三個(三進制)離散層級。這種神經網路可使用-1及1(二進位)權重或-1、0及1(三進制)權重。其他硬體構建方式可使用不同數目的離散權重。儘管從硬體角度看這種精度降低的權重很有吸引力,但是在可實現的推斷準確性方面存在潛在的損失。在晶片外訓練(off-chip training)的情形中尤其如此,在晶片外訓練中,訓練是對與實際用於推斷的系統不同的系統執行的。
推斷準確性的損失程度取決於權重的詳細情況以及所使用的訓練演算法。直接的量化方式是離線地使用浮點權重來簡單地執行標準訓練,且接著選擇離散的“視窗(bin)”來向視窗中放置數學權重。這種演算法的改進形式將視窗的大小視為超參數,所述超參數將針對驗證資料進行優化來實現最好的準確性。然而,即使在具有這種改進形式的情況下,使用低精度權重的神經網路仍可能會遭受相當大的推斷準確性損失。
期望改善使用較低精度權重的神經網路(即使這種神經網路被離線地訓練)的推斷準確性。
本揭露涉及一種用於訓練神經網路的方法,所述方法包括:提供所述神經網路的至少一個可連續微分的模型,所述至少一個可連續微分的模型專用於所述神經網路的硬體;使用所述至少一個可連續微分的模型以反覆運算方式訓練所述神經網路,以為所述神經網路提供至少一個輸出,每一次反覆運算均使用前一次反覆運算的至少一個輸出以及所述至少一個可連續微分的模型中的當前可連續微分的模型。
本揭露涉及一種用於訓練神經網路的方法,所述方法包括:提供所述神經網路的至少一個可連續微分的模型,所述至少一個可連續微分的模型專用於所述神經網路的硬體,所述神經網路使用多個離散的權重;使用所述至少一個可連續微分的模型以反覆運算方式訓練所述神經網路,以為所述神經網路提供至少一個輸出,每一次反覆運算均使用前一次反覆運算的至少一個輸出及所述至少一個可連續微分的模型中的當前可連續微分的模型,所述當前可連續微分的模型比所述至少一個可連續微分的模型中的前一個可連續微分的模型提供對所述神經網路的所述硬體的更接近的近似,所述以反覆運算方式訓練的步驟還包括:在第一次反覆運算中使用所述神經網路的軟體模型作為第一個可連續微分的模型;使用每一次反覆運算的至少一個輸出來執行反向傳播,以獲得每一次反覆運算的至少一個權重;對於每一次反覆運算,對來自前一次反覆運算的所述至少一個權重應用由所述當前可連續微分的模型乘以至少一個輸入再加上偏項以下函數(f)即f(g(w,X,a)X+b)):由所述當前可連續微分的模型乘以至少一個輸入再加上偏項,其中g是所述當前可連續微分的模型,w是當前反覆運算的所述至少一個權重,X是所述至少一個輸入且b是偏項,a是表示與所述神經網路的所述硬體的接近度的真實性參數,且其中所述當前可連續微分的模型是
其中w
是權重,D是所述至少一個離散的權重的離散化步階,w sc
是步階之間的過渡尺度,e n
是使所述可連續微分的模型通過原點的偏移量,且s
是1/(1+e- w / w sc
);且如果所述至少一個權重不大於與至少一個先前的權重不同的至少一個閾值,則結束以反覆運算方式進行的重複。
示例性實施例涉及在包括但不限於機器學習、人工智慧、神經形態計算及神經網路的各種領域中可採用的訓練神經網路。方法及系統可擴展到其中使用邏輯裝置的其他應用中。提出以下說明是為了使所屬領域中的一般技術人員能夠製作並使用本發明,且以下說明是在專利申請及其要求的上下文中提供。對在本文中闡述的示例性實施例以及一般性原理及特徵的各種修改將顯而易見。示例性實施例主要是針對在具體實施方式中提供的具體方法及系統進行闡述。然而,所述方法及系統在其他實施方式中也將有效地發揮作用。
例如“示例性實施例”、“一個實施例”、及“另一個實施例”等短語可指相同或不同的實施例以及多個實施例。實施例將針對具有某些元件的系統和/或裝置進行闡述。然而,系統和/或裝置可包括比圖中所示組件更多或更少的元件,且元件的排列及類型可發生變化,而此並不背離本發明的範圍。示例性實施例還將在具有某些步驟的具體方法的上下文中進行闡述。然而,所述方法及系統對於不與示例性實施例相矛盾的具有不同的和/或附加的步驟以及處於不同次序的步驟的其他方法而言也會有效地發揮作用。因此,本發明並非旨在僅限於圖中所示實施例,而是符合與本文所述原理及特徵相一致的最廣範圍。
在闡述本發明的上下文中(尤其在以上權利要求書的上下文中)使用的用語“一(a及an)”及“所述(the)”以及相似的參考語旨在被視為涵蓋單數及複數兩者,除非在本文中另外指明或明顯與上下文相矛盾。除非另外注明,否則用語“包括(comprising)”、“具有(having)”、“包括(including)”及“含有(containing)”旨在被視為開放式用語(即,意指“包括但不限於”)。
除非另外定義,否則本文所用所有技術及科學用語的含意均與本發明所屬領域中的一般技術人員所通常理解的含意相同。應注意,除非另外規定,否則使用本文所提供的任何及所有實例或示例性用語僅旨在更好地說明本發明而並非限制本發明的範圍。另外,除非另外定義,否則常用字典中定義的所有用語不可被過度解釋。
本發明闡述一種用於訓練神經網路的方法及系統。所述方法包括提供所述神經網路的至少一個可連續微分的模型。所述至少一個可連續微分的模型專用於所述神經網路的硬體。所述方法還包括使用所述至少一個可連續微分的模型以反覆運算方式訓練所述神經網路,以為所述神經網路提供至少一個輸出。每一次反覆運算均使用前一次反覆運算的至少一個輸出以及所述至少一個可連續微分的模型中的當前可連續微分的模型。
圖1及圖2是繪示用於訓練神經網路(NN)(例如,深度學習神經網路)的系統100的示例性實施例的方塊圖。為簡明起見,僅示出系統100的一部分。訓練系統100用於訓練神經網路120。換句話說,訓練系統100對神經網路120執行訓練並將訓練結果(例如,權重)提供到神經網路120。儘管在圖1中示出了神經網路120,然而神經網路120在至少一些實施例中不是訓練系統100的一部分。因此,訓練系統100可對神經網路120執行晶片外(或稱為離線)訓練。因此,神經網路120可被實施為僅進行推斷的神經網路(inference only NN)。
訓練系統100包含訓練資料130及訓練引擎110,訓練引擎110包括訓練演算法114以及可連續微分的模型112-1、112-2及112-3(統稱為可連續微分的模型112)。儘管圖中示出三個可連續微分的模型112,然而也可使用更少或更多的模型。訓練系統100還包括處理器150、資料儲存(data store)160及輸入/輸出(input/output,I/O)裝置(170)。資料儲存160可儲存元件112、114及130。處理器150可執行訓練演算法114及可連續微分的模型112。
訓練系統100利用可連續微分的模型112中的一個或多個來對神經網路120執行訓練。可連續微分的模型112對神經網路120的行為進行近似。因此,可連續微分的模型112將神經網路120的硬體考慮在內。舉例來說,神經網路120可為二進位網路(以-1及1作為權重)、三進制網路(以-1、0及1作為權重)、兩位元式權重網路(以-2、-1、0、1及2作為權重)或使用離散權重的其他神經網路。在這些實施例中,可連續微分的模型112可在維持可微分性的同時對權重之間的過渡(例如,步階函數)進行近似。此使得能夠在訓練期間對梯度進行計算。相似地,神經網路120可使用離散的啟動。可連續微分的模型112可採用類似於為權重提供的近似的方式來提供對啟動的近似。因此,可連續微分的模型112在維持可微分性的同時更準確地表示神經網路120。
傳統的晶片外訓練不使用可連續微分的模型112且可能會導致神經網路120的推斷準確性較差。據認為,由於傳統的訓練方法對神經網路120的硬體提供的近似較差,因此會發生晶片外訓練的準確性損失。舉例來說,離散的神經網路(例如,使用離散的權重或啟動的神經網路)在所有點處具有等於零的梯度。這種神經網路不可能進行標準反向傳播。傳統的訓練系統(未示出)可因此使用浮點權重的直接離散化來獲得二進位或三進制(即,離散的)權重。這種方法在離散化邊界附近存在權重不確定性。對於浮點訓練網路而言,由於神經元中出現的誤差的部分消除,因此權重的小的不確定性一般來說幾乎沒有影響。然而,在離散化之後,邊界附近的權重位於邊界的一側或另一側。這可能導致誤差放大且可能造成推斷準確性的大的損失。換句話說,由於訓練不是在知曉權重將被離散化或者將因硬體缺陷而改變的情況下執行的,因此推斷準確性可能顯著降低。
相比之下,可連續微分的模型112在維持可計算的梯度的同時提供對神經網路120的硬體的行為的近似。通過使用可連續微分的模型(112),訓練系統100感知到被執行訓練的神經網路120的硬體。由於這種模型是可微分的,因此可採用使用梯度的技術(例如,反向傳播)。所述訓練可因此在訓練演算法114中採用公認的訓練技術的同時考慮到神經網路120的硬體的離散性質。因此,訓練系統100可提供硬體感知訓練且神經網路120的推斷準確性可得到改善。
圖3是繪示用於使用所訓練的神經網路的可連續微分的模型來訓練神經網路的方法200的示例性實施例的流程圖。為簡明起見,一些步驟可省略、以另一種次序執行和/或進行組合。方法200也在訓練系統100及神經網路120的上下文中進行闡述。然而,方法200可結合另一種訓練系統和/或另一種神經網路來使用。
通過步驟202,為要訓練的神經網路120提供一個或多個可連續微分的模型112。可連續微分的模型112專用於神經網路120的硬體。在一些實施例中,可連續微分的模型112包括軟體模型,所述軟體模型用於浮點權重且不考慮神經網路120的硬體的各個方面(例如,離散的權重)。這種軟體模型可用於第一次反覆運算(例如,可連續微分的模型112-1)。然而,後續的反覆運算使用其他可連續微分的模型112,所述其他可連續微分的模型112提供對硬體的更接近的近似(例如,可連續微分的模型112-2和/或112-3)。作為另外一種選擇,所有可連續微分的模型112均對所訓練的神經網路120的硬體進行近似。
通過步驟204,使用可連續微分的模型112執行對神經網路120的反覆運算訓練。每一次訓練反覆運算均為神經網路120提供輸出。每一次反覆運算均使用前一次反覆運算的輸出及當前可連續微分的模型來提供新的輸出。如上所述,在一些實施例中,第一次反覆運算是使用傳統的浮點/連續模型執行的,所述傳統的浮點/連續模型不包含神經網路120的離散化或其他硬體方面。這種反覆運算為後續的硬體感知反覆運算提供對輸入(例如,權重)的第一近似。在另一些實施例中,所有反覆運算均使用硬體專用的可連續微分的模型112。在這些實施例中,第一次反覆運算可使用來自浮點模型的輸入或者以另一種方式獲得的輸入。
在步驟204中以反覆運算方式訓練可包括使用輸出來執行反向傳播以獲得每一個神經元的權重。這樣獲得的權重與下一個可連續微分的模型112相結合地用於下一次反覆運算。反覆運算訓練繼續進行,直到實現期望結果為止。舉例來說,響應於從當前反覆運算獲得的權重相對於來自前一次反覆運算的權重處於閾值以內,可結束訓練。
舉例來說,步驟204可使用可連續微分的模型112-1、訓練資料130以及第一次反覆運算的預定權重或啟動。第一次反覆運算的輸出可經歷反向傳播或其他處理以獲得用於第二次反覆運算的第二組權重。第二次反覆運算可使用訓練資料130、可連續微分的模型112-2及第二組權重來進行訓練。可連續微分的模型112-2可比第一個可連續微分的模型112-1對神經網路120的硬體更好地近似。舉例來說,離散的權重之間的過渡可較劇烈。基於第二次反覆運算的輸出,可計算第三組權重。第三次反覆運算可使用訓練資料130、可連續微分的模型112-3及第三組權重來進行訓練。可連續微分的模型112-3可比第二個可連續微分的模型112-2對神經網路120的硬體更好地近似。步驟204中的這一反覆運算訓練可繼續進行,直到滿足一些條件為止。在一些實施例中,所述條件是所計算的新權重均處於前一權重的特定閾值內。在這種情形中,由於權重可能更快速地收斂到最終值,因此可能並不使用所有的可連續微分的模型112。在其他實施例中,可使用其他條件。舉例來說,可能需要使用所有可用的可連續微分的模型112。一旦訓練完成,便可將結果(例如,權重)提供到神經網路120來進行使用。
使用方法200,可實現神經網路120的推斷準確性的明顯改善。由於可連續微分的模型112提供對神經網路120的硬體的行為的近似,因此訓練系統100感知到被執行訓練的神經網路120的硬體。由於這種模型112是可微分的,因此在訓練期間可採用使用梯度的技術。所述訓練可在採用公認的訓練技術的同時考慮到神經網路120的硬體的離散性質。因此,神經網路120的推斷準確性提高。由於可採用晶片外訓練,因此神經網路120可更小且更高效。在一些應用中,僅需要採用較少次數的反覆運算。舉例來說,僅利用一次或幾次反覆運算便可實現可接受的準確性。因此,通過適度增加訓練中央處理器(CPU)時間便可實現本文所述有益效果。
圖4是繪示用於使用所訓練的神經網路的可連續微分的模型來訓練神經網路的方法210的另一個示例性實施例的流程圖。為簡明起見,一些步驟可省略、以另一種次序執行和/或進行組合。方法210也在訓練系統100及神經網路120的上下文中進行闡述。然而,方法210可結合另一種訓練系統和/或另一種神經網路來使用。
通過步驟212,為要訓練的神經網路120提供一個或多個可連續微分的模型112。因此,步驟212類似於步驟202。可連續微分的模型112專用於神經網路120的硬體。在一些實施例中,可連續微分的模型112包括可用於第一次反覆運算的軟體模型。然而,後續的反覆運算使用其他可連續微分的模型112,所述其他可連續微分的模型112提供對硬體的更接近的近似(例如,可連續微分的模型112-2和/或112-3)。作為另外一種選擇,所有可連續微分的模型112均對所訓練的神經網路120的硬體進行近似。
舉例來說,可連續微分的模型112可被表示為g(w,X,a),其中w是權重,X是來自訓練資料130的輸入且b是偏項。在一些實施例中,每一個可連續微分的模型gn
(其中n是離散層級的數目)被表示為:
其中w
是權重,D是所述至少一個離散的權重的離散化步階,w sc
是步階之間的過渡尺度,e n
是使所述至少一個可連續微分的模型中的每一者通過原點的偏移量,且s
是經拉伸的S型函數。在一些實施例中,權重集合由所述集合中非負離散權重的數目減一(對於二進位而言為0、對於三進制而言為1等)來表徵。通過減小權重參數w sc
,權重函數變成對步階函數的越來越準確的近似。經拉伸S型函數可被表示為:s =
1/(1+e- w / w sc
)
以上可連續微分的模型112可用於離散的神經網路。在另一個實施例中,可使用其他硬體模型來反映神經網路120的其他方面。舉例來說,如果神經網路120是經修剪的類比神經網路,則可連續微分的模型112可被表示為:
其中(-D,D)定義零窗口。在步驟212中還可設定可允許權重的範圍。這一範圍可被選擇成使得初始值等效於純粹基於浮點的訓練,而最終值是對神經網路120的硬體的良好近似。
通過步驟214,執行訓練以使得包含第一個可連續微分的模型112-1。舉例來說,軟體訓練方法的標準啟動(例如,訓練函數114)可為a = f(wX + b),其中f是啟動權重,w是(浮點)權重,X是輸入且b是偏項。在方法210中可使用對包含可連續微分的模型的這一函數的類似形式。因此,對於方法210而言,啟動可使用下式表示為啟動函數:
a = f(gn
(w, X, ai
)X + b)
其中gn
是上述可連續微分的模型112,a是當前可連續微分的模型的真實性參數,i是反覆運算次數且b是偏項。偏項b以及權重可通過反覆運算方式確定。因此,用於下一次反覆運算的偏項可使用當前可連續微分的模型來確定。作為另外一種選擇,偏項可使用包括與當前可連續微分的模型不同的(例如,前一個或最末一個)可連續微分的模型的另一種機制來確定。
對於步驟214中的第一次反覆運算,可使用標準(未經修改的)啟動a = f(wX + b)。在其他實施例中,可使用標準啟動的輸出來計算步驟214中的第一次反覆運算的權重。對於方法210,假設第一次反覆運算使用來自上述啟動的權重作為初始權重。因此,步驟214中的第一次反覆運算可使用a = f(g(w, X, a1
)X + b),其中g(w, X, a1
)是可連續微分的模型112-1。步驟214也可包括例如使用反向傳播或使用採用梯度的類似方法來確定權重。由於可連續微分的模型112-1具有梯度,因此可使用這些方法。
通過步驟216,可哥選地驗證第一次反覆運算的結果。驗證可包括使用在步驟214中確定的權重及最末可連續微分的模型112-3來執行。在一些實施例中,也可應用訓練過程中的雜訊的模型作為驗證步驟的一部分。在其他實施例中,可能使用其他驗證機制和/或可在方法210結束時執行驗證。
通過步驟218,可反覆運算地重複步驟214及(可選地重複)216。在每一次反覆運算中,使用來自前一次反覆運算的權重且使用下一個可連續微分的模型112-2及112-3。每一個可連續微分的模型112-2及112-3可分別比前一可連續微分的模型112-1及112-2對神經網路120的硬體更準確地近似。因此,第二次反覆運算可使用在第一次反覆運算中確定的權重以及a = f(g(w, X, a2
)X + b),其中g(w, X, a2
)是可連續微分的模型112-2。第三次反覆運算可使用在第二次反覆運算中確定的權重以及a = f(g(w, X, a3
)X + b),其中g(w, X, a3
)是可連續微分的模型112-3。
舉例來說,圖5、圖6及圖7是繪示可連續微分的模型112的示例性實施例的曲線圖300、310及320。曲線圖300、310及320僅用於解釋目的且並非旨在進行限制或旨在繪示具體結果。每一個曲線圖300、310及320均包括表示實數的虛線。曲線圖300對應於模型112-1,曲線圖310對應於模型112-2且曲線圖320對應於模型112-3。點劃線302、312及322分別是離散權重的針對可連續微分的模型112-1、112-2及112-3的函數g(w, X, a1
)、g(w, X, a2
)及g(w, X, a3
)。因此,點劃線302、312及322是對離散權重的第一近似、第二近似及第三近似。每一個模型112-1、112-2及112-3均可連續微分。此由實線304、314及324示出,實線304、314及324分別是曲線302、312及322的梯度。如在圖5到圖7中可看出,每一個模型112-1/302、112-2/312及112-3/322均會改善對利用離散的權重的神經網路120的硬體的近似。
通過步驟220,當實現可接受的結果時,結束訓練。在一些實施例中,這會在執行的反覆運算次數少於可連續微分的模型112時發生。舉例來說,對於系統100來說,根據實現可接受的結果的快速程度而定,可執行兩次或三次反覆運算。在一些實施例中,當在具體反覆運算中確定的權重相對於在緊挨著的前一次反覆運算中確定的權重而言不超過閾值時,訓練結束。在一些這種實施例中,當在具體反覆運算中確定的權重相對於在緊挨著的前一次反覆運算中確定的權重小於閾值時,訓練結束。在其他實施例中,可使用其他結束條件。
通過步驟222,一旦已確定出可接受的權重,便將所述結果提供到神經網路120。因此,可完成對神經網路120的晶片外訓練。舉例來說,圖8及圖9繪示曲線圖330及340以及插圖350來表示浮點建模與使用方法200進行的訓練之間的差異。曲線圖330、340及350僅用於解釋目的且並非旨在表示具體神經網路。在曲線圖330、340及350中,點劃線332、342及352表示使用方法210計算的權重,而實線334、344及354表示使用傳統方法計算的權重。權重的離散值之間的邊界分別由最小值336、346及356表示。如在圖8到圖9中可看出,使用所述方法能使權重分成權重的離散值。
使用方法210,可實現神經網路120的推斷準確性的明顯改善。由於可連續微分的模型112提供對神經網路120的硬體的行為的近似,因此訓練系統100感知到被執行訓練的神經網路120的硬體。舉例來說,所述訓練將在神經網路120中使用的權重的離散性質併入其中。由於這種模型112是可微分的,因此可採用使用梯度的技術。因此,神經網路120的推斷準確性提高。由於可採用晶片外訓練,因此神經網路120可更小且更高效。在一些應用中,僅需要採用較少次數的反覆運算。
因此,使用方法200及210,可對神經網路120執行硬體感知訓練。因此,可實現推斷準確性的改善。已根據圖中所示示例性實施例闡述了所述方法及系統,且所屬領域中的一般技術人員將容易地認識到,可對實施例作出各種變化,且任何變化均處於所述方法及系統的精神及範圍內。因此,在不背離隨附權利要求書的精神及範圍的條件下,所屬領域中的一般技術人員可作出許多修改。
100‧‧‧系統/訓練系統
110‧‧‧訓練引擎
112‧‧‧可連續微分的模型/元件/模型
112-1‧‧‧可連續微分的模型/第一個可連續微分的模型/模型
112-2‧‧‧可連續微分的模型/第二個可連續微分的模型/模型
112-3‧‧‧可連續微分的模型/最末可連續微分的模型/模型
114‧‧‧訓練演算法/元件/訓練函數
120‧‧‧神經網路
130‧‧‧訓練資料/元件
150‧‧‧處理器
160‧‧‧資料儲存
170‧‧‧輸入/輸出裝置
200、210‧‧‧方法
202、204、212、214、216、218、220、222‧‧‧步驟
300、310、320、330、340‧‧‧曲線圖
302、312、322‧‧‧點劃線/曲線/模型
304、314、324、334、344、354‧‧‧實線
332、342、352‧‧‧點劃線
336、346、356‧‧‧最小值
350‧‧‧插圖/曲線圖
圖1是繪示用於使用可連續微分的模型來訓練神經網路的系統的示例性實施例的方塊圖。
圖2是用於使用可連續微分的模型來訓練神經網路的系統的示例性實施例的另一個方塊圖。
圖3是繪示用於使用可連續微分的模型來訓練神經網路的方法的示例性實施例的流程圖。
圖4是繪示用於使用可連續微分的模型來訓練神經網路的方法的另一個示例性實施例的流程圖。
圖5是繪示可連續微分的模型的示例性實施例的曲線圖。
圖6是繪示可連續微分的模型的另一個示例性實施例的曲線圖。
圖7是繪示可連續微分的模型的另一個示例性實施例的曲線圖。
圖8是繪示使用可連續微分的模型計算的權重的示例性實施例的曲線圖。
圖9是繪示使用可連續微分的模型計算的權重的示例性實施例的曲線圖。
100‧‧‧系統/訓練系統
110‧‧‧訓練引擎
112‧‧‧可連續微分的模型/元件/模型
112-1‧‧‧可連續微分的模型/第一個可連續微分的模型/模型
112-2‧‧‧可連續微分的模型/第二個可連續微分的模型/模型
112-3‧‧‧可連續微分的模型/最末可連續微分的模型/模型
114‧‧‧訓練演算法/元件/訓練函數
120‧‧‧神經網路
130‧‧‧訓練資料/元件
Claims (20)
- 一種用於訓練神經網路的方法,包括:經由資料儲存提供所述神經網路的至少一個可連續微分的模型,所述至少一個可連續微分的模型專用於所述神經網路的硬體;經由至少一個處理器使用所述至少一個可連續微分的模型以反覆運算方式訓練所述神經網路,以為所述神經網路提供至少一個輸出,每一次反覆運算均使用前一次反覆運算的至少一個輸出以及所述至少一個可連續微分的模型中的當前可連續微分的模型。
- 如申請專利範圍第1項所述的方法,其中所述至少一個可連續微分的模型中的第一個可連續微分的模型是軟體模型。
- 如申請專利範圍第1項所述的方法,其中所述神經網路的每一個當前可連續微分的模型比前一個可連續微分的模型提供對所述神經網路的所述硬體的更接近的近似。
- 如申請專利範圍第1項所述的方法,其中所述以反覆運算方式訓練的步驟更包括:使用所述至少一個輸出來執行反向傳播,以獲得至少一個權重,所述至少一個權重用於下一次反覆運算。
- 如申請專利範圍第4項所述的方法,其中所述以反覆運算方式訓練的步驟更包括:如果所述至少一個權重相對於至少一個先前權重不大於至少一個閾值,則結束。
- 如申請專利範圍第4項所述的方法,其中所述可連續微分的模型是基於所述至少一個權重及所述以反覆運算方式訓練的步驟的至少一個輸入。
- 如申請專利範圍第6項所述的方法,其中所述以反覆運算方式訓練的步驟的啟動函數是所述當前可連續微分的模型、所述至少一個輸入、所述當前可連續微分的模型的真實性參數及偏項的函數。
- 如申請專利範圍第7項所述的方法,其中所述以反覆運算方式訓練的步驟更包括:使用所述當前可連續微分的模型來確定所述偏項。
- 如申請專利範圍第7項所述的方法,其中所述以反覆運算方式訓練的步驟更包括:使用與所述當前可連續微分的模型不同的至少一個其他可連續微分的模型來確定所述偏項。
- 如申請專利範圍第6項所述的方法,其中所述神經網路利用至少一個離散的權重。
- 如申請專利範圍第11項所述的方法,其中所述經拉伸的S型函數被表示為σ=1/(1+e-ω/ωsc )。
- 如申請專利範圍第1項所述的方法,其中所述以反覆運算方式訓練的步驟更包括:在每一次反覆運算後,使用所述至少一個可連續微分的模型中的最末可連續微分的模型來驗證至少一個權重。
- 如申請專利範圍第13項所述的方法,其中所述驗證的步驟包括應用過程雜訊模型。
- 如申請專利範圍第1項所述的方法,其中所述以反覆運算方式訓練的步驟更包括:對至少一個啟動及至少一個權重應用所述當前可連續微分的模型。
- 如申請專利範圍第1項所述的方法,其中所述以反覆運算方式訓練的步驟對於所述神經網路而言是在晶片外進行的,所述方法更包括:將至少一個最終輸出提供到所述神經網路。
- 如申請專利範圍第1項所述的方法,其中所述至少一個可連續微分的模型被表示為:g prune (ω,△,ω sc )=2ω△.[σ(ω,△,ω sc )+σ(ω,△,-ω sc )]其中ω是權重,(-△,△)定義零窗口,ω sc 是步階之間的過渡尺度,且σ是經拉伸的S型函數。
- 一種用於訓練神經網路的方法,包括:經由資料儲存提供所述神經網路的至少一個可連續微分的模 型,所述至少一個可連續微分的模型專用於所述神經網路的硬體,所述神經網路使用多個離散的權重;經由至少一個處理器使用所述至少一個可連續微分的模型以反覆運算方式訓練所述神經網路,以為所述神經網路提供至少一個輸出,每一次反覆運算均使用前一次反覆運算的至少一個輸出及所述至少一個可連續微分的模型中的當前可連續微分的模型,所述當前可連續微分的模型比所述至少一個可連續微分的模型中的前一個可連續微分的模型提供對所述神經網路的所述硬體的更接近的近似,所述以反覆運算方式訓練的步驟更包括:在第一次反覆運算中使用所述神經網路的軟體模型作為第一個可連續微分的模型;使用每一次反覆運算的至少一個輸出來執行反向傳播,以獲得每一次反覆運算的至少一個權重;對於每一次反覆運算,對來自前一次反覆運算的所述至少一個權重應用以下函數(f)即f(g(ω,x,α)X+b)):由所述當前可連續微分的模型乘以至少一個輸入再加上偏項,其中g是所述當前可連續微分的模型,ω是當前反覆運算的所述至少一個權重,X是所述至少一個輸入且b是偏項,α是表示與所述神經網路的所述硬體的接近度的真實性參數,且其中所述當前可連續微分的模型是
- 一種使用至少一個計算裝置構建的神經網路訓練系統,所述至少一個計算裝置包括至少一個處理器及記憶體,所述訓練系統包括:所述神經網路的至少一個可連續微分的模型,所述可連續微分的模型中的每一者專用於所述神經網路的硬體;訓練子系統,以反覆運算方式使用所述神經網路的所述至少一個可連續微分的模型及至少一個輸入,所述訓練子系統被配置成使得每一次反覆運算均使用前一次反覆運算的至少一個輸出且所述至少一個可連續微分的模型中的當前可連續微分的模型比所述至少一個可連續微分的模型中的前一個可連續微分的模型更接近所述神經網路的所述硬體。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862664142P | 2018-04-28 | 2018-04-28 | |
US201862664102P | 2018-04-28 | 2018-04-28 | |
US62/664,102 | 2018-04-28 | ||
US62/664,142 | 2018-04-28 | ||
US16/122,789 US11574193B2 (en) | 2018-04-28 | 2018-09-05 | Method and system for training of neural networks using continuously differentiable models |
US16/122,789 | 2018-09-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201945984A TW201945984A (zh) | 2019-12-01 |
TWI806987B true TWI806987B (zh) | 2023-07-01 |
Family
ID=68292509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108108359A TWI806987B (zh) | 2018-04-28 | 2019-03-13 | 用於訓練神經網路的方法及神經網路訓練系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11574193B2 (zh) |
KR (1) | KR20190134965A (zh) |
CN (1) | CN110414664A (zh) |
TW (1) | TWI806987B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110879859A (zh) * | 2019-11-23 | 2020-03-13 | 安徽大学 | 一种保存序列关联关系的属性网络表示学习方法 |
US20210390414A1 (en) * | 2020-06-10 | 2021-12-16 | Nvidia Corporation | Accelerated training for neural network models |
KR102409476B1 (ko) | 2020-10-20 | 2022-06-14 | 연세대학교 산학협력단 | 인공 신경망을 위한 양자화기 및 이의 손실 역전파 방법 |
KR20220051947A (ko) | 2020-10-20 | 2022-04-27 | 연세대학교 산학협력단 | 인공 신경망을 위한 양자화기 및 양자화 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130041859A1 (en) * | 2011-08-11 | 2013-02-14 | Greenray Industries, Inc. | Neural network frequency control |
TW201737202A (zh) * | 2016-03-31 | 2017-10-16 | Alibaba Group Services Ltd | 類Alexnet網路的模型訓練方法和裝置 |
CN107798388A (zh) * | 2017-11-23 | 2018-03-13 | 航天天绘科技有限公司 | 基于Multi‑Agent与DNN的测控资源调度分配的方法 |
TW201812646A (zh) * | 2016-07-18 | 2018-04-01 | 美商南坦奧美克公司 | 分散式機器學習系統、分散式機器學習方法、以及產生代用資料之方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5052043A (en) * | 1990-05-07 | 1991-09-24 | Eastman Kodak Company | Neural network with back propagation controlled through an output confidence measure |
US6119112A (en) * | 1997-11-19 | 2000-09-12 | International Business Machines Corporation | Optimum cessation of training in neural networks |
US6269351B1 (en) * | 1999-03-31 | 2001-07-31 | Dryken Technologies, Inc. | Method and system for training an artificial neural network |
IES20020063A2 (en) * | 2001-01-31 | 2002-08-07 | Predictions Dynamics Ltd | Neutral network training |
US9508347B2 (en) | 2013-07-10 | 2016-11-29 | Tencent Technology (Shenzhen) Company Limited | Method and device for parallel processing in model training |
US11049006B2 (en) | 2014-09-12 | 2021-06-29 | Microsoft Technology Licensing, Llc | Computing system for training neural networks |
US10460837B1 (en) * | 2015-02-06 | 2019-10-29 | Brain Trust Innovations I, Llc | Baggage system, RFID chip, server and method for capturing baggage data |
CN106203616A (zh) * | 2015-05-04 | 2016-12-07 | 富士通株式会社 | 神经网络模型训练装置和方法 |
US10474950B2 (en) | 2015-06-29 | 2019-11-12 | Microsoft Technology Licensing, Llc | Training and operation of computational models |
US10528038B2 (en) * | 2016-01-14 | 2020-01-07 | Rockwell Automation Technologies, Inc. | Optimization-based control with open modeling architecture systems and methods |
US11288573B2 (en) | 2016-05-05 | 2022-03-29 | Baidu Usa Llc | Method and system for training and neural network models for large number of discrete features for information rertieval |
CN106560848B (zh) * | 2016-10-09 | 2021-05-11 | 辽宁工程技术大学 | 模拟生物双向认知能力的新型神经网络模型及训练方法 |
US10656962B2 (en) | 2016-10-21 | 2020-05-19 | International Business Machines Corporation | Accelerate deep neural network in an FPGA |
US10949736B2 (en) * | 2016-11-03 | 2021-03-16 | Intel Corporation | Flexible neural network accelerator and methods therefor |
CN106773719A (zh) * | 2017-01-25 | 2017-05-31 | 上海云剑信息技术有限公司 | 一种基于bp神经网络的工业控制系统漏洞自动挖掘方法 |
US9785886B1 (en) * | 2017-04-17 | 2017-10-10 | SparkCognition, Inc. | Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation |
CN107133668A (zh) * | 2017-04-28 | 2017-09-05 | 北京大学 | 一种基于模糊玻尔兹曼机的忆阻神经网络训练方法 |
US10963790B2 (en) * | 2017-04-28 | 2021-03-30 | SparkCognition, Inc. | Pre-processing for data-driven model creation |
CN107301457A (zh) * | 2017-06-26 | 2017-10-27 | 西北工业大学 | 基于节点输入约束的全连接深度学习模型快速训练方法 |
US11043205B1 (en) * | 2017-06-27 | 2021-06-22 | Amazon Technologies, Inc. | Scoring of natural language processing hypotheses |
CN107679618B (zh) * | 2017-07-28 | 2021-06-11 | 赛灵思电子科技(北京)有限公司 | 一种静态策略定点化训练方法及装置 |
CN107688849B (zh) * | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
US10380788B2 (en) * | 2017-10-12 | 2019-08-13 | Ohio State Innovation Foundation | Fast and precise object alignment and 3D shape reconstruction from a single 2D image |
US10592732B1 (en) * | 2017-12-14 | 2020-03-17 | Perceive Corporation | Probabilistic loss function for training network with triplets |
-
2018
- 2018-09-05 US US16/122,789 patent/US11574193B2/en active Active
- 2018-10-18 KR KR1020180124534A patent/KR20190134965A/ko active Search and Examination
-
2019
- 2019-03-13 TW TW108108359A patent/TWI806987B/zh active
- 2019-03-22 CN CN201910223103.7A patent/CN110414664A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130041859A1 (en) * | 2011-08-11 | 2013-02-14 | Greenray Industries, Inc. | Neural network frequency control |
TW201737202A (zh) * | 2016-03-31 | 2017-10-16 | Alibaba Group Services Ltd | 類Alexnet網路的模型訓練方法和裝置 |
TW201812646A (zh) * | 2016-07-18 | 2018-04-01 | 美商南坦奧美克公司 | 分散式機器學習系統、分散式機器學習方法、以及產生代用資料之方法 |
CN107798388A (zh) * | 2017-11-23 | 2018-03-13 | 航天天绘科技有限公司 | 基于Multi‑Agent与DNN的测控资源调度分配的方法 |
Non-Patent Citations (1)
Title |
---|
網路文獻 Reagen et al. Minerva: Enabling Low-Power, Highly-Accurate Deep Neural Network Accelerators June 2016 https://www.researchgate.net/publication/309145872_Minerva_Enabling_Low-Power_Highly-Accurate_Deep_Neural_Network_Accelerators * |
Also Published As
Publication number | Publication date |
---|---|
CN110414664A (zh) | 2019-11-05 |
KR20190134965A (ko) | 2019-12-05 |
TW201945984A (zh) | 2019-12-01 |
US20190332943A1 (en) | 2019-10-31 |
US11574193B2 (en) | 2023-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI806987B (zh) | 用於訓練神經網路的方法及神經網路訓練系統 | |
CN110503192B (zh) | 资源有效的神经架构 | |
CN107679618B (zh) | 一种静态策略定点化训练方法及装置 | |
CN107688849B (zh) | 一种动态策略定点化训练方法及装置 | |
US10762426B2 (en) | Multi-iteration compression for deep neural networks | |
KR102410820B1 (ko) | 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치 | |
US10896370B2 (en) | Triage of training data for acceleration of large-scale machine learning | |
US11593611B2 (en) | Neural network cooperation | |
CN107622303B (zh) | 用于神经网络的方法和执行该方法的设备 | |
US20190050734A1 (en) | Compression method of deep neural networks | |
Mishra et al. | Enhancing accuracy of deep learning algorithms by training with low-discrepancy sequences | |
KR20200045128A (ko) | 모델 학습 방법 및 장치, 및 데이터 인식 방법 | |
CN110084357B (zh) | 经由选择性修剪来加速长短期记忆网络 | |
US20230325673A1 (en) | Neural network training utilizing loss functions reflecting neighbor token dependencies | |
KR20200128938A (ko) | 모델 학습 방법 및 장치 | |
CN111160000B (zh) | 作文自动评分方法、装置终端设备及存储介质 | |
CN115398450A (zh) | 使用基于样本的正则化技术的迁移学习设备和方法 | |
KR20200110064A (ko) | 변환 모델을 이용한 인증 방법 및 장치 | |
Naveen | Phish: A novel hyper-optimizable activation function | |
KR102505946B1 (ko) | 인공신경망 모델 학습 방법 및 시스템 | |
CN116075820A (zh) | 用于搜索图像数据库的方法、非暂时性计算机可读存储介质和设备 | |
KR20220058189A (ko) | 뉴럴 네트워크를 이용한 분류 방법 및 장치 | |
Ali et al. | High Accuracy Arabic Handwritten Characters Recognition Using Error Back Propagation Artificial Neural Networks | |
CN116457794A (zh) | 用于神经网络模型的组平衡式稀疏激活特征图 | |
US20200380355A1 (en) | Classification apparatus and method for optimizing throughput of classification models |