CS224n: Natural Language Processing with Deep Learning 学习笔记

1520631-20181217114715828-2048857319.png

Lecture 1: Introduction

NLP:Natural language processing

常见自然语言项目:(有一次面试问过)

  • 微软 Cortana
  • 苹果 Siri (消费级技术)
  • 亚马逊 Alexa
  • 小米 小爱
  • 百度 小度
  • 天猫 天猫精灵

人类语言的特点:

  • 明确的指向性
  • 语言是符号、符号不基于任何逻辑和AI
  • 具有连续的载体 (以唠嗑就根本停不下来)

2015年之前的机器学习都是人在做大量的数据分析(比如:手动特征工程),而机器只是在做数值的优化(事实上电脑很适合做数值优化,人类不适合)。
这并不是我们所期望的机器学习。
深度学习(Deeplearning)是表征学习(Representation Learning)的一个重要分支。
表征学习的理念是,我们可以向电脑提供来自世界的原始信号,无论是视觉信息还是语言信息,然后 电脑可以自动得出好的中介表征 来很好的完成任务,从某种意义上来说,它是自己定义特征。
深度学习不只是基于神经网络,也可以是概率模型以及其他方法运用于深度架构中。(概率图模型)
利用深度学习学习词向量,高维空间成为了非常棒的语义空间。具有相同含义的词聚集成块,向量空间存在方向,它会透露关于成分和意义的信息。
然而人类不擅长解读高维空间的信息,人类跟习惯于2维度和3维度的信息表示。

Lecture 2: Word Vectors

单词简单的含义是一个单词代表一种东西。

离散化的东西难以表达出连续型的特征,而语义往往是连续化的,单词是离散化的。
离散化表示词向量不能体现词与词之间的相互关系。单词需要通过上下文来理解他的含义。
分布式表示:密集型词向量表示词汇

word2vec

word2vec两个模型:

  • skip-gram(SG)给定一个中心词 某个单词在上下文中出现的概率
  • Continuous Bag of Words (CBOW)

1520631-20181218100527111-1924195355.png
1520631-20181218100520201-503297882.png

我们使用softmax来度量词向量的概率,这种求积类似于一种粗糙衡量相似性的方法。
两种向量表示有一种简单的,也有一种难。也有可能两种向量的一样简单,我们在做次向量的时候回选择简单的。
1520631-20181218101923639-1439528365.png
两个向量的相似性越大那么这两个的点积就越大。这是一种通过点积衡量相似性的方法。
(个人理解,点积就是一种空间向量的形式,我用这种形式来衡量两个向量的相似性)
我们得到点积的形式,然后把他转化成softmax的形式
1520631-20181218101937234-1426885779.png
softmax 将数值转化成概率的标准方法
指数函数的值一定为正数,把正数转变成等比例的概率
1520631-20181218101942349-16594171.png

两个高效训练方法:

  • Hierarchical softmax
  • Negative sampling

1520631-20181218103210109-493668651.png

  • W是所有中心词的向量矩阵
  • wt是词向量表示

函数求导(向量)

1520631-20181218154120902-1780146346.png

链式求导法则
1520631-20181218111032142-1476798034.png

主义这里的long 是ln 的意思
1520631-20181218154031266-1224765055.png

1520631-20181218150015060-11704891.png
1520631-20181218150019335-1172991256.png

1520631-20181218154035650-298515333.png

学生提问:我们为什么采用点积作为概率处理的基础?
回答:你也可以采用其他向量代数的形式,但是很明显点积最明显最简单。因为它衡量的是想关系和相似性的同一种方式。

随机梯度下降法:采用小批量的数据,进行算法权重的优化。而不是全批量的数据。这在实际中会使得训练更加快速。

实际证明神经网络算法喜欢噪音。

Lecture 3: More Word Vectors

  • Then take gradients at each such window for SGD
  • 两个词的向量表示:中心词向量 背景词向量

    negative sampling

    随机从语料库中挑选一些词,而不是全部语料库一起训练

他们称word2vec是一个软件software
1520631-20181218160047792-516098648.png

  • T是每个windows的语料
  • sigmoid是一个简单的逐个元素操作的函数,sigmoid仅仅把任意实数数值压缩至0到1之间,也就是概率化1520631-20181218160728065-1841992165.png

期望,一个负采样的概率。
1520631-20181218160052192-462506787.png

theta通常是所有变量的参数。
Window length 1 (more common: 5 - 10)

1520631-20181219141743348-788829352.png

co-occurrence vectors的缺点:

  • 有新的词需要跟新其他向量,下游机器学习要修改参数。
  • 向量的维度比较高。
    Solution: Low dimensional vectors:
  • Method 1: Dimensionality Reduction on X
    SVD:
    1520631-20181219142309682-1284769329.png
    代码实现:
    1520631-20181219142454909-182875490.png
    1520631-20181219142459896-1956200067.png

对于the, he, has我们一般会限制他的次数。

SVD在处理大量矩阵的时候不是很好。
PCA优点训练数据快,

两种自然语言训练的优缺点:
1520631-20181219144929857-527786050.png

结合后产生了GloVe模型

GloVe

1520631-20181219145543356-839889487.png

Lecture 4: Word Window Classification and Neural Networks

4.1 softmax

1520631-20181220084118775-1109413142.png

最大化联合概率密度,等于最小化它取负数
1520631-20181220084243976-1999908825.png

4.2 cross-entropy

用交叉熵来计算两个分布之间的距离,从而度量softmax结果的好坏,
1520631-20181220084854306-506705454.png

  • p正确的分类 one-hot
  • q 使用softmax计算的分类

4.2.2 KL发散也是一种上面所述的两个分布度量机制,

交叉熵理解成尽可能地最小化两个分布之间的KL发散

1520631-20181220085511580-1981644846.png

根据cross-entropy交叉熵来构造损失函数:
1520631-20181220085750486-1496527893.png

正则化希望全职会尽可能的小,目的是为了防止过拟合,使得机器学习模型具有很好的泛化能力。

1520631-20181220090138257-1895071802.png

Softmax求导
1520631-20181220092105358-854236733.png
1520631-20181220092109322-1502804204.png
1520631-20181220092113127-776279173.png

Feed-forward 前馈

4.3 max-margin loss

超级强大的损失函数。比softmax的交叉熵误差更有鲁棒性 而且非常强大和有用。
1520631-20181220101259617-264735716.png

s:正确窗口
sc:错误窗口
1520631-20181220101848001-1099323666.png

max-margin loss的求导没有看懂!!!
1520631-20181220102542341-1687858157.png

转载于:https://www.cnblogs.com/JCcodeblgos/p/10130330.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值