本發(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維元素,
步驟(2)對步驟(1)中得到的所述第l-1層的線性定點量化的激活向量x*(l-1)中的每個激活值進一步分級,即將所述每個激活值近似為最為鄰近的2的整次冪,最終得到所述第l-1層的分級定點量化激活向量
所述第l-1層的分級定點量化激活向量
其中,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)的絕對值最大的元素值,
步驟(4)根據(jù)如下公式,進行dnn第l層的前饋計算:
a(l)=w*(l)·x**(l-1)
其中,x**(l-1)為第l-1層的分級定點量化的激活向量;w*(l)為線性定點量化后的浮點型權(quán)值矩陣;a(l)為臨時變量;
a(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維元素,
步驟(2)對步驟(1)中得到的所述第1層的線性定點量化的激活向量x*(1)中的每個激活值進一步分級,即將所述每個激活值近似為最為鄰近的2的整次冪,最終得到所述第1層的分級定點量化激活向量
所述第1層的分級定點量化激活向量
其中,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)的絕對值最大的元素值,
步驟(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層是輸出層,則
其中,e為自然常數(shù),yi為向量y的第i維元素,xi和xk分別為向量x的第i維和第k維元素,
在公式(5)中,a(2)先與解量化因子
如果判斷第2層不是輸出層,則得到第2層的浮點型激活向量x(2),用于第3層的計算。
基于上述的定點量化方法,dnn前饋計算中當(dāng)前層的權(quán)值矩陣與上一層的激活向量相乘可以進一步簡化,以整個網(wǎng)絡(luò)的第2層的前饋計算為例:
a(2)=w*(2)·x**(1)
其中
其中,
在計算機或者其他嵌入式系統(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)中。