而之所以不在每一层都是用双向RNN是因为,如不雅如许会大年夜幅度降低练习速度,因为其只能应用两个GPU,一个作前向信息处理,一个作后向的信息处理,降低平行计算的效力。
α在练习中去0.017.
在attention的部分,将encoder的输出层与decoder的底层对齐(我的懂得应当是输出的tensor纬度一致)来最大年夜化平行计算的效力。(具体是什么道理我还没懂得太明白)。
四、数据预处理
神经收集翻译体系在运行过程中平日有一个字数有限的字典,而可能碰到的词是无数的,这就可能造成OOV(out-of-vocabulary)问题,因为这些未知词平日是日期,人名,地名等,所以一个简单的办法就是直接复制这些词,显然在处理非人名等词时着不是最好的解决筹划,在谷歌的模型中,采取更好的wordpiece model,也叫sub-word units,比如在“Turing’s major is NLP .”一句经由WPM模型处理之后应当是"Turing ‘s major is NLP ." 别的为了直接复制人名等词,使source language和target language共享wordpiece model,WPM在单词典灵活性和精确性上取得了一个很好的均衡,也在翻译有更好的精确率(BLEU)和更快的翻译速度。
五、练习标准
我用python实现了一下GLEU值的计算,代码如下:
平日来说,在N对语句对中,练习的目标是使下式最大年夜化:

log probabilities of the groud-truth outputs given the corresponding inputs
但这琅绫擎有一个问题,翻译中的BLEU值中不克不及反竽暌钩对单句翻译质量短长的奖惩,进一步,因为模型在练习过程中大年夜来没有见过缺点的译句,当模型有一个较高的BLEU值瓯,那些缺点的句子仍然会获得较高的概率,所以上式不克不及明白的对翻译中的缺点句子进行处罚。(对原论文中此处不是完全懂得,存疑。)
是以须要对模型有进一步的refinement,但BLEU值是针对两个语料库进行的评测标准,在对单句的评测上效不雅并不睬想,所以谷歌提出了GLEU值,GLEU值的大年夜体意思就是分别计算目标语句和译句的n-grams,(n = 1,2,3,4)数量,然后计算两个集合的交集的大年夜小与原集大年夜小的比值,取较小值。
- def get_ngrams(s,maxn):
- ngrams = {}
- size = 0
- for n in range(1,maxn+1):
- for i in range(0,len(s)):
- for j in range(i+1,min(i+n+1,len(s)+1)):
- ngram = ''
- for word in s[i:j]:
- ngram += word
- ngram += ' '
- ngram = ngram.strip()
- if ngram not in ngrams:
- ngrams[ngram] = 1
- size += 1
- return size,ngrams
- def get_gleu(orig,pred,n=4):
- orig_ = orig.split(' ')
- pred_ = pred.split(
推荐阅读
遵守各类数据隐私法中国新的收集安然法已经生效,这意味着全球范围内新增一个国际数据隐私法,这可能给跨国企业带来更多挑衅。企业可以在2018年再开端遵守欧盟的《一般数据保护条例》(GDP>>>详细阅读
本文标题:GNMT-谷歌的神经网络翻译系统
地址:http://www.17bianji.com/lsqh/35848.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示