学习资料参考:从深度学习到自然语言处理

学习资料参考:从深度学习到自然语言处理

</br>

注意:本文已经更新,新版结合深度学习简介和发展历程,给出了更详尽的学习资料参考。新版链接:深度学习简介与学习资料参考


本文主要介绍一些与神经网络自然语言处理相关的经典教程、资料,以便初学者能有个比较清晰的学习参考。

<a name='from-ml-to-dl'></a>

从机器学习到深度学习

深度学习脱胎于神经网络,而神经网络又是一种机器学习的经典算法。因此,如果希望从理论上更深刻地掌握深度学习,建议了解相关的机器学习知识。

<a name='ml'></a>

机器学习

Andrew Ng.(吴恩达)的机器学习教程

机器学习入门方面,Ng的教程应该算是比较经典的资料了。网上有两种版本的课程资料:

为了与后续的神经网络、深度学习等知识进一步衔接,建议在学习机器学习时,重点关注这些知识点:

机器学习基本概念(模型 -> 训练 -> 测试)
有监督学习与无监督学习
Linear Regression与Softmax Regression
目标函数的概念,如何训练一个模型
梯度下降等优化算法
过拟合与欠拟合的理解
模型的约束与正则(Regularization)

<a name='dl'></a>

深度学习

尽管深度学习现在已涌现出多样的模型,但其最基础的模型DNN(Deep Neural Network)则脱胎于神经网络中的MLP(Multi-Layer Perceptron)模型。在学习深度学习相关内容时,建议先粗略了解下神经网络的发展历史,所谓的三起三落,对于每次的兴起或是衰落,如果能清楚地知道其兴衰原因,就能对神经网络与深度学习有个宏观的了解,便于迅速把握其脉络。

首先推荐两个深度学习入门的博客:

  • Deep learning学习笔记整理 这篇文章比较详细地介绍了神经网络到深度学习的背景知识,特别是从特征学习这个角度讲到了深度学习的重要意义。文中也涉及到不少常见的深度学习模型,这部分简要了解即可。
  • 神经网络浅讲:从神经元到深度学习 这篇文章侧重于从神经网络历史发展的角度,简述了神经网络与深度学习相关的内容。

下面介绍几个比较经典的深度学习教程:

Neural Networks and Deep Learning (Michael Nielsen)

这个资料可以作为神经网络/深度学习的极佳入门资料。因为其中有不少动画演示,目前暂时只能在网页端查看,作者本人也表示并没有出pdf等版本的打算。该教程以图像领域经典的mnist手写数字识别任务为例,几乎是从零开始,介绍了神经网络与深度学习中很重要的一些基本概念。该教程的主要内容如下:

1) Using neural nets to recognize handwritten digits
2) How the backpropagation algorithm works
3) Improving the way neural networks learn
4) A visual proof that neural nets can compute any function
5) Why are deep neural networks hard to train?
6) Deep learning

个人觉得,该教程的主要亮点在于,不依赖任何第三方机器学习的库(仅使用了numpy),一步步搭建起深度学习网络模型,对BP(反向传播)算法做了比较详细的阐释和推导,并且利用case study描述了为什么神经网络可以从理论上去逼近任何一个函数(但并不是数学意义上的证明)。

由于该教程立足于入门,因此仅介绍了DNN,并没有介绍深度学习其他众多的模型,现在经常使用的ReLU激活函数、dropout技术等都没有介绍。实现上,也没有采用向量化实现(这会严重影响程序执行效率)。但这并不妨碍该教程成为一个经典的入门材料。学习时,建议按照该教程思路,能够自己将神经网络实现一遍。

误。。。前几天重新看了下这个教程,发现作者已经加入了关于ReLU, dropout, Theano等不少新的内容,力荐这个教程啊!以及,众网友们合作出了该教程的LaTeX中文版pdf,可以从这里下载。

Stanford UFLDL(Unsupervised Feature Learning and Deep Learning)教程

这个教程从名字上就强调了深度学习的重要意义——特征学习。该教程作者也是Andrew Ng,如果从Ng的机器学习教程入手,再学习该教程会有比较好的连贯性。教程在Stanford官网有个主页,如主页所述,教程有新版,旧版的英文版中文版。新版相对于旧版,在知识架构了做了比较大的改动,但具体到详细的知识点,差别不是太大。

Deep Learning Tutorials

Deep Learning Tutorials教程是Bengio团队LISA lab维护的一个深度学习教程。该教程最大的特色是,使用基于theano工具,将教程中的各个模型均实现了一遍,因此很适合详细地去了解每个模型的细节。实际上,theano工具便是该团队开发的。学习该教程时,建议按照如下的顺序(教程主页已经有阅读顺序的建议):

[重要] Machine Learning, Deep Learning and Theano basics
[重要] Logistic Regression -> MLP (Multi-Layer Perceptron) -> Deep CNN (Convolutional Networks)
Auto Encoders -> Stacked DAE (Denoising Autoencoders)
RBM (Restricted Boltzmann Machines) -> DBN (Deep Belief Networks)
Other Models

以上是几个比较经典的深度学习教程。如果希望系统地按照课程学习方式来学习相关知识,可以参考Deep Learning大牛Hinton老师的Coursera课程Neural Networks for Machine Learning。值得注意的是,如果仅是服务于个人的研究工作的话,里面涉及到的模型不必面面俱到,比如Restricted Boltzmann Machines现在使用的已经不是太广泛了。06年导致Deep Learning火起来的unsupervised layer-wise pre-training方法,也往往可以用良好的初值选取策略、ReLU和dropout等技术来替代(但并不完全等价)。

<a name='nlp'></a>

自然语言处理

应当说,Deep Learning最早是在图像和语音领域火起来的,但近些年的研究也逐渐发现,Deep Learning在NLP (Natural Languang Processing)领域也开始取得可喜的效果。实际上,图像、语音、文本,本来就是信息记载的不同载体,Deep Learning能综合运用在这些领域的不同任务上,不足为怪。这里引用下Deep Learning Tutorials中的一句话:

Deep Learning is about learning multiple levels of representation and abstraction that help to make sense of data such as images, sound, and text.

重要部分我已经加粗显示了。

实际上,在使用神经网络技术之前,NLP的研究经历了从规则统计的过程。这段有趣的历史可以参考吴军博士的《数学之美》中的前7章内容。在学习Deep Learning应用于NLP之前,建议先了解下简单的统计语言模型的知识,包括语言模型n-gramVSM (Vector Space Model)One-Hot等基本概念。关于统计语言模型,可以参考我们是这样理解语言的-统计语言模型这篇文章。

Deep Learning for NLP课程推荐:

Stanford University CS224d: Deep Learning for Natural Language Processing

CS224d是专门介绍Deep Learning for NLP的课程,从基本的语言模型、词的向量表示开始,介绍了深度学习的相关知识,以及在NLP中常见的模型。目前而言,在NLP中常见的模型包括CNNRecursive NNRecurrent NN模型,尤以卷积、循环网络居多。

<a name='we'></a>

词嵌入(Word Embeddings)

DL应用于NLP,最激动人心的成果当属词嵌入(Word Embeddings)概念的产生了。简单来说,就是用一个低维、稠密的向量来表示一个word,这种表示是通过神经网络语言模型学习而来的。当得到这些词向量之后,研究者发现它有着很好的特定,比如蕴含语义特征(man-woman $\approx$ king-queen),用这些词向量代替原来的特征,可以在各种任务中取得state of art的效果,等等。

此外,词向量的获取往往依赖于语言模型,因此便产生了神经网络语言模型的概念。从2001/2003年Bengio的工作开始,有不少基于神经网络的语言模型已被提出,也产生了不少开源工具来产生词向量,如word2vecGloVe等。

详细知识点不再展开,推荐相关教程、资料如下:

<a name='comp'></a>

语义组合(Semantic Composition)

在获取词向量之后,我们得到了word的向量式表示,因此下一个很自然的问题是,如果利用这些word是表示,获取更高层次概念(如phrase, sentence, document)的表示,这其中涉及的概念即为语义组合(Semantic Composition)。

目前,常见的语义组合方法可以分为以下4类:

上面的这些模型在CS224d课程中也均有比较详细的介绍。

总结来说,如果希望比较详细地了解神经网络、深度学习的细节,还是需要不少学习的。现在很多第三方的库(如Caffe、Theano、Keras、Lasagne、TensorFlow等)使得许多深度学习模型可以快速实现,但这些库往往屏蔽了诸多算法的细节(如BP、Gradient Descent、AdaDelta等),如果希望进一步做一些比较深入的工作,对相关模型的深入了解还是必不可少的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容