版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Transformer的翻譯神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)案例分析目錄TOC\o"1-3"\h\u2393基于Transformer的翻譯神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)案例分析 1143341.1中英翻譯數(shù)據(jù)集 1188381.2開(kāi)發(fā)環(huán)境搭建 2276231.3Transformer網(wǎng)絡(luò)實(shí)現(xiàn)代碼 3124451.3.1模型超參數(shù)與數(shù)據(jù)處理 332441.1.2詞嵌入與位置編碼模塊 6128861.1.3encoder與decoder模塊 7108871.1.4模型總體結(jié)構(gòu)代碼 116001.1.5訓(xùn)練與驗(yàn)證代碼 121.1中英翻譯數(shù)據(jù)集本文提出的模型屬于神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型(NMT),是通過(guò)深度學(xué)習(xí)對(duì)基于統(tǒng)計(jì)的機(jī)器翻譯(SBMT)的改進(jìn)。這類模型需要建立在一個(gè)龐大的雙語(yǔ)對(duì)齊語(yǔ)料庫(kù)之上,為了兼顧語(yǔ)料庫(kù)內(nèi)容的豐富性和翻譯的準(zhǔn)確性,本文選擇了開(kāi)源數(shù)據(jù)庫(kù)TED英漢平行演講語(yǔ)料庫(kù)進(jìn)行模型的訓(xùn)練、驗(yàn)證和測(cè)試。TED英漢平行演講語(yǔ)料庫(kù)(TEDEnglishChineseParallelCorpusofSpeech)中的內(nèi)容全部出自TED演講中英語(yǔ)臺(tái)詞與其中文翻譯,涉及藝術(shù)、經(jīng)濟(jì)、政治、醫(yī)療、商業(yè)、娛樂(lè)、體育等各個(gè)領(lǐng)域。TED的演講詞由全球的翻譯志愿者合作完成,面向公眾免費(fèi)開(kāi)放,作為研究用途的英漢平行語(yǔ)料庫(kù)就是據(jù)此創(chuàng)作的。其中含有314873個(gè)樣本,以文本的格式存儲(chǔ)(見(jiàn)下表),是一個(gè)極其豐富的語(yǔ)料庫(kù)。表1.1TED英漢平行演講語(yǔ)料庫(kù)英語(yǔ)漢語(yǔ)OK,don’tactuallydoit.好吧,別真這么做。Theworldhasanewmania.現(xiàn)在世界上有一種新的狂熱。Atruescientistwouldnotapproachthequestionthisway.真正的科學(xué)家不會(huì)這樣思考。Wehaveagreatteam.我們有個(gè)好極了的團(tuán)隊(duì)。為了減少訓(xùn)練時(shí)間,本文從TED英漢平行演講語(yǔ)料庫(kù)中挑選了20000組短句為主的英漢語(yǔ)對(duì)。分為訓(xùn)練集(train)、驗(yàn)證集(dev)和測(cè)試集(test)三部分,樣本數(shù)量比為8:1:1,其中訓(xùn)練集16000個(gè)樣本,驗(yàn)證集和測(cè)試集各2000個(gè)樣本。表1.2數(shù)據(jù)集數(shù)據(jù)集樣本數(shù)量train16000dev2000Test20001.2開(kāi)發(fā)環(huán)境搭建本文中使用“臉書(shū)”公司人工智能研究院推出的機(jī)器學(xué)習(xí)庫(kù)pytorch實(shí)現(xiàn)Transformer翻譯模型,模型中基于pytorch(其中python版本為1.7.8)的實(shí)現(xiàn)代碼參考Pytorch教程[24]。具體應(yīng)用到的工具庫(kù)與版本如下:表1.3工具庫(kù)與其版本工具庫(kù)版本Pytorch1.4.0NLTK1.5.0Numpy1.19.0Matplotlib1.1.1本文中的編碼器與解碼器層數(shù)都設(shè)置為6層,Batchsize大小設(shè)為64,訓(xùn)練每30步保存一次模型,Transformer中多頭注意力機(jī)制的頭數(shù)設(shè)為8,三個(gè)模型的節(jié)點(diǎn)被dropout的概率均設(shè)為0.1。使用BLEU(雙語(yǔ)評(píng)估替換)作為三個(gè)模型翻譯質(zhì)量高低的評(píng)價(jià)指標(biāo)。表1.4Transformer模型參數(shù)參數(shù)值輸入層維度dx512BATCH_SIZE64Dropout0.1激活函數(shù)SigmoidEncoder,Decoder層數(shù)6優(yōu)化器AdamNLTK為自然語(yǔ)言工具包,本文中在數(shù)據(jù)處理階段用以分別對(duì)英漢句對(duì)進(jìn)行分詞。1.3Transformer網(wǎng)絡(luò)實(shí)現(xiàn)代碼本實(shí)驗(yàn)在pycharm上編寫(xiě)代碼,實(shí)現(xiàn)transformer翻譯模型的構(gòu)建與訓(xùn)練。1.1.1模型超參數(shù)與數(shù)據(jù)處理超參數(shù)設(shè)置及代碼如下:EPOCHS=30
LAYERS=6
H_NUM=8
D_MODEL=512
D_FF=2048
MAX_LENGTH=60EPOCHS用以規(guī)定訓(xùn)練的輪數(shù),LAYERS為6,即將encoder和decoder分別設(shè)置為6層,H_NUM是規(guī)定對(duì)頭注意力中head數(shù)量的超參數(shù),本文將其設(shè)置為8,D_FF是前饋層的維度,設(shè)置為1024。MAX_LENGTH代表文本的最大長(zhǎng)度,設(shè)置為60。在數(shù)據(jù)送入編碼器之前,需要對(duì)英漢句對(duì)分別做詞嵌入(Embedding)操作,而在詞嵌入之前,要將每個(gè)分詞(Token)表示為向量的形式。流程如下圖所示:圖1.1數(shù)據(jù)處理流程圖本文在代碼中定義了一個(gè)名為PrepareData的類,類中的方法包含載入數(shù)據(jù)和分詞、使用索引表示分詞(本實(shí)驗(yàn)未使用獨(dú)熱編碼表示分詞,而是直接使用了Token在字典中的索引)和批劃分的方法。主要代碼如下:(一)載入數(shù)據(jù)和中英文分詞:這個(gè)方法在之后的訓(xùn)練和驗(yàn)證過(guò)程中會(huì)被調(diào)用,英漢句對(duì)會(huì)被分解為以下形式:enn['BOS','We','have','a','great','team','.','EOS'][0]cnn['BOS','我們','有','個(gè)','好極了','的','團(tuán)隊(duì)',‘?!?'EOS'][0](二)建立字典:字典按照分詞的出現(xiàn)頻率進(jìn)行排序,最大可容納50000個(gè)分詞,對(duì)沒(méi)有見(jiàn)過(guò)的和補(bǔ)零分詞都進(jìn)行了處理,將補(bǔ)零設(shè)置為0,將不識(shí)別的分詞設(shè)置為1。本實(shí)驗(yàn)中,字典為以下形式:{2:'BOS',3:'EOS',4:'.',5:'i',6:'the',7:'you',8:'to',9:'a',10:'?……}{2:'BOS',3:'EOS',4:'。',5:'我',6:'的',7:'了',8:'你',9:'他',10:'一'……}由于0和1被分配給了padding與未識(shí)別字符,所以字典的鍵是從2開(kāi)始的。(三)單詞索引表示:(四)批劃分:在每批送入模型的數(shù)據(jù)中,需要固定句子的長(zhǎng)度。首先,分別根據(jù)語(yǔ)料庫(kù)中的英漢句子長(zhǎng)度進(jìn)行排序,這樣可以盡量使長(zhǎng)度相近的句子被劃分進(jìn)一批中,能有效減少padding的數(shù)量,增加處理的效率。其次,選擇一批中最長(zhǎng)的句子作為最大長(zhǎng)度,對(duì)未達(dá)到長(zhǎng)度的句子對(duì)應(yīng)的序列進(jìn)行補(bǔ)零。補(bǔ)零具體代碼如下:這段代碼會(huì)將每個(gè)batch中的句子處理成向量的形式,和word2vector不同的是,transformer中并沒(méi)有將分詞用獨(dú)熱(one-hot)編碼后傳入后面的embedding模塊,而是直接以分詞的索引值表示分詞。本文截取了一部分?jǐn)?shù)據(jù)處理模塊對(duì)數(shù)據(jù)處理后的輸出,如下圖所示:圖1.2數(shù)據(jù)處理部分輸出1.1.2詞嵌入與位置編碼模塊詞嵌入實(shí)現(xiàn)代碼如下:transformer自注意力機(jī)制使得模型可以并行處理數(shù)據(jù),但是不能反映分詞之間的序列關(guān)系。為了不忽略單詞之間的序列關(guān)系,需要用到positionalencoding來(lái)將單詞向量編入位置信息。根據(jù)公式(2.1)和公式(2.2),具體實(shí)現(xiàn)代碼如下:1.1.3encoder與decoder模塊encoder部分包括多頭注意層,layernorm層,殘差連接層,前饋神經(jīng)層,整個(gè)編碼器部分是由6層encoder堆疊而成,代碼如下:構(gòu)建self-attention模塊的代碼如下:基于self-attention模型,構(gòu)建多頭注意力模型,實(shí)現(xiàn)代碼如下:定義mask函數(shù)來(lái)遮蓋住字向量的padding部分已經(jīng)以及翻譯中未知的單詞,代碼如下:定義layernorm層對(duì)樣本中的所有單詞進(jìn)行縮放,具體實(shí)現(xiàn)代碼如下:構(gòu)建殘差連接層來(lái)連接多頭注意層和前饋神經(jīng)網(wǎng)絡(luò)層,防止出現(xiàn)梯度消失的問(wèn)題,代碼如下:構(gòu)建前饋神經(jīng)網(wǎng)絡(luò)層代碼如下:Decoder模型與encoder結(jié)構(gòu)相似,只是相比encoder多了與encoder的交互層,線性層和softmax層,并且第一個(gè)多頭注意力機(jī)制層是被mask的,因?yàn)閷?shí)際解碼過(guò)程中是一步一步解碼,無(wú)法知道當(dāng)前單詞后面的單詞是什么,mask避免了訓(xùn)練和驗(yàn)證出現(xiàn)偏差的情況。Decoder同樣也是相同結(jié)構(gòu)的六層堆疊,具體代碼如下:1.1.4模型總體結(jié)構(gòu)代碼將encoder和decoder連接起來(lái)便組成了transformer模型的主體,代碼如下:模型總體結(jié)構(gòu)搭建的具體代碼如下:1.1.5訓(xùn)練與驗(yàn)證代碼在模型搭建完成后,本文對(duì)模型進(jìn)行了基于TED語(yǔ)料庫(kù)的訓(xùn)練使用TED語(yǔ)料庫(kù)進(jìn)行模型訓(xùn)練,并在測(cè)試集上對(duì)模型的性能進(jìn)行了驗(yàn)證,以下就是模型訓(xùn)練與驗(yàn)證的代碼。(一)Loss函數(shù)代碼:Loss值代表機(jī)器翻譯結(jié)果與參考譯文之間的差異,本文使用了KL散度損失作為代價(jià)函數(shù),并使用標(biāo)簽平滑作為正則化策略來(lái)防止模型過(guò)擬合。下面是loss函數(shù)的定義和計(jì)算的具體代
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 長(zhǎng)者養(yǎng)老服務(wù)承諾書(shū)6篇
- 電器接插件制造工安全應(yīng)急模擬考核試卷含答案
- 尾礦庫(kù)工藝監(jiān)督工安全生產(chǎn)知識(shí)強(qiáng)化考核試卷含答案
- 北京汽車(chē)集團(tuán)招聘面試題及答案
- 高壓成套設(shè)備裝配配線工崗前時(shí)間管理考核試卷含答案
- 有機(jī)介質(zhì)電容器紙、薄膜金屬化工安全實(shí)踐能力考核試卷含答案
- 玻纖非織造制品生產(chǎn)工安全意識(shí)競(jìng)賽考核試卷含答案
- 膠合板工崗前記錄考核試卷含答案
- 鎖具制作工安全專項(xiàng)模擬考核試卷含答案
- 乙烯-乙烯醇樹(shù)脂裝置操作工安全操作考核試卷含答案
- 軍人體能訓(xùn)練標(biāo)準(zhǔn)化手冊(cè)
- 住院患者等待時(shí)間優(yōu)化與滿意度策略
- 2026中國(guó)儲(chǔ)備糧管理集團(tuán)有限公司黑龍江分公司招聘98人考試模擬卷附答案解析
- 2023年十堰市稅務(wù)系統(tǒng)遴選筆試真題匯編附答案解析
- 投資銀行核心業(yè)務(wù)操作流程與案例分析
- 2025輔警年度個(gè)人總結(jié)(2篇)
- 浙江省諸暨市2025年12月高三診斷性考試化學(xué)(含答案)
- 城鄉(xiāng)供水一體化項(xiàng)目施工方案
- 2025年人工智能訓(xùn)練師(中級(jí))職業(yè)資格考試核心要點(diǎn)參考題庫(kù)(300題)含答案
- 2025版《道德與法治新課程標(biāo)準(zhǔn)》課標(biāo)測(cè)試卷測(cè)試題庫(kù)(含答案)
- 恒溫恒濕倉(cāng)儲(chǔ)管理操作流程規(guī)范
評(píng)論
0/150
提交評(píng)論