《TensorFlow自然语言处理》—1.5 本章之外的学习路线
1.5 本章之外的学习路线
本节描述本书其余部分的细节,虽然很简短,但是它囊括了本书各章内容的详细信息。在本书中,我们将研究NLP的众多令人兴奋的领域,从在没有任何类型的注释数据情况下寻找单词相似性的算法,到可以自己编写故事的算法,均会涉及。
从下一章开始,我们将深入探讨几个流行且有趣的NLP任务的细节。为了更深入地了解获得的知识并增加学习的互动性,我们还提供了各种练习。我们将使用Python和TensorFlow(一个用于分布式数值计算的开源库)来实现所有任务。TensorFlow封装了先进的技术,例如,使用CUDA(Compute Unied Device Architecture)优化GPU代码,这可能具有挑战性。此外,TensorFlow提供内置函数来实现深度学习算法,例如激活函数、随机优化方法和卷积,这使得实现过程更轻松。
本书将开始一个涵盖NLP的许多热门话题以及它们如何实现的旅程,同时使用TensorFlow来了解最先进的算法。下面是我们将在本书中看到的内容:
第2章介绍如何编写客户端程序并在TensorFlow中运行它们。这一点非常重要,特别是在你不熟悉TensorFlow的情况下,因为TensorFlow与传统的编码语言(如Python)的运行方式不同。本章首先深入解释TensorFlow如何执行客户端程序,这将有助于你了解TensorFlow的执行工作流程,并习惯TensorFlow的术语。接下来,本章将引导你了解TensorFlow客户端程序的各种元素,例如定义变量、定义操作/函数、向算法提供输入以及获取结果。最后将讨论如何用所有这些TensorFlow知识实现一个复杂的神经网络以对手写图像进行分类。
第3章的目的是介绍Word2vec,这是一种用于学习单词的数值表示的方法,这种表示可以反映单词的语义。但在深入研究Word2vec技术之前,我们将首先讨论一些用于表示单词语义的经典方法。早期的方法之一是依赖WordNet这个大型词汇数据库,WordNet可用于衡量不同单词之间的语义相似性。但是,要维护这么大的词汇数据库,其成本是很昂贵的,因此,还有其他更简单的表示技术,例如独热编码表示以及tf-idf方法,这些技术不依赖于外部资源。接下来,我们将介绍学习单词向量化的现代方法,称为Word2vec,在这种方法中,我们使用神经网络来学习单词表示。该章将讨论两种流行的Word2vec技术:skip-gram和连续词袋(CBOW)模型。
第4章首先比较几个算法(包括skip-gram和CBOW算法),看看是否有明确的赢家。然后,将讨论在过去几年中对原始Word2vec技术的几项扩展。例如,忽略文本中高概率的常见单词(例如“the”和“a”)可以提高Word2vec模型的性能。另一方面,Word2vec模型仅考虑单词的局部上下文,而忽略整个语料库的全局统计信息。因此,将讨论称为GloVe的单词嵌入学习技术,它在学习单词向量的过程中会结合全局和局部统计信息。
第5章介绍卷积神经网络(CNN)。卷积网络是一个强大的深层模型系列,它可以利用输入的空间结构来从数据中进行学习。换句话说,CNN能够以二维形式处理图像,在此过程中,多层感知器需要将图像展开为一维向量。我们将首先详细讨论CNN中的各种操作,例如卷积和池化操作。然后,将通过一个例子介绍如何用CNN对手写数字图像进行分类。之后,将过渡到NLP中的CNN应用。准确地说,我们将研究如何用CNN来对涉及人、位置、物体等内容的句子进行分类。
第6章重点介绍递归神经网络(RNN)和使用RNN进行语言生成。RNN具有记忆功能,因此与前馈神经网络(例如,CNN)不同,它可以将记忆作为持续更新的系统状态进行存储。我们将从前馈神经网络的表示开始,然后修改这种表示,以便可以从数据序列而不是单个数据点进行学习,此过程会将前馈网络转换为RNN。接下来,我们从技术角度描述RNN内部计算的方程式。然后,将讨论用于更新RNN权重的RNN的优化过程。此后,将逐一介绍不同类型的RNN,例如一对一RNN和一对多RNN。接着,将介绍一个令人兴奋的RNN应用,其中,RNN通过学习现有故事的语料库,尝试讲述新故事。我们通过训练RNN在故事中给定前一个单词序列的情况下预测下一个单词,来实现此目的。最后,将讨论标准RNN的变体,我们将其称为RNN-CF(具有上下文特征的RNN),并将其与标准RNN进行比较,看看哪个更好。
第7章首先直观地介绍长期短期记忆网络模型是如何工作的,然后逐步深入技术细节,让你可以自己应用它们。标准RNN的严重限制在于不能记忆长期信息,其改进模型是可以记住大量时间步长序列的先进的RNN模型,例如,长短期记忆网络(LSTM)和门控循环单元(GRU)。我们还将考查LSTM如何缓解记忆长期信息的问题(称为梯度消失问题)。然后,将讨论可以进一步提高LSTM模型性能的若干改进,例如,一次向前预测几个时间步长,并向前和向后读取序列信息。最后,我们将讨论LSTM模型的几种变体,例如,带有窥孔连接的GRU和LSTM。
第8章解释如何使用第7章中讨论的带有窥孔连接的LSTM、GRU和LSTM。此外,将在质量和数量上比较这些扩展的性能。我们还将讨论如何实现第7章中提到的一些扩展,例如,预测前面的几个时间步长(称为集束搜索),并使用词向量而非独热编码作为输入。最后,将讨论如何使用TensorFlow的子库RNN API,它简化了模型的实现。
第9章着眼于另一个激动人心的应用,即让模型学习如何使用LSTM和CNN生成图像的标题(描述)。这个应用程序很有趣,因为它向我们展示了如何组合两种不同类型的模型,以及如何学习多模态数据(例如,图像和文本)。具体实现方法是,首先利用CNN学习图像表示(类似于单词向量),然后把该图像向量和相应的图像描述单词作为序列来训练LSTM。我们将首先讨论如何使用预训练的CNN来获得图像表示,之后讨论如何学习词嵌入。接下来,将讨论如何把图像向量与字词嵌入一起送入网络来训练LSTM,随后是对评估图像描述系统的不同度量方法的描述。之后,我们将定性和定量地评估模型生成的标题。在本章结束时会介绍如何使用TensorFlow的RNN API实现相同的系统。
第10章介绍神经机器翻译。由于翻译自动化的必要性和任务的固有难度,机器翻译已经引起了很多关注。我们将在本章开头简要介绍机器翻译在早期的实现方式,最后会讨论神经机器翻译(NMT)系统。我们将看到当前NMT系统与旧系统(如统计机器翻译系统)相比的表现如何,这将激励我们了解NMT系统。之后,将讨论NMT系统设计背后的灵感,并继续介绍技术细节。然后,将讨论用于评估翻译系统的指标。在此之后,将研究如何从头实现德语到英语的翻译系统。接下来,将了解改进NMT系统的方法。会将详细介绍其中一个扩展,称为注意力机制。注意力机制已经成为序列到序列学习问题的必要条件。最后,将比较通过引入注意力机制获得的性能提升,并分析性能提升背后的原因。本章最后一小节将介绍如何把NMT系统的概念扩展到聊天机器人,聊天机器人是可以与人交流并解答各种客户请求的系统。
第11章介绍当前趋势和自然语言处理的未来。自然语言处理已广泛扩展到各种不同任务。本章将讨论NLP的一些当前趋势和未来NLP发展前景。首先讨论最近出现的各种词嵌入的扩展方法,还将研究一种称为tv-embedding的词嵌入学习技术的实现。接下来,将研究神经机器翻译领域的各种趋势。然后,将看看NLP如何与其他领域(如计算机视觉和强化学习)相结合,以解决一些有趣的问题,比如教计算机设计自己的语言进行交流。如今,另一个蓬勃发展的领域是泛人工智能,它是用单个系统完成多项任务(分类图像、翻译文本、字幕图像等)的系统。我们将介绍几个这样的系统。之后,将讨论挖掘社交媒体中的NLP。本章结束时会介绍一些新任务(例如,语言基础-开发广义NLP系统)和新模型(例如,短语LSTM)。
附录将向读者介绍各种数学数据结构(例如,矩阵)和操作(例如,矩阵的逆),我们还将讨论概率中的几个重要概念,然后介绍Keras,这是一个底层使用TensorFlow的高级库。Keras通过隐藏TensorFlow中的一些具有挑战性的细节,使得神经网络的实现更简单。具体而言,我们将看到如何使用Keras实现CNN,以了解如何使用Keras。接下来,将讨论如何在TensorFlow中使用seq2seq库来实现一个神经机器翻译系统,这比我们在第11章中使用的代码要少很多。最后,将向你介绍如何使用TensorBoard可视化词嵌入的指南。TensorBoard是TensorFlow附带的便捷可视化工具,可用于可视化和监视TensorFlow程序中的各种变量。
- 点赞
- 收藏
- 关注作者
评论(0)