大二升大三,选了自然语言处理方向,实验室带我的博士学长推荐先学习CS224n这门课,很喜欢国外的课程,虽然我听力不怎么的…..
课程相关
- 精通Python: 所有课程作业均采用Python语言。
- 多元微积分,线性代数(例如,MATH 51,CME 100)
- 基本概率和统计(例如CS 109或其他统计课程)
- 机器学习的基础知识(例如,来自CS229或CS221)
- 损失函数
- 采用简单的导数
- 用梯度下降进行优化。
Problem Sets
- PSet1是书面作品和纯python代码(numpy etc.)以真正理解基础
- PSet2和3将在TensorFlow中,这是一个快速组合神经网络模型的库
- TensorFloware等库成为标准工具,另外:
PyTorch,Theano,Chainer,CNTK,Paddle,MXNet,Keras,Caffe,……- Pset4可以使用任何语言和或深度学习框架进行项目,但PSet4的入门代码将在TensorFlow,鼓励2人团队.
(这是研究生水平的课程:))
OK,下面进入正题
自然语言处理是计算机科学、人工智能和语言学交叉的领域。
目标:计算机处理或”理解”自然语言以执行有用的任务,例如:
- 执行任务
- 语言翻译
- 问答: Siri, Google Assistant, Facebook M, Cortana…
充分理解和表达语言的含义是一个艰难的目标,完美的语言理解是AI-complete的.
作为输入一共有两个来源,语音与文本。所以第一级是语音识别和OCR或分词。下面的是句法分析和语义分析,最后面的在中文中似乎翻译做“对话分析”,需要根据上文语境理解下文。
这门课主要关注画圈的三个部分,其中中间的两个是重中之重,虽然深度学习在语音识别上的发力最大。
一个小子集,从简单到复杂有:
- 拼写检查,关键字搜索,查找同义词
- 从网站提取信息,例如:产品价格,日期,地点,人或公司名称
- 分类: 较长文档的正面或负面情绪
- 机器翻译
- 语音对话系统
- 复杂问答
人类语言是专门为传达说话人的意思而构建的系统。它不仅是环境信号,而是有意识的交流。
人类语言是离散的、明确的符号系统。但又允许出现各种变种,比如颜文字,随意的错误拼写“I loooove it”。这种自由性可能是因为语言的可靠性(赘余性)。所以说语言文字绝对不是形式逻辑或传统AI的产物。
语言符号有多种形式(声音、手势、书写),在这些不同的形式中,其意义保持不变:
人类语言是一种符号/分类信号系统,然而大脑编码似乎是一种连续的激活模式,符号通过声音/视觉的连续信号传输。巨大的词表也导致数据稀疏,不利于机器学习。这构成一种动机,是不是应该用连续的信号而不是离散的符号去处理语言。
深度学习是机器学习的一个子领域。
因为人工设计的表示和输入特征,大多数机器学习方法都能很好地工作,例如:用于查找位置或组织等命名实体的功能
机器学习只是优化权重以最好地进行最终预测。
与标准机器学习相反,表示学习尝试自动学习好的特征或表示,深度学习算法尝试学习原始输入的多层特征表示
For a long history of deep learning models (starting ~1960s), see: Deep Learning in Neural Networks: An Overview by Jürgen Schmidhuber
性能提高(首先是语音和视觉,然后是NLP)
大型数据集的“深度学习”的第一个突破性结果发生在语音识别中,依赖于上下文的预训练深度神经网络用于大词汇量语音识别。(2010年)
深度学习组最先关注的点是计算机视觉
突破性论文: ImageNet Classification with Deep Convolutional Neural Networks by Krizhevsky, Sutskever, & Hinton, 2012, U. Toronto. 37% error red.
表达,学习和使用语言/情境/语境/世界/视觉知识的复杂性,但解释依赖于这些.人类语言含糊不清(与编程和其他形式语言不同),例如“I made her duck. ”
比如一些真实的报纸头条或推文:
1. The Pope’s baby steps on gays
2. Boy paralyzed after tumor fights back to gain black belt
3. Enraged cow injures farmer with axe
4. Juvenile Court to Try Shooting Defendant
结合NLP的理念和目标,用表示学习和深度学习的方法来解决这些问题
近年来NLP的几项重大改进
- 语言水平:(语音),单词,语法,语义
- 中间任务/工具:词性,实体,解析
- 完整应用:情感分析,问答,对话代理,机器翻译
传统方法在形态级别的表示是词素:
深度学习中每个语素都是一个向量,神经网络将两个向量组合成一个向量
神经网络可以准确地确定句子的语法结构,这支持解释并可能有助于消除歧义.
一个简单,成功的例子是Google Inbox应用程序中提供的自动回复
神经语言模型的强大通用技术的应用,它是回归神经网络的一个实例
传统方法在许多层级上做了尝试,词语、语法、语义之类。这类方法试图找到一种世界通用的“国际语”(Interlingua)来作为原文和译文的桥梁。
而Neural Machine Translation将原文映射为向量,由向量构建译文。也许可以说Neural Machine Translation的“国际语”是向量。
结论:所有层次的表示都是向量.
参考:
[1]http://www.hankcs.com/nlp/cs224n-introduction-to-nlp-and-deep-learning.html#h3-1
[2] https://web.stanford.edu/class/cs224n/syllabus.html