亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種神經(jīng)網(wǎng)絡(luò)聲學(xué)模型激活函數(shù)定點量化方法與流程

文檔序號:12035271閱讀:992來源:國知局
一種神經(jīng)網(wǎng)絡(luò)聲學(xué)模型激活函數(shù)定點量化方法與流程

本發(fā)明涉及語音識別技術(shù)領(lǐng)域,特別涉及一種神經(jīng)網(wǎng)絡(luò)聲學(xué)模型激活函數(shù)定點量化方法。



背景技術(shù):

在語音識別領(lǐng)域,利用深層神經(jīng)網(wǎng)絡(luò)(deepneuralnetwork,dnn)進行聲學(xué)建模取得了很好的效果。dnn的深層結(jié)構(gòu)使得模型具有很強的學(xué)習(xí)能力,同時需要大量的浮點數(shù)乘加運算,dnn的主要運算用如下公式:

x(l)=σ(w(l)·x(l-1))

其中,l為層數(shù),x(l)為第l層的激活向量,w(l)為第l層的權(quán)值矩陣,x(l-1)為第l-1層的激活向量,σ(·)為激活函數(shù);其一般采用的是sigmoid函數(shù),如下:

其中,e-x為指數(shù)運算。

對dnn模型進行定點量化的方法被用來降低浮點運算量,其原理如下:

由于sigmoid函數(shù)σ(x)∈(0,1),可以將浮點型激活值使用無符號8位定點整數(shù)表示,即將激活值線性地量化為0~256的整數(shù)(為了簡潔,以下公式中不含表示層數(shù)的上標(biāo)):

x*=round(x·256)

其中,x*為經(jīng)過線性定點量化后的激活向量,round(·)為四舍五入取整操作。

同時,將權(quán)值矩陣使用有符號8位定點整數(shù)表示,即將權(quán)值線性地量化為-127~127的整數(shù),用如下兩個公式(為了簡潔,以下公式中不含表示層數(shù)的上標(biāo)):

wmax=max(|w|)

其中,w為權(quán)值矩陣,max(|w|)為取出矩陣w中的絕對值最大的元素值,wmax為權(quán)值矩陣w中所有元素中的絕對值最大值,w*為線性定點量化后的權(quán)值矩陣。

對模型的定點量化以后,原本的浮點運算就可以轉(zhuǎn)變?yōu)槎c運算,從而節(jié)省計算成本。模型從浮點轉(zhuǎn)為定點之后,由于數(shù)據(jù)精度的降低,模型的性能也會略有降低,另一方面,即使經(jīng)過定點量化把浮點運算轉(zhuǎn)化為定點運算,乘法的數(shù)量沒有減少,dnn模型依然需要大量的定點乘加運算。因此,要在計算資源有限,尤其是乘 法器數(shù)量有限的嵌入式設(shè)備上應(yīng)用dnn進行語音識別的聲學(xué)建模十分困難。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的在于,為解決現(xiàn)有的定點量化方法不能降低乘法運算數(shù)量的缺陷,本發(fā)明提供了一種神經(jīng)網(wǎng)絡(luò)聲學(xué)模型激活函數(shù)定點量化方法,該方法具體包括:

步驟(1)在dnn模型的第l層,將所述第l-1層的浮點激活向量中x(l-1)=[x1,…,xn]t的每個浮點激活值線性地量化為0~2k的整數(shù),k為量化的級數(shù),得到所述第l-1層的線性定點量化的激活向量

其中,

其中,xi為第l-1層的浮點激活向量x(l-1)的第i維元素,為第l-1層的線性定點量化的激活向量x*(l-1)的第i維元素;

步驟(2)對步驟(1)中得到的所述第l-1層的線性定點量化的激活向量x*(l-1)中的每個激活值進一步分級,即將所述每個激活值近似為最為鄰近的2的整次冪,最終得到所述第l-1層的分級定點量化激活向量

所述第l-1層的分級定點量化激活向量中的任意一個元素的取值需滿足:

具體對應(yīng)關(guān)系如下:

其中,x*(l-1)為第l-1層的線性定點化的激活向量中的元素,x**(l-1)為第l-1層分級定點量化的激活向量中的元素,分別表示向上取整和向下取整。

步驟(3)根據(jù)如下公式對第l層進行線性定點量化,即將該層浮點型權(quán)值矩陣w(l)的權(quán)值wi,j線性地量化為-127到127間的整數(shù):

其中,w(l)為包含第l層的權(quán)值wi,j(其中i=1,…,m,j=1,…,n)的浮點型權(quán)值矩陣,即

max(|w(l)|)為取出矩陣w(l)的絕對值最大的元素值,為第l層權(quán)值矩陣w(l)中所有元素中的絕對值最大值,w*(l)為線性定點量化后的浮點型權(quán)值矩陣,round(·)為四舍五入取整操作。

步驟(4)根據(jù)如下公式,進行dnn第l層的前饋計算:

a(l)=w*(l)·x**(l-1)

其中,x**(l-1)為第l-1層的分級定點量化的激活向量;w*(l)為線性定點量化后的浮點型權(quán)值矩陣;a(l)為臨時變量;

a(l)先與解量化因子相乘,再通過sigmoid函數(shù)σ(·),最終得到第l層的浮點型激活向量x(l)。

本發(fā)明的優(yōu)點在于:本發(fā)明可以將dnn前饋計算中的大量乘法運算用整數(shù)移位操作替代,大大降低了dnn計算對于計算資源,尤其是乘法器的需求;簡化dnn前饋計算中的權(quán)值矩陣與激活向量的乘法。

附圖說明

圖1是本發(fā)明的神經(jīng)網(wǎng)絡(luò)激活函數(shù)定點量化方法的流程圖

圖2是實施例中采用的dnn結(jié)構(gòu)示意圖

具體實施方式

以下結(jié)合附圖對本發(fā)明作進一步的詳細(xì)說明。

本發(fā)明提供了一種神經(jīng)網(wǎng)絡(luò)聲學(xué)模型激活函數(shù)定點量化方法,將dnn的激活值 量化為2的整次冪,通過這種方式,dnn運算中,權(quán)值矩陣和激活向量相乘中的定點乘法運算都可以替換成定點數(shù)的移位操作。

在本實施例中,進行試驗的實驗環(huán)境為:輸入特征向量包含572維,具體來講,輸入特征為52維感知線性預(yù)測(plp)特征,并做了前后各5幀的上下文擴展,最終得到52*11=572維的輸入向量,輸入層的權(quán)值矩陣規(guī)模為2048*572。另外,dnn的2個隱層各自包含2048*2048規(guī)模的權(quán)值矩陣,輸出層的權(quán)值矩陣規(guī)模為19508*2048,輸出向量共有19508維,對應(yīng)于綁定后的上下文相關(guān)音素狀態(tài)。語音識別任務(wù)使用的是中文測試集,共有3000小時語音數(shù)據(jù)作為訓(xùn)練集,2小時數(shù)據(jù)作為測試集。

在本實施例中,如圖2所示,所述dnn模型共有4層,以第2層為例,現(xiàn)給出具體的實施方案,如圖1所示:

步驟(1)在dnn模型的第2層,將所述第1層的浮點激活向量中x(1)=[x1,…,xn]t的每個浮點激活值線性地量化為0~2k的整數(shù),k為量化的級數(shù),得到所述第1層的線性定點量化的激活向量

其中,

其中,xi為第1層的浮點激活向量x(1)的第i維元素,為第1層的線性定點量化的激活向量x*(1)的第i維元素;

步驟(2)對步驟(1)中得到的所述第1層的線性定點量化的激活向量x*(1)中的每個激活值進一步分級,即將所述每個激活值近似為最為鄰近的2的整次冪,最終得到所述第1層的分級定點量化激活向量

所述第1層的分級定點量化激活向量中的任意一個元素的取值需滿足:

具體對應(yīng)關(guān)系如下:

其中,x*(1)為第1層的線性定點化的激活向量中的元素,x**(1)為第1層分級定點量化的激活向量中的元素,分別表示向上取整和向下取整。

步驟(3)根據(jù)公式(2)和(3),對第2層進行線性定點量化,即將該層浮點型權(quán)值矩陣w(2)的權(quán)值wm,n線性地量化為-127到127間的整數(shù):

其中,w(2)為包含第2層的權(quán)值wi,j(其中i=1,…,m,j=1,…,n)的浮點型權(quán)值矩陣,規(guī)模為m×n即

max(|w(2)|)為取出矩陣w(2)的絕對值最大的元素值,為第2層權(quán)值矩陣w(2)中所有元素中的絕對值最大值,w*(2)為線性定點量化后的浮點型權(quán)值矩陣,round(·)為四舍五入取整操作。

步驟(4)根據(jù)公式(4)和(5),進行dnn第2層的前饋計算:

a(2)=w*(2)·x**(1)(4)

其中,x**(1)為第1層的分級定點量化的激活向量;w*(2)為線性定點量化后的浮點型權(quán)值矩陣;a(2)為臨時變量;

如圖1所示,根據(jù)計算機語言,如果判斷第2層是輸出層,則為dnn輸出層,即本實施例中第2層的激活函數(shù),通常使用softmax函數(shù),具體如公式(6-1)和(6-2)所示:

其中,e為自然常數(shù),yi為向量y的第i維元素,xi和xk分別為向量x的第i維和第k維元素,均為指數(shù)運算,n為向量x和y的維數(shù)。

在公式(5)中,a(2)先與解量化因子相乘,再通過所述sigmoid函數(shù)σ(·),最終得到第2層的浮點型激活向量x(2),即整個dnn的輸出向量。

如果判斷第2層不是輸出層,則得到第2層的浮點型激活向量x(2),用于第3層的計算。

基于上述的定點量化方法,dnn前饋計算中當(dāng)前層的權(quán)值矩陣與上一層的激活向量相乘可以進一步簡化,以整個網(wǎng)絡(luò)的第2層的前饋計算為例:

a(2)=w*(2)·x**(1)

其中m=n=2048,具體的計算方法為:

其中,為臨時向量a(2)的第i維元素,為第二層線性量化后的權(quán)值矩陣的第i行第j列的元素,即連接第2層第j個神經(jīng)元和第1層第i個神經(jīng)元的權(quán)值,為第一層分級量化后的激活向量的第j維元素,n為向量x**(1)的維數(shù),即第1層神經(jīng)元的個數(shù);

假設(shè)其中,

在計算機或者其他嵌入式系統(tǒng)中,對于整數(shù)y和x,有y·2x=y(tǒng)<<x,其中“<<”為左移操作,因此上面計算可以變?yōu)椋?/p>

即原本矩陣乘向量中的乘法運算,全部被移位操作替代,這大大降低了dnn計算對于計算資源,尤其是乘法器的需求。

下面對本實施例的性能進行分析。

利用測試集測試各個模型的字錯誤率(worderrorrate,wer),模型分別為原始的浮點模型,線性定點量化模型(權(quán)值和激活值經(jīng)過線性定點量化)和不同k值的分級定點量化模型(權(quán)值為線性定點量化,激活值為分級定點量化);

字錯誤率的計算公式如下:

實驗結(jié)果見表1:

表1

由實驗結(jié)果可以看出,對定點量化模型進行進一步的分級量化,性能并沒有明顯的下降,值得注意的是k=5時,分級量化模型的性能甚至優(yōu)于定點量化模型,與原始的浮點模型性能接近。新引入的對于激活值的分級量化,在沒有帶來明顯性能損失的前提下,將dnn前饋計算中的絕大多數(shù)乘法運算替換成了移位操作,大大降低了將dnn應(yīng)用于嵌入式系統(tǒng)的計算資源需求,尤其是對于乘法器數(shù)量的要求。

最后需要說明的是,具體實施方式中所述的實驗用圖僅用來說明本發(fā)明的技術(shù)方案軟件算法的可行性而非局限于此例,算法已經(jīng)經(jīng)過大量實驗數(shù)據(jù)驗證,是真實可靠的,搭配硬件便可實現(xiàn)本發(fā)明的技術(shù)方案。盡管參照實施例對本發(fā)明進行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1