多语言图像标题自动生成研究分析 电子信息工程专业_第1页
多语言图像标题自动生成研究分析 电子信息工程专业_第2页
多语言图像标题自动生成研究分析 电子信息工程专业_第3页
多语言图像标题自动生成研究分析 电子信息工程专业_第4页
多语言图像标题自动生成研究分析 电子信息工程专业_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录前言 1第一章 绪论 21.1 研究背景和意义 21.2 showandtell自动图像描述系统简介 31.3 主要工作及创新点 41.4 本文的组织结构 5第二章 ImageCaption自动图像描述技术 62.1 ImageCaption简介 62.2 相关技术分析 62.2.1 showandtell模型 62.2.2 show、attendandtell模型 112.2.3 使用高级语义特征的模型 112.2.4 改进了RNN的模型 122.2.5 基于传统语言建模的模型 142.3 ImageCaption技术总结及展望 15第三章 机器翻译 163.1 基于深度学习的统计机器翻译 163.1.1 基于深度学习的统计机器翻译的核心思想 163.1.2 基于深度学习的统计机器翻译的优点 163.1.3 基于深度学习的统计机器翻译的不足 163.2 end-to-end神经机器翻译 173.2.1神经机器翻译基本结构及发展历史 173.2.2采用注意力机制的神经机器翻译模型 183.2.3神经机器翻译的不足 193.3 机器翻译研究展望 203.4 机器翻译技术总结 20第四章 多语言图像标题自动生成实验 214.1 Googleshowandtell自动图像描述系统介绍 214.2 Transformer翻译方法 214.3 开始实验 234.3.1总体框架 234.3.2im2txt 234.3.3txt2txt 274.4 实验与分析 284.4.1 实验结果展示 284.4.2 评价性能 304.4.3 错误分析 324.5 本章小结 32第五章总结与展望 335.1 总结 335.2 后续工作 33参考文献 34致谢 35

摘要自动描述图像的内容是结合了计算机视觉和自然语言处理的人工智能的一个基本问题。而机器翻译(又称自动翻译)是利用计算机将一种自然语言转换为另一种自然语言的过程,是人工智能的一大终极目标。若将两者结合利用,必将具有重要的实用价值。Showandtell模型是GoogleBrain在TensorFlow上开源的一个自动图像描述系统,采用Encoder-Decoder(编码器-解码器)的神经网络架构,可以根据图像中的场景自动生成相应的描述。本文将深入分析Showandtell模型和相关基于Showandtell模型的改进技术以及神经机器翻译的相关技术,并且对比各类技术的优缺点。本文通过该系统实现ImageCaption(自动图像描述),并通过神经机器翻译的方法Transformer将得到的描述翻译为中文,使其适用于中文环境。最后对所采用的Transformer方法与Google机器翻译方法进行性能评价。关键词:自动图像描述;机器翻译;翻译方法;模型

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技术(即自动描述图像内容技术,也称图像标注),指的就是从给定图片中自动生成一段能够描述其内容的文字,有点类似于我们小学里学的“看图说话”。对于人类来说,这是一件简单并且每天都在做的事,然而对于计算机来说,这是一件非常具有挑战性的任务。原因在于计算机面对的不是人们眼睛所看到的景象,而是一个像素矩阵。计算机不仅要在一堆数字中检测出图像中的物体,而且还要理解各个物体之间的相互关系,最终需要用一段文字将一切表述出来。MachineTranslation技术(即机器翻译技术),顾名思义,就是利用机器来进行翻译的技术,用于不同语言文字之间的转换。60年来,机器翻译技术不断发展,从最早的词典匹配、到基于词典和语言学知识的规则翻译、再到基于短语的统计机器翻译,最后成长为当前基于人工神经网络的机器翻译。随着计算机计算性能的提升以及大数据时代多语言信息的爆炸式增长,机器翻译技术已渐渐完善,开始在人们的日常生活中扮演一个重要角色,为我们提供便捷的翻译服务。得益于神经机器翻译的迅速发展,看似困难的机器“看图说话”任务迎刃而解。在ImageCaption任务中仅仅对神经机器翻译中模型做了简单的修改,便取得了很好的结果。本文主要以Google的基于TensorFlow的showandtell自动图像描述系统为研究对象,并与两种机器翻译方法相结合来完成多语言图像标题自动生成的研究。深入分析了showandtell模型,并对比相关后续先进技术;对比分析Google机器翻译与Transformer翻译方法,并进行实验验证。本文完成的主要工作及创新点有:(1)利用showandtell自动图像描述系统,实现从图片生成描述。(2)分析了ImageCaption相关技术的特点。(3)利用Google机器翻译以及Transformer翻译方法进行英译中。(4)对给定语料进行人工标注,生成翻译参考语句。(5)对比Google机器翻译和Transformer翻译方法的模型架构,并通过实验验证其性能。最后得出图片和多语言描述的匹配度,并进行错误分析。

第一章 绪论本章首先介绍了多语言图像标题自动生成的研究背景和意义,其次简单介绍了showandtell自动图像描述系统,并概述了本文所做的主要工作和贡献以及创新点,在本章的最后介绍了论文的组织结构。1.1 研究背景和意义近年来,信息技术,人工智能不断发展,人们也通过科幻电影来对未来进行展望。电影《HER》就是一个例子,影片中的“萨曼莎”是一个AI系统,他能够理解主人公西奥多的手机信息和图像内容,了解主人公的状态,在其心情不好时可以陪他谈心,还可以读懂文字,“她”俨然成为了一个真实的人类,甚至在某些方法还更胜人类。电影的“萨曼莎”是人类幻想出来的人工智能,“她”能够思考,同时具备比人还强的智力以及运算能力,虽然目前的人工智能技术还不能完全像电影中一样强大,但近年来人工智能技术让机器具备了人来的能力,例如计算机已经能理解更高层次的图像内容,能够自动描述图像的内容。在人工智能领域,这是机器的ImageCaptioning(自动图像描述)能力。在去年11月7日晚,锤子科技发布了坚果Pro2。这场发布会感动我的不是坚果Pro2超高颜值的外观设计,亦或是极具良心的售价,而是锤子坚果Pro2新的SmartisanOS系统,针对盲人用户做出的优化。锤子利用OCR识别技术,把普通手机APP无法识别的内容通过OCR技术转成文字,再把文字通过扬声器读出来。这让许多视障者都能更好使用智能手机。根据2016年的数据显示,中国的盲人数量已经超过1400万,相当于每100个人中就有一个,但却因为无障碍设施的不友好,却很难在街头看到他们的身影。因此许多盲人都对手机、电脑等电子产品和网络有着更深的依赖,这几乎成了他们与外面的世界互动的唯一通道。我们相信如果能将自动图像描述技术与机器翻译结合,便能够让全球的视障人群便捷地读懂世界(不仅仅是有文字标注的世界)。自动图像描述技术的意义也不仅仅在于帮助视障人群,还能应用与我们的日常生活。当我们需要寻找一张时间久远的手机照片时,常常因为数量的庞大无从寻找。在这里,如果系统能够对每张照片都生成一个简单的标题(或是描述),那么我们只需要凭借图像的印象便能够轻松找到对应的照片。得益于近年来机器视觉和自然语言处理的发展以及自动图像描述领域中积累的大量研究,GoogleBrain基于TensorFlow深度学习库开发了“ShowandTell”自动图像描述系统,成功地将机器这方面的能力提高到一个新台阶。作为多模态数据处理的经典,自动图像描述技术正逐步成为研究热点。1.2 showandtell自动图像描述系统简介Showandtell模型是一个深度神经网络,学习如何描述图像的内容。例如:图1.1图像描述示例1图1.2图像描述示例2运行步骤:硬件及训练时间提示NVIDIATeslaK20mGPU-1-2weeks必要的安装包Bazel,TensorFlow1.0,NumPy,NaturalLanguageToolkit,Unzip准备训练数据MSCOCO图像标注数据集下载Inceptionv3Checkpoint需要一个训练好的Inceptionv3Checkpoint文件来初始化编码器(CNN)参数训练模型分为2步,初始训练和进阶训练预测标题你可能得到不同的结果,这些差别是正常的。图1.3示例图片输出实例:CaptionsforimageCOCO_val2014_000000224477.jpg:0)amanridingawaveontopofasurfboard.(p=0.040413)1)apersonridingasurfboardonawave(p=0.017452)2)amanridingawaveonasurfboardintheocean.(p=0.005743)1.3 主要工作及创新点本文主要以Google的基于TensorFlow的showandtell自动图像描述系统为研究对象,并与两种机器翻译方法相结合来完成多语言图像标题自动生成的研究。实验之前深入分析了showandtell模型,并对比相关后续先进技术;也对机器翻译主要方法进行了分析,而后通过实验对比分析Google机器翻译与Transformer翻译方法。本文完成的主要工作及创新点有:(1)利用showandtell自动图像描述系统,实现从图片生成描述。(2)分析了ImageCaption相关技术的特点。(3)利用Google机器翻译以及Transformer翻译方法进行英文-中文的翻译。(4)对给定语料进行人工标注,生成翻译参考语句。(5)对比Google机器翻译和Transformer翻译方法的模型架构,并通过实验验证其性能。最后得出图片和多语言描述的匹配度,并进行错误分析。1.4 本文的组织结构本文共分为五章,每章内容简介如下:第一章:绪论。本章介绍了《多语言图像标题自动生成研究》课题的研究背景及意义、showandtell系统简介及模型运行说明、本文的主要工作及主要创新点,最后介绍了本文的组织结构。第二章:本章主要介绍了现在的几种ImageCaption自动图像描述技术的原理,并对这些现有技术进行分析对比,最后对ImageCaption自动图像描述技术进行了总结。第三章:本章详细介绍并分析了两类基于深度学习的机器翻译方法,并对比其优点与不足,简要概括了当前机器翻译领域的研究热点,并对机器翻译技术进行了总结。第四章:本章主要介绍了Googletensorflow-im2txt-master自动图像描述系统,接着将把Google自动图像描述系统与两种翻译方法相结合(Google翻译和transformer方法),进行多语言图像标题自动生成研究。对比分析使用不同翻译方法的最后生成标题的性能,以及这两种翻译方法在单独进行英文-中文翻译的性能。。第五章:总结全文,提出未来研究展望。

第二章 ImageCaption自动图像描述技术本章详细介绍了发展至今的几种ImageCaption自动图像描述技术的原理,并对这些现有技术进行分析对比。2.1 ImageCaption简介ImageCaption自动图像描述问题其本质就是视觉到语言(Visual-to-Language)或者是图片到文字(Image-to-Text)的问题,用一句简单的话来说就是:看图说话。就像我们小时候在看图说话作业中完成的任务一样,我们希望计算机也能根据给定的图像来生成能够描述其内容的自然语言句子。虽然在我们看来这是在简单不过的事情了,甚至我们时时刻刻都在通过这种方法来理解这个世界,但是对于计算机来说,这不能不称之为一个挑战,因为自动图像描述任务的输入和输出是两种不同形式的信息,即图像信息和文本信息。随着近年来深度学习领域的发展,一种将深度卷积神经网络(DeepCNN)和循环神经网络(RNN)相结合的方法在自动图像描述问题上取得了显著的成功。甚至因为这个方法的成功,许多基于这个方法的自动图像描述研究开始火热。2.2 相关技术分析按照技术发展历程,自动图像描述技术分为以下几类:showandtell模型[1]、showattendandtell模型[2]、使用高层语义特征的模型[3]、改进了RNN的模型[4]和基于传统语言建模方式的模型[5]。2.2.1 showandtell模型Showandtell模型在论文《ShowandTell:ANeuralImageCaptionGenerator》中提出,这篇论文是ImageCaption任务早期的研究作品。模型的主要结构借鉴了机器翻译中的结构,机器翻译的任务是把一种自然语言转换为另一种自然语言。多年来,机器翻译也是由一系列独立的任务完成的(翻译单词、对齐单词、重新排序等),但是最近的研究表明,使用递归神经网络(RNN)可以用更简单的方法进行翻译,而且还能达到最好的性能。一个encoder-RNN(编码器)读取源语句并将其转换为一个复杂的固定长度的向量表示,随后被用作生成目标句子的decoder-RNN(解码器)的初始隐藏状态[6,7,8]。Showandtell模型把Encoder-Decoder结构做了简单修改,用一个深度卷积神经网络(CNN)代替编码器RNN。在过去的几年研究里,它已经让人们信服,深度卷积神经网络CNNs可以通过将输入图像转换为固定长度的向量,从而产生丰富的输入图像,这种表示法可用于许多视觉任务。因此,使用CNN作为图像的“编码器”,首先将图像放入CNN神经网络进行转换,并将CNN的最后一个layer作为RNN解码器的输入,来生成句子。在统计机器翻译方面,给定一个强大的序列模型,往往通过直接最大化正确翻译的概率的方法来达到最好的结果,即以“end-to-end”的方式。这些模型利用一个RNN神经网络,将输入序列编码到一个固定的维度向量中,并利用这个向量来“解码”到输出序列。因此,可以使用相同的方法,给定一个图像(而不是源语言中的输入句),能够适用于同样的原则,将其“翻译”到它的描述中。通过使用以下公式直接最大化给定图像的正确描述的概率:θ模型的参数是θ,I是输入的图像,S是它正确的描述。因为S表示任意一个句子,它的长度是无限的。因此,将链式法则应用于S0,…,SNlog这里为了方便放弃了对θ的依赖。在训练时,(S,I)是一个训练样本对,利用随机梯度下降法对整个训练集所描述的对数概率的和进行了优化。 接着利用RNN来对p(St|I,S0,…,Sℎ对于f,我们使用了一个长短期记忆(LSTM)网络,它展现了在诸如翻译这样的序列任务上的出色表现。对于图像的表示,使用卷积神经网络(CNN)。它们已经被广泛地用于图像任务,并且目前是用于对象识别和检测的先进技术。f的选择取决于它处理消失和爆炸梯度的能力,这是设计和训练RNNs最常见的挑战。为了应对这一挑战,引入了一种称为LSTM的特殊形式的周期性网络(图2.1),并在翻译和序列生成中获得了巨大的成功。图2.1LSTM网络结构LSTM模型的核心是一个记忆单元c,在每个时间步骤中,c记录下在这个步骤前已经观察到的输入。c的行为是由“门”控制的,“门”层是用乘法来进行的,因此,如果门是1,则可以从门禁层中保留一个值,如果门是0,则丢弃这个值。特别地,这里使用了3个门来控制是否忘记当前记忆单元的值(忘记门f),是否读取它的输入(输入门i),以及是否输出新的单元值(输出门o)。三个门的定义如下:ifocmp其中⊙表示门运算符,W矩阵是训练参数。三个门的使用更好的训练了LSTM网络,因为这些门可以很好地处理爆炸和消失的梯度。最后一个方程mt是用来给一个Softmax提供的,它将产生一个关于所有单词的概率分布pLSTM模型被训练用来预测句子的每个单词,因为它已经看到了图像以及所有前面的单词,即p(St|I,S0,…,St−1)。为了这个目的,可以想象LSTM展开形式—一份LSTM内存为图像和每个句子的词所创建,这样所有LSTMs就能共享相同的参数,LSTM图2.2LSTM和CNN网络结合图 所有的重复连接都被转换为在展开的版本中的前馈连接。更详细地说,如果我们用I表示输入图像和S=(Sxxp在这里,我们把每一个词都表示为维度等于字典大小的一个列向量St。注意,我们用S0表示一个特殊的起始字,并通过SN一个特殊的停止字来指定句子的开始和结束。特别是通过发出停止字,LSTM信号表示已生成完整的句子。图像通过使用一个视觉CNN,单词通过嵌入矩阵We,这样都被映射到相同的空间。LSTM网络只在t=-1损失函数是每个步骤中正确单词的负对数可能性的和:LShowandtell模型通过大量实验被证明是有效的。迄今为止,在图像描述文献中最常用的指标是BLEU评分,它是生成的和参考的句子之间的单词n-g的精度的一种形式。尽管这个指标有一些明显的缺点,但它已经被证明与人类的评价相关联。在官方网站的官方测试集上,showandtell模型的BLEU-4得分为27.2。然而,当使用人类评分员来评估描述时,模型的得分会低得多,这表明需要更多的工作来达到更好的指标。图2.3显示了该模型提供的描述的人类评估结果,以及在各种数据集上的参考系统和事实真相。我们可以看到,showandtell模型比参考系统更好,但显然比预期的事实真相糟糕。这表明BLEU并不是一个完美的度量标准,因为它并没有很好地捕捉到生成的描述和人类描述之间的差异。图2.3各数据集上的得分对比那么现在的模型是否真的能捕捉图像中的那些从未在训练集中出现的场景并生成新描述,还是只是寻找复述训练集中相关的描述呢。答案是肯定的。现在的自动图像描述系统已经具备自主产生全新的句子能力,例如下图粗体的描述为不在数据库中的标注句子:图2.4生成的描述这就保证了生成描述的多样性。2.2.2 show、attendandtell模型《Show,AttendandTell:NeuralImageCaptionGenerationwithVisualAttention》论文在原来的Encoder-Decoder机制中引入了两种Attention机制。一种叫HardAttention,一种叫SoftAttention,其中SoftAttention的原理如下。原来的模型中使用CNN在图像中提取了固定长度的向量特征I,而现在的模型利用了CNN的空间特性,给图像的不同位置都提取了一个特征。如果用a=a1,…,aL表示已经提取的特征,一共为L个,每个位置的特征是一个D维向量。假设卷积层的feature在生成第t个单词时,传入decoder的上下文向量为Zt,这个Zt就是L个位置向量的加权平均,权值αt,i决定了在生成第t个单词时,这些位置特征所占的权重。而这个权重由前一个状态ℎt−1和位置特征ai决定。因为αt,i只和已知信息2.2.3 使用高级语义特征的模型2.2.1和2.2.2模型中,都是使用CNN神经网络的卷积特征作为“图像语义”,但这篇文章《WhatValueDoExplicitHighLevelConceptsHaveinVisiontoLanguageProblems?》认为,CNN在最终的分类层包含了大量诸如“图中有无人”、“图中有无桌子”这样的高层信息。这种高层语义与最终生成的语句非常相关,不能轻易舍弃。作者把这个高层语义理解为一个多标签分类问题。不同于通常的一对一关系,在自动图像描述任务中,由于一张图片中的物体数目会有很多,因此图片和物体标签就是一个一对多的关系。所以需要对原先的CNN神经网络结构进行适当调整。面对通常的一对一关系中,只需要对卷积特征使用一个softmax,而面对一对多关系中,每有一类物体,就需要使用1个softmax层。设第i张图片的标签yi=yi1,…,J=在训练时,首先在所有描述中选择出现次数最多的c个单词作为总标签数,而每个图像各自的训练数据从各自描述单词中选择。训练完成后,针对每一张图片提取高层的语义表达向量Vatt(I)(如下图所示)。其实,这个高层语义向量Vatt(I)实际就对应了图像中出现的物体。得到Vatt(I)后,就直接将其送入Decoder进行解码。实验证明,使用了高层语义向量Vatt(I)可以大幅提高模型效果。图2.5使用高层语义的模型结构如在上图中,蓝色的线就是之前直接使用的卷积特征CNN(I),而红色线就是这篇文章提出的Vatt(I)。2.2.4 改进了RNN的模型《Mind’sEye:ARecurrentVisualRepresentationforImageCaptionGeneration》中改进了decoder部分的RNN结构,让RNN网络不仅能将图像描述为文字,还能反过来从文字得到图像特征,同时还得到了性能的提升。图2.6改进了RNN结构的模型上图就是改进过的DecoderRNN结构。其中v是图像特征,St是t时刻RNN网络的隐层状态,Wt是时间t时生成的单词。V,St,Wt都是之前的模型中存在的,而作者又新加入了ut和v。其中ut表示的是“已经生成的文字”的隐变量,作用是记住已经生成单词中包含的信息。这个量在每次生成Wt之前建模的都是P(Wt|v,Wt−1图2.7生成文字的过程图2.8文字生成图像特征的过程生成文字的过程如上图2.7,反过来生成图像特征的过程如上图2.8。2.2.5 基于传统语言建模的模型与上面4种方法不同,《FromCaptionstoVisualConceptsandBack》这篇论文没有采用encoder-decoder架构,而是基于传统语言建模方式。在图像特征提取方面,这篇文章和《WhatValueDoExplicitHighLevelConceptsHaveinVisiontoLanguageProblems?》类似,先从图像中提取相关单词,再把单词组织为句子。不同点在于,上节的模型利用多标签学习的方式,而这个模型采用多示例学习(MultipleInstanceLearning)的方法,这个方法不仅可以从图像中提取相关单词,而且可以找到单词对应的图像区域。多示例学习是一种半监督算法。可以这样设想:有很多个数据包(bag),每个bag中有很多示例(instance)。现在只有对bag的正负类标记,而没有对bag中各个instance的正负例标记。正负判定规则如下:如果一个包里有一个instance是正类,那么这个bag即为正,只有当bag里面的所有instance都是负类时,bag才为负。作者的目标就是训练一个分类器对instance的正负进行判别。在这篇论文中,就是使用多示例学习来处理从图片出提取单词这一问题。在这个场景中,如果一个图片存在某个区域(instance)为正(指的就是存在某个生成词),那么这个图片(bag)就为正(指的就是图片描述中含有某个生成词)。由此,作者使用多示例学习方法进行两步迭代,第一步是选出正例bag中最有可能是正例的instance、以及负例bag的instance,第二步是利用选出的instance进行训练,更新训练。如此迭代,就可以对图片的区域进行分类了。这样就可以从图片的区域中提取相关的单词(如下图)。图2.9从图像中提取单词在图像中提取出相关单词后,采用一种传统的方法来进行语言建模。设集合V中存有图片中提取的单词,w1,w2建模P(wl|w1,w2,…,wl−12.3 ImageCaption技术总结及展望本章选取了ImageCaption领域中比较重要的5篇文章进行了介绍。第一篇论文首先使用了Encoder-Decoder结构对此问题进行建模,接下来三篇文章分别从不同的角度对第一篇论文做出了改进。最后介绍的论文并没有采用Encoder-Decoder结构,而是采用传统的方式对语言进行建模,也具有一定启发意义[6]。部分模型完成的自动评价标准得分已高于人类的分,但并不代表实际描述语句就比人类描述语句水平高[7]。想要更好地解决自动图像描述问题,还需要:(1)与人类评价相关性更高的自动评价标准;(2)更大的数据集;(3)在图像分析部分,语言生成部分,或者两个部分的连接方式上出现新的模型或思路。

第三章 机器翻译机器翻译技术是研究利用计算机进行自然语言转换的技术,是人工智能(AI)和自然语言处理(NLP)的重要研究领域。自2013年提出了神经机器翻译系统之后,神经机器翻译系统取得了很大的进展。当以BLEU值作为评测指标时,神经机器翻译在绝大多数语言上优于传统的统计机器翻译。因此,本章详细介绍并分析了两类基于深度学习的机器翻译方法,并对比其优点与不足。3.1 基于深度学习的统计机器翻译3.1.1 基于深度学习的统计机器翻译的核心思想基于深度学习的统计机器翻译仍旧以统计机器翻译为主体,使用深度学习改进其中的关键模块,如语言模型、翻译模型、调序模型、词语对齐等,取得了显著的效果。3.1.2 基于深度学习的统计机器翻译的优点深度学习有效缓解了数据稀疏的问题。以语言模型为例,传统的语言模型通常采用n-gram方法来极大似然估计训练参数,然而多数n-gram在语料库中只出现一次,因此无法准确估计模型参数。美国BBN公司的JacobDevlin等人提出了神经网络联合模型(NeuralNetworkJointModels),将源语言端的相关部分也加入到了当前词的n-gram模型中。因此该联合模型能够使用到丰富的上下文信息(包括目标语言端的历史信息和源语言端的相关部分),性能得到了显著提升。使用深度学习还能够解决特征难以设计的问题。传统的方法无法从众多的词语中选择出能够决定调序次序,也不能充分利用到整个词串。而基于神经网络的调序模型通过递归自动编码器生成词串的分布式表示,随后建立神经网络分类器来缓解特征设计的问题。实验证明,深度学习不仅能产生出新的特征,还能在现有特征集合中生成新的特征集合,大大提高了翻译模型的表达能力。3.1.3 基于深度学习的统计机器翻译的不足虽然利用深度学习使得传统机器翻译得到了性能的提升,但仍然面临如下的难题。(1)线性不可分主体依旧是传统机器翻译的线性模型,面对高维数据存在线性不可分的问题。而将线性模型转换为非线性模型的方法并没有取得成功。(2)非局部特征深度学习产生的新特征是非局部的,无法设计出高效的动态规划算法。3.2 end-to-end神经机器翻译3.2.1神经机器翻译基本结构及发展历史神经机器翻译(NeuralMachineTranslation)是指利用神经网络将源语言映射为目标语言的机器翻译方法。与上一节中的利用深度学习改进传统统计机器翻译中关键模块的方法不同,神经机器翻译的方法简单又直观。神经机器翻译采用了“编码器-解码器”(encoder-decoder)的新框架。首先使用了一个神经网络(被称为encoder)将源语言文本映射为一个连续的、稠密的向量(后文称为上下文向量),然后再使用一个神经网络(被称为decoder)把这个向量转换为目标语言文本。下图是神经机器翻译“编码器-解码器”结构[9,10]。图3.1神经机器翻译结构神经机器翻译的建模思想其实由来已久。早在上世纪90年代,西班牙阿利坎特大学的Forcada和Ñeco就已经提出“编码器-解码器”的结构并应用于翻译。得益于深度学习的发展,英国牛津大学的NalKalchbrenner和PhilBlunsom于2013年首先提出了端到端神经机器翻译方法。2014年,Google公司的Sutskever将长短期记忆LSTM(LongShort-TermMemory)网络引入神经机器翻译。LSTM网络使用了3个门(忘记门f,输入门i,输出门o),这些门使得LSTM的训练成为可能,解决了训练普通RNN时遇到的“梯度消失”和“梯度爆炸”问题,并能够实现长距离依赖。随后,YoshuaBengio研究组在前者的研究基础上又引入了注意力机制,并显著提升了翻译性能。3.2.2采用注意力机制的神经机器翻译模型图3.2采用注意力机制的神经机器翻译模型所谓注意力机制,就是解码器在生成某一个目标词语时,仅仅关注那些与之相关的源语言部分。例如,在上图中,当生成目标词“election”时,实际上源语言中只有“大选”和它有关。因此,作者希望给每一个即将生成的目标词自动选择相关的上下文向量,而不是整个源语言句子所生成的向量。此外,解码器使用了双向循环神经网络。图3.3模型的工作流程工作流程如上图所示。具体过程如下:给定源语言句子X=x1,…,xN。双向循环神经网络将X编码为隐式状态序列H=解码时刻t时,解码器产生该时刻的目标语言隐式状态stS其中g为非线性函数。st−1为t-1时刻的目标语言隐式状态,yt−1是t-1时刻的目标语言单词,c其中的注意力模型权重at,j(可理解为源语言词xj与目标语言词ytae在计算出目标语言隐式状态stP最后生成t时刻目标单词,并进入t+1时刻直至句子结束。3.2.3神经机器翻译的不足得益于注意力机制,神经机器翻译的性能得到大幅提升。但仍存在许多问题需要解决:可解释性差神经机器翻译重在神经网络的设计,中间量,即上下文向量,无法被解释,不能依据语言学的相关理论来提升性能。训练复杂度高神经机器翻译的训练复杂度是传统方法复杂度数量级上的提升,需要大量高性能GPU才能进行训练,计算成本高。词语表规模受限制源语言和目标语言两端的词语表常常无法支持某些词形丰富的语言。翻译覆盖问题注意力机制虽然实现了神经机器翻译整体的性能提升,但不是所有场合都能保证源语言中词语与目标语言词语恰好相关,“过翻译”(某个词多次被翻译)和“欠翻译”(某个词没有被翻译)现象时常出现。翻译不忠实问题因为采用了连续表示的方法来表示词语,造就了目标语言句子的流利度,却丢失了原本源语言句子的真实语义。3.3 机器翻译研究展望机器翻译研究历经60的发展,不断弱化人在翻译过程中的作用。从最早的词典匹配、到基于词典和语言学知识的规则翻译、再到基于短语的统计机器翻译,最后成长为当前基于人工神经网络的机器翻译,信息技术正开始扮演一个重要角色。近年来,end-to-end神经机器翻译成为最热门的研究领域,未来的研究方向也将围绕其展开。优化注意力机制。优化评价指标。多语言神经机器翻译。引入语言学的知识。神经机器翻译和传统统计机器翻译的结合。…3.4 机器翻译技术总结本章首先详细介绍了2种基于深度学习的机器翻译方法,随后对比分析了各自的优缺点,最后提出了未来技术的发展方向。近年来,百度发布了结合统计和深度学习方法的在线翻译系统,Google也在中英互译上采用了神经翻译系统,这些足以证明神经机器翻译在学术界和工业界的迅速发展。相信在未来,神经机器翻译会取得更大进步,真正造福社会。

第四章 多语言图像标题自动生成实验本章首先会介绍Googletensorflow-im2txt-master自动图像描述系统,接着将把Google自动图像描述系统与两种翻译方法相结合(Google翻译和transformer方法),进行多语言图像标题自动生成研究。对比分析使用不同翻译方法的最后生成标题的性能,以及这两种翻译方法在单独进行英文-中文翻译的性能。4.1 Googleshowandtell自动图像描述系统介绍Showandtell模型是一个编码解码神经网络的例子。它首先将图像“编码”为固定长度的向量表示,然后将其“解码”为自然语言描述。图像编码器是一个深度卷积神经网络(CNN)。这种类型的网络广泛用于图像任务,目前是用于对象识别和检测的最新技术。我们特别选择的网络是在ILSVRC-2012-CLS图像分类数据集上预先训练的初始Inceptionv3图像识别模型。解码器是一种长短时记忆(LSTM)网络。这种类型的网络通常用于序列建模任务,如语言建模和机器翻译。在Showandtell模型中,LSTM网络被训练为基于图像编码的语言模型。标题中的文字用嵌入模型表示。词汇中的每个单词都与在训练中学习的固定长度的向量表示相关联。4.2 Transformer翻译方法Transformer翻译方法提出于《Attentionisallyouneed》一文中,如题目所示,这是一个基于纯注意力来进行机器翻译的模型[12]。目标语言句子采用如下公式生成:y公式中的A,B指的是另外两个序列,如果让A=B=X,那就实现了SelfAttention(自注意),即将xt与源语言句子中的每个词比较生成y下图是Attention层的一般框架。图4.1Attention层的一般框架Attention则定义为:Attention这里的Q,K,V就是query,key,value的矩阵。三个矩阵的维度如下:Q简单来说,Attention层把n*dk的序列Q转换为一个新的n*dv序列。作者还将Attention机制完善为Multi-headAttention:图4.2Multi-headAttention机制从图中可以看出,先将Q,K,V通过参数矩阵映射,再进入Attention层处理,并把这个过程重复h次,最后将结果拼接。不过这样的模型不能捕捉到序列的顺序。比如说,将句子中的词语顺序打乱,并不会对Attention结果产生影响。因此,作者引入了PositionEmbedding(位置向量),将每个位置都对应一个向量,并通过位置向量和词向量结合,让Attention层能够分辨不同的位置。PositionEmbedding的定义如下:PE这样的定义还能利用三角函数的特性,将位置p+k的向量表示为位置p向量的线性变换,提供了相对位置的表达。总的来说,Attention层能够一步捕捉全局的相关性(得益于SelfAttention机制),并在机器翻译中取得了非常好的效果。4.3 开始实验实验平台为MobaXterm。编程语言为Python。Python版本为Anaconda。深度学习库为GoogleTensorFlow。4.3.1总体框架图4.3实验框架4.3.2im2txt自动图像标题生成部分使用了Googleshowandtell自动图像描述系统。标题生成过程如下:切换至工作目录:图4.4实验截图1由于TensorFlow自动占用GPU全部资源,需要选择空闲的GPU进行试验:图4.5实验截图2选择合适的0号GPU开始预测:图4.6实验截图3稍等一段时间得到结果:图4.7实验截图4对应的图片如下:图4.8示例图片从图上来看,生成的标题大体上准确描述了图片中的内容。接着把COCO_val2014部分图片导入待预测图片文件夹,运行程序得到了对应的标题。图4.9待生成标题的图片集4.10生成的标题4.3.3txt2txt英文标题到中文标题的翻译分别采用的两种方法:Google机器翻译APIAPI需要导入的库:importcodecs

fromgoogletransimportTranslator

importos翻译模板:translator=Translator()translations=translator.translate(['Thequickbrownfox','jumpsover','thelazydog'],src='en',dest='zh-CN')fortranslationintranslations:print(translation.origin,'->',translation.text) 由于Google退出了中国大陆,调用该API需要VPN。 翻译结果如下:图4.11实验截图5Transformer翻译方法首先切换至工作目录:图4.12实验截图6编写执行命令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是翻译完成句子的路径。运行过程如下:图4.13实验截图7从截图中可以看出,翻译的结果并不是很理想。具体的翻译性能分析见下节。4.4 实验与分析4.4.1 实验结果展示下面是图片-英文标题-中文标题的结果对比。(挑选了几个典型的示例)1、示例1图4.14示例图片1英文标题:asmalldogissittingonasuitcase.中文标题1:一只小狗正坐在一只手提箱上。中文标题2:一只小狗正坐在行李箱上。分析:细节描述不准确,问题出在图片生成标题过程中。2、示例2图4.15示例图片2英文标题:adogissittingonabenchnexttoabike.中文标题1:一只狗坐在自行车旁边的长椅上。中文标题2:一只狗正坐在自行车旁的一床上。分析:细节描述不准确,问题出在图片生成标题过程中。3、示例3图4.16示例图片3英文标题:abaseballplayerholdingabatonafield.中文标题1:棒球运动员在田地上拿着一只蝙蝠。中文标题2:一名棒球员在一场比赛中举起了一球。分析:专有名词翻译不准确,问题出在英文翻译成中文过程中。4、示例4图4.17示例图片4英文标题:ablackcatsittingontopofalaptopcomputer.中文标题1:坐在膝上型计算机顶部的一只黑猫。中文标题2:一只黑色猫坐在手提电脑上。分析:专有名词翻译不准确,问题出在英文翻译成中文过程中。5、示例5图4.18示例图片5英文标题:acowisstandinginapenwithamaninthebackground.中文标题1:一头牛在背景中与一名男子站在一支笔里。中文标题2:一只牛肉正站在一条有一名男子背景的笔上。分析:图像描述和翻译都不准确,描述应当是“一头身上有一个巨疮的牛”。假设英文正确,翻译应当是“一头牛站在一个笔里和背景里的一个男人”。4.4.2 评价性能这里评价的是单纯翻译过程的性能(即假定我们得到的英文标题都是正确的)。采用的指标是BLEU值[11]。BLUE计算过程如下:把通过机器翻译出来的目标语言句子与其相对应的几个参考翻译(一般为人工翻译)作比较,算出一个综合分数。这个分数越高说明机器翻译得越好。这里采用了NLTK库中的BLUE自动计算函数(原型示例如下):fromnltk.translate.bleu_scoreimportsentence_bleureference=[['这','是','一','个','人'],['这','是''人']]candidate=['这','是','一','个','人']score=sentence_bleu(reference,candidate)print(score)其中参考语句必须是语句列表,其中每个语句是一个记号列表。候选语句也必须是一个记号列表。(1)若以字为分隔符,格式如:reference=[['这','是','一','个','人'],['这','是''人']]candidate=['这','是','一','个','人']500个句子的翻译得分:Google0.72。Transformer0.29。(2)若以词为分隔符,格式如:reference=[['这','是','一个','测试'],['这','是''测试']]candidate=['这','是','一个','测试']500个句子的翻译得分:Google0.65。Transformer0.20。附:其中分词程序调用了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'])]))运行结果如下:图4.19实验截图8从上面测得的数据可以看出:以词为分隔符的翻译性能得分要小于以字为分隔符的得分。原因很简单,例如“摩托车”和“电单车”在以词的形式下不相同,而以字的形式下,却有一项相同项“车”,根据BLEU的算法,相同项多则得分高。4.4.3 错误分析从图片-英文标题-中文标题生成的整个过程来看,导致图片和中文标题不对应的原因有2项:第一步im2txt出错和第二步txt2txt出错。第一步自动图像描述系统往往不能捕捉到图片中的细节,容易将事物混淆。例如上节中的示例1,2,其中把鞋架描述成了suitcase,把路面描述成了bench。第二步机器翻译则无法分辨出某特定场景下某些词语的翻译方式。例如上节中的示例3,4,Google机器翻译直接将bat直译成了蝙蝠(没有考虑到上下文的棒球比赛环境),又将laptopcomputer直译为膝上型电脑(没有联系到中文的通俗叫法),总体上来看效果可让人接受。而Transformer方法出来的句子不尽如人意,许多英文词语似乎存在欠翻译,BLEU值也仅仅0.2左右,究其原因,可能出在训练语料以及训练时间的不足上。4.5 本章小结本章首先介绍了Google自动图像描述系统和transformer翻译方法,接着进行实验研究并对实验结果进行对比分析,利用专业的BLEU值评价了相关性能和正确率,最后对实验中的错误展开分析。自动图像描述系统所生成的图像标题和原图像存在细节上的偏差;Google机器翻译得益于其大数据的支持,总体翻译效果不错,但无法正确翻译某些专业名词;Transformer翻译方法由于是自己训练,缺少语料,训练时间也不够,出现了欠翻译,翻译错误的问题,翻译效果与Google相去甚远。

第五章总

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论