多語言圖像標(biāo)題自動(dòng)生成研究分析 電子信息工程專業(yè)_第1頁
多語言圖像標(biāo)題自動(dòng)生成研究分析 電子信息工程專業(yè)_第2頁
多語言圖像標(biāo)題自動(dòng)生成研究分析 電子信息工程專業(yè)_第3頁
多語言圖像標(biāo)題自動(dòng)生成研究分析 電子信息工程專業(yè)_第4頁
多語言圖像標(biāo)題自動(dòng)生成研究分析 電子信息工程專業(yè)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

目錄前言 1第一章 緒論 21.1 研究背景和意義 21.2 showandtell自動(dòng)圖像描述系統(tǒng)簡介 31.3 主要工作及創(chuàng)新點(diǎn) 41.4 本文的組織結(jié)構(gòu) 5第二章 ImageCaption自動(dòng)圖像描述技術(shù) 62.1 ImageCaption簡介 62.2 相關(guān)技術(shù)分析 62.2.1 showandtell模型 62.2.2 show、attendandtell模型 112.2.3 使用高級(jí)語義特征的模型 112.2.4 改進(jìn)了RNN的模型 122.2.5 基于傳統(tǒng)語言建模的模型 142.3 ImageCaption技術(shù)總結(jié)及展望 15第三章 機(jī)器翻譯 163.1 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯 163.1.1 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯的核心思想 163.1.2 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯的優(yōu)點(diǎn) 163.1.3 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯的不足 163.2 end-to-end神經(jīng)機(jī)器翻譯 173.2.1神經(jīng)機(jī)器翻譯基本結(jié)構(gòu)及發(fā)展歷史 173.2.2采用注意力機(jī)制的神經(jīng)機(jī)器翻譯模型 183.2.3神經(jīng)機(jī)器翻譯的不足 193.3 機(jī)器翻譯研究展望 203.4 機(jī)器翻譯技術(shù)總結(jié) 20第四章 多語言圖像標(biāo)題自動(dòng)生成實(shí)驗(yàn) 214.1 Googleshowandtell自動(dòng)圖像描述系統(tǒng)介紹 214.2 Transformer翻譯方法 214.3 開始實(shí)驗(yàn) 234.3.1總體框架 234.3.2im2txt 234.3.3txt2txt 274.4 實(shí)驗(yàn)與分析 284.4.1 實(shí)驗(yàn)結(jié)果展示 284.4.2 評(píng)價(jià)性能 304.4.3 錯(cuò)誤分析 324.5 本章小結(jié) 32第五章總結(jié)與展望 335.1 總結(jié) 335.2 后續(xù)工作 33參考文獻(xiàn) 34致謝 35

摘要自動(dòng)描述圖像的內(nèi)容是結(jié)合了計(jì)算機(jī)視覺和自然語言處理的人工智能的一個(gè)基本問題。而機(jī)器翻譯(又稱自動(dòng)翻譯)是利用計(jì)算機(jī)將一種自然語言轉(zhuǎn)換為另一種自然語言的過程,是人工智能的一大終極目標(biāo)。若將兩者結(jié)合利用,必將具有重要的實(shí)用價(jià)值。Showandtell模型是GoogleBrain在TensorFlow上開源的一個(gè)自動(dòng)圖像描述系統(tǒng),采用Encoder-Decoder(編碼器-解碼器)的神經(jīng)網(wǎng)絡(luò)架構(gòu),可以根據(jù)圖像中的場景自動(dòng)生成相應(yīng)的描述。本文將深入分析Showandtell模型和相關(guān)基于Showandtell模型的改進(jìn)技術(shù)以及神經(jīng)機(jī)器翻譯的相關(guān)技術(shù),并且對(duì)比各類技術(shù)的優(yōu)缺點(diǎn)。本文通過該系統(tǒng)實(shí)現(xiàn)ImageCaption(自動(dòng)圖像描述),并通過神經(jīng)機(jī)器翻譯的方法Transformer將得到的描述翻譯為中文,使其適用于中文環(huán)境。最后對(duì)所采用的Transformer方法與Google機(jī)器翻譯方法進(jìn)行性能評(píng)價(jià)。關(guān)鍵詞:自動(dòng)圖像描述;機(jī)器翻譯;翻譯方法;模型

AbstractTheautomaticdescriptionofimagesisabasicproblemofartificialintelligencethatcombinescomputervisionandnaturallanguageprocessing.Machinetranslation,alsoknownasautomatictranslation,isoneoftheultimategoalofartificialintelligence,whichusescomputerstotransformanaturallanguageintoanothernaturallanguage.Thecombinationofthetwowillhaveimportantpracticalvalue.ShowandtellmodelisaGoogleBrainopensourcesystemonTensorFlow,anautomaticimagedescriptionsystemusingtheEncoder-Decoderneuralnetworkarchitecture,canaccordingtotheimageofthescenetoautomaticallygeneratethecorrespondingdescription.ThispaperwillanalyzetheShowandtellmodelandrelatedtechniquesbasedontheShowandtellmodel,aswellastherelatedtechniquesofneuralmachinetranslation,andcomparetheadvantagesanddisadvantagesofvarioustechnologies.Inthispaper,ImageCaption(automaticImagedescription)isrealizedbythesystem,andthedescriptionobtainedistranslatedintoChinesebymeansofneuralmachinetranslationcalledTransformer,sothatitcanbeappliedtotheChineseenvironment.Finally,theperformanceevaluationoftheTransformermethodandtheGooglemachinetranslationmethodiscarriedout.Keywords:ImageCaption;MachineTranslation;TranslationMethods;Model前言ImageCaption技術(shù)(即自動(dòng)描述圖像內(nèi)容技術(shù),也稱圖像標(biāo)注),指的就是從給定圖片中自動(dòng)生成一段能夠描述其內(nèi)容的文字,有點(diǎn)類似于我們小學(xué)里學(xué)的“看圖說話”。對(duì)于人類來說,這是一件簡單并且每天都在做的事,然而對(duì)于計(jì)算機(jī)來說,這是一件非常具有挑戰(zhàn)性的任務(wù)。原因在于計(jì)算機(jī)面對(duì)的不是人們眼睛所看到的景象,而是一個(gè)像素矩陣。計(jì)算機(jī)不僅要在一堆數(shù)字中檢測出圖像中的物體,而且還要理解各個(gè)物體之間的相互關(guān)系,最終需要用一段文字將一切表述出來。MachineTranslation技術(shù)(即機(jī)器翻譯技術(shù)),顧名思義,就是利用機(jī)器來進(jìn)行翻譯的技術(shù),用于不同語言文字之間的轉(zhuǎn)換。60年來,機(jī)器翻譯技術(shù)不斷發(fā)展,從最早的詞典匹配、到基于詞典和語言學(xué)知識(shí)的規(guī)則翻譯、再到基于短語的統(tǒng)計(jì)機(jī)器翻譯,最后成長為當(dāng)前基于人工神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯。隨著計(jì)算機(jī)計(jì)算性能的提升以及大數(shù)據(jù)時(shí)代多語言信息的爆炸式增長,機(jī)器翻譯技術(shù)已漸漸完善,開始在人們的日常生活中扮演一個(gè)重要角色,為我們提供便捷的翻譯服務(wù)。得益于神經(jīng)機(jī)器翻譯的迅速發(fā)展,看似困難的機(jī)器“看圖說話”任務(wù)迎刃而解。在ImageCaption任務(wù)中僅僅對(duì)神經(jīng)機(jī)器翻譯中模型做了簡單的修改,便取得了很好的結(jié)果。本文主要以Google的基于TensorFlow的showandtell自動(dòng)圖像描述系統(tǒng)為研究對(duì)象,并與兩種機(jī)器翻譯方法相結(jié)合來完成多語言圖像標(biāo)題自動(dòng)生成的研究。深入分析了showandtell模型,并對(duì)比相關(guān)后續(xù)先進(jìn)技術(shù);對(duì)比分析Google機(jī)器翻譯與Transformer翻譯方法,并進(jìn)行實(shí)驗(yàn)驗(yàn)證。本文完成的主要工作及創(chuàng)新點(diǎn)有:(1)利用showandtell自動(dòng)圖像描述系統(tǒng),實(shí)現(xiàn)從圖片生成描述。(2)分析了ImageCaption相關(guān)技術(shù)的特點(diǎn)。(3)利用Google機(jī)器翻譯以及Transformer翻譯方法進(jìn)行英譯中。(4)對(duì)給定語料進(jìn)行人工標(biāo)注,生成翻譯參考語句。(5)對(duì)比Google機(jī)器翻譯和Transformer翻譯方法的模型架構(gòu),并通過實(shí)驗(yàn)驗(yàn)證其性能。最后得出圖片和多語言描述的匹配度,并進(jìn)行錯(cuò)誤分析。

第一章 緒論本章首先介紹了多語言圖像標(biāo)題自動(dòng)生成的研究背景和意義,其次簡單介紹了showandtell自動(dòng)圖像描述系統(tǒng),并概述了本文所做的主要工作和貢獻(xiàn)以及創(chuàng)新點(diǎn),在本章的最后介紹了論文的組織結(jié)構(gòu)。1.1 研究背景和意義近年來,信息技術(shù),人工智能不斷發(fā)展,人們也通過科幻電影來對(duì)未來進(jìn)行展望。電影《HER》就是一個(gè)例子,影片中的“薩曼莎”是一個(gè)AI系統(tǒng),他能夠理解主人公西奧多的手機(jī)信息和圖像內(nèi)容,了解主人公的狀態(tài),在其心情不好時(shí)可以陪他談心,還可以讀懂文字,“她”儼然成為了一個(gè)真實(shí)的人類,甚至在某些方法還更勝人類。電影的“薩曼莎”是人類幻想出來的人工智能,“她”能夠思考,同時(shí)具備比人還強(qiáng)的智力以及運(yùn)算能力,雖然目前的人工智能技術(shù)還不能完全像電影中一樣強(qiáng)大,但近年來人工智能技術(shù)讓機(jī)器具備了人來的能力,例如計(jì)算機(jī)已經(jīng)能理解更高層次的圖像內(nèi)容,能夠自動(dòng)描述圖像的內(nèi)容。在人工智能領(lǐng)域,這是機(jī)器的ImageCaptioning(自動(dòng)圖像描述)能力。在去年11月7日晚,錘子科技發(fā)布了堅(jiān)果Pro2。這場發(fā)布會(huì)感動(dòng)我的不是堅(jiān)果Pro2超高顏值的外觀設(shè)計(jì),亦或是極具良心的售價(jià),而是錘子堅(jiān)果Pro2新的SmartisanOS系統(tǒng),針對(duì)盲人用戶做出的優(yōu)化。錘子利用OCR識(shí)別技術(shù),把普通手機(jī)APP無法識(shí)別的內(nèi)容通過OCR技術(shù)轉(zhuǎn)成文字,再把文字通過揚(yáng)聲器讀出來。這讓許多視障者都能更好使用智能手機(jī)。根據(jù)2016年的數(shù)據(jù)顯示,中國的盲人數(shù)量已經(jīng)超過1400萬,相當(dāng)于每100個(gè)人中就有一個(gè),但卻因?yàn)闊o障礙設(shè)施的不友好,卻很難在街頭看到他們的身影。因此許多盲人都對(duì)手機(jī)、電腦等電子產(chǎn)品和網(wǎng)絡(luò)有著更深的依賴,這幾乎成了他們與外面的世界互動(dòng)的唯一通道。我們相信如果能將自動(dòng)圖像描述技術(shù)與機(jī)器翻譯結(jié)合,便能夠讓全球的視障人群便捷地讀懂世界(不僅僅是有文字標(biāo)注的世界)。自動(dòng)圖像描述技術(shù)的意義也不僅僅在于幫助視障人群,還能應(yīng)用與我們的日常生活。當(dāng)我們需要尋找一張時(shí)間久遠(yuǎn)的手機(jī)照片時(shí),常常因?yàn)閿?shù)量的龐大無從尋找。在這里,如果系統(tǒng)能夠?qū)γ繌堈掌忌梢粋€(gè)簡單的標(biāo)題(或是描述),那么我們只需要憑借圖像的印象便能夠輕松找到對(duì)應(yīng)的照片。得益于近年來機(jī)器視覺和自然語言處理的發(fā)展以及自動(dòng)圖像描述領(lǐng)域中積累的大量研究,GoogleBrain基于TensorFlow深度學(xué)習(xí)庫開發(fā)了“ShowandTell”自動(dòng)圖像描述系統(tǒng),成功地將機(jī)器這方面的能力提高到一個(gè)新臺(tái)階。作為多模態(tài)數(shù)據(jù)處理的經(jīng)典,自動(dòng)圖像描述技術(shù)正逐步成為研究熱點(diǎn)。1.2 showandtell自動(dòng)圖像描述系統(tǒng)簡介Showandtell模型是一個(gè)深度神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)如何描述圖像的內(nèi)容。例如:圖1.1圖像描述示例1圖1.2圖像描述示例2運(yùn)行步驟:硬件及訓(xùn)練時(shí)間提示NVIDIATeslaK20mGPU-1-2weeks必要的安裝包Bazel,TensorFlow1.0,NumPy,NaturalLanguageToolkit,Unzip準(zhǔn)備訓(xùn)練數(shù)據(jù)MSCOCO圖像標(biāo)注數(shù)據(jù)集下載Inceptionv3Checkpoint需要一個(gè)訓(xùn)練好的Inceptionv3Checkpoint文件來初始化編碼器(CNN)參數(shù)訓(xùn)練模型分為2步,初始訓(xùn)練和進(jìn)階訓(xùn)練預(yù)測標(biāo)題你可能得到不同的結(jié)果,這些差別是正常的。圖1.3示例圖片輸出實(shí)例:CaptionsforimageCOCO_val2014_000000224477.jpg:0)amanridingawaveontopofasurfboard.(p=0.040413)1)apersonridingasurfboardonawave(p=0.017452)2)amanridingawaveonasurfboardintheocean.(p=0.005743)1.3 主要工作及創(chuàng)新點(diǎn)本文主要以Google的基于TensorFlow的showandtell自動(dòng)圖像描述系統(tǒng)為研究對(duì)象,并與兩種機(jī)器翻譯方法相結(jié)合來完成多語言圖像標(biāo)題自動(dòng)生成的研究。實(shí)驗(yàn)之前深入分析了showandtell模型,并對(duì)比相關(guān)后續(xù)先進(jìn)技術(shù);也對(duì)機(jī)器翻譯主要方法進(jìn)行了分析,而后通過實(shí)驗(yàn)對(duì)比分析Google機(jī)器翻譯與Transformer翻譯方法。本文完成的主要工作及創(chuàng)新點(diǎn)有:(1)利用showandtell自動(dòng)圖像描述系統(tǒng),實(shí)現(xiàn)從圖片生成描述。(2)分析了ImageCaption相關(guān)技術(shù)的特點(diǎn)。(3)利用Google機(jī)器翻譯以及Transformer翻譯方法進(jìn)行英文-中文的翻譯。(4)對(duì)給定語料進(jìn)行人工標(biāo)注,生成翻譯參考語句。(5)對(duì)比Google機(jī)器翻譯和Transformer翻譯方法的模型架構(gòu),并通過實(shí)驗(yàn)驗(yàn)證其性能。最后得出圖片和多語言描述的匹配度,并進(jìn)行錯(cuò)誤分析。1.4 本文的組織結(jié)構(gòu)本文共分為五章,每章內(nèi)容簡介如下:第一章:緒論。本章介紹了《多語言圖像標(biāo)題自動(dòng)生成研究》課題的研究背景及意義、showandtell系統(tǒng)簡介及模型運(yùn)行說明、本文的主要工作及主要?jiǎng)?chuàng)新點(diǎn),最后介紹了本文的組織結(jié)構(gòu)。第二章:本章主要介紹了現(xiàn)在的幾種ImageCaption自動(dòng)圖像描述技術(shù)的原理,并對(duì)這些現(xiàn)有技術(shù)進(jìn)行分析對(duì)比,最后對(duì)ImageCaption自動(dòng)圖像描述技術(shù)進(jìn)行了總結(jié)。第三章:本章詳細(xì)介紹并分析了兩類基于深度學(xué)習(xí)的機(jī)器翻譯方法,并對(duì)比其優(yōu)點(diǎn)與不足,簡要概括了當(dāng)前機(jī)器翻譯領(lǐng)域的研究熱點(diǎn),并對(duì)機(jī)器翻譯技術(shù)進(jìn)行了總結(jié)。第四章:本章主要介紹了Googletensorflow-im2txt-master自動(dòng)圖像描述系統(tǒng),接著將把Google自動(dòng)圖像描述系統(tǒng)與兩種翻譯方法相結(jié)合(Google翻譯和transformer方法),進(jìn)行多語言圖像標(biāo)題自動(dòng)生成研究。對(duì)比分析使用不同翻譯方法的最后生成標(biāo)題的性能,以及這兩種翻譯方法在單獨(dú)進(jìn)行英文-中文翻譯的性能。。第五章:總結(jié)全文,提出未來研究展望。

第二章 ImageCaption自動(dòng)圖像描述技術(shù)本章詳細(xì)介紹了發(fā)展至今的幾種ImageCaption自動(dòng)圖像描述技術(shù)的原理,并對(duì)這些現(xiàn)有技術(shù)進(jìn)行分析對(duì)比。2.1 ImageCaption簡介ImageCaption自動(dòng)圖像描述問題其本質(zhì)就是視覺到語言(Visual-to-Language)或者是圖片到文字(Image-to-Text)的問題,用一句簡單的話來說就是:看圖說話。就像我們小時(shí)候在看圖說話作業(yè)中完成的任務(wù)一樣,我們希望計(jì)算機(jī)也能根據(jù)給定的圖像來生成能夠描述其內(nèi)容的自然語言句子。雖然在我們看來這是在簡單不過的事情了,甚至我們時(shí)時(shí)刻刻都在通過這種方法來理解這個(gè)世界,但是對(duì)于計(jì)算機(jī)來說,這不能不稱之為一個(gè)挑戰(zhàn),因?yàn)樽詣?dòng)圖像描述任務(wù)的輸入和輸出是兩種不同形式的信息,即圖像信息和文本信息。隨著近年來深度學(xué)習(xí)領(lǐng)域的發(fā)展,一種將深度卷積神經(jīng)網(wǎng)絡(luò)(DeepCNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)相結(jié)合的方法在自動(dòng)圖像描述問題上取得了顯著的成功。甚至因?yàn)檫@個(gè)方法的成功,許多基于這個(gè)方法的自動(dòng)圖像描述研究開始火熱。2.2 相關(guān)技術(shù)分析按照技術(shù)發(fā)展歷程,自動(dòng)圖像描述技術(shù)分為以下幾類:showandtell模型[1]、showattendandtell模型[2]、使用高層語義特征的模型[3]、改進(jìn)了RNN的模型[4]和基于傳統(tǒng)語言建模方式的模型[5]。2.2.1 showandtell模型Showandtell模型在論文《ShowandTell:ANeuralImageCaptionGenerator》中提出,這篇論文是ImageCaption任務(wù)早期的研究作品。模型的主要結(jié)構(gòu)借鑒了機(jī)器翻譯中的結(jié)構(gòu),機(jī)器翻譯的任務(wù)是把一種自然語言轉(zhuǎn)換為另一種自然語言。多年來,機(jī)器翻譯也是由一系列獨(dú)立的任務(wù)完成的(翻譯單詞、對(duì)齊單詞、重新排序等),但是最近的研究表明,使用遞歸神經(jīng)網(wǎng)絡(luò)(RNN)可以用更簡單的方法進(jìn)行翻譯,而且還能達(dá)到最好的性能。一個(gè)encoder-RNN(編碼器)讀取源語句并將其轉(zhuǎn)換為一個(gè)復(fù)雜的固定長度的向量表示,隨后被用作生成目標(biāo)句子的decoder-RNN(解碼器)的初始隱藏狀態(tài)[6,7,8]。Showandtell模型把Encoder-Decoder結(jié)構(gòu)做了簡單修改,用一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)代替編碼器RNN。在過去的幾年研究里,它已經(jīng)讓人們信服,深度卷積神經(jīng)網(wǎng)絡(luò)CNNs可以通過將輸入圖像轉(zhuǎn)換為固定長度的向量,從而產(chǎn)生豐富的輸入圖像,這種表示法可用于許多視覺任務(wù)。因此,使用CNN作為圖像的“編碼器”,首先將圖像放入CNN神經(jīng)網(wǎng)絡(luò)進(jìn)行轉(zhuǎn)換,并將CNN的最后一個(gè)layer作為RNN解碼器的輸入,來生成句子。在統(tǒng)計(jì)機(jī)器翻譯方面,給定一個(gè)強(qiáng)大的序列模型,往往通過直接最大化正確翻譯的概率的方法來達(dá)到最好的結(jié)果,即以“end-to-end”的方式。這些模型利用一個(gè)RNN神經(jīng)網(wǎng)絡(luò),將輸入序列編碼到一個(gè)固定的維度向量中,并利用這個(gè)向量來“解碼”到輸出序列。因此,可以使用相同的方法,給定一個(gè)圖像(而不是源語言中的輸入句),能夠適用于同樣的原則,將其“翻譯”到它的描述中。通過使用以下公式直接最大化給定圖像的正確描述的概率:θ模型的參數(shù)是θ,I是輸入的圖像,S是它正確的描述。因?yàn)镾表示任意一個(gè)句子,它的長度是無限的。因此,將鏈?zhǔn)椒▌t應(yīng)用于S0,…,SNlog這里為了方便放棄了對(duì)θ的依賴。在訓(xùn)練時(shí),(S,I)是一個(gè)訓(xùn)練樣本對(duì),利用隨機(jī)梯度下降法對(duì)整個(gè)訓(xùn)練集所描述的對(duì)數(shù)概率的和進(jìn)行了優(yōu)化。 接著利用RNN來對(duì)p(St|I,S0,…,S?對(duì)于f,我們使用了一個(gè)長短期記憶(LSTM)網(wǎng)絡(luò),它展現(xiàn)了在諸如翻譯這樣的序列任務(wù)上的出色表現(xiàn)。對(duì)于圖像的表示,使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)。它們已經(jīng)被廣泛地用于圖像任務(wù),并且目前是用于對(duì)象識(shí)別和檢測的先進(jìn)技術(shù)。f的選擇取決于它處理消失和爆炸梯度的能力,這是設(shè)計(jì)和訓(xùn)練RNNs最常見的挑戰(zhàn)。為了應(yīng)對(duì)這一挑戰(zhàn),引入了一種稱為LSTM的特殊形式的周期性網(wǎng)絡(luò)(圖2.1),并在翻譯和序列生成中獲得了巨大的成功。圖2.1LSTM網(wǎng)絡(luò)結(jié)構(gòu)LSTM模型的核心是一個(gè)記憶單元c,在每個(gè)時(shí)間步驟中,c記錄下在這個(gè)步驟前已經(jīng)觀察到的輸入。c的行為是由“門”控制的,“門”層是用乘法來進(jìn)行的,因此,如果門是1,則可以從門禁層中保留一個(gè)值,如果門是0,則丟棄這個(gè)值。特別地,這里使用了3個(gè)門來控制是否忘記當(dāng)前記憶單元的值(忘記門f),是否讀取它的輸入(輸入門i),以及是否輸出新的單元值(輸出門o)。三個(gè)門的定義如下:ifocmp其中⊙表示門運(yùn)算符,W矩陣是訓(xùn)練參數(shù)。三個(gè)門的使用更好的訓(xùn)練了LSTM網(wǎng)絡(luò),因?yàn)檫@些門可以很好地處理爆炸和消失的梯度。最后一個(gè)方程mt是用來給一個(gè)Softmax提供的,它將產(chǎn)生一個(gè)關(guān)于所有單詞的概率分布pLSTM模型被訓(xùn)練用來預(yù)測句子的每個(gè)單詞,因?yàn)樗呀?jīng)看到了圖像以及所有前面的單詞,即p(St|I,S0,…,St?1)。為了這個(gè)目的,可以想象LSTM展開形式—一份LSTM內(nèi)存為圖像和每個(gè)句子的詞所創(chuàng)建,這樣所有LSTMs就能共享相同的參數(shù),LSTM圖2.2LSTM和CNN網(wǎng)絡(luò)結(jié)合圖 所有的重復(fù)連接都被轉(zhuǎn)換為在展開的版本中的前饋連接。更詳細(xì)地說,如果我們用I表示輸入圖像和S=(Sxxp在這里,我們把每一個(gè)詞都表示為維度等于字典大小的一個(gè)列向量St。注意,我們用S0表示一個(gè)特殊的起始字,并通過SN一個(gè)特殊的停止字來指定句子的開始和結(jié)束。特別是通過發(fā)出停止字,LSTM信號(hào)表示已生成完整的句子。圖像通過使用一個(gè)視覺CNN,單詞通過嵌入矩陣We,這樣都被映射到相同的空間。LSTM網(wǎng)絡(luò)只在t=-1損失函數(shù)是每個(gè)步驟中正確單詞的負(fù)對(duì)數(shù)可能性的和:LShowandtell模型通過大量實(shí)驗(yàn)被證明是有效的。迄今為止,在圖像描述文獻(xiàn)中最常用的指標(biāo)是BLEU評(píng)分,它是生成的和參考的句子之間的單詞n-g的精度的一種形式。盡管這個(gè)指標(biāo)有一些明顯的缺點(diǎn),但它已經(jīng)被證明與人類的評(píng)價(jià)相關(guān)聯(lián)。在官方網(wǎng)站的官方測試集上,showandtell模型的BLEU-4得分為27.2。然而,當(dāng)使用人類評(píng)分員來評(píng)估描述時(shí),模型的得分會(huì)低得多,這表明需要更多的工作來達(dá)到更好的指標(biāo)。圖2.3顯示了該模型提供的描述的人類評(píng)估結(jié)果,以及在各種數(shù)據(jù)集上的參考系統(tǒng)和事實(shí)真相。我們可以看到,showandtell模型比參考系統(tǒng)更好,但顯然比預(yù)期的事實(shí)真相糟糕。這表明BLEU并不是一個(gè)完美的度量標(biāo)準(zhǔn),因?yàn)樗]有很好地捕捉到生成的描述和人類描述之間的差異。圖2.3各數(shù)據(jù)集上的得分對(duì)比那么現(xiàn)在的模型是否真的能捕捉圖像中的那些從未在訓(xùn)練集中出現(xiàn)的場景并生成新描述,還是只是尋找復(fù)述訓(xùn)練集中相關(guān)的描述呢。答案是肯定的。現(xiàn)在的自動(dòng)圖像描述系統(tǒng)已經(jīng)具備自主產(chǎn)生全新的句子能力,例如下圖粗體的描述為不在數(shù)據(jù)庫中的標(biāo)注句子:圖2.4生成的描述這就保證了生成描述的多樣性。2.2.2 show、attendandtell模型《Show,AttendandTell:NeuralImageCaptionGenerationwithVisualAttention》論文在原來的Encoder-Decoder機(jī)制中引入了兩種Attention機(jī)制。一種叫HardAttention,一種叫SoftAttention,其中SoftAttention的原理如下。原來的模型中使用CNN在圖像中提取了固定長度的向量特征I,而現(xiàn)在的模型利用了CNN的空間特性,給圖像的不同位置都提取了一個(gè)特征。如果用a=a1,…,aL表示已經(jīng)提取的特征,一共為L個(gè),每個(gè)位置的特征是一個(gè)D維向量。假設(shè)卷積層的feature在生成第t個(gè)單詞時(shí),傳入decoder的上下文向量為Zt,這個(gè)Zt就是L個(gè)位置向量的加權(quán)平均,權(quán)值αt,i決定了在生成第t個(gè)單詞時(shí),這些位置特征所占的權(quán)重。而這個(gè)權(quán)重由前一個(gè)狀態(tài)?t?1和位置特征ai決定。因?yàn)棣羣,i只和已知信息2.2.3 使用高級(jí)語義特征的模型2.2.1和2.2.2模型中,都是使用CNN神經(jīng)網(wǎng)絡(luò)的卷積特征作為“圖像語義”,但這篇文章《WhatValueDoExplicitHighLevelConceptsHaveinVisiontoLanguageProblems?》認(rèn)為,CNN在最終的分類層包含了大量諸如“圖中有無人”、“圖中有無桌子”這樣的高層信息。這種高層語義與最終生成的語句非常相關(guān),不能輕易舍棄。作者把這個(gè)高層語義理解為一個(gè)多標(biāo)簽分類問題。不同于通常的一對(duì)一關(guān)系,在自動(dòng)圖像描述任務(wù)中,由于一張圖片中的物體數(shù)目會(huì)有很多,因此圖片和物體標(biāo)簽就是一個(gè)一對(duì)多的關(guān)系。所以需要對(duì)原先的CNN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行適當(dāng)調(diào)整。面對(duì)通常的一對(duì)一關(guān)系中,只需要對(duì)卷積特征使用一個(gè)softmax,而面對(duì)一對(duì)多關(guān)系中,每有一類物體,就需要使用1個(gè)softmax層。設(shè)第i張圖片的標(biāo)簽yi=yi1,…,J=在訓(xùn)練時(shí),首先在所有描述中選擇出現(xiàn)次數(shù)最多的c個(gè)單詞作為總標(biāo)簽數(shù),而每個(gè)圖像各自的訓(xùn)練數(shù)據(jù)從各自描述單詞中選擇。訓(xùn)練完成后,針對(duì)每一張圖片提取高層的語義表達(dá)向量Vatt(I)(如下圖所示)。其實(shí),這個(gè)高層語義向量Vatt(I)實(shí)際就對(duì)應(yīng)了圖像中出現(xiàn)的物體。得到Vatt(I)后,就直接將其送入Decoder進(jìn)行解碼。實(shí)驗(yàn)證明,使用了高層語義向量Vatt(I)可以大幅提高模型效果。圖2.5使用高層語義的模型結(jié)構(gòu)如在上圖中,藍(lán)色的線就是之前直接使用的卷積特征CNN(I),而紅色線就是這篇文章提出的Vatt(I)。2.2.4 改進(jìn)了RNN的模型《Mind’sEye:ARecurrentVisualRepresentationforImageCaptionGeneration》中改進(jìn)了decoder部分的RNN結(jié)構(gòu),讓RNN網(wǎng)絡(luò)不僅能將圖像描述為文字,還能反過來從文字得到圖像特征,同時(shí)還得到了性能的提升。圖2.6改進(jìn)了RNN結(jié)構(gòu)的模型上圖就是改進(jìn)過的DecoderRNN結(jié)構(gòu)。其中v是圖像特征,St是t時(shí)刻RNN網(wǎng)絡(luò)的隱層狀態(tài),Wt是時(shí)間t時(shí)生成的單詞。V,St,Wt都是之前的模型中存在的,而作者又新加入了ut和v。其中ut表示的是“已經(jīng)生成的文字”的隱變量,作用是記住已經(jīng)生成單詞中包含的信息。這個(gè)量在每次生成Wt之前建模的都是P(Wt|v,Wt?1圖2.7生成文字的過程圖2.8文字生成圖像特征的過程生成文字的過程如上圖2.7,反過來生成圖像特征的過程如上圖2.8。2.2.5 基于傳統(tǒng)語言建模的模型與上面4種方法不同,《FromCaptionstoVisualConceptsandBack》這篇論文沒有采用encoder-decoder架構(gòu),而是基于傳統(tǒng)語言建模方式。在圖像特征提取方面,這篇文章和《WhatValueDoExplicitHighLevelConceptsHaveinVisiontoLanguageProblems?》類似,先從圖像中提取相關(guān)單詞,再把單詞組織為句子。不同點(diǎn)在于,上節(jié)的模型利用多標(biāo)簽學(xué)習(xí)的方式,而這個(gè)模型采用多示例學(xué)習(xí)(MultipleInstanceLearning)的方法,這個(gè)方法不僅可以從圖像中提取相關(guān)單詞,而且可以找到單詞對(duì)應(yīng)的圖像區(qū)域。多示例學(xué)習(xí)是一種半監(jiān)督算法。可以這樣設(shè)想:有很多個(gè)數(shù)據(jù)包(bag),每個(gè)bag中有很多示例(instance)。現(xiàn)在只有對(duì)bag的正負(fù)類標(biāo)記,而沒有對(duì)bag中各個(gè)instance的正負(fù)例標(biāo)記。正負(fù)判定規(guī)則如下:如果一個(gè)包里有一個(gè)instance是正類,那么這個(gè)bag即為正,只有當(dāng)bag里面的所有instance都是負(fù)類時(shí),bag才為負(fù)。作者的目標(biāo)就是訓(xùn)練一個(gè)分類器對(duì)instance的正負(fù)進(jìn)行判別。在這篇論文中,就是使用多示例學(xué)習(xí)來處理從圖片出提取單詞這一問題。在這個(gè)場景中,如果一個(gè)圖片存在某個(gè)區(qū)域(instance)為正(指的就是存在某個(gè)生成詞),那么這個(gè)圖片(bag)就為正(指的就是圖片描述中含有某個(gè)生成詞)。由此,作者使用多示例學(xué)習(xí)方法進(jìn)行兩步迭代,第一步是選出正例bag中最有可能是正例的instance、以及負(fù)例bag的instance,第二步是利用選出的instance進(jìn)行訓(xùn)練,更新訓(xùn)練。如此迭代,就可以對(duì)圖片的區(qū)域進(jìn)行分類了。這樣就可以從圖片的區(qū)域中提取相關(guān)的單詞(如下圖)。圖2.9從圖像中提取單詞在圖像中提取出相關(guān)單詞后,采用一種傳統(tǒng)的方法來進(jìn)行語言建模。設(shè)集合V中存有圖片中提取的單詞,w1,w2建模P(wl|w1,w2,…,wl?12.3 ImageCaption技術(shù)總結(jié)及展望本章選取了ImageCaption領(lǐng)域中比較重要的5篇文章進(jìn)行了介紹。第一篇論文首先使用了Encoder-Decoder結(jié)構(gòu)對(duì)此問題進(jìn)行建模,接下來三篇文章分別從不同的角度對(duì)第一篇論文做出了改進(jìn)。最后介紹的論文并沒有采用Encoder-Decoder結(jié)構(gòu),而是采用傳統(tǒng)的方式對(duì)語言進(jìn)行建模,也具有一定啟發(fā)意義[6]。部分模型完成的自動(dòng)評(píng)價(jià)標(biāo)準(zhǔn)得分已高于人類的分,但并不代表實(shí)際描述語句就比人類描述語句水平高[7]。想要更好地解決自動(dòng)圖像描述問題,還需要:(1)與人類評(píng)價(jià)相關(guān)性更高的自動(dòng)評(píng)價(jià)標(biāo)準(zhǔn);(2)更大的數(shù)據(jù)集;(3)在圖像分析部分,語言生成部分,或者兩個(gè)部分的連接方式上出現(xiàn)新的模型或思路。

第三章 機(jī)器翻譯機(jī)器翻譯技術(shù)是研究利用計(jì)算機(jī)進(jìn)行自然語言轉(zhuǎn)換的技術(shù),是人工智能(AI)和自然語言處理(NLP)的重要研究領(lǐng)域。自2013年提出了神經(jīng)機(jī)器翻譯系統(tǒng)之后,神經(jīng)機(jī)器翻譯系統(tǒng)取得了很大的進(jìn)展。當(dāng)以BLEU值作為評(píng)測指標(biāo)時(shí),神經(jīng)機(jī)器翻譯在絕大多數(shù)語言上優(yōu)于傳統(tǒng)的統(tǒng)計(jì)機(jī)器翻譯。因此,本章詳細(xì)介紹并分析了兩類基于深度學(xué)習(xí)的機(jī)器翻譯方法,并對(duì)比其優(yōu)點(diǎn)與不足。3.1 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯3.1.1 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯的核心思想基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯仍舊以統(tǒng)計(jì)機(jī)器翻譯為主體,使用深度學(xué)習(xí)改進(jìn)其中的關(guān)鍵模塊,如語言模型、翻譯模型、調(diào)序模型、詞語對(duì)齊等,取得了顯著的效果。3.1.2 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯的優(yōu)點(diǎn)深度學(xué)習(xí)有效緩解了數(shù)據(jù)稀疏的問題。以語言模型為例,傳統(tǒng)的語言模型通常采用n-gram方法來極大似然估計(jì)訓(xùn)練參數(shù),然而多數(shù)n-gram在語料庫中只出現(xiàn)一次,因此無法準(zhǔn)確估計(jì)模型參數(shù)。美國BBN公司的JacobDevlin等人提出了神經(jīng)網(wǎng)絡(luò)聯(lián)合模型(NeuralNetworkJointModels),將源語言端的相關(guān)部分也加入到了當(dāng)前詞的n-gram模型中。因此該聯(lián)合模型能夠使用到豐富的上下文信息(包括目標(biāo)語言端的歷史信息和源語言端的相關(guān)部分),性能得到了顯著提升。使用深度學(xué)習(xí)還能夠解決特征難以設(shè)計(jì)的問題。傳統(tǒng)的方法無法從眾多的詞語中選擇出能夠決定調(diào)序次序,也不能充分利用到整個(gè)詞串。而基于神經(jīng)網(wǎng)絡(luò)的調(diào)序模型通過遞歸自動(dòng)編碼器生成詞串的分布式表示,隨后建立神經(jīng)網(wǎng)絡(luò)分類器來緩解特征設(shè)計(jì)的問題。實(shí)驗(yàn)證明,深度學(xué)習(xí)不僅能產(chǎn)生出新的特征,還能在現(xiàn)有特征集合中生成新的特征集合,大大提高了翻譯模型的表達(dá)能力。3.1.3 基于深度學(xué)習(xí)的統(tǒng)計(jì)機(jī)器翻譯的不足雖然利用深度學(xué)習(xí)使得傳統(tǒng)機(jī)器翻譯得到了性能的提升,但仍然面臨如下的難題。(1)線性不可分主體依舊是傳統(tǒng)機(jī)器翻譯的線性模型,面對(duì)高維數(shù)據(jù)存在線性不可分的問題。而將線性模型轉(zhuǎn)換為非線性模型的方法并沒有取得成功。(2)非局部特征深度學(xué)習(xí)產(chǎn)生的新特征是非局部的,無法設(shè)計(jì)出高效的動(dòng)態(tài)規(guī)劃算法。3.2 end-to-end神經(jīng)機(jī)器翻譯3.2.1神經(jīng)機(jī)器翻譯基本結(jié)構(gòu)及發(fā)展歷史神經(jīng)機(jī)器翻譯(NeuralMachineTranslation)是指利用神經(jīng)網(wǎng)絡(luò)將源語言映射為目標(biāo)語言的機(jī)器翻譯方法。與上一節(jié)中的利用深度學(xué)習(xí)改進(jìn)傳統(tǒng)統(tǒng)計(jì)機(jī)器翻譯中關(guān)鍵模塊的方法不同,神經(jīng)機(jī)器翻譯的方法簡單又直觀。神經(jīng)機(jī)器翻譯采用了“編碼器-解碼器”(encoder-decoder)的新框架。首先使用了一個(gè)神經(jīng)網(wǎng)絡(luò)(被稱為encoder)將源語言文本映射為一個(gè)連續(xù)的、稠密的向量(后文稱為上下文向量),然后再使用一個(gè)神經(jīng)網(wǎng)絡(luò)(被稱為decoder)把這個(gè)向量轉(zhuǎn)換為目標(biāo)語言文本。下圖是神經(jīng)機(jī)器翻譯“編碼器-解碼器”結(jié)構(gòu)[9,10]。圖3.1神經(jīng)機(jī)器翻譯結(jié)構(gòu)神經(jīng)機(jī)器翻譯的建模思想其實(shí)由來已久。早在上世紀(jì)90年代,西班牙阿利坎特大學(xué)的Forcada和?eco就已經(jīng)提出“編碼器-解碼器”的結(jié)構(gòu)并應(yīng)用于翻譯。得益于深度學(xué)習(xí)的發(fā)展,英國牛津大學(xué)的NalKalchbrenner和PhilBlunsom于2013年首先提出了端到端神經(jīng)機(jī)器翻譯方法。2014年,Google公司的Sutskever將長短期記憶LSTM(LongShort-TermMemory)網(wǎng)絡(luò)引入神經(jīng)機(jī)器翻譯。LSTM網(wǎng)絡(luò)使用了3個(gè)門(忘記門f,輸入門i,輸出門o),這些門使得LSTM的訓(xùn)練成為可能,解決了訓(xùn)練普通RNN時(shí)遇到的“梯度消失”和“梯度爆炸”問題,并能夠?qū)崿F(xiàn)長距離依賴。隨后,YoshuaBengio研究組在前者的研究基礎(chǔ)上又引入了注意力機(jī)制,并顯著提升了翻譯性能。3.2.2采用注意力機(jī)制的神經(jīng)機(jī)器翻譯模型圖3.2采用注意力機(jī)制的神經(jīng)機(jī)器翻譯模型所謂注意力機(jī)制,就是解碼器在生成某一個(gè)目標(biāo)詞語時(shí),僅僅關(guān)注那些與之相關(guān)的源語言部分。例如,在上圖中,當(dāng)生成目標(biāo)詞“election”時(shí),實(shí)際上源語言中只有“大選”和它有關(guān)。因此,作者希望給每一個(gè)即將生成的目標(biāo)詞自動(dòng)選擇相關(guān)的上下文向量,而不是整個(gè)源語言句子所生成的向量。此外,解碼器使用了雙向循環(huán)神經(jīng)網(wǎng)絡(luò)。圖3.3模型的工作流程工作流程如上圖所示。具體過程如下:給定源語言句子X=x1,…,xN。雙向循環(huán)神經(jīng)網(wǎng)絡(luò)將X編碼為隱式狀態(tài)序列H=解碼時(shí)刻t時(shí),解碼器產(chǎn)生該時(shí)刻的目標(biāo)語言隱式狀態(tài)stS其中g(shù)為非線性函數(shù)。st?1為t-1時(shí)刻的目標(biāo)語言隱式狀態(tài),yt?1是t-1時(shí)刻的目標(biāo)語言單詞,c其中的注意力模型權(quán)重at,j(可理解為源語言詞xj與目標(biāo)語言詞ytae在計(jì)算出目標(biāo)語言隱式狀態(tài)stP最后生成t時(shí)刻目標(biāo)單詞,并進(jìn)入t+1時(shí)刻直至句子結(jié)束。3.2.3神經(jīng)機(jī)器翻譯的不足得益于注意力機(jī)制,神經(jīng)機(jī)器翻譯的性能得到大幅提升。但仍存在許多問題需要解決:可解釋性差神經(jīng)機(jī)器翻譯重在神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì),中間量,即上下文向量,無法被解釋,不能依據(jù)語言學(xué)的相關(guān)理論來提升性能。訓(xùn)練復(fù)雜度高神經(jīng)機(jī)器翻譯的訓(xùn)練復(fù)雜度是傳統(tǒng)方法復(fù)雜度數(shù)量級(jí)上的提升,需要大量高性能GPU才能進(jìn)行訓(xùn)練,計(jì)算成本高。詞語表規(guī)模受限制源語言和目標(biāo)語言兩端的詞語表常常無法支持某些詞形豐富的語言。翻譯覆蓋問題注意力機(jī)制雖然實(shí)現(xiàn)了神經(jīng)機(jī)器翻譯整體的性能提升,但不是所有場合都能保證源語言中詞語與目標(biāo)語言詞語恰好相關(guān),“過翻譯”(某個(gè)詞多次被翻譯)和“欠翻譯”(某個(gè)詞沒有被翻譯)現(xiàn)象時(shí)常出現(xiàn)。翻譯不忠實(shí)問題因?yàn)椴捎昧诉B續(xù)表示的方法來表示詞語,造就了目標(biāo)語言句子的流利度,卻丟失了原本源語言句子的真實(shí)語義。3.3 機(jī)器翻譯研究展望機(jī)器翻譯研究歷經(jīng)60的發(fā)展,不斷弱化人在翻譯過程中的作用。從最早的詞典匹配、到基于詞典和語言學(xué)知識(shí)的規(guī)則翻譯、再到基于短語的統(tǒng)計(jì)機(jī)器翻譯,最后成長為當(dāng)前基于人工神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯,信息技術(shù)正開始扮演一個(gè)重要角色。近年來,end-to-end神經(jīng)機(jī)器翻譯成為最熱門的研究領(lǐng)域,未來的研究方向也將圍繞其展開。優(yōu)化注意力機(jī)制。優(yōu)化評(píng)價(jià)指標(biāo)。多語言神經(jīng)機(jī)器翻譯。引入語言學(xué)的知識(shí)。神經(jīng)機(jī)器翻譯和傳統(tǒng)統(tǒng)計(jì)機(jī)器翻譯的結(jié)合?!?.4 機(jī)器翻譯技術(shù)總結(jié)本章首先詳細(xì)介紹了2種基于深度學(xué)習(xí)的機(jī)器翻譯方法,隨后對(duì)比分析了各自的優(yōu)缺點(diǎn),最后提出了未來技術(shù)的發(fā)展方向。近年來,百度發(fā)布了結(jié)合統(tǒng)計(jì)和深度學(xué)習(xí)方法的在線翻譯系統(tǒng),Google也在中英互譯上采用了神經(jīng)翻譯系統(tǒng),這些足以證明神經(jīng)機(jī)器翻譯在學(xué)術(shù)界和工業(yè)界的迅速發(fā)展。相信在未來,神經(jīng)機(jī)器翻譯會(huì)取得更大進(jìn)步,真正造福社會(huì)。

第四章 多語言圖像標(biāo)題自動(dòng)生成實(shí)驗(yàn)本章首先會(huì)介紹Googletensorflow-im2txt-master自動(dòng)圖像描述系統(tǒng),接著將把Google自動(dòng)圖像描述系統(tǒng)與兩種翻譯方法相結(jié)合(Google翻譯和transformer方法),進(jìn)行多語言圖像標(biāo)題自動(dòng)生成研究。對(duì)比分析使用不同翻譯方法的最后生成標(biāo)題的性能,以及這兩種翻譯方法在單獨(dú)進(jìn)行英文-中文翻譯的性能。4.1 Googleshowandtell自動(dòng)圖像描述系統(tǒng)介紹Showandtell模型是一個(gè)編碼解碼神經(jīng)網(wǎng)絡(luò)的例子。它首先將圖像“編碼”為固定長度的向量表示,然后將其“解碼”為自然語言描述。圖像編碼器是一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)。這種類型的網(wǎng)絡(luò)廣泛用于圖像任務(wù),目前是用于對(duì)象識(shí)別和檢測的最新技術(shù)。我們特別選擇的網(wǎng)絡(luò)是在ILSVRC-2012-CLS圖像分類數(shù)據(jù)集上預(yù)先訓(xùn)練的初始Inceptionv3圖像識(shí)別模型。解碼器是一種長短時(shí)記憶(LSTM)網(wǎng)絡(luò)。這種類型的網(wǎng)絡(luò)通常用于序列建模任務(wù),如語言建模和機(jī)器翻譯。在Showandtell模型中,LSTM網(wǎng)絡(luò)被訓(xùn)練為基于圖像編碼的語言模型。標(biāo)題中的文字用嵌入模型表示。詞匯中的每個(gè)單詞都與在訓(xùn)練中學(xué)習(xí)的固定長度的向量表示相關(guān)聯(lián)。4.2 Transformer翻譯方法Transformer翻譯方法提出于《Attentionisallyouneed》一文中,如題目所示,這是一個(gè)基于純注意力來進(jìn)行機(jī)器翻譯的模型[12]。目標(biāo)語言句子采用如下公式生成:y公式中的A,B指的是另外兩個(gè)序列,如果讓A=B=X,那就實(shí)現(xiàn)了SelfAttention(自注意),即將xt與源語言句子中的每個(gè)詞比較生成y下圖是Attention層的一般框架。圖4.1Attention層的一般框架Attention則定義為:Attention這里的Q,K,V就是query,key,value的矩陣。三個(gè)矩陣的維度如下:Q簡單來說,Attention層把n*dk的序列Q轉(zhuǎn)換為一個(gè)新的n*dv序列。作者還將Attention機(jī)制完善為Multi-headAttention:圖4.2Multi-headAttention機(jī)制從圖中可以看出,先將Q,K,V通過參數(shù)矩陣映射,再進(jìn)入Attention層處理,并把這個(gè)過程重復(fù)h次,最后將結(jié)果拼接。不過這樣的模型不能捕捉到序列的順序。比如說,將句子中的詞語順序打亂,并不會(huì)對(duì)Attention結(jié)果產(chǎn)生影響。因此,作者引入了PositionEmbedding(位置向量),將每個(gè)位置都對(duì)應(yīng)一個(gè)向量,并通過位置向量和詞向量結(jié)合,讓Attention層能夠分辨不同的位置。PositionEmbedding的定義如下:PE這樣的定義還能利用三角函數(shù)的特性,將位置p+k的向量表示為位置p向量的線性變換,提供了相對(duì)位置的表達(dá)??偟膩碚f,Attention層能夠一步捕捉全局的相關(guān)性(得益于SelfAttention機(jī)制),并在機(jī)器翻譯中取得了非常好的效果。4.3 開始實(shí)驗(yàn)實(shí)驗(yàn)平臺(tái)為MobaXterm。編程語言為Python。Python版本為Anaconda。深度學(xué)習(xí)庫為GoogleTensorFlow。4.3.1總體框架圖4.3實(shí)驗(yàn)框架4.3.2im2txt自動(dòng)圖像標(biāo)題生成部分使用了Googleshowandtell自動(dòng)圖像描述系統(tǒng)。標(biāo)題生成過程如下:切換至工作目錄:圖4.4實(shí)驗(yàn)截圖1由于TensorFlow自動(dòng)占用GPU全部資源,需要選擇空閑的GPU進(jìn)行試驗(yàn):圖4.5實(shí)驗(yàn)截圖2選擇合適的0號(hào)GPU開始預(yù)測:圖4.6實(shí)驗(yàn)截圖3稍等一段時(shí)間得到結(jié)果:圖4.7實(shí)驗(yàn)截圖4對(duì)應(yīng)的圖片如下:圖4.8示例圖片從圖上來看,生成的標(biāo)題大體上準(zhǔn)確描述了圖片中的內(nèi)容。接著把COCO_val2014部分圖片導(dǎo)入待預(yù)測圖片文件夾,運(yùn)行程序得到了對(duì)應(yīng)的標(biāo)題。圖4.9待生成標(biāo)題的圖片集4.10生成的標(biāo)題4.3.3txt2txt英文標(biāo)題到中文標(biāo)題的翻譯分別采用的兩種方法:Google機(jī)器翻譯APIAPI需要導(dǎo)入的庫:importcodecs

fromgoogletransimportTranslator

importos翻譯模板:translator=Translator()translations=translator.translate(['Thequickbrownfox','jumpsover','thelazydog'],src='en',dest='zh-CN')fortranslationintranslations:print(translation.origin,'->',translation.text) 由于Google退出了中國大陸,調(diào)用該API需要VPN。 翻譯結(jié)果如下:圖4.11實(shí)驗(yàn)截圖5Transformer翻譯方法首先切換至工作目錄:圖4.12實(shí)驗(yàn)截圖6編寫執(zhí)行命令decoder.sh:CUDA_VISIBLE_DEVICES=3python2t2t-decoder.py--data_dir=/data/kzhang/fjy/transformer/out-enzh--problems=translate_enzh_ldc30k--model=transformer--hparams_set=transformer_base_single_gpu--output_dir=/data/kzhang/fjy/transformer/t2t_train/translate_enzh_ldc30k/transformer-transformer_base_single_gpu--decode_hparams="beam_size=4,alpha=0.6"--decode_from_file=/data/kzhang/fjy/transformer/en_text.txt--decode_to_file=/data/kzhang/fjy/transformer/test/tst.zh其中decode_from_file是待翻譯句子的路徑,decode_to_file是翻譯完成句子的路徑。運(yùn)行過程如下:圖4.13實(shí)驗(yàn)截圖7從截圖中可以看出,翻譯的結(jié)果并不是很理想。具體的翻譯性能分析見下節(jié)。4.4 實(shí)驗(yàn)與分析4.4.1 實(shí)驗(yàn)結(jié)果展示下面是圖片-英文標(biāo)題-中文標(biāo)題的結(jié)果對(duì)比。(挑選了幾個(gè)典型的示例)1、示例1圖4.14示例圖片1英文標(biāo)題:asmalldogissittingonasuitcase.中文標(biāo)題1:一只小狗正坐在一只手提箱上。中文標(biāo)題2:一只小狗正坐在行李箱上。分析:細(xì)節(jié)描述不準(zhǔn)確,問題出在圖片生成標(biāo)題過程中。2、示例2圖4.15示例圖片2英文標(biāo)題:adogissittingonabenchnexttoabike.中文標(biāo)題1:一只狗坐在自行車旁邊的長椅上。中文標(biāo)題2:一只狗正坐在自行車旁的一床上。分析:細(xì)節(jié)描述不準(zhǔn)確,問題出在圖片生成標(biāo)題過程中。3、示例3圖4.16示例圖片3英文標(biāo)題:abaseballplayerholdingabatonafield.中文標(biāo)題1:棒球運(yùn)動(dòng)員在田地上拿著一只蝙蝠。中文標(biāo)題2:一名棒球員在一場比賽中舉起了一球。分析:專有名詞翻譯不準(zhǔn)確,問題出在英文翻譯成中文過程中。4、示例4圖4.17示例圖片4英文標(biāo)題:ablackcatsittingontopofalaptopcomputer.中文標(biāo)題1:坐在膝上型計(jì)算機(jī)頂部的一只黑貓。中文標(biāo)題2:一只黑色貓坐在手提電腦上。分析:專有名詞翻譯不準(zhǔn)確,問題出在英文翻譯成中文過程中。5、示例5圖4.18示例圖片5英文標(biāo)題:acowisstandinginapenwithamaninthebackground.中文標(biāo)題1:一頭牛在背景中與一名男子站在一支筆里。中文標(biāo)題2:一只牛肉正站在一條有一名男子背景的筆上。分析:圖像描述和翻譯都不準(zhǔn)確,描述應(yīng)當(dāng)是“一頭身上有一個(gè)巨瘡的?!?。假設(shè)英文正確,翻譯應(yīng)當(dāng)是“一頭牛站在一個(gè)筆里和背景里的一個(gè)男人”。4.4.2 評(píng)價(jià)性能這里評(píng)價(jià)的是單純翻譯過程的性能(即假定我們得到的英文標(biāo)題都是正確的)。采用的指標(biāo)是BLEU值[11]。BLUE計(jì)算過程如下:把通過機(jī)器翻譯出來的目標(biāo)語言句子與其相對(duì)應(yīng)的幾個(gè)參考翻譯(一般為人工翻譯)作比較,算出一個(gè)綜合分?jǐn)?shù)。這個(gè)分?jǐn)?shù)越高說明機(jī)器翻譯得越好。這里采用了NLTK庫中的BLUE自動(dòng)計(jì)算函數(shù)(原型示例如下):fromnltk.translate.bleu_scoreimportsentence_bleureference=[['這','是','一','個(gè)','人'],['這','是''人']]candidate=['這','是','一','個(gè)','人']score=sentence_bleu(reference,candidate)print(score)其中參考語句必須是語句列表,其中每個(gè)語句是一個(gè)記號(hào)列表。候選語句也必須是一個(gè)記號(hào)列表。(1)若以字為分隔符,格式如:reference=[['這','是','一','個(gè)','人'],['這','是''人']]candidate=['這','是','一','個(gè)','人']500個(gè)句子的翻譯得分:Google0.72。Transformer0.29。(2)若以詞為分隔符,格式如:reference=[['這','是','一個(gè)','測試'],['這','是''測試']]candidate=['這','是','一個(gè)','測試']500個(gè)句子的翻譯得分:Google0.65。Transformer0.20。附:其中分詞程序調(diào)用了bosonnlp分詞API:TAG_URL='/tag/analysis's=['鳥在沙灘上散步的黑白照片']data=json.dumps(s)headers={'X-Token':'YOUR_API_TOKEN'}resp=requests.post(TAG_URL,headers=headers,data=data.encode('utf-8'))fordinresp.json():print(''.join(['%s/%s'%itforitinzip(d['word'],d['tag'])]))運(yùn)行結(jié)果如下:圖4.19實(shí)驗(yàn)截圖8從上面測得的數(shù)據(jù)可以看出:以詞為分隔符的翻譯性能得分要小于以字為分隔符的得分。原因很簡單,例如“摩托車”和“電單車”在以詞的形式下不相同,而以字的形式下,卻有一項(xiàng)相同項(xiàng)“車”,根據(jù)BLEU的算法,相同項(xiàng)多則得分高。4.4.3 錯(cuò)誤分析從圖片-英文標(biāo)題-中文標(biāo)題生成的整個(gè)過程來看,導(dǎo)致圖片和中文標(biāo)題不對(duì)應(yīng)的原因有2項(xiàng):第一步im2txt出錯(cuò)和第二步txt2txt出錯(cuò)。第一步自動(dòng)圖像描述系統(tǒng)往往不能捕捉到圖片中的細(xì)節(jié),容易將事物混淆。例如上節(jié)中的示例1,2,其中把鞋架描述成了suitcase,把路面描述成了bench。第二步機(jī)器翻譯則無法分辨出某特定場景下某些詞語的翻譯方式。例如上節(jié)中的示例3,4,Google機(jī)器翻譯直接將bat直譯成了蝙蝠(沒有考慮到上下文的棒球比賽環(huán)境),又將laptopcomputer直譯為膝上型電腦(沒有聯(lián)系到中文的通俗叫法),總體上來看效果可讓人接受。而Transformer方法出來的句子不盡如人意,許多英文詞語似乎存在欠翻譯,BLEU值也僅僅0.2左右,究其原因,可能出在訓(xùn)練語料以及訓(xùn)練時(shí)間的不足上。4.5 本章小結(jié)本章首先介紹了Google自動(dòng)圖像描述系統(tǒng)和transformer翻譯方法,接著進(jìn)行實(shí)驗(yàn)研究并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比分析,利用專業(yè)的BLEU值評(píng)價(jià)了相關(guān)性能和正確率,最后對(duì)實(shí)驗(yàn)中的錯(cuò)誤展開分析。自動(dòng)圖像描述系統(tǒng)所生成的圖像標(biāo)題和原圖像存在細(xì)節(jié)上的偏差;Google機(jī)器翻譯得益于其大數(shù)據(jù)的支持,總體翻譯效果不錯(cuò),但無法正確翻譯某些專業(yè)名詞;Transformer翻譯方法由于是自己訓(xùn)練,缺少語料,訓(xùn)練時(shí)間也不夠,出現(xiàn)了欠翻譯,翻譯錯(cuò)誤的問題,翻譯效果與Google相去甚遠(yuǎn)。

第五章總

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論