斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导

课程概要

1、反向传播的四种解释
2、项目指导

一、反向传播的解释1

任务:和上一课一样,判断中心词是否是一个命名实体地点,窗口定义和最后一层的函数都是一样的
结构:含有两个隐层


在这里插入图片描述

二、反向传播的解释2:circuits

例子来源于:CS231n: http://cs231n.github.io/optimization-2/
用类似树的结构来模拟计算,每个子节点表示一个数字,每个中间节点表示一个运算。

从右往左,我们可以依次计算每个节点对应的梯度,主要的计算是前一个节点的梯度乘以当前节点的梯度

一个更加复杂和具体的例子:
在这里插入图片描述
如果可以的话,我们也可以把几个节点合并成为一个节点:
在这里插入图片描述

三、反向传播的解释3:高级流程图

对这个图而言,每个节点都代表一个计算结果,每条边都代表一个计算关系,y向量是x向量的衍生。

前馈做的事情是按照正常顺序计算每个节点的结果。而后馈做的事情是初始化输出的梯度为1,计算反向顺序的每个节点的梯度。

整体的梯度求导我们都可以使用自动化的方法求解,在做前馈计算的时候,前馈符号可以自动推断出后馈的计算。每个节点都需要知道如何计算出输出,以及如何基于输出梯度计算出输入的梯度。

四、反向传播的解释4:真实神经网络中的δ误差信号

和之前一样的两个隐层的神经网络




五、项目指导(针对课程项目)

1、一些备选的项目类型

  • 对一个新任务运用神经网络模型
  • 应用一个复杂的神经框架
  • 建立一个新的神经网络模型
  • 深度学习的理论:比如优化

2、指导:对一个新任务运用已有神经网络模型

a 定任务:比如说Summarization

b 定数据集

  • 查找现有的学术数据集:这些数据集一般都已经有基准(baseline),比如Document Understanding Conference (DUC)
  • 定义自己的数据集(会更困难,一般没有基准):Wikipedia,Twitter,Blogs,News

c 定自己的度量标准

  • 在网上查找针对该任务的已经建立好的度量(metrics),比如说 Summarization,就可以使用Rouge

d 分裂你的数据

  • 把数据分成:训练集,发展集和测试集
  • 一定要确保测试集其他数据集之间是完全没有重叠的

e 建立一个基准

  • 应用最简单的模型:通常是基于一元模型/二元模型的逻辑回归
  • 在测试集和训练集上计算度量(metrics)
  • 分析错误
  • 如果度量结果很好,那么你就完成了,说明任务太简单了,重新换个任务开始思考。

f 应用现有的神经网络模型

  • 在测试集和训练集上计算度量(metrics)
  • 分析输出和错误
  • 这样就达到了课程的最低要求

g 要非常了解自己的数据

  • 对数据集进行可视化
  • 收集统计信息
  • 关注错误
  • 分析超参将会怎么影响模型表现

h 尝试不同的模型变体

  • Word vector averaging model (neural bag of words)
  • Fixed window neural model
  • Recurrent neural network
  • Recursive neural network
  • Convolutional neural network

3、指导:构建一个新模型

  • 首先,先要完成上面的步骤a-h
  • 然后,思考为什么现有的模型是存在问题的
  • 和研究者/mentor进行大量得交流
  • 应用新的模型,并且进行重复的迭代
  • 建立一个有效的实验狂降
  • 一开始先构建简单模型
  • 以summarization为例:平均每个段落的词向量,然后贪婪搜索;应用语言模型;衍生目标:生成seq2seq的总结
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章