CS224d lecture 8札记

欢迎转载,转载注明原文地址:

http://www.cnblogs.com/NeighborhoodGuo/p/4692979.html

又开始新一课的札记啦!最近Project Proposal也快到了,时间还是比较紧的。不过课程已经过半了还是挺开心的。stanford开放这么有技术含量的课程,还是很钦佩stanford的开放精神。

这一课是对Recurrent NN for MT做了一个简要的介绍。个人认为这种方法比较靠谱耶,想想我们人类对于母语的学习,对于母语的理解,从来都不是先分析语法,再分析语义的,而是直接就从前到后听或看久直接理解了。RNN对于语言的理解表示我个人认为比较类似人类的思维方式(如果有朋友看到我这篇文章有不同见解,欢迎讨论)。而这门课的Project我就做这个好啦,哈哈。使用RNN的MT!

先梳理一下这一讲的脉络哦。首先是对Bidirectional及deep RNNs for opinion labeling的wrapping up,然后是现今MT的pipeline,再最后就是Recurrent NN实现MT的大体思路及方法,再往后就是几个Recurrent NN实现MT的改进措施。

1.Wrapping up

Deep Bidirectional RNNs这个结构上一课讲得很详细了,这次就不表了。

F1 score这个东西的解释这次给了个图,非常好呢。十分直观清楚。

Parallel corpora的例子:欧盟的议会文件,埃及出土的大石头(- -)

2.现今tranditional MT的pipeline

第一步是Alignment顾名思义就是source language里的词对应到target language是哪个词。

这个东东真的是很复杂呀,最简单的情况是一对一的,但是还有zero fertility,一对多的,多对一的,多对多的,好烦躁有木有。

Alignment之后还没完,还得reordering这些词,使其在target language里表达的很“正确”。

本来Alignment就很复杂,还得从中选出最适合的词,还得reordering这个可真是。。。说不下去了。怎么办?RNN闪亮登场!

3.RNN model for MT

首先是最简单的例子

使用RNN把source language的单词一个一个的输入到model里,最终把这一整句话用一个vector表示出来,也就是encoder的过程;然后得到最终的vector之后再decoder将原始的句子用target language表示出来。看起来挺诱人挺高效的有木有!但是其实米有这么简单呀!

于是就duang推出了第一种加强改良版

decoder的过程不仅仅是从最后一个hidden node(以下简写为C)中提取信息,还从前一个decoder出来的单词及前一个hidden node里提取信息。这样有什么好处我也不造(- -)据老师说很棒。

还有几个一是改良方法是使用stacked/deep RNNs;二是使用bidirectional encoder,而不是使用最简单的一层的encoder;三是把单词的顺序倒个个,原因说的是第一个单词的信息能很容易保留下来,然后target language就能很容易从中提取出信息,做出有效的翻译(说实话没搞明白为啥有用)

最后有两个超级改良版:GRU和LSTMs

4.GRU

main ideas: 1.keep around memories to capture long distance dependencies

      2.allow error messages to flow at different strengths depending on the inputs

推荐阅读里有有两篇讲GRU的,讲得挺好的,受益匪浅。Paper里还将LSTM和GRU进行了对比。

GRU的思路是首先根据当前word vector及前一个hidden state计算出update gate和reset gate;再根据reset gate、当前word vector及前一个hidden state计算出new memory content。

reset gate的用处很明确了,就是当reset gate为1的时候,new memory content忽略之前所有的memory。最终的memory是之前的hidden node及new memory content的综合体

数学公式表示就是:

5.LSTMs

这个东西有很长时间的历史了不过据说很有用。直接上公式吧,公式很清晰:

6.GRU和LSTMs的区别

说实话GRU和LSTMs其实是很像的先上个对比图吧:

以下说说他们之间的相同与不同:

1.new memory的计算方法都是根据之前的state及input计算,但是GRU有一个R gate控制之前state的进入量,在LSTM里没有这个gate

2.产生新的state的方式不同,LSTM有两个不同的gate分别是f gate和i gate;GRU只有一个gate就是z gate

3.LSTM对新产生的state有一个o gate可以调节大小;GRU直接输出无任何调节。

参考网址:

http://www.ubi.com/

https://github.com/jych/librnn.git

时间: 2025-01-02 17:50:00

CS224d lecture 8札记的相关文章

CS224d lecture 12札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4711678.html CS224d的第十一课是他们的课上考试,所以后面的视频就直接跳到lecture 12了.lecture 12是一位外宾过来讲得,据说是Facebook的工程师,讲了现在最前沿的AI research,AI很多东西在全世界范围内都没有解决方案或者说对某一问题有统一的意见,所以这堂课不是介绍一个成熟的model,可以理解这一讲是为大家打开一扇门,让大家了解AI中的这部

CS224d lecture 10札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47282709 Go Go Go 第十讲也顺利结束啦,不愧是Advanced Recursive NN讲得内容确实有些Advanced,不过如果认真听课再认真看课后的paper的话,我相信还是可以完全理解的. 开始总结喽... 首先,老师在课上开篇讲了RNN的一个综述吧,也是使用RNN进行NLP的三个大的要素:1.Train objective主要有两种,一种是c

CS224d lecture 9札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4694955.html 最近几课的内容不是很难,还有我的理解能力有所提高(自恋一下),所以这几课完成的都挺快.不知不觉lec9也完成了.这一讲讲了另一个RNN,其中R是Recursive不是之前的Recurrent.课上老师使用Recursive NN来做NLP和CV的任务,我个人认为做CV还是不错的,这个NLP怎么感觉有点不靠谱.不管怎么说这个model还是解决了很多实际问题的,而且性

CS224d lecture 15札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47449257 这一讲还是嘉宾的讲课,讲得是关于parallel计算方面的.俗话说的好:"三个臭皮匠,顶个诸葛亮嘛".哈哈 因为一台计算机,或者一个处理器的处理能力是有限的,进行并行计算能够大大提高运算速度,节省调试的时间.而我们的NN是如此的复杂,有时候规模也特别大,所以使用并行计算是很有必要的. 这一讲呢,主要分为五个部分:1.Efficient f

CS224d lecture 13札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47387229 不知不觉到了第三部分了,整个课程也快结束了,虽然不是第一次整个推完公开课,但是还是有些兴奋呢! 废话不多说,开始总结啦! 这节课就介绍了一个模型,就是在Computer Vision里十分popular的CNN(Convolutional Neural Networks).不过这里介绍它在NLP的应用,可见model其实是可以有不同的应用的哦,没准

CS224d lecture 6札记

哈哈哈,终于又到了每课的写笔记时间.这次课程的内容比较少,可能是为了给Problem set 1空余时间吧. 废话不多说.写喽 这次的video讲的东西主要就是把推荐的论文稍微详细的讲解了一部分,然后外加给RNN模型开了个头. 1.Multi-task learning / weight sharing 这个第一部分其实在NLP(almost) from scratch里也有讲解它的理念就是,在DL model里面底下几层里学到的feature是相同或者近似的,那么这样的话,只需要统一给DL m

CS224d lecture 16札记

欢迎转载,转载注明出处: http://blog.csdn.net/neighborhoodguo/article/details/47617297 终于把最后一讲也看完了,stanford的NLP课程也接近了尾声,真的是非常的开心,这门课真的让我收获了很多. 这一课讲得就是DL在NLP方面的应用,其实大部分内容在之前的课上和之前的推荐阅读里都有提及,这一课也算是一门复习课吧. 同样的先overview一下:1.Model overview 2.Character RNNs on text an

CS224d lecture 14札记

欢迎转载,转载注明出处: http://www.cnblogs.com/NeighborhoodGuo/p/4720985.html 这一课也是请得嘉宾讲得课,据说是standford的一位博士.讲得主题是Neural Networks in Speech Recognition 不过Speech Recognition可谓是博大精深啊,这一堂课就像讲师在课前的Overview里说的一样,只是做一个perspective 让大家对这个方面有一个简要的了解,具体如何操作,这个就没有详细讲了...课

深度学习与自然语言处理(2)_斯坦福cs224d Lecture 2

原文作者:Rohit Mundra, Richard Socher 原文翻译:@熊杰([email protected]) && @王昱森 内容调整与校对:寒小阳 && 龙心尘 特别鸣谢:@面包包包包包同学的帮助 时间:2016年6月 出处:http://blog.csdn.net/han_xiaoyang/article/details/51648483 http://blog.csdn.net/longxinchen_ml/article/details/5164853