思源、刘晓坤作者

时隔两年,斯坦福NLP标准公开课CS224N将再次开放视频


你知道怎么入门自然语言处理么?当然是大名鼎鼎的斯坦福公开课 CS224N 了,它和计算机视觉方面的课程 CS231n 堪称绝配。但是自 2017 年以来,NLP 有了很多重大的变化,包括 Transformer 和预训练语言模型等。目前开放的视频仍然是 17 年年初的课程,很多激动人心的前沿模型都没有介绍。不过在最近展开的 CS224N 2019 的课程中,其表明这一次的课程视频将放到 YouTube 上!

课程地址:http://web.stanford.edu/class/cs224n/

CS224N 是一门关于自然语言处理的专项课程,虽然有很多公开课都会涉及循环神经网络或语言建模等内容,但很少如它那样会系统地介绍自然语言处理任务。包括词嵌入、依存关系解析、神经机器翻译语音识别和语义消歧等。此外在 19 年的新课程中,它还会重点介绍最近非常流行的 Transformer 和预训练表征,这些系统化的新内容真的很令人期待。

在 17 年的课程中,CS224N 采用的是 TensorFlow,今年采用的是更加简洁的 PyTorch。不过今年并没有专门介绍 PyTorch 的课时,所以还需要读者预先学习 PyTorch。

此外在 CS224N 2019 的课程主页上,它表明一旦课程完成,那么斯坦福计划将这些视频放到 YouTube 上。不过在 3 月 14 号结束课程后,斯坦福还需要一段时间处理视频,所以读者可先看看 17 年的视频。而其它 PPT 和作业都会随着课程的进行而放出来,所以我们也可以先看看课程资料。

讲师阵容

课程视频地址(目前仅提供 2017 年春季课程):https://www.youtube.com/playlist?list=PL3FW7Lu3i5Jsnh1rnUwq_TcylNr7EkRe6

关于 CS224n

自然语言处理(NLP)是信息时代最重要的技术之一,也是人工智能的关键部分。NLP 的应用无处不在,因为人们几乎用语言进行交流:网络搜索、广告、电子邮件、客户服务、语言翻译、医学报告等。近年来,深度学习方法在许多不同的 NLP 任务中获得了非常高的性能,其只需要使用单个端到端神经模型,而不需要传统的、任务特定的特征工程。在本课程中,学生将深入了解 NLP 深度学习的前沿研究。通过讲座、作业和最终项目,学生将学习设计、实现和理解他们自己的神经网络模型所需的技能。今年,CS224n 将首次使用 PyTorch,而不是 TensorFlow

预备知识

熟练使用 Python:所有课程都需要用到 Python(具体来说,使用 NumPy 和 PyTorch)。如果你有很多编程经验,但使用不同的语言(例如 C / C ++ / Matlab / Java / Javascript),可能问题不大。

这个教程可能对那些不熟悉 Python 和/或 NumPy 的人有用: http://cs231n.github.io/python-numpy-tutorial/

大学微积分线性代数:需要熟悉使用(多变量)导数,并理解矩阵/向量符号和运算。

概率和统计基础:需要熟悉概率的基础知识、高斯分布、均值、标准差等。

机器学习基础:模型构建过程涉及设计损失函数、求导数并通过梯度下降进行优化。如果已经拥有基本的机器学习和/或深度学习知识,那么课程将会更容易,但是即使不知道这些也可以学习 CS224n。HalDaumé的机器学习课程(http://ciml.info/)提供了一个平易近人的介绍。阅读该书的前 5 章可以获得很好的背景知识,阅读前 7 章会更好。

参考资料

以下书籍对于本课程学习非常有用,但不是必要的。感兴趣的读者可自由选择,所有的书籍都能在线免费阅读。


  • Dan Jurafsky and James H. Martin.《Speech and Language Processing (3rd ed. draft)》

  • 地址:https://web.stanford.edu/~jurafsky/slp3/


  • Jacob Eisenstein.《Natural Language Processing》

  • 地址:https://github.com/jacobeisenstein/gt-nlp-class/blob/master/notes/eisenstein-nlp-notes.pdf


  • Yoav Goldberg.《A Primer on Neural Network Models for Natural Language Processing》

  • 地址:http://u.cs.biu.ac.il/~yogo/nnlp.pdf


  • Ian Goodfellow, Yoshua Bengio, and Aaron Courville.《Deep Learning》

  • 地址:http://www.deeplearningbook.org/


  • Eugene Charniak.《Introduction to Deep Learning》

  • 地址:https://mitpress.mit.edu/books/introduction-deep-learning

入门CS224n自然语言处理NLP斯坦福大学
6
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

导数技术

导数(Derivative)是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x_0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x_0) 或 df(x_0)/dx。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

微积分技术

微积分(Calculus)是高等数学中研究函数的微分(Differentiation)、积分(Integration)以及有关概念和应用的数学分支。它是数学的一个基础学科。内容主要包括极限、微分学、积分学及其应用。微分学包括求导数的运算,是一套关于变化率的理论。它使得函数、速度、加速度和曲线的斜率等均可用一套通用的符号进行讨论。积分学,包括求积分的运算,为定义和计算面积、体积等提供一套通用的方法 。

线性代数技术

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。向量空间是现代数学的一个重要课题;因而,线性代数被广泛地应用于抽象代数和泛函分析中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

推荐文章
暂无评论
暂无评论~