CS224n课堂笔记1-自然语言处理与深度学习简介

大二升大三,选了自然语言处理方向,实验室带我的博士学长推荐先学习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,下面进入正题

lecture1 大纲

  • 什么是自然语言处理? 人类语言的本质
  • 什么是深度学习?
  • 为什么语言理解很困难?
  • 深度学习应用于NLP的介绍

什么是自然语言处理(NLP)?

自然语言处理计算机科学人工智能语言学交叉的领域。
目标:计算机处理或”理解”自然语言以执行有用的任务,例如:
- 执行任务
- 语言翻译
- 问答: Siri, Google Assistant, Facebook M, Cortana…
充分理解和表达语言的含义是一个艰难的目标,完美的语言理解是AI-complete的.

NLP的层次

作为输入一共有两个来源,语音与文本。所以第一级是语音识别和OCR或分词。下面的是句法分析和语义分析,最后面的在中文中似乎翻译做“对话分析”,需要根据上文语境理解下文。
NLP Level
这门课主要关注画圈的三个部分,其中中间的两个是重中之重,虽然深度学习在语音识别上的发力最大。

NLP的应用

一个小子集,从简单到复杂有:
- 拼写检查,关键字搜索,查找同义词
- 从网站提取信息,例如:产品价格,日期,地点,人或公司名称
- 分类: 较长文档的正面或负面情绪
- 机器翻译
- 语音对话系统
- 复杂问答

行业中的NLP

  • 搜索(书面和口头)
  • 在线广告匹配
  • 自动/辅助翻译
  • 市场营销或金融交易的情感分析
  • 语音识别
  • 聊天机器人/对话代理: 自动化客户支持,控制设备,订购商品

人类语言的特别之处

人类语言是专门为传达说话人的意思而构建的系统。它不仅是环境信号,而是有意识的交流。
人类语言是离散的、明确的符号系统。但又允许出现各种变种,比如颜文字,随意的错误拼写“I loooove it”。这种自由性可能是因为语言的可靠性(赘余性)。所以说语言文字绝对不是形式逻辑或传统AI的产物。
语言符号有多种形式(声音、手势、书写),在这些不同的形式中,其意义保持不变:
这里写图片描述
人类语言是一种符号/分类信号系统,然而大脑编码似乎是一种连续的激活模式,符号通过声音/视觉的连续信号传输。巨大的词表也导致数据稀疏,不利于机器学习。这构成一种动机,是不是应该用连续的信号而不是离散的符号去处理语言。
这里写图片描述

什么是深度学习(DL)

深度学习是机器学习的一个子领域。
因为人工设计的表示和输入特征,大多数机器学习方法都能很好地工作,例如:用于查找位置或组织等命名实体的功能
这里写图片描述
机器学习只是优化权重以最好地进行最终预测。
这里写图片描述
这里写图片描述
与标准机器学习相反,表示学习尝试自动学习好的特征或表示,深度学习算法尝试学习原始输入的多层特征表示
这里写图片描述

深度学习的历史

For a long history of deep learning models (starting ~1960s), see: Deep Learning in Neural Networks: An Overview by Jürgen Schmidhuber

探索深度学习的原因

  • 手动设计的功能通常过于明确,不完整,需要很长时间才能进行设计和验证
  • 学习功能易于适应,学习快速
  • 深度学习提供了一个非常灵活,几乎通用,可学习的框架,用于表示世界,视觉和语言信息。
  • 深度学习可以学习无监督(来自原始文本)和监督(使用特定标签,如正面/负面)
  • 在~2010年,深度学习技术开始优于其他机器学习技术。为什么这十年?
    • 大量的培训数据有利于深度学习
    • 更快的机器和多核CPU / GPU有利于深度学习
    • 新模型,算法,思想•
      • 更好,更灵活地学习中间表示
      • 有效的端到端联合系统学习
      • 有效的学习方法-使用上下文和在任务之间转换
      • 更好的正规化和优化方法

性能提高(首先是语音和视觉,然后是NLP)

语音识别中的深度学习

大型数据集的“深度学习”的第一个突破性结果发生在语音识别中,依赖于上下文的预训练深度神经网络用于大词汇量语音识别。(2010年)
这里写图片描述

计算机视觉中的深度学习

深度学习组最先关注的点是计算机视觉
这里写图片描述
突破性论文: ImageNet Classification with Deep Convolutional Neural Networks by Krizhevsky, Sutskever, & Hinton, 2012, U. Toronto. 37% error red.

为什么NLP难?

表达,学习和使用语言/情境/语境/世界/视觉知识的复杂性,但解释依赖于这些.人类语言含糊不清(与编程和其他形式语言不同),例如“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

Deep NLP = Deep Learning + NLP

结合NLP的理念和目标,用表示学习和深度学习的方法来解决这些问题
近年来NLP的几项重大改进
- 语言水平:(语音),单词,语法,语义
- 中间任务/工具:词性,实体,解析
- 完整应用:情感分析,问答,对话代理,机器翻译

NLP表示层次:形态级别

传统方法在形态级别的表示是词素:
这里写图片描述
深度学习中每个语素都是一个向量,神经网络将两个向量组合成一个向量
这里写图片描述

NLP工具:句法分析

神经网络可以准确地确定句子的语法结构,这支持解释并可能有助于消除歧义.
这里写图片描述

NLP语义层面的表示

  • 传统:Lambda演算
    • 精心设计的功能
    • 作为输入特定的其他功能
    • 没有语言的相似性或模糊性概念
      这里写图片描述
  • DL:
    • 每个单词和每个短语以及每个逻辑表达式都是一个向量
    • 神经网络将两个向量合并为一个矢量
      这里写图片描述

NLP应用

情感分析

  • 传统:将句子视为词袋(忽略词序);咨询的“正”和“负”字的组织列表来确定句子的情绪。需要手工设计的功能
  • 相同的深度学习模型,可用于形态学,语法和逻辑语义

问答

  • 传统:捕捉世界和其他知识的许多特征工程,例如正则表达式,Berantet al。(2014)
    这里写图片描述
  • DL:同样,可以使用深度学习架构!事实存储在向量中
    这里写图片描述

对话代理/响应生成

一个简单,成功的例子是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

猜你喜欢

转载自blog.csdn.net/sunyueqinghit/article/details/81155100