劉禮文 俞弦
【摘 要】循環(huán)神經(jīng)網(wǎng)絡(luò)是一種具有記憶功能的神經(jīng)網(wǎng)絡(luò),適合序列數(shù)據(jù)的建模。它在語音識別和自然語言處理等領(lǐng)域具有較強(qiáng)的應(yīng)用。本文主要對循環(huán)神經(jīng)網(wǎng)絡(luò)的模型、訓(xùn)練和應(yīng)用領(lǐng)域做了初步的探索。
【關(guān)鍵詞】循環(huán)神經(jīng)網(wǎng)絡(luò);訓(xùn)練;應(yīng)用
中圖分類號: TP391.1文獻(xiàn)標(biāo)識碼: A文章編號: 2095-2457(2019)32-0054-002
DOI:10.19694/j.cnki.issn2095-2457.2019.32.022
循環(huán)神經(jīng)網(wǎng)絡(luò)-RNN(Recurrent Neuron Network)的主要用途是處理和預(yù)測序列數(shù)據(jù),是一種對序列數(shù)據(jù)建模的神經(jīng)網(wǎng)絡(luò),即一個序列當(dāng)前的輸出與前面的輸出也有關(guān)。從網(wǎng)絡(luò)結(jié)構(gòu)上,循環(huán)神經(jīng)網(wǎng)絡(luò)會記憶之前的信息,并利用之前的信息影響后面結(jié)點(diǎn)的輸出。
1 RNN模型
RNN模型如下圖所示,其中x是輸入,U是輸出層到隱含層的權(quán)重,s是隱含層值,W則是上個時刻隱含層作為這個時刻輸入的權(quán)重,V是隱含層到輸出層的權(quán)重,o是輸出。
圖1
將上圖展開,輸入x、隱層值s和輸出o都有了下標(biāo)t,這個t表示時刻,t-1是上一時刻,t+1則是下一時刻。不同時刻輸入對應(yīng)不同的輸出,而且上一時刻的隱含層會影響當(dāng)前時刻的輸出。
2 RNN的正向計算
設(shè)輸出層的輸入為nett,則很容易可以得到輸出,
nett=Vst
ot=σ(nett)
其中σ是激活函數(shù),再設(shè)隱含層的輸入為h
ht=Uxt+Wst-1
st=σ(ht)
可以繼續(xù)往前一個時刻推,有
st=σ(Uxt+Wσ(Uxt-1+Wst-2))
而t-2時刻又可以用t-3時刻來表示,從這就可以看出循環(huán)神經(jīng)網(wǎng)絡(luò)具有記憶,可以往前看任意個輸入。
3 RNN的訓(xùn)練
通過下面實現(xiàn)梯度下降訓(xùn)練。
假設(shè)損失函數(shù)為E
在t時刻,根據(jù)誤差逆?zhèn)鞑?,?/p>
■=■■=E'(o■)σ'(net■)
首先,對V求導(dǎo),每個時刻t的誤差與當(dāng)前時刻的誤差相關(guān),則
■=■■=■St
其次,對W求導(dǎo),對于一個訓(xùn)練樣本,所有時刻的誤差加起來才是這個樣本的誤差,某時刻t對W求偏導(dǎo)為,
■=■■■
其中,st=σ(Uxt+Wσ(Uxt-1+Wst-2))一直依賴上個時刻,某個樣本的總誤差是需要所有時刻加起來,不斷對某個時刻進(jìn)行求偏導(dǎo),誤差一直反向傳播到t為0時刻,則
■=∑■■■■■
其中■根據(jù)鏈?zhǔn)椒▌t是會一直乘到k時刻,k可以是0、1、2…,那么上式可以表示成,■=∑■■■■■■
最后,對U求導(dǎo),■=■■=■xt
4 RNN 的應(yīng)用
4.1 情感分析
循環(huán)神經(jīng)網(wǎng)絡(luò)用于情感分析主要思路是利用情感分析數(shù)據(jù)集,通過原始語料的預(yù)處理,將詞轉(zhuǎn)化為計算機(jī)可以處理的向量,進(jìn)行向量化的特征提取,利用循環(huán)神經(jīng)網(wǎng)絡(luò)將矩陣形式的輸入編碼為較低維度的一維向量,而保留大多數(shù)有用信息,經(jīng)過循環(huán)神經(jīng)網(wǎng)的訓(xùn)練,構(gòu)建情感分析分類器,實現(xiàn)定性分類,得到可以預(yù)測的模型,進(jìn)而實現(xiàn)情感的分析。比如輸入一個句子,輸出的對于這句話的情感的分析。傳統(tǒng)的情感分析法方法簡單易懂穩(wěn)定性也比較強(qiáng),相較于傳統(tǒng)情感分析的方法,利用循環(huán)神經(jīng)網(wǎng)絡(luò)來進(jìn)行情感分析,一方面能提高精度,另一方面評價更客觀,人為因素干擾更小。
4.2 提取關(guān)鍵詞
基于循環(huán)神經(jīng)網(wǎng)絡(luò)的關(guān)鍵詞提取方法相對于其他方法更加有效,其主要是利用循環(huán)神經(jīng)網(wǎng)絡(luò)具有自動學(xué)習(xí)的特征,將學(xué)習(xí)的特征納入模型構(gòu)建過程中,避免了人為設(shè)定特征的干擾。此外,利用循環(huán)神經(jīng)網(wǎng)絡(luò),可以將處理對象的上下文信息都考慮在內(nèi),能更好地利用詞語的語義信息。利用循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行關(guān)鍵詞提取還有有個特點(diǎn),就是能存儲歷史信息,這樣更有助于預(yù)測關(guān)鍵詞的概率。
4.3 語音識別
語音識別的困難之處在于輸入語音信號序列中每個發(fā)音單元的起始位置和終止位置是未知的,即不知道輸出序列和輸入序列之間的對齊關(guān)系。循環(huán)神經(jīng)網(wǎng)絡(luò)具有可以接受不固定長度的序列數(shù)據(jù)作為輸入的優(yōu)勢,可實現(xiàn)輸出的長度小于輸入的長度,而且具有記憶功能。這樣以來,將輸入分割成小的向量,之后進(jìn)行訓(xùn)練,可以把重復(fù)出現(xiàn)的字去掉,獲得最后的結(jié)果
4.4 機(jī)器翻譯
機(jī)器翻譯就是從源語言到目標(biāo)語言中找到一個最佳匹配的過程。傳統(tǒng)機(jī)器翻譯方法需要大量的人力和時間去構(gòu)造翻譯系統(tǒng),從對源語言的編碼,對目標(biāo)語言的解碼,中間需要多個學(xué)習(xí)模型。利用循環(huán)神經(jīng)網(wǎng)絡(luò),將要翻譯的內(nèi)容通過RNN編碼成一個固定維度的向量,并將結(jié)果作為輸入,再通過RNN進(jìn)行解碼翻譯。這樣不僅可以提高翻譯質(zhì)量,還可以實現(xiàn)對語言只使用一個系統(tǒng),而不不要針對每種語言都構(gòu)造一種新的學(xué)習(xí)模型。
4.5 自編碼器
自編碼器的基本思想就是實現(xiàn)對原始數(shù)據(jù)進(jìn)行特征提取,最終濃縮為更精煉、數(shù)量更少的特征,進(jìn)而便于后續(xù)數(shù)據(jù)的處理。它是一種無監(jiān)督學(xué)習(xí)技術(shù),利用神經(jīng)網(wǎng)絡(luò)來開展表征學(xué)習(xí)。利用循環(huán)神經(jīng)網(wǎng)絡(luò)也可以構(gòu)建自編碼器,這些可以用來實現(xiàn)異常監(jiān)測、數(shù)據(jù)去燥、數(shù)據(jù)降維、圖像修復(fù)、信息檢索等功能。此外,利用自編碼的方法,還可以實現(xiàn)對文本中句子的語義進(jìn)行提取。
【參考文獻(xiàn)】
[1]葛垚,陳瑞,童瑩,曹雪虹.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的非特定目標(biāo)追蹤方法研究[J].南京郵電大學(xué)學(xué)報(自然科學(xué)版),2019(04):103-110.
[2]唐美麗,胡瓊,馬廷淮.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的語音識別研究[J].現(xiàn)代電子技術(shù),2019,42(14):152-156.
[3]楊麗,吳雨茜,王俊麗,劉義理.循環(huán)神經(jīng)網(wǎng)絡(luò)研究綜述[J].計算機(jī)應(yīng)用,2018,38(S2):1-6+26.
[4]陳波.基于循環(huán)結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)文本分類方法[J].重慶郵電大學(xué)學(xué)報(自然科學(xué)版),2018,30(05):705-710.
[5]梁丕軍.基于循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的中文情感分類研究[D].湖南大學(xué),2017.
[6]曾誰飛,張笑燕,杜曉峰,陸天波.基于神經(jīng)網(wǎng)絡(luò)的文本表示模型新方法[J].通信學(xué)報,2017,38(04):86-98.