国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于遞歸神經(jīng)網(wǎng)絡(luò)的英譯漢機(jī)器翻譯模型設(shè)計(jì)與實(shí)現(xiàn)

2021-12-01 07:56:40樊同科
計(jì)算機(jī)測(cè)量與控制 2021年11期
關(guān)鍵詞:解碼器編碼器漢語

楊 璐,樊同科

(1.西安外事學(xué)院 國際合作學(xué)院,西安 710077;2.西安外事學(xué)院 工學(xué)院,西安 710077)

0 引言

翻譯是將一種語言轉(zhuǎn)換成另一種語言,翻譯可以是逐字翻譯,也可以是逐句翻譯。在逐句翻譯中,獲得的信息比逐字翻譯要多[1]。漢語是世界上使用人數(shù)是最多的語言,其使用人口約為14億。機(jī)器翻譯長于文本或者語音翻譯,因此機(jī)器翻譯系統(tǒng)在快節(jié)奏的語言交流領(lǐng)域扮演者重要作用[2]。與此同時(shí),機(jī)器翻譯是開放系統(tǒng),具有泛化學(xué)習(xí)能力,隨著新數(shù)據(jù)添加到模型,能夠進(jìn)行獨(dú)立的更新替換。機(jī)器可以處理多維數(shù)據(jù)以及多種數(shù)據(jù),機(jī)器翻譯有助于節(jié)省時(shí)間,所以人們不必花時(shí)間在尋找字典來翻譯一個(gè)句子,提高了生產(chǎn)率。

利用機(jī)器學(xué)習(xí)算法將英語翻譯成漢語,采用自然語言處理使機(jī)器翻譯智能化。語言處理方式日益豐富,許多研究定義了自然語言處理的體系結(jié)構(gòu),有些研究涉及英譯漢翻譯的改進(jìn),也有一些研究是簡(jiǎn)單句子結(jié)構(gòu)和不同機(jī)器翻譯系統(tǒng)的比較。然而,目前對(duì)復(fù)雜句子結(jié)構(gòu)和句子重復(fù)意義的研究還比較少[3-7]。本研究的目的是設(shè)計(jì)一個(gè)基于遞歸神經(jīng)網(wǎng)絡(luò)(RNN,recursive neural networks)的英漢機(jī)器翻譯體系結(jié)構(gòu),綜合詞匯的句法分析因素和注意權(quán)重,用RNN設(shè)計(jì)機(jī)器翻譯系統(tǒng)的體系結(jié)構(gòu),并測(cè)試了機(jī)器翻譯系統(tǒng)的性能。

1 方法論

采用自然語言處理可以使機(jī)器翻譯智能化,研究人員提出了許多機(jī)器翻譯的解決方案,對(duì)于英語到印地語的翻譯,使用了兩種編碼器-解碼器神經(jīng)機(jī)器翻譯結(jié)構(gòu),它們是卷積序列到序列模型(ConvS2S)和遞歸序列到序列模型(RNNS2S)[3]。在訓(xùn)練數(shù)據(jù)中,使用了1 492 827個(gè)句子,其中英語20 666 365個(gè)單詞,印地語22 164 816個(gè)單詞。遞歸序列到序列模型使用Nematus框架進(jìn)行訓(xùn)練,卷積序列到序列模型使用Fairseq-5進(jìn)行訓(xùn)練,F(xiàn)airseq-5是Facebook開發(fā)的一個(gè)開源庫,用于使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)或遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行神經(jīng)機(jī)器翻譯。研究結(jié)果表明,卷積序列到序列模型在英印翻譯方面表現(xiàn)更好,這將有助于解決本文提出的英漢翻譯問題。在基于語料庫的方法中,使用一個(gè)主語文件和一個(gè)動(dòng)詞文件,解決了文獻(xiàn)[4]的翻譯問題。對(duì)于每個(gè)主語,都有一個(gè)對(duì)應(yīng)于其動(dòng)詞的標(biāo)記,并選擇最合適和最有意義的句子進(jìn)行最終翻譯。結(jié)果顯示,與谷歌翻譯程序相比,該譯碼器具有更好的性能。

對(duì)于另一個(gè)英語到印地語的翻譯,使用了前饋反向傳播人工神經(jīng)網(wǎng)絡(luò)[5]。在實(shí)現(xiàn)方面,采用Java作為主要編程語言,實(shí)現(xiàn)了除神經(jīng)網(wǎng)絡(luò)模型外的所有規(guī)則和模塊,并在Matlab中實(shí)現(xiàn)。這里,訓(xùn)練數(shù)據(jù)由編碼器編碼成數(shù)字形式,編碼器也是用Java實(shí)現(xiàn)的。使用BLEU來計(jì)算系統(tǒng)的得分,BLEU分?jǐn)?shù)也被用于測(cè)試訓(xùn)練模型。另一種維吾爾族語到漢語的神經(jīng)機(jī)器翻譯方法采用RNN編碼器-解碼器框架方法實(shí)現(xiàn)[6],其中一些訓(xùn)練過程和數(shù)據(jù)集被用來實(shí)現(xiàn)這兩種模型。以上研究的結(jié)果表明,遞歸神經(jīng)網(wǎng)絡(luò)比傳統(tǒng)的RNN編碼提供了更好的結(jié)果。

1.1 數(shù)據(jù)收集

為了使用機(jī)器學(xué)習(xí)算法進(jìn)行訓(xùn)練,本文收集了數(shù)據(jù)集,文中研究的主要數(shù)據(jù)集是英語和漢語平行句。對(duì)于每一個(gè)英語句子,都需要一些對(duì)應(yīng)的漢語句子來訓(xùn)練和測(cè)試智能系統(tǒng)。數(shù)據(jù)集是從一些文章中收集的,這些文章是由手工編寫的英語和漢語,英語和漢語句子的最大長度均為7。數(shù)據(jù)集由4 000個(gè)英語和漢語平行句組成,數(shù)據(jù)集被分成4:1的比例分別進(jìn)行訓(xùn)練和測(cè)試。

1.2 預(yù)處理

為了規(guī)范化數(shù)據(jù)集,需要執(zhí)行文本預(yù)處理步驟。句子的所有字母都被轉(zhuǎn)換成小寫,所有的標(biāo)點(diǎn)符號(hào)都被刪除,不屬于英語和漢語的字符也會(huì)被刪除。對(duì)于模型設(shè)計(jì)原型,利用Tensorflow-Keras Python軟件包建立了神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)模型[7]。

2 模型構(gòu)建

2.1 標(biāo)記化

數(shù)據(jù)集必須在初始狀態(tài)下實(shí)現(xiàn)標(biāo)記化,對(duì)于每一個(gè)英語和漢語句子,所有的單詞都根據(jù)頻率進(jìn)行標(biāo)記。Tensorflow有一個(gè)標(biāo)記器庫,用于將單詞映射為相應(yīng)的整數(shù)。

然后,將所有單詞替換為一個(gè)記號(hào)數(shù)字,并存儲(chǔ)在英語和漢語句子的列表中。表1的英文句子轉(zhuǎn)換如下:

表1 標(biāo)記化映射詞

511331

相應(yīng)的漢語標(biāo)記化句子轉(zhuǎn)換如下:

721141

每個(gè)句子的長度不是固定的,為了使所有標(biāo)記化的句子具有相同的長度,將應(yīng)用填充。英語和漢語句子的最大長度均為7,因此,未填入的空格用0(零)填充。

英語標(biāo)記化序列為:

511331000

漢語標(biāo)記化序列為:

721141000

輸入的數(shù)據(jù)是矢量化的,因此數(shù)據(jù)集可以輸入到神經(jīng)網(wǎng)絡(luò)模型中。

2.2 詞匯上下文向量

根據(jù)存儲(chǔ)的上下文向量,可以預(yù)測(cè)英語標(biāo)記化句子。為了生成上下文向量,將英語和漢語的標(biāo)記化句子作為輸入,英語和漢語映射的標(biāo)記為注意權(quán)重,注意權(quán)重代表漢語標(biāo)記化序列對(duì)英語標(biāo)記化序列的注意。

score=Sigmoid(denseLayer+hiddenLayer)

attentionWeights=Softmax(score)

contextVector=(attentionWeights?encoderOutput)

(1)

利用式(1)生成上下文向量,圖1所示為用于生成上下文向量的網(wǎng)絡(luò),訓(xùn)練序列的輸入為英語-漢語平行句。RNN的嵌入層對(duì)標(biāo)記序列進(jìn)行歸一化處理,并將輸出作為GRU或LSTM層的輸入。為了測(cè)量性能,本研究實(shí)現(xiàn)并測(cè)試了GRU和LSTM。使用Sigmoid和Softmax激活函數(shù)激活密集層和隱藏層的輸出,同時(shí)測(cè)量注意權(quán)重的得分,以便進(jìn)行性能評(píng)估,通過將編碼器輸出和注意權(quán)重相乘來生成上下文向量。

圖1 生成上下文向量的訓(xùn)練模型

2.3 遞歸神經(jīng)網(wǎng)絡(luò)

遞歸神經(jīng)網(wǎng)絡(luò)(RNN)模型采用順序輸入的方式[8],即一個(gè)節(jié)點(diǎn)的輸出作為另一個(gè)節(jié)點(diǎn)的輸入或偏置。由于一個(gè)句子中的單詞具有關(guān)聯(lián)意義,因此采用RNN模型進(jìn)行研究。

1)編碼器:

編碼器由輸入嵌入層、GRU層和隱藏輸入層組成。輸入嵌入層用于對(duì)數(shù)據(jù)集進(jìn)行規(guī)范化。GRU層使用門控循環(huán)單元(GRU,gated recurrent unit)[9],為了測(cè)試性能,也可使用長短時(shí)記憶網(wǎng)絡(luò)(LSTM,long short term memory network)來代替GRU。使用不同的激活函數(shù)來衡量模型的性能。編碼器輸出的批量大小為64,序列長度為7,共1 024個(gè)單元。

2)解碼器:

解碼器的第一層由嵌入層構(gòu)成,然后使用GRU作為類似編碼器,激活函數(shù)在GRU層工作。在GRU之后,用總詞匯大小作為密集層。與Bahdanau注意力機(jī)制類似,用于制作上下文向量。

3)注意方法:

本設(shè)計(jì)采用了注意機(jī)制,英語單詞重點(diǎn)集中于由注意權(quán)重測(cè)量的漢語詞匯[10]。使用Sigmoid激活函數(shù)對(duì)兩個(gè)密集層的輸入進(jìn)行歸一化,并計(jì)算得分權(quán)重,權(quán)重也用Softmax或Sigmoid激活函數(shù)進(jìn)行歸一化。

4)激活函數(shù):

為了進(jìn)行性能比較,使用了一些激活函數(shù),激活函數(shù)的主要作用是將輸入序列標(biāo)準(zhǔn)化。

雙曲正切激活函數(shù)式(2):

(2)

其中:x為序列的值。

線性激活函數(shù)式(3):

F(xi)=wixi+b

(3)

其中:wi和b分別表示線性激活函數(shù)的斜率和截距。

Softmax激活函數(shù)式(4):

(4)

Sigmoid激活函數(shù)式(5):

(5)

在激活函數(shù)中,i=1,…,k;x=(x1,x2…,xk)∈Rk,表示標(biāo)記序列。

Softmax和Sigmoid的激活函數(shù)如圖2所示。

圖2 Sigmoid和Softmax激活函數(shù)

所有這些激活函數(shù)都用于編碼器GRU層、解碼器GRU層和注意層,從而尋找注意權(quán)重。

5)損失函數(shù):

為了訓(xùn)練RNN模型,對(duì)誤差進(jìn)行了計(jì)算,并利用反向傳播損失函數(shù)對(duì)模型進(jìn)行了改進(jìn)。Tensorflow有一個(gè)稀疏的分類交叉熵函數(shù)庫,用于計(jì)算誤差。

分類交叉熵函數(shù)如下:

(6)

6)優(yōu)化和學(xué)習(xí)率:

優(yōu)化部分包括數(shù)據(jù)預(yù)處理和歸一化,優(yōu)化的另一個(gè)因素是學(xué)習(xí)率。

LearningRate(學(xué)習(xí)率)=1e-3=0.001

學(xué)習(xí)數(shù)據(jù)集使用了Adam優(yōu)化算法[11],Adam是RMSprop和隨機(jī)梯度下降的組合。在本研究中使用Adam的主要優(yōu)點(diǎn)是在訓(xùn)練數(shù)據(jù)集期間可以進(jìn)行時(shí)間優(yōu)化。

對(duì)于英文輸入句“Let me go”整體模型如圖3所示。上下文向量模塊表示在該部分定義的映射英語和漢語標(biāo)記化句子的訓(xùn)練模型數(shù)據(jù)集[12]。一旦對(duì)輸入句子進(jìn)行標(biāo)記和填充,序列就可以進(jìn)行RNN輸入。在RNN編碼器中,第一層是嵌入層,第二層是GRU層。

圖3 英譯漢的機(jī)器翻譯模型

解碼器與編碼器相似,不同的是解碼器有一個(gè)密集層,該層根據(jù)注意分?jǐn)?shù)返回相應(yīng)的標(biāo)記序列,在移除填充之后,標(biāo)記器將序列解碼成漢語句子。

3 結(jié)果與討論

本文模型設(shè)置了檢查點(diǎn),模型的對(duì)象保存在本地驅(qū)動(dòng)器中,并從上一個(gè)檢查點(diǎn)恢復(fù)。對(duì)于每一次的訓(xùn)練數(shù)據(jù)都有助于提高性能。模型的性能用損失函數(shù),即式(6)來衡量,本研究進(jìn)行了30個(gè)階段的性能評(píng)估,模型的精度取決于誤差。為了使系統(tǒng)誤差最小化,采用了不同的方法,比較了編碼器、解碼器和注意層的激活函數(shù)。本文還以最佳激活函數(shù)測(cè)量了GRU和LSTM的性能。

3.1 輸入輸出層

對(duì)于輸入層,雙曲正切激活函數(shù)和線性激活函數(shù)在實(shí)驗(yàn)中表現(xiàn)最好。編碼器的第一層是嵌入層,在嵌入層中對(duì)標(biāo)記化序列進(jìn)行歸一化。將所有序列轉(zhuǎn)換成嵌入格式后,在GRU層測(cè)試雙曲正切激活函數(shù)和線性激活函數(shù),以測(cè)量系統(tǒng)的性能。

模型損失如圖4所示,從圖4可以看出,編碼器的線性激活函數(shù)和解碼器GRU層的雙曲正切激活函數(shù)具有穩(wěn)定的性能[13]。為了交叉檢查雙曲正切激活函數(shù)和線性激活函數(shù)的誤差和性能,對(duì)4種組合進(jìn)行了評(píng)估。

圖4 模型損失

由表2可知,編碼器GRU和解碼器GRU的線性激活函數(shù)均增加了0.805的誤差,編碼器線性和解碼器雙曲正切激活函數(shù)的平均誤差為0.740,另一個(gè)編碼器的雙曲正切激活函數(shù)和解碼器線性激活函數(shù)的損耗為0.783。

表2 價(jià)值損失平均值

3.2 注意層

注意層由兩個(gè)激活函數(shù)組成,一個(gè)用于輸入,另一個(gè)用于將輸出歸一化為注意權(quán)重。這里使用了Sigmoid激活函數(shù)和Softmax激活函數(shù)。使用了Sigmoid激活函數(shù)和Softmax激活函數(shù)的所有組合來評(píng)估系統(tǒng)的性能。

如圖5所示,Sigmoid函數(shù)給出了注意層的最佳性能。注意層輸入的Sigmoid函數(shù)和輸出注意層的Softmax函數(shù)都是有效的。

圖5 基于注意層激活函數(shù)的模型損失

3.3 LSTM和GRU

在嵌入層之后實(shí)現(xiàn)了GRU層,也可以使用LSTM層來代替GRU[14-17]。在圖2中,運(yùn)行了50個(gè)epoch,并且使用了輸入輸出層和注意層中性能最佳的激活函數(shù)。但隨著epoch的增加,門控循環(huán)單元(GRU)的誤差和損失也會(huì)減少。為了獲得最佳的性能,使用一些參數(shù)如中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)和圖形處理單元(GPU)以及明顯的數(shù)據(jù)集數(shù)目作為樣本訓(xùn)練的重要因素。

在圖6中,GRU的性能比LSTM更好,這就是模型使用了GRU層的原因,GRU的平均誤差為0.508,比LSTM的0.602更有效。

圖6 模型(LSTM-GRU)的性能

3.4 誤差最小化

使用100個(gè)epoch用于評(píng)估每個(gè)epoch的最小誤差,這些epoch被分為兩個(gè)部分,如圖7所示,對(duì)于后50個(gè)epoch,誤差在滿意度水平上有所下降。

圖7 性能提升

從表3可以看出,前50個(gè)epoch的標(biāo)準(zhǔn)偏差為0.680,平均誤差為0.506。對(duì)于后50個(gè)epoch,平均誤差降低到0.107,標(biāo)準(zhǔn)差為0.003,性能良好。

表3 性能評(píng)估

該系統(tǒng)模型可以在輸入英語句子的基礎(chǔ)上對(duì)一個(gè)平行的漢語句子進(jìn)行評(píng)估,這個(gè)模型是使用深度學(xué)習(xí)方法以數(shù)據(jù)驅(qū)動(dòng)的方式生成的,它通過多層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)預(yù)測(cè)每個(gè)給定單詞的翻譯單詞,將單詞轉(zhuǎn)化為向量表示[18]。在標(biāo)記化之后,RNN模型具有嵌入層,嵌入層是編碼器和解碼器的初始層。為了評(píng)估自動(dòng)語音識(shí)別,對(duì)于GRU和LSTM層的性能進(jìn)行了比較,結(jié)果表明,GRU的性能優(yōu)于LSTM,所以下一層是GRU層。使用雙曲正切激活函數(shù)和Softmax激活函數(shù)來評(píng)估注意機(jī)制,注意層的激活函數(shù)采用Sigmoid函數(shù),以達(dá)到最佳的漢語翻譯效果[19]。編碼器和解碼器的兩個(gè)GRU層使用線性激活函數(shù)和雙曲正切激活函數(shù),由于它們的平均損耗最小。

在編碼器和解碼器中分別使用線性激活函數(shù)和雙曲正切激活函數(shù),在注意層使用Sigmoid函數(shù),可以獲得最佳的精度[20]。用這些配置進(jìn)行了100個(gè)epoch,平均誤差最小為0.107。與文獻(xiàn)[14]相比,本文的基于遞歸神經(jīng)網(wǎng)絡(luò)的英譯漢機(jī)器翻譯方法誤差較低。實(shí)驗(yàn)結(jié)果表明,該算法比傳統(tǒng)的翻譯算法具有更好的性能。此外,考慮到交際翻譯,這種翻譯方法提供了準(zhǔn)確地獲取給定句子的上下文意義的優(yōu)勢(shì)。

如前所述,在翻譯后獲取句子的實(shí)際意義是一項(xiàng)復(fù)雜的任務(wù),它依賴于訓(xùn)練數(shù)據(jù)集、詞匯和CPU處理能力,豐富的詞匯可以帶來更好的表現(xiàn)。除了這個(gè)限制之外,提出的模型可以應(yīng)用于各種應(yīng)用。許多現(xiàn)有的解決方案?jìng)?cè)重于逐字翻譯或直譯,而沒有考慮句子或短語中單詞的用法,這種模型為從英譯漢的翻譯提供了一種新的可能性。此外,由于該模型克服了翻譯的均衡性,因此可以用來建立系統(tǒng),從而能夠通過相應(yīng)地考慮單詞的實(shí)際意義來更準(zhǔn)確地翻譯語言。例如,模型可以作為一個(gè)對(duì)話系統(tǒng),在不真正了解漢語的情況下,用這種語言表達(dá)情感和想法,這對(duì)很多人來說是一個(gè)有益的指導(dǎo)。此外,通過學(xué)習(xí)正確的翻譯,會(huì)話系統(tǒng)將能夠獲得正確的句子含義。

4 結(jié)束語

機(jī)器翻譯有很多好處,它節(jié)省時(shí)間,可翻譯多種語言等。本文提出了一種英譯漢機(jī)器翻譯的設(shè)計(jì)方案并對(duì)其加以實(shí)現(xiàn)。與各種研究中的其他實(shí)現(xiàn)方法相比,本文提出的英譯漢的遞歸神經(jīng)網(wǎng)絡(luò)方法提供了更好的結(jié)果,它將為機(jī)器學(xué)習(xí)算法中的自然語言處理做出更大的貢獻(xiàn),當(dāng)處理大量詞匯可以提高性能,增加epoch的數(shù)量可以提高準(zhǔn)確率,但是處理這類問題需要更多的處理能力和內(nèi)存,這些不足將在以后的工作中得到解決。

猜你喜歡
解碼器編碼器漢語
學(xué)漢語
金橋(2022年6期)2022-06-20 01:36:16
科學(xué)解碼器(一)
科學(xué)解碼器(二)
科學(xué)解碼器(三)
輕輕松松聊漢語 后海
金橋(2020年11期)2020-12-14 07:52:56
線圣AudioQuest 發(fā)布第三代Dragonfly Cobalt藍(lán)蜻蜓解碼器
基于FPGA的同步機(jī)軸角編碼器
追劇宅女教漢語
漢語不能成為“亂燉”
基于PRBS檢測(cè)的8B/IOB編碼器設(shè)計(jì)
雷山县| 南郑县| 怀远县| 辽中县| 中山市| 汉阴县| 云梦县| 阿拉善盟| 武鸣县| 遵义市| 墨玉县| 肥东县| 云梦县| 资中县| 台山市| 色达县| 阜新| 彩票| 卓尼县| 渝北区| 江口县| 永城市| 北安市| 深泽县| 治多县| 浪卡子县| 河南省| 许昌县| 榆林市| 靖江市| 庆城县| 重庆市| 黑龙江省| 塔城市| 偏关县| 东莞市| 青河县| 高雄市| 普宁市| 石首市| 祁门县|