目录
介绍
是什么让NMT工作
RNN和LSTM
门控循环单元(GRU)
注意力机制
嵌入
语言模型
下一步
在这里,我们简要介绍一下:我们将用于构建自动翻译机的主要工具和概念、RNN的结构、门控循环单元(GRU)、嵌入和语言模型。
- 下载源文件 - 3.5 KB
谷歌翻译工作得如此之好,它通常看起来很神奇。但这不是魔法——这是深度学习!
在本系列文章中,我们将向您展示如何使用深度学习来创建自动翻译系统。本系列可被视为分步教程,可帮助您理解和构建神经元机器翻译。
本系列假设您熟悉机器学习的概念:模型训练、监督学习、神经网络以及人工神经元、层和反向传播。
在开始编码之前,我们将快速深入了解AI语言翻译的工作原理。如果您更喜欢跳过数学并开始编写代码,您可以跳到用于构建AI语言自动翻译系统的工具。
是什么让NMT工作以下是我们将用来构建自动翻译机的主要工具和概念,在我们的例子中,它将从英语翻译成俄语:
- 循环神经网络(RNN)和长短期记忆(LSTM)
- 编码器和解码器
- 门控循环单元(GRU)
- 注意力机制
- 嵌入
- 语言模型
首先让我们看一下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版本
标准RNN层和LSTM单元之间的比较
该细胞模仿人类的遗忘概念。例如,忘记非必要信息。它是完全循环的,因为它也重新输入了先前的状态。
详细解释为什么LSTM擅长它需要的页面,但至少现在它更容易可视化。我们还想证明神经网络实际上是“抽象的”逻辑电路,是概念上设计的而不是编码的。
我们已经在上面适用于MT的RNN图中说明了编码器——解码器的概念。实际上,这是两个RNN。一个是编码器,将一系列单词编码成一个固定长度的向量,另一个是解码器,反向执行相同的操作。这个RNN被称为序列到序列RNN。
门控循环单元(GRU)GRU只是一个LSTM单元,具有较少的特征,在某些领域可以比“常规”LSTM表现得更好。它可用于简化某些设计,并且通常比常规LSTM执行得更快。我们不会在这个项目中使用GRU,但在这里提及它很重要,因为如果您决定进一步探索AI语言翻译,您可能会遇到它。
注意力机制该注意机制是引入相对最近在NMT的一个重要概念。它赋予要翻译的句子中包含的一个或多个单词更多的“权重”(重要性)。这种简单的机制解决了许多以前在NMT中难以解决的问题。
嵌入嵌入是一个词的多维表示,它提供有关它的统计信息,并将其与其他与该词具有密切意义或密切关系的“基本”词联系起来。例如,单词“lynx”可以嵌入为相关术语列表,例如(猫、动物、野生),每个术语都有一些与之相关的坐标。
词嵌入促进了skip-gram技术:预测围绕给定词的词。
语言模型语言模型(或自然语言的语言表示)提供了语言的参数化视图,其中包含同义词、单词和句子之间的相似性等。AI翻译系统中常用的一些语言模型示例包括BERT、Word2vec、GloVe和ELMo。
下一步在本系列的下一篇文章中,我们将讨论构建基于深度学习的自动翻译系统所需的工具和软件。
https://www.codeproject.com/Articles/5299746/A-Deep-Dive-Into-Machine-Translation