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

课程概要

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

一、反向传播的解释1

任务:和上一课一样,判断中心词是否是一个命名实体地点,窗口定义和最后一层的函数都是一样的
结构:含有两个隐层
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第1张图片
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第2张图片
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第3张图片

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

例子来源于:CS231n: http://cs231n.github.io/optimization-2/
用类似树的结构来模拟计算,每个子节点表示一个数字,每个中间节点表示一个运算。
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第4张图片

从右往左,我们可以依次计算每个节点对应的梯度,主要的计算是前一个节点的梯度乘以当前节点的梯度
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第5张图片
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第6张图片

一个更加复杂和具体的例子:
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第7张图片
如果可以的话,我们也可以把几个节点合并成为一个节点:
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第8张图片

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

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

对这个图而言,每个节点都代表一个计算结果,每条边都代表一个计算关系,y向量是x向量的衍生。
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第12张图片

前馈做的事情是按照正常顺序计算每个节点的结果。而后馈做的事情是初始化输出的梯度为1,计算反向顺序的每个节点的梯度。
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第13张图片

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

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

和之前一样的两个隐层的神经网络
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第14张图片
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第15张图片
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第16张图片
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第17张图片
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第五课 反向传播与项目指导_第18张图片

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

1、一些备选的项目类型

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

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

a 定任务:比如说Summarization

  • 更多和summarization相关的内容可以参考这个斯坦福大学-自然语言处理入门 笔记 第二十一课 问答系统(2)

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的总结

你可能感兴趣的:(CS224,Natural,Language,Processing,w)