网站首页 > 技术文章 正文
选自arxiv
作者:Denny Britz等
机器之心编译
参与:微胖、蒋思源、吴攀
这样的实验只有谷歌级别的公司才能处理的了。这篇文章对大型 NMT 模型训练过程中的各个超参数对结果的影响进行了经验分析,并得出了一些有意义的结论。比如,嵌入用 2048 维结果最好,但是也没有好到哪里去,基本上,128 维的结果就不错了;LSTM 比 GRU 效果好;2-4 层的双向编码器效果最好。作为论文的一部分,作者们发布了一个开源 NMT 框架,能让研究员轻松试验新技术并得出最先进的试验结果,机器之心也有报道,请见(资源 | 谷歌官方开源 tf-seq2seq:一种通用编码器-解码器框架)
论文地址:https://arxiv.org/abs/1703.03906
开源地址:https://github.com/google/seq2seq/
摘要
神经机器翻译(NMT)在过去的几年中有了很大的进步,并且由 NMT 构成的产品系统现已经部署到客户端中。不过当前架构主要的缺点就是高昂的训练成本,收敛所花费的 GPU 时间通常是几天到几周。这使得穷尽超参数(hyperparameter)搜索(这在其他神经网络架构中也很常见)的成本高昂的让人望而却步。在这篇论文中,我们首次大规模分析了 NMT 架构的超参数,并报告了几百次实验测试的经验结果和方差数(variance numbers),相当于标准 WMT 英译德任务上运行 250,000 多个 GPU 小时。我们也通过实验找到了一些关于构建和扩展 NMT 架构的新洞见,也提出了一些实用建议。作为这次研究贡献的一部分,我们发布了一个开源 NMT 框架,能让研究员轻松试验新技术并得出最先进的试验结果。
图 1:带有注意模块(attention module)的编码器—解码器架构。章节号代表该部分相应的参考实验。
图 2:带有以及不带有残差连接(residual connections)的深度解码器训练图表,且该图表示了在评估集上的对数困惑度(log perplexity)。
4.7 最后系统的对比
最后,我们将所有实验中性能最佳的模型(附加了 512 维注意(attention)的基础模型),从 newstest2013 验证集中挑选出的,与文献中的历史结果进行了比较(表 8)。尽管这不是这份研究的关注点,但是,通过将我们的洞见融入一个单独的模型(表 7 描述的),我们能够进一步改善效果。
虽然我们没有提供架构创新,但是我们的研究确实表明:通过详细的超参数调节和良好初始化,我们可以在标准 WMT 基准上实现最佳的性能表现。仅有(Wu et al., 2016)的模型比我们的模型表现更优,但是,他们的模型显然要复杂得多,也缺乏公开实现。
表 7:我们最终综合模型的超参数设置,由全部单独优化值组成
表 8:各种模型比较,包含:RNNSearch (Jean et al., 2015), RNNSearch-LV (Jean et al., 2015), BPE (Sennrich et al., 2016b), BPE-Char (Chung et al., 2016), Deep-Att (Zhou et al., 2016), Luong (Luong et al., 2015a), Deep-Conv (Gehring et al., 2016), GNMT (Wu et al., 2016) 和 OpenNMT (Klein et al., 2017). 带有 * 的没有公开的实现。
结论
我们对神经机器翻译架构差异进行了第一个大规模分析,梳理了实现最先进实验结果的关键因素。我们证实了一些令人惊奇的见解,包括集束搜索调节(beam search tuning)和绝大多数架构变化同样重要,使用了当前优化技术的深度模型并不总是优于浅模型。以下就是我们总结的实际发现:
使用 2048 维的大型嵌入(embeddings)实现了最优的结果,不过优势很小。即使只具有 128 维的嵌入似乎也有足够的能力来获取绝大多数必要的语义信息。
LSTM Cell 始终优于 GRU Cell。
2-4 层的双向编码器性能最好。更深的编码器显然在训练中不太稳定,不过如果优化好,更深的编码器会有潜力。
深度 4 层解码器比浅一些的解码器表现要略胜一筹。训练 8 层的解码器,残差连接是必要的,而且密集的残差连接能带来额外的稳健性。
参数化的额外的注意模块产生了总体最优结果。
一个调适良好、具有长度罚项(length penalty)的集束搜索(beam search)十分重要。5 到 10 集束宽度(Beam widths)和 1.0 的长度罚项似乎效果不错。
我们强调几个重要的研究问题(包括高效利用嵌入参数 (4.1)),注意机制(attention mechanisms)作为加权跳过连接(weighted skip connections)(4.5)而不是记忆单元的角色作用,深度循环网络(4.3)需要更好的优化方法,以及超参数变化(hyperparameter variations)还需要更具稳健性的集束搜索(beam search/4.6)。
此外,我们还公开发布了一个开源 NMT 框架和我们所有实验的配置文件,该 NMT 开源框架专门用于研究架构创新和生成可重复实验。
猜你喜欢
- 2024-11-01 假期学习必备:机器学习知识体系汇总,弄懂面试横着走
- 2024-11-01 循环神经网络的使用RNN和LSTM rnn循环神经网络的原理
- 2024-11-01 #一天一个AI知识点# 什么是LSTM? #lstm有什么用
- 2024-11-01 NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意
- 2024-11-01 TensorFlow 1.9更新,侧重对tf.keras文档,GRU和LSTM实现的改进
- 2024-11-01 #一天一个AI知识点# 什么是GRU? #gru1
- 2024-11-01 人工智能基础:LSTM及其变种介绍,方便针对实际问题取舍
- 2024-11-01 别再用RNN和LSTM了!注意力模型才是王道
- 2024-11-01 深度学习——动画版RNN、LSTM和GRU计算过程
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)