【NLP训练营】 第三周

本周任务

学课程

学习cs224n第五讲和第六讲

反向传播与项目指导:Backpropagation and Project Advice

依赖解析:Dependency Parsing

读论文

论文导读:高效文本分类

写作业

作业: Assignment 2 准备

  • 2.0.1 预习TensorFlow
  • 2.0.2 仔细阅读作业2的要求,自学作业里要求里提到的神经网络训练方法

 

第五课笔记

这节课用四种方法讲解了反向传播,最后还讲了很长时间的项目,总体没有什么可以记的。

看这节课理解反向传播,不如去看吴恩达的深度学习的课程,吴恩达讲解的很细致,最主要的是向量化思想,每次不是更新一个参数,而是更新参数向量。

反向传播是更新模型参数的关键。当x输入到模型中,通过参数w相乘再通过非线性,来生成一个函数用于模拟真实的样子。但是模拟的过程不是一步到位的,必须通过我们不断调整参数w才能较好的将我们的模型与真实世界的样子吻合起来。那么怎么调整参数w呢?先随机初始化一个w,结合输入x得到一个输出yhat,这个我们猜测出来的yhat与真实的标签y是有差值的。于是人为定义一个logistic回归损失函数,用来定量表示差值。用这个损失函数进行反向传播,更新一开始随机设定的参数w。那么怎么更新呢?答案是对w求偏导。我们想要得到的yhat与真实标签y越接近越好,这就要求损失函数越小越好。简单粗暴的理解是:导数是函数下降最快的方向。想让损失函数快速变小,就要沿着导数方向更新。我们暂称损失函数为L,于是就有

w = w - α*(dL/dw)

α是学习率,用来控制下降的速度,是一个超参数,需要在程序运行之前人为设定。

 

第六课笔记

语言学中,有两种描述语法的观点:短语结构和依存结构。

Constituency = phrase structure grammar(短语结构文法) = context-free grammars(CFGs)(上下文无关文法)

短语结构:

hankcs.com 2016-12-30 下午1.06.21.png

依存结构:

神经网络依存句法分析51.png

 

依存句法树:

hankcs.com 2017-06-12 下午6.10.59.png

 

依存句法分析有几个约束条件:

  • Root只能被一个词依赖
  • 无环

 

依存句法分析的几种方法:

  • Dynamic programming,估计是找出以某head结尾的字串对应的最可能的句法树。
  • Graph algorithms,最小生成树。
  • Constraint Satisfaction,估计是在某个图上逐步删除不符合要求的边,直到成为一棵树。
  • “Transition-based parsing” or “deterministic dependency parsing”,主流方法,基于贪心决策动作拼装句法树。

 

动作体系分为两种:投射性和非投射性。

投射性指的是,如果词p依存于词q,那么p和q之间的任意词r就不能依存到p和q所构成的跨度之外。(线不能交叉)

而非投射性就没有这种要求。

神经网络依存句法分析2.png神经网络依存句法分析3.png

左边为投射性,右边为非投射性

处理投射现象的动作体系有Arc-eager和Arc-standard(Nirve, 2004)

处理非投射性的动作体系有Arc standard + swap (Nirve, ACL 2009)

这节课讲的是采用Arc-standard的依存句法分析器Maltphaser

 

详细的Arc-standard请点击http://www.hankcs.com/nlp/parsing/neural-network-based-dependency-parser.html/2#h2-6

 

在任何时刻你都处于某种形态:有一定的内容存在堆中,一定内容存于缓冲,有一些已经做好的弧集合。下一步要做什么呢?Nivre提出了一种解决方式,就是做一个机器学习分类器。我们已经有了树库来做句子的分析,我们可以用这些句子的分析,来看那种操作序列给出正确的句子分析。如果你在树库中有一个句子的结构,你可以做出一系列需要得到这样结构的shift reduce操作,这个操作序列其实是唯一的,对每个树库而言都有一个操作序列给出一个正确的句子结构。所以你拿到树,然后读取正确的操作序列,这样你就得到了一个监督学习问题。在这种情况下,你下一步要做的就是shift操作,然后你就建立好了分类数据然后再去做预测。分类器可以选择svm或其他的。

之前一个好用的解析器叫Maltphaser,他提供的解决方法是,无搜索,贪婪地下转移决策,线性复杂度,只损失了一点效果。

 

依存分析的评估:

我们要看每个词的独立项是什么就够了,因为每一个词就一个独立项(dependence)。数一数预测的所有词的独立项对了几次。一种方法叫UAS(unlabeled accuracy score),只看箭头忽略标签。另一种叫LAS,规定当标签正确的时候结果才是正确的。这里说的标签是指的每个词的词性。

hankcs.com 2017-06-16 下午9.14.13.png

课的最后教授介绍了他的C&M 2014解析器其中:

  • 分类器变成了softmax的神经网络
  • 不同于传统句法分析器的人工编写特征模板的作坊式风格,Chen and Manning将一些零散的原始特征直接作为输入传入神经网络模型中。至于它们是如何组合的,不再由人工编写的特征模板决定,而是由神经网络模型的隐藏层自动提取。
  • 把传统的单词、词性、依存标签拼接转换成了它们的向量的拼接表示。效果还不错。详解见这里:http://www.hankcs.com/nlp/parsing/neural-network-based-dependency-parser.html 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值