在这个实践,你可以选择探索 RNN 的两个应用之一:文本分类或语言建模(欢迎两个都尝试)。 我们将使用我们在实践2中创建的 training/dev/test 进行分解。 文本分类(任务1) 上周的实践中,我们介绍了文本分类是一个可以通过深度学习解决的问题。我们使用的文档表示函数非常简单:是文档中词嵌入的平均值。本周,你将使用 RNN 来计算文档表示 下图左边表示上周实际使用的文档表示函数。这个任务的目标是令你的代码使用右边的架构。
需要注意的是,在实践3中,x 被定义为 RNN 隐藏状态(h_t)的平均值。 问题: 1、基于 RNN 的表示相比上周使用的词袋(bag of words)表示的好处和缺点是什么? 数据的可用性如何影响结果? 2、一种可能的架构变体是仅使用RNN的最终隐藏状态作为文档表示(即,x),而不是随时间变化的隐藏状态的平均值。它怎么工作?这种表示的潜在好处和缺点是什么? 3、尝试不同的 RNN 架构,例如简单的 Elman RNN 或 GRU 或 LSTM。哪些最适合? 4、如果使用双向 LSTM(即图中的虚线箭头)会得到什么结果? 用 RNN 做语言建模(任务2) 如上周讲座所述,RNN 语言模型使用链规则将序列的概率分解成词的概率的乘积,条件是先前生成的词: 为了避免浮点下溢的问题,我们通常在日志空间中对其进行建模。 给定一个语言模型的训练序列训练图如下:
你的任务是用 TED 数据的训练集训练 RNN 语言模型,然后使用验证集确定何时停止优化模型参数。 语言模型可以通过计算模型在测试语料库上 (per-word) 的困惑度(perplexity )来定量评估: 为了定性评估模型,通过从p(w_t | w_ {<t})采样从模型生成随机样本,然后在时间 t + 1 将 wt 的采样值馈送到 RNN。 问题: 1、如果改变语料库的预处理(例如,把更多的单词变成 UNK,或把所有字母变小写),困惑度仍然可以比较吗? 2、为了使训练易于处理,你可以将句子作为 i.i.d.,或者可以使用截平的 BPTT。i.i.d. 的假设有效吗?它们的好处和缺点分别是什么?你认为在测试集上的困惑度会是怎样? 3、不将文档建模为词序列,而是将文档建模为字符序列。每个词的困惑度在这两个模型之间是否可比?在字符级别建模文本有什么好处?有什么缺点? 4、尝试使用 RNN 的不同定义的变体模型(如LSTM,GRU,简单 Elman RNN),困惑度如何? 5、在文本分类中,建议使用双向 RNN。使用双向RNN进行语言建模任务可行吗?为什么? 课程安排 Week 1 1. 课程介绍 1a,Phil Blunsom(课程组织者、牛津大学计算机系副教授、DeepMind研究员) 课程概要,特别介绍了使用深度学习技术进行语言处理的有趣之处 1b,Wang Ling (DeepMind研究员) 本节课介绍了机器学习的基本概念。 2. 词法语义学 Ed Grefenstette( DeepMind研究员) 词语是语言的核心单位。表征和学习词的意义是NLP的一个基本任务。本课讨论了词嵌入的概念,并将其作为一个实用和可扩展的解决方案。 Week 2 No lectures Week 3 3,RNN和语言建模 Phil Blunsom (责任编辑:本港台直播) |