当前位置:   article > 正文

【吴恩达深度学习】自然语言处理---个人总结(持续更新)_吴恩达自然语言处理习题资料

吴恩达自然语言处理习题资料

这门大课主要知识点有:

一、GRU–Gated Recurrent Unit

1.GRU(Gated Recurrent Unit) —解决语句中后面的单词对前面的输出存在依赖的问题,比如:时态

RNN单元结构图
在这里插入图片描述
GRU单元结构图
在这里插入图片描述

c = m e m o r y   c e l l c = memory\space cell c=memory cell
c ~ ⟨ t ⟩ = t a n h ( W c [ c ⟨ t − 1 ⟩ , X ⟨ t ⟩ ] + b c ) (1) \tilde c^{\langle t \rangle} = tanh(W_c[c^{\langle t-1 \rangle}, X^{\langle t \rangle}] + b_c)\tag{1} c~t=tanh(Wc[ct1,Xt]+bc)(1)
Γ u = σ ( W u [ c ⟨ t − 1 ⟩ , X ⟨ t ⟩ ] + b u ) (2) \Gamma_u = \sigma(W_u[c^{\langle t-1 \rangle}, X^{\langle t \rangle}] + bu) \tag{2} Γu=σ(Wu[ct1,Xt]+bu)(2)
c ⟨ t ⟩ = Γ u ∗ c ~ ⟨ t ⟩ + ( 1 − Γ u ) ∗ c ⟨ t − 1 ⟩ (3) c^{\langle t \rangle} = \Gamma_u*\tilde c^{\langle t \rangle} + (1 - \Gamma_u)*c^{\langle t-1 \rangle} \tag{3} ct=Γuc~t+(1Γu)ct1(3)

二、LSTM-- Long short-term memory

2.LSTM–长短时记忆门,主要六个公式(两个输入,三个门,三个输出)

在这里插入图片描述

在这里插入图片描述

三、Word Embedding

3.Word Embedding(词嵌入)

Word Embedding 这个在术语是运用数学方法来表示一个词,类似于数学中的映射(f: x -> y),但为什么不叫Word Mapping 了?这就要弄明白Embedding的数学意思了。
这个词Embedding,它广泛存在于包括代数、拓扑与几何等诸多数学领域。它主要表征某个数学结构中的一个实例被包含在另外一个实例中,例如一个group它同时又是一个subgroup。

看到加粗的地方我的思路就开始清晰了,嵌入是在强调一个实例被包含到另外一个实例中,而映射是不一定的。自然语言处理技术就是利用数学向量的方法,把我们生活中所遇到的词用低维向量的方式表示输入给机器,这样计算机可以更清晰明确地理解单词的意思。而我们人类社会现在创造的词汇都是已知的,确定的,这个集合对于现在的计算机来说,其实很小,所以我们完全可以创造另外一个实例来包含它,因此把这个概念叫做“Word Embedding”

词嵌入的方法主要有:n-gram、BOW、Word2Vec(Word2Vec分CBOW和skip-gram两种方法)、GloVe
Word2Vec有两种模型:CBOW和Skip-Gram,每种模型都可以使用Hierarchical softmax 或negative sampling 算法
n-gram 是指基于一个假设:第n个词出现与前n-1个词相关,而与其它任何词不相关。整个句子出现的概率等于各个词出现的概率乘积。各个词的概率可以通过语料中统计计算得到。
常见的有:unigrams(一元语法)、 bigrams(二元语法)、 trigrams(三元语法)
假设句子T是由词序列w1, w2, w3…wn组成,用公式N-Gram语言模型如下:
P(T) = P(w1)*p(w2)*p(w3)***p(wn)=p(w1)*p(w2|w1)*p(w3|w1w2)***p(wn|w1w2w3…)
参考资料:
1.N-Gram语言模型
2.自然语言处理中N-Gram模型介绍
3.N-gram模型
在这里插入图片描述
在这里插入图片描述
给定一些确定的词组训练比如 Man -> Woman,让模型判断King和Queen是不是词义相近的词的算法原理就是计算 e M a n − e W o m a n ≈ e K i n g − e Q u e e n e_{Man} - e_{Woman} {\approx} e_{King}-e_{Queen} eManeWomaneKingeQueen,如下图所示:
在这里插入图片描述
下图是一个单词的词嵌入矩阵的计算方法,比如单词j的嵌入矩阵 e j e_{j} ej
在这里插入图片描述

词嵌入学习过程如下两张图所示,模型可以只取当前时刻的前四个的词嵌入矩阵来进行预测输出,也可以通过前后1个单词或者前面一个单词来进行预测输出:
在这里插入图片描述
在这里插入图片描述
–词嵌入算法模型中softmax的计算量太大,因为下图公式的分母要进行10K次相加,我们可以用Hierarchical softmax classifier来进行减轻计算量,这中分类其类似二叉树的算法,判断预测值是在前5K个单词中还是后5K个单词中,然后再一次二分
在这里插入图片描述
以上,所介绍的方法就叫skip-Gram,他的缺点就是计算量太大,softmax要进行100000次相加。

另外一种方法叫“negative sample”,就是应用监督式学习的方法,对于上下文 orange ,我们把juice标定为1,认为orange后面的输出预测,其它随机四个单词比如King book the of 表位0,认为他们不是一个好的预测,这样我们就有四个负样本(一本如果语料库很大的话,我们选2-5个,语料库少的话我们就选5-20个负样本)

在这里插入图片描述

负采样算法原理,就是每次迭代我们只计算K+1次逻辑斯蒂计算 P ( y = 1 ∣ c , t ) = σ ( θ t T e c ) P(y=1|c,t) = \sigma(\theta_{t}^Te_{c}) P(y=1c,t)=σ(θtTec),相比skip-gram要计算整个语料库100000次,大大减少了运算量
在这里插入图片描述
-------如何选取负采样样本,如下图所示
在这里插入图片描述

–sentiment classification 情绪分类,给一段文字,识别里面表达的情绪
在这里插入图片描述
3.2 Word Embedding bias
常见词嵌入的偏差:有性别偏差,种族偏差、性取向偏差等等,消除这些偏差的方法步骤如下:
在这里插入图片描述

四 Seq2Seq

4.Seq2Seq(sequence to sequence)以及image to sequence
—sequence to sequence 模型如下图所示:
在这里插入图片描述
—image to sequence模型如下图所示:
在这里插入图片描述

五 Language Model&Machine translation

  1. Language Model和Machine translation 的区别
    Machine translation 相当于 创建一个有条件的语言模型,因为它的输入不是0
    Machine translation as building a conditional language model
    在这里插入图片描述

六、 Beam search

  1. Beam search(束搜索)
    机器翻译会产生很多种输出,束搜索就是翻译第一个单词的时候,模型先选择B个概率最大的单词(比如3个),形成3组网络再进行预测第二个单词,第三个单词…

先选出第一个单词中的3个概率最大的,如下图所示,in 、Jane、September,分别以此为基础进行预测第二个输出单词
在这里插入图片描述
三组网络都得出最大概率的第二个单词后,继续进行预测第三个单词,

在这里插入图片描述
B的取值越大,计算速度越慢,当B=1时,就相当于“贪婪搜索”(Greedy Search)
—Beam Search模型误差分析:
在这里插入图片描述
在这里插入图片描述

七、BLEU分数

Bleu 给定一个机器翻译结果,它能够自动给出这个翻译结果的分数,以衡量机器翻译的好坏。是一个单一数字指标。

这种评测方法通过对候选翻译与参考文本中的相匹配的n元组进行计数,其中一元组(unigram)比较的是每一个单词,而二元组(bigram)比较的是每个单词对。这种比较是不管单词顺序的。
浅谈用Python计算文本BLEU分数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
NLTK提供了一个corpus_bleu()函数来计算多个句子(如段落或文档)的Bleu分数。

from nltk.translate.bleu_score import sentence_bleu
reference = [['this', 'is', 'small', 'test']]
candiate = ['this', 'is', 'a', 'test']
score = sentence_bleu(reference, candiate, weights=(1, 0, 0, 0))
print(score)
  • 1
  • 2
  • 3
  • 4
  • 5

输出结果为:

0.75
  • 1

八、语音辨识模型

注意力模型 和 CTC (Connectionist temporal classification)模型
注意力模型原理就是对一层BRNN的每个输出加一个权重值
在这里插入图片描述
计算注意力权重的公式如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

语音辨识是将音频转化成文本类的问题,主要使用“sequence2sequence”,
在这里插入图片描述

九、触发字检测

例如:hey siri , 小爱同学

十、习题汇总:

第一周:
在这里插入图片描述
选 A
在这里插入图片描述
选A

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第六题选B

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选C

第二周测验题:
在这里插入图片描述
在这里插入图片描述
选B
在这里插入图片描述
选A
在这里插入图片描述
在这里插入图片描述
选A,*在Python里是元素级乘法
在这里插入图片描述
选A
在这里插入图片描述

在这里插入图片描述
选AC
在这里插入图片描述
选BCD
在这里插入图片描述

第三周测验题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/629681
推荐阅读
相关标签
  

闽ICP备14008679号