斯坦福大学深度学习与自然语言处理第一讲:引言

13条回复

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,他本人是德国人,大学期间涉足自然语言处理,在德国读研时又专攻计算机视觉,之后在斯坦福大学攻读博士学位,拜师NLP领域的巨牛 Chris Manning 和 Deep Learning 领域的巨牛 Andrew Ng,其博士论文是《Recursive Deep Learning for Natural Language Processing and Computer Vision》,也算是多年求学生涯的完美一击。毕业后以联合创始人及CTO的身份创办了MetaMind,作为AI领域的新星创业公司,MetaMind创办之初就拿了800万美元的风投,值得关注。

回到这们课程CS224d,其实可以翻译为“面向自然语言处理的深度学习(Deep Learning for Natural Language Processing)”,这门课程是面向斯坦福学生的校内课程,不过课程的相关材料都放到了网上,包括课程视频,课件,相关知识,预备知识,作业等等,相当齐备。课程大纲相当有章法和深度,从基础讲起,再讲到深度学习在NLP领域的具体应用,包括命名实体识别,机器翻译,句法分析器,情感分析等。Richard Socher此前在ACL 2012和NAACL 2013 做过一个Tutorial,Deep Learning for NLP (without Magic),感兴趣的同学可以先参考一下: Deep Learning for NLP (without Magic) - ACL 2012 Tutorial - 相关视频及课件 。另外,由于这门课程的视频放在Youtube上,@爱可可-爱生活老师维护了一个网盘链接:http://pan.baidu.com/s/1pJyrXaF ,同步更新相关资料,可以关注。

第一讲:引言-自然语言处理与深度学习简介(Intro to NLP and Deep Learning)

推荐阅读材料:

  1. 线性代数相关知识点回顾:[Linear Algebra Review]
  2. 概率相关知识点回顾:[Probability Review]
  3. 凸优化相关知识点回顾: [Convex Optimization Review]
  4. 优化相关的另一篇介绍(来自于斯坦福CS231课程资料),随机梯度下降相关[More Optimization (SGD) Review]
  5. 语义向量空间模型的一篇综述[From Frequency to Meaning: Vector Space Models of Semantics]
  6. 课程第一部分的Notes,涉及第一讲和第二讲[Lecture Notes 1]
  7. python及numpy简介[python tutorial]
  8. 第一讲Slides[slides]
  9. 第一讲视频[video]

以下是第一讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。

什么是自然语言处理(NLP)

自然语言处理的层次

NLP层次

自然语言处理的应用

工业届里的NLP应用

NLP为什么这么难

什么是深度学习(DL)

机器学习 vs 深度学习

机器学习&深度学习

什么是深度学习(DL)续

深度学习的历史

探索深度学习的原因

面向语音识别的深度学习

面向计算机视觉的深度学习

Deep Learning + NLP = Deep NLP

音位学层次的表示

形态学层次的表示

句法层次的表示

语义层次的表示

NLP应用:情感分析

NLP应用:问答系统

NLP应用:机器翻译

可以发现所有NLP层次的表示都涉及到向量(Vectors), 下一讲将讲到如何来学习词向量以及这些向量表示了什么?

词向量

第二讲:简单的词向量表示:word2vec, Glove(Simple Word Vector representations: word2vec, GloVe)

推荐阅读材料:

  1. Paper1:[Distributed Representations of Words and Phrases and their Compositionality]]
  2. Paper2:[Efficient Estimation of Word Representations in Vector Space]
  3. 第二讲Slides [slides]
  4. 第二讲视频 [video]

以下是第二讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。

如何来表示一个词的意思(meaning)

第三讲:高级的词向量表示(Advanced word vector representations: language models, softmax, single layer networks)

推荐阅读材料:

  1. Paper1:[GloVe: Global Vectors for Word Representation]
  2. Paper2:[Improving Word Representations via Global Context and Multiple Word Prototypes]
  3. Notes:[Lecture Notes 2]
  4. 第三讲Slides [slides]
  5. 第三讲视频 [video]

以下是第三讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。

回顾:简单的word2vec模型

计算所有的梯度

计算所有的向量梯度

梯度下降

梯度下降相关代码

屏幕快照 2015-07-02 上午11.08.29

随机梯度下降(SGD)

词向量的随机梯度下降

PSet1

PSet1: The skip-gram model and negative        sampling

What to        do with        the two        sets of        vectors?

如何评测词向量

词向量的内部评测:

词向量的内部评测例一

词向量的内部评测例二

词向量的内部评测例三

词向量的内部评测例四

类比评测和超参数

词向量的内部评价

如何应对歧义问题(But what about ambiguity?)

词向量的外部评价

简单的单个词的分类问题

The Softmax

The Softmax - 细节

Softmax和交叉熵误差

背景:交叉熵 & KL散度

简单的单个单词分类

训练的词向量的情感分享可视化

屏幕快照 2015-07-15 下午2.51.12

继续“打怪升级”:窗口分类(Window classification)

第四讲:词窗口分类和神经网络(Word Window Classification and Neural Networks)

推荐阅读材料:

  1. [UFLDL tutorial]
  2. [Learning Representations by Backpropogating Errors]
  3. 第四讲Slides [slides]
  4. 第四讲视频 [video]

以下是第四讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。

本讲概览

分类问题定义

{xi,yi}Ni=1{xi,yi}i=1N

分类问题直窥

屏幕快照 2015-09-07 上午8.04.30

屏幕快照 2015-09-07 上午8.10.00

分类问题符号定义

屏幕快照 2015-09-07 上午8.19.38

屏幕快照 2015-09-07 上午8.21.15

分类问题:正则化

屏幕快照 2015-09-07 上午10.58.50

屏幕快照 2015-09-07 上午11.01.08

机器学习优化问题

屏幕快照 2015-09-07 下午5.40.24

屏幕快照 2015-09-07 下午5.40.59

引入词向量

屏幕快照 2015-09-07 下午5.48.41

重新训练词向量会丧失泛化能力

屏幕快照 2015-09-07 下午6.27.45

重新训练词向量会丧失泛化能力续

屏幕快照 2015-09-07 下午6.32.10

词向量概念回顾

屏幕快照 2015-09-08 上午10.56.48

屏幕快照 2015-09-08 上午10.59.03

窗口分类

简单的窗口分类器: Softmax

更新拼接的词向量:Tips

提示2:懂得链式法则(chain rule)并且记住在哪些变量中含有其他变量

屏幕快照 2015-09-10 下午2.12.40

提示3:对于softmax中求导的部分:首先对fcfc当c=y(正确的类别)求导,然后对fcfc当c≠yc≠y(其他所有非正确类别)求导

提示4:当你尝试对f中的一个元素求导时,试试能不能在最后获得一个梯度包含的所有的偏导数

屏幕快照 2015-09-11 上午10.29.19

提示5:为了你之后的处理不会发疯,想象你所有的结果处理都是向量之间的操作,所以你应该定义一些新的,单索引结构的向量

屏幕快照 2015-09-11 下午2.44.23

提示6:当你开始使用链式法则时,首先进行显示的求和(符号),然后再考虑偏导数,例如xixi or WijWij的偏导数

屏幕快照 2015-09-11 下午3.04.50

提示7:为了避免之后更复杂的函数(形式),确保知道变量的维度,同时将其简化为矩阵符号运算形式

屏幕快照 2015-09-11 下午3.36.23

提示8:如果你觉得公式不清晰的话,把它写成完整的加和形式

更新拼接的词向量

在训练窗口向量时丢失了什么信息?

矩阵实现的一些注解

softmax(=逻辑回归)并不是强有力的

神经网络更胜一筹

从逻辑回归到神经网络--神经网络解密

一个神经元本质上是一个二元逻辑回归单元

屏幕快照 2015-09-14 上午10.35.53

一个神经网络等价于同时运行了很多逻辑回归单元

神经网络中单层的矩阵符号表示

为什么需要非线性的f

一个更牛的窗口分类器

总结:前馈网络计算

下一讲