《深度学习进阶:自然语言处理》读书笔记:第7章 基于RNN生成文本

第7章 基于RNN生成文本

因为语言模型并不是背诵了训练数据,而是学习了训练数据中单词的排列模式。如果语言模型通过语料库正确学习了单词的出现模式,我们就可以期待该语言模型生成的文本对人类而言是自然的、有意义的。

这个世界充满了时序数据。文本数据、音频数据和视频数据都是时序数据。另外,还存在许多需要将一种时序数据转换为另一种时序数据的任务,比如机器翻译、语音识别等。其他的还有进行对话的聊天机器人应用、将源代码转为机器语言的编译器等。像这样,世界上存在许多输入输出均为时序数据的任务。

编码就是将任意长度的文本转换为一个固定长度的向量。

在基于mini-batch学习可变长度的时序数据时,最简单的方法是使用填充。所谓填充,就是用无效(无意义)数据填入原始数据,从而使数据长度对齐。

数据集原本应分成训练用、验证用和测试用3份。用训练数据进行学习,用验证数据进行调参,最后再用测试数据评价模型的能力。

本章我们探讨了基于RNN的文本生成。实际上,我们只是稍微改动了基于RNN的语言模型,增加了文本生成的功能。seq2seq模型拼接了编码器和解码器,是组合了两个RNN的简单结构。但是,尽管seq2seq简单,却具有巨大的潜力,可以用于各种各样的应用。

本章所学的内容

1.基于RNN的语言模型可以生成新的文本;

2.在进行文本生成时,重复“输入一个单词(字符),基于模型的输出(概率分布)进行采样”这一过程;

3.通过组合两个RNN,可以将一个时序数据转换为另一个时序数据(seq2seq);

4.在seq2seq中,编码器对输入语句进行编码,解码器接收并解码这个编码信息,获得目标输出语句;

5.反转输入语句和编码信息分配给解码器的多个层(Peeky)可以有效提高seq2seq的精度;

6.seq2seq可以用在机器翻译、聊天机器人和自动图像描述等各种各种各样的应用中。

你可能感兴趣的:(#,《深度学习进阶》读书笔记,深度学习,自然语言处理,rnn)