亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于sequence to sequence的神經(jīng)機器翻譯模型研究

        2019-12-20 03:03:30侯悅文
        價值工程 2019年33期
        關鍵詞:機器翻譯深度學習

        侯悅文

        摘要:深度學習是機器學習的技術和研究領域之一,通過創(chuàng)設具有階層結構的人工神經(jīng)網(wǎng)絡,在計算機系統(tǒng)中實現(xiàn)人工智能,近幾年越來越為人們所關注。機器翻譯也可以使用神經(jīng)網(wǎng)絡中的循環(huán)神經(jīng)網(wǎng)絡中sequence to sequence架構[3]進行實驗。本文使用基于循環(huán)神經(jīng)網(wǎng)絡的編碼器-解碼器模型將一個語言的句子編碼成固定長度向量,并使用一個語言模型來解碼為另一個語言的句子。我基于這個模型構建了一個英法的機器翻譯模型,經(jīng)過評估能實現(xiàn)機器翻譯的效果。

        Abstract:? Deep learning is one of the techniques and research fields of machine learning. Artificial intelligence has been realized in computer systems by creating artificial neural networks with hierarchical structure, which has attracted more and more attention in recent years. Machine translation can also use the sequence to sequence architecture[3] in the recurrent neural network in neural networks for test. In this paper, a cyclic neural network based encoder-decoder model is used to encode a language sentence into a fixed length vector and a language model is used to decode a sentence into another language. Based on this model, the author built an English-French machine translation model that was evaluated to achieve machine translation.

        關鍵詞:機器翻譯;sequence to sequence;深度學習

        Key words: machine translation;sequence to sequence;deep learning

        中圖分類號:TP18? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2019)33-0294-03

        1? 定義

        1.1 深度學習

        深度學習是一種特殊的機器學習,性能十分高而且非常靈活,能夠表示高階抽象概念的復雜函數(shù),解決目標識別、語音感知和語言理解等人工智能相關的任務。相較于傳統(tǒng)的機器學習,深度學習可以實現(xiàn)無監(jiān)督學習[1]。而且相較于傳統(tǒng)的機器學習在面對大量數(shù)據(jù)時性能有限的問題,深度學習可以通過輸入數(shù)據(jù)量的增加或是訓練一個規(guī)模更加大的神經(jīng)網(wǎng)絡來使性能隨之不斷提高,因此在數(shù)據(jù)量巨大的數(shù)字化時代,深度學習也得以快速興起。深度學習的典型模型有:深度信念網(wǎng)絡、深度玻爾茲曼機、自動編碼器、卷積神經(jīng)網(wǎng)絡、循環(huán)神經(jīng)網(wǎng)絡等。[4]

        1.2 機器翻譯

        機器翻譯是指利用計算機將一種自然源語言轉(zhuǎn)變?yōu)榱硪环N自然目標語言的過程。法國科學家G.B.阿爾楚尼最早提出了機器翻譯的設想。機器翻譯發(fā)展至今,從一開始的基于規(guī)則到后來的基于語料庫,即基于統(tǒng)計學和概率學[4]翻譯效率和準確率均有了明顯的提升。

        2? 模型

        2.1 循環(huán)神經(jīng)網(wǎng)絡(RNN)

        循環(huán)神經(jīng)網(wǎng)絡是一類以序列數(shù)據(jù)為輸入,在序列的演進方向進行遞歸且所有節(jié)點(循環(huán)單元)按鏈式連接的遞歸神經(jīng)網(wǎng)絡。圖1為一個單向循環(huán)神經(jīng)網(wǎng)絡。

        要開始整個流程,首先要在零時刻構造一個激活值a<0>,a<0>通常為零向量。激活值a<0>通過前向傳播輸出

        a<1>。同時將第一個單詞x<1>輸入在第一層神經(jīng)網(wǎng)絡中計算后將結果y<1>輸出。在每次當它讀到句中的第二個單詞時,假設是x<2>,循環(huán)神經(jīng)網(wǎng)絡不是僅用x<2>就預測出y<2>,它也會輸入一些來自時間步 1 的信息。具體而言,時間步 1 的激活值就會傳遞到時間步 2。然后,在下一個時間步,循環(huán)神經(jīng)網(wǎng)絡輸入了單詞x<3>,然后它嘗試預測輸出了預測結果y<3>等等,一直到最后一個時間步,輸入了x,輸出了y。在每一個時間步中,循環(huán)神經(jīng)網(wǎng)絡傳遞一個激活值到下一個時間步中用于計算。用Wax 來表示管理著從x<1>到隱藏層連接的一系列參數(shù),每個時間步使用的都是相同的參數(shù)Wax。而激活值也就是水平聯(lián)系是由參數(shù)Waa決定。循環(huán)神經(jīng)網(wǎng)絡的激活函數(shù)通常是tanh,ReLU,sigmoid,softmax等。在t時刻,a和y的計算公式如下

        這些等式定義了循環(huán)神經(jīng)網(wǎng)絡的前向傳播,通過構造a<0>,并輸入x<1.2.3...t>來完成循環(huán)神經(jīng)網(wǎng)絡從左到右的前向傳播。

        2.2 Sequence to sequence模型架構

        最簡單的sequence to sequence模型由encoder和decoder組成。

        2.2.1 Encoder

        Encoder實際上是一個RNN,接受輸入句子的每一個單詞作為輸入并產(chǎn)生一個向量作為輸出。對于每個輸入的單詞,encoder都會輸出一個向量和一個隱藏態(tài)(實際上隱藏態(tài)也是一個向量),并用于下一個時間步的計算。如圖2所示。

        其中GRU為門控制單元,GRU有兩個門,分別為更新門和遺忘門。其作用是通過門來決定當從左到右掃描一個句子的時候,這個時機是要更新某個記憶細胞,還是不更新。GRU單元輸入c,假設它正好等于a,將這個作為輸入并將x也作為輸入,將這兩個用合適權重結合在一起,用tanh計算,算出c,■

        2.2.2 Decoder

        Decoder實際上是另一個RNN,用于接收向量并輸出單詞的序列。對于最簡單形式的Seq2Seq的decoder僅僅使用encoder的最后一個時間步的隱藏態(tài)作為輸入。最后一個時間步的輸出向量有時候被稱為上下文向量,因為它代表整個輸入序列的上下文。上下文向量被用于decoder的第一個時間步的輸入。

        解碼的每一個時間步,decoder接收一個輸入的token和隱藏態(tài),初始的輸入token是特殊單詞start-of-sentence--,初始的輸入隱藏態(tài)是encoder生成的上下文向量。

        3? 實驗

        本次實驗基于sequence to sequence架構構建了法語-英語的平行句對的翻譯模型并對之進行了訓練和評估。本次實驗使用的編程語言為Python。Python通過附加的工具可以轉(zhuǎn)換成可以適合科學和工程代碼的高級語言,速度通常足夠快且靈活。[2]實現(xiàn)模型使用的深度學習框架是PyTorch。PyTorch是作為一個Python包提供如下兩個優(yōu)點:①具有強GPU加速度的張量計算(如numpy);②定義的網(wǎng)絡結構簡單。

        3.1 數(shù)據(jù)預處理

        用于訓練機器翻譯模型的數(shù)據(jù)是許多英語-法語的平行句對。訓練數(shù)據(jù)保存在文件中,其中每一行是一個英語-法語的平行句對。英語與法語句子之間使用tab鍵分割,例如:I am cold.? ? J'ai froid.

        本次實驗對語料進行了如下的數(shù)據(jù)預處理工作:首先我將語言中的單詞使用one-hot編碼進行表示,即除了單詞索引位為1其他位全為0的向量表示并在開頭添加在結尾添加來表示開始讀取和結束讀取。由于一種語言中的單詞非常的多,所以這個使用one-hot編碼的向量非常的長。由于該項目為演示項目,所以本次實驗只使用幾千個單詞作為演示,實際工業(yè)機器翻譯使用的詞表往往有數(shù)萬或十多萬單詞,需要在多張顯卡上并行訓練一個星期以上。為了方便將單詞在字符串和索引之間的轉(zhuǎn)換,我維護一個名為Lang的類,其中維護了一個將單詞轉(zhuǎn)換為索引的字典(word2index)和縮影轉(zhuǎn)換為單詞的字典(index2word)。為了簡化本文的模型,我將所有法語中的字符轉(zhuǎn)化為ASCII(僅包含英文字符),此外,我還將所有字符轉(zhuǎn)化為小寫,并刪除音標符號。我給模型設定句子的最大長度(應為GPU需要并行計算,實際上輸入的每個句子最后都會被預處理為相同的形式)。為了使計算得到簡化,快速得到一個觀感上可接受的結果,我設定最大長度為10個token(分詞后的每個單詞稱為token)。此外我將輸入的句子限定為一些簡單開頭的句子(為了減小模型規(guī)模所采用的強限定),如只使用“I am”或“He is”開頭的句子等。

        3.2 訓練

        3.2.1 訓練數(shù)據(jù)的準備

        為了進行訓練,我會將句對轉(zhuǎn)化為輸入tensor(源語言句子單詞的索引列表)和輸入tensor(目標語言句子單詞的索引列表),句子的末尾還會加上特殊的token標記句子的結尾。

        3.2.2 訓練模型

        訓練時,我將源語言句子作為序列輸入給encoder,并維護encoder每個時間步的隱藏態(tài)。之后,decoder使用作為第一個時間步的輸入,以及encoder的最后一個時間步的輸出隱藏態(tài)作為decoder的第一個時間步隱藏態(tài)的輸入。

        在訓練時,decoder的輸入token實際上是正確的目標語言單詞,而不是像訓練完成后進行翻譯是使用的是上一個時間步decoder輸出的單詞。其中本次實驗調(diào)用的損失函數(shù)為nn.L1Loss。nn.L1Loss函數(shù)的計算方法為取預測值和真實值的絕對誤差的平均值在本次實驗中預測值和平均值分別為模型預測的單詞和正確的單詞,函數(shù)的公式如下。(學習率為0.5)。同時我使用了一個輔助函數(shù)來顯示進度。整個訓練的過程可以簡單的分為如下幾步:①啟動計時器;②初始化優(yōu)化器和訓練目標;③生成訓練數(shù)據(jù)(句對);④保持loss到列表并繪圖。在最后繪制結果時我使用了matplotlib庫來繪圖,使用之前保持的損失列表,繪圖函數(shù)為plot_losses。

        3.2.3 評估

        評估的過程和訓練非常像,但是由于模型不知道正確的翻譯結果是什么,所以解碼的每個時間步使用上一個時間步輸出的token作為該時間步的輸入token。每個時間步都會預測一個單詞輸出,將這個單詞加入到最終要輸出的源語言句子,當預測到特殊token--表示decoder認為該句子翻譯完成,我會將解碼時的計算的注意力權重保存并用于繪圖。我使用訓練集中隨機的句子作為輸入并測試翻譯的結果,結果我們可以較為直觀地看出翻譯質(zhì)量。

        4? 實驗過程及結果

        本文模型使用的隱藏態(tài)hidden_size為256,在正式實驗中一共訓練了75000次,花費了48m22s,loss=0.5797。

        本文隨機輸入句子對模型進行評估,結果如圖3。

        可以看出該模型在翻譯時仍有較多的錯誤,其錯誤類型主要為譯文選詞錯誤,譯文和原文意思相反以及詞序不對。原因可能在于在翻譯較短句子時由于模型難以得到所有的詞,而翻譯較長的句子時由于句子太復雜導致模型在翻譯短句和長句時都會出現(xiàn)錯誤。

        5? 總結與展望

        本文首先介紹了機器翻譯常用的工具和模型,并使用基于循環(huán)神經(jīng)網(wǎng)絡的編碼器-解碼器模型實現(xiàn)了法語-英語的翻譯。證明了神經(jīng)網(wǎng)絡對于自然語言的強大學習能力。其優(yōu)點在于成本低、效率高。但是翻譯的結果中還有一些問題,之后為了解決這些問題我會嘗試引入注意力機制(attention model)。

        參考文獻:

        [1]劉建偉,劉媛,羅雄麟.深度學習研究進展[J].計算機應用研究,2014,31(7):1921-1930.

        [2]Oliphant, Travis E . Python for Scientific Computing[J]. Computing in Science & Engineering, 2007, 9(3):10-20.

        [3]Sutskever I , Vinyals O , Le Q V . Sequence to Sequence Learning with Neural Networks[J]. 2014.

        [4]周志華.機器學習[M].北京:清華大學出版社,2016.

        [5]潘登.CNKI翻譯助手和Wordnet分析中國政治詞匯的英譯[J].價值工程,2013,32(04):322-324.

        猜你喜歡
        機器翻譯深度學習
        互聯(lián)網(wǎng)+新時代下人機翻譯模式研究
        考試周刊(2017年2期)2017-01-19 09:13:50
        “語聯(lián)網(wǎng)+行業(yè)” 助力中國偉大復興
        考試周刊(2017年2期)2017-01-19 09:12:54
        有體驗的學習才是有意義的學習
        電子商務中基于深度學習的虛假交易識別研究
        MOOC與翻轉(zhuǎn)課堂融合的深度學習場域建構
        大數(shù)據(jù)背景下石油科技翻譯
        智富時代(2016年12期)2016-12-01 17:03:10
        大數(shù)據(jù)技術在反恐怖主義中的應用展望
        深度學習算法應用于巖石圖像處理的可行性研究
        軟件導刊(2016年9期)2016-11-07 22:20:49
        機器翻譯不可盲取
        基于深度卷積網(wǎng)絡的人臉年齡分析算法與實現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:47:34
        欧美三级一区| 脱了老师内裤猛烈进入| 亚洲欧美乱综合图片区小说区| 国产亚洲精品第一综合麻豆| 精品一区二区三区在线观看l| aa日韩免费精品视频一| 婷婷综合另类小说色区| www国产精品内射熟女| 欧美成人高清手机在线视频| 美腿丝袜视频在线观看| 久久久久亚洲av综合波多野结衣| 亚洲午夜福利在线观看| 久久精品国产精品亚洲婷婷| 亚洲熟妇av一区二区三区hd| 欧美成人午夜免费影院手机在线看| 亚洲欧美另类激情综合区| 青春草在线视频精品| 男女打扑克视频在线看| 欧美又粗又长又爽做受| 欧美丰满大爆乳波霸奶水多| av网页在线免费观看| 久久夜色精品国产噜噜噜亚洲av| 久久青青草原一区网站| 日本a片大尺度高潮无码| 人人妻人人爽人人做夜欢视频九色| 成人无码激情视频在线观看| 亚洲国产综合精品中久| 国产乱人激情h在线观看| 精品2021露脸国产偷人在视频| 亚洲一区极品美女写真在线看| av熟妇一区二区三区| 国产真实老熟女无套内射| 国产自产c区| 日本精品一区二区三区试看 | 日本高清一级二级三级| 成人免费看片又大又黄| 日韩人妻无码精品久久伊人| 免费看av网站在线亚洲| 久久香蕉国产线看观看精品yw| 一级片久久| 精品亚洲国产亚洲国产|