(二)深入了解机器翻译
目录
介绍
是什么让NMT工作
RNN和LSTM
门控循环单元(GRU)
注意力机制
嵌入
语言模型
下一步
在这里,我们简要介绍一下:我们将用于构建自动翻译机的主要工具和概念、RNN的结构、门控循环单元(GRU)、嵌入和语言模型。
- 下载源文件 - 3.5 KB
介绍
谷歌翻译工作得如此之好,它通常看起来很神奇。但这不是魔法——这是深度学习!
在本系列文章中,我们将向您展示如何使用深度学习来创建自动翻译系统。本系列可被视为分步教程,可帮助您理解和构建神经元机器翻译。
本系列假设您熟悉机器学习的概念:模型训练、监督学习、神经网络以及人工神经元、层和反向传播。
在开始编码之前,我们将快速深入了解AI语言翻译的工作原理。如果您更喜欢跳过数学并开始编写代码,您可以跳到用于构建AI语言自动翻译系统的工具。
是什么让NMT工作
以下是我们将用来构建自动翻译机的主要工具和概念,在我们的例子中,它将从英语翻译成俄语:
- 循环神经网络(RNN)和长短期记忆(LSTM)
- 编码器和解码器
- 门控循环单元(GRU)
- 注意力机制
- 嵌入
- 语言模型
RNN和LSTM
首先让我们看一下RNN的结构。一个基本的如下所示。如您所见,该结构由层构成—— \(layer_{0},layer_{1},...layer_{k},layer_{k+1},...\) ——形成一个有向序列。
输入向量\(X = (X_{0},...X_{n})\)被转换为输出向量\(Y = (Y_{0},...Y_{n})\)。
一个简单的RNN
每层产生一个激活\(a_{t}\)(就像任何神经网络层一样)但它也直接产生一个输出\(Y_{t}\),它是\(a_{t}\)的函数。
描述我们简单RNN的方程如下:
$a_{t}=F(\alpha .a_{t-1}+\beta .x_{t}+\gamma)$
和
$Y_{t}=G(\delta .a_{t}+\epsilon )$
其中:F和G是激活函数,\(\alpha,\beta,\delta,\epsilon\)是取决于层系数的变量。
我们正在讨论的RNN被称为多对多:多输入多输出。这通常是我们在机器翻译(MT)中使用的内容。具有唯一输入和多个输出的RNN被称为一对多RNN,具有多个输入和唯一输出的RNN被称为多对一RNN。
RNN不仅在MT领域有用,而且还成功应用于语音识别、音乐生成、感觉识别等等。
在MT的情况下,我们需要一种稍微不同类型的RNN:
适用于NMT的多对多RNN
上图中,输入向量的k个分量是英语句子的单词,输出向量的l个分量是翻译后的俄语句子的单词。
LSTM是先进、精炼的RNN架构,可为性能更高的RNN设计提供支持。在这样的设计中,几个(或所有)层被LSTM单元替换。这些单元的构建方式与“普通”RNN层不同。
让我们将普通层与LSTM单元进行比较。为什么LSTM单元比普通RNN层更有效并不是很明显,但它肯定更复杂。
LSTM单元有两个门:输入门和遗忘门。sigma符号表示与输入(+常数)的线性组合[1]。它还传输深度学习隐藏状态[2]。
1所有操作都是向量
2这是术语“隐藏状态”的DL版本
该细胞模仿人类的遗忘概念。例如,忘记非必要信息。它是完全循环的,因为它也重新输入了先前的状态。
详细解释为什么LSTM擅长它需要的页面,但至少现在它更容易可视化。我们还想证明神经网络实际上是“抽象的”逻辑电路,是概念上设计的而不是编码的。
门控循环单元(GRU)
注意力机制
该注意机制是引入相对最近在NMT的一个重要概念。它赋予要翻译的句子中包含的一个或多个单词更多的“权重”(重要性)。这种简单的机制解决了许多以前在NMT中难以解决的问题。
嵌入
语言模型
语言模型(或自然语言的语言表示)提供了语言的参数化视图,其中包含同义词、单词和句子之间的相似性等。AI翻译系统中常用的一些语言模型示例包括BERT、Word2vec、GloVe和ELMo。
下一步
在本系列的下一篇文章中,我们将讨论构建基于深度学习的自动翻译系统所需的工具和软件。
https://www.codeproject.com/Articles/5299746/A-Deep-Dive-Into-Machine-Translation
(二)深入了解机器翻译相关推荐
- 机器学习-RNN机器翻译
一.简介 RNN的经典的用例之一就是将文本从一种语言翻译成另一种语言. 过去,这是使用手工制作的功能以及许多复杂的条件来完成的,这些条件花费很长时间才能创建并且理解起来很复杂. 因此,让我们看看RNN ...
- 阿里巴巴机器翻译在跨境电商场景下的应用和实践
摘要: 本文将与大家分享机器翻译相关背景知识,再深入介绍机器翻译在阿里生态中的具体应用实践,介绍基于机器翻译技术搭建的一套完善的电商多语言解决方案,最后将会从技术角度介绍阿里机器翻译在解决实际业务问题 ...
- 统计机器翻译中的IBM1模型
一.引言 机器翻译(Machine Translation)是自然语言处理中一个重要的研究方向.它是利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的过程.特别是随着机器学习技术的发 ...
- 浅析 集束搜索(Bean Search) 算法
集束搜索(Bean Search) 背景 场景一:如果说,你想实现:输入一段语音片段,经过一一列操作,实现最后输出语音的内容.再此过程中,假如你不想随机输出一些结果,而想得到最好最优的输出结果,此 ...
- 整理18、19、20年关于《人工智能》的标准和评估规范
前言 我们在人工智能领域研发.开发和应用时,需要有专业性的标准.标准化的指标.或评估规范等,在网上查找了一段时间,发现很多资料并不可靠,或简单介绍,让人头大呀:这里整理了一些比较专业的资料,分享给大家 ...
- 腾讯AI Lab NLP团队首次曝光,张潼、俞栋带队解读ACL三大前沿
本文转载自腾讯AI Lab微信号(tencent_ailab),深度解析本届ACL热门研究.文章第一部分是三大前沿领域重点文章解析,包括信息抽取.问答系统和机器翻译等.第二部分是ACL简介及NLP团队 ...
- 自然语言生成:解决低频Tokens退化整个Tokens模型问题
Rare Tokens Degenerate All Tokens:Improving Neural Text Generation via Adaptive Gradient Gating for ...
- RNN循环神经网络原理与示例
一.原理解释 循环神经网络(Recurrent Neural Network,RNN)很多实时情况都能通过时间序列模型来描述.基于序列的模型可以用在很多领域中.在音乐中,一首曲子的下一个音符肯定取决于 ...
- CS224n自然语言处理(二)——语言模型、机器翻译和CNN
文章目录 一.语言模型及RNN 1.n-gram语言模型 2.Window-based DNN 3.循环神经网络 (一)梯度消失和梯度爆炸 (二)LSTM (三)GRU 4.评估语言模型 5.预处理 ...
- 二十八、统计机器翻译基础
二十八.统计机器翻译基础 由于本人喜欢在纸上手推原理,所以附上照片,欢迎提出建议
最新文章
- 验证(verification)和确认(validation)
- CSP认证201503-2	数字排序[C++题解]:哈希表、排序、结构体
- intellij导入文件夹后各种红色cannot resolve symbol
- LeetCode 456. 132模式(逆序遍历+单调栈)
- oracle按数据条件进行更新_SQL 基础教程, 创建表,按条件选取数据,数据更新,删除...
- 人人都是程序员?一边吐槽,一边却偷偷用,低代码工具真香
- 开发板ping不通Linux虚拟机的原因及解决办法
- PreScan快速入门到精通第十一讲之PreScan道路标记,建筑物、抽象物体及交通标识
- MySQL中varchar,varbinary的区别
- 关于使用ArcGIS裁剪栅格后像元值发生变化的问题
- M2M、物联网应用开发的好助手——Wavecom Sierra 无线MODEM( GSM/GPRS/EDGE MODEM)
- C语言实现七夕表白爱心
- 气传导耳机是什么原理?气传导蓝牙耳机优缺点分析
- 就北京来说,有对 PM2.5 有用的空气净化器么?
- 定格动画android,定格动画安卓版下载-定格动画最新版下载v2.2.2-一听下载站
- 解决latex提示Warning: Font shape `TU/phv/m/n‘ undefined (Font)
- 怎么实现MindMapper中剪贴画的添加
- 人死了以后往哪儿去了?
- 计蒜客 17115 Coin(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B)
- 小程序坑爹玩意儿的 U.createEvent is not a function报错问题汇总
热门文章
- linux链接时报未定义的引用,g ++链接或引用不与本地安装的库一起使用:未定义的引用...
- centos7 安装jdk_Centos 7安装和配置 ElasticSearch入门小白
- 正月十五元宵节各种设计师需要的PSD分层展板\晚会横幅
- 设计灵感|浓浓人文感!中文活动海报设计学习案例
- 佩戴口罩、洗手消毒引导正确防疫插画素材
- 2020年的UI设计师需要会什么软件
- java mysql查询语句_Mysql查询语句执行过程
- 一只青蛙跳向三个台阶_青蛙跳台阶问题的三种解法
- python分词统计词频_python jieba分词并统计词频后输出结果到Excel和txt文档方法
- C++ protected 一种使用场景