zoukankan      html  css  js  c++  java
  • 《动手学深度学习》task09 优化算法进阶;word2vec;词嵌入进阶 课后作业

     这一部分,讲解NLP课后习题,因为个人选的CV方向,前期整理的都是CV方向,没按倒课程编号来(对于CV学习者来说,学习顺序没问题)。这一次来整理课程中的Task07 优化算法进阶;word2vec;词嵌入进阶  和 Task08 文本分类;数据增强;模型微调 内容。我将编号改为Task09 和 Task10,内容不变

    优化算法进阶

    1.下列算法中哪个没有使用到Exponential Moving Average :

    A RMSProp                        B Adam                             C Adagrad                          D SGD Momentum

    答案解释:【C】

    选项A:RMSProp的自适应学习率分母使用了EMA。

    选项B:Adam自适应学习率的分子和分母都使用了EMA。

    选项C:Adagrad的自适应学习率没有使用EMA ,而是对梯度平方进行累加,因而存在梯度消失的问题。

    选项D:Momentum也对梯度计算EMA。

    2.下列关于RMSProp, AdaGrad, AdaDelta, Adam等高阶优化算法的说法错误的是:

    A RMSProp利用Exponential Moving Average解决了Adagrad梯度消失的问题

    B AdaGrad出现梯度消失的原因是自适应学习率分母的不断累加使其存在最终趋于0的可能

    C AdaDelta是 基于RMSProp的改进算法,只有一个超参数

    D Adam没有使用Momentum算法

    答案解释:【D】

    选项A正确, RMSProp不是直接对梯度平方进行累加,而是使用EMA对上一时刻的自适应学习率的分母进行衰减。

    选项B正确,当梯度-直不为0时, Adagrad的自适应学习率的分母会不断累加,使自适应学习率趋于0 ,出现梯度消息的问题。

    选项C 正确, Adelta是基于RMSprop的改进,只需传入EMA的衰减参数。

    选项D错误, Adam使用了Momentum算法,其是RMSProp与Momentum的结合。

    3.下列关于Adam的说法错误的是:

    A Adam使用了Exponential Moving Average :

    B Adam对大小相差很大数量级的梯度都可以rescale到相近的大小

    C Adam是RMSProp和Momentum算法的结合,并对EMA权重进行了无偏操作

    D Adam使用了两次Exponential Moving Average,并且二者使用相同的衰减参数

    答案解释:【D】

    选项A 正确

    选项B 正确, Adam算法中的mt和Vt (原文符号)分别是梯度的一阶矩和二阶矩估计,二者相比,可以使更新量rescale到1的附近。

    选项C 正确

    选项D错误, mt和Ut均使用了EMA,但是二者的衰减参数并不相同。

    word2vec

    1.相比于使用one -hot向表示词语,以下哪一项坏是词嵌入模型的优点:

    A训练好的词向量中能够包含更多语义信息

    B词向量的维度是可以自由设定的

    C词嵌入的实现与使用都更方便

    D词嵌入模型需要运用大规模语料进行训练

    答案解释:【C】

    选项C正确,具体解析如下:

    选项A one-hot向量只是一个简单的编码 ,很难包含复杂的语义信息如词语的相似性等,而训练好的词向则可以从向量的空间关系上去体现词语间的关系,从而蕴含一定的语义信息。

    选项B用one-hot向量表示词语时,为了使每个词语都获得唯一的编码,向量长度至少要与词典大小相当,而词嵌入模型中的词向量维度则没有这个限制(实际上,词嵌入可以看作是对one-hot词向量基于语义相似度进行的一个降维操作)。

    选项C词嵌入模型首先需要在大规模语料库上进行训练,才能得到更有意义的词向量,其次在后续模型的训练过程中,可能还需要进行进一步的模型参数优化,所以在实现和使用上,都是比one-hot向量更复杂的。

    选项D无论是skip-gram模型还是CBOW模型,都是假设词语的含义是由其周围的单词所决定的,而为了使模型能够“学会词语的含义,就必须将其置于大规模语料库上进行长时间的训练。

    2.对定义好的Embedding层embed = nn. Embedding(num_embedding=5, embed_dim=10)进行前向计算操作x = embed(torch. tensor([[1,2], [3, 4],[5, 6]], dtype=torch. long)),得到的张形状是:

    A 3x2x 5                             B 3x2x 10                                    C 5x3x2                                       D 10x3x2

    答案解释:【B】

    nn. Embedding层的实际作用就是将整数张量中的下标,替换为词向量,从张量形状上看,就是在最后添加embed. _dim维,故得到的张形状是3 X 2 X 10 ,代码中num _embedding 为词典的大小,选择B选项。

    3.在大语料库上进行大规模的词向量训练时,以下哪项操作是不必要的:

    A在训练时使用负采样近似,即对每个中心词都采集若干噪音词

    B分别定义中心词和背景词的词嵌入层

    C在词典中去掉出现频率极低的词,或将其在文本中替换为<unk>等特殊字符

    D将词向量的维度设定得尽可能的大,使之匹配词典的大小

    答案解释:【D】

    选项D为正确答案,具体解析如下:

    选项A大语料库意味着大的词典,若不使负采样近似方法,词嵌入模型进行前向计算和梯度回传时,softmax 的计算代价将是难以承受的

    选项B由于skip-gram模型(或CBOW模型)的假设中,中心词和背景词都处于一种不对称的关系,而模型的数学表达式里,向量的点积项uTv却又是对称的,所以只能通过引入两个词嵌入层来保留假设中的非对称关系

    选项C大语料库中通常含有非常多的低频词,若不对其进行处理,将会严重损害模型的泛化能力,甚至降低高频词词向量的质

    量,同时,更大的词典也会意味着更大的存储和计算开销

    选项D词嵌入本质上就是在对词典进行降维操作,所以过大的词向量维度,反而可能会导致模型过拟合

    词嵌入进阶

    1. 对于Skip-Gram, CBOW, GloVe等词嵌入方法的理解,以下哪项是错误的:

    A词嵌入模型的训练本质上是在优化模型预测各词语同时出现的概率

    B词嵌入模型的设计和训练语料库的选取都很重要

    C不管是什么任务,在使用他人已经训练好的词向量时,直接复制词向量的权重就行了,不需要再进行任何额外的操作

    D GloVe模型用到了语料库上全局的统计信息,而Skip-Gram和CBOW模型则只用到了局部的统计信息

    答案解释:【C】

    选项C为正确选项;具体分析如下:

    选项A说法正确

    选项B抽象地说,词嵌入方法都是通过在大规模的语料库上进行训练,来让模型更好地'理解”词义,而好的模型设计则能提高训练的效率及模型的上界。

    选项C于他人训练词向量时用到的语料库和当前任务上的语料库通常都不相同,所以词典中包含的词语以及词语的顺序都可能有很大差别,此时应当根据当前数据集上词典的顺序,来依次读入词向量,同时,为了避免训练好的词向量在训练的最初被破坏,还可以适当调整嵌入层的学习速率甚至设定其不参与梯度下降。

    选项D说法正确

    2.关于GloVe方法基于Skip-Gram的改动,以下哪项描述是错误的:

    A GloVe 使用了非概率分布的变量,并添加了中心词和背景词的偏差项,这样做是在松弛概率的规范性,即各个概率事件的概率和加起等于1。

    B GloVe使用了一个单调递增的权重函数来加权各个损失项。

    C由于交叉熵损失函数在很多任务中都被证明比平方损失函数更加有效,所以GloVe沿用了交叉熵损失函数。

    D GloVe的损失函数计算公式中用到了语料库上的全局统计信息。

    答案解释:【C】

    选项C为正确选项,GloVe用平方损失函数替代了交叉熵损失函数。

    3.关于利用词向量求近义词和类比词,以下哪项描述是错误的:

    A我们可以直接使用他人预训练好的词向量 ,而不必从头开始训练

    B载入预训练词向量时,语料库和词向量维度的选取并不会对任务的表现有所影响

    C词语含义上的相似性和词向量空间中的余弦相似性是可以对应的

    D求类比词时可以复用求近义词的代码

    答案解释:【B】

    选项B为正确答案,具体解析如下:

    选项A由于我们的计算资源和时间都很有限,所以我们通常都会加载他人预训练好的词向量,而非在大规模语料库上从头开始训练

    选项B在进行预训练词向的载入时,我们需要根据任务的特性来选定语料库的大小和词向量的维度,以均衡模型的表达能力和泛

    化能力,同时还要兼顾计算的时间复杂度

    选项D求类比词时我们先会对给定的三个词的词向量进行加减运算,以得到一个虚拟的词向量,再去求这个虚拟词向量的近义词,就可以找到类比词。

  • 相关阅读:
    光遇————墓土(补充)蜡烛收集
    光遇————雨林
    每日光遇日记
    光遇————墓土
    光遇————云野超级不详细的蜡烛收集
    光遇————晨岛超级详细的蜡烛收集
    高精度
    HDU 1002: A + B Problem II (大数加法)
    HDU 1018:Big Number (位数递推公式)
    D2. Remove the Substring (hard version) (KMP-next数组 ) ( Codeforces Round #579 (Div. 3) )
  • 原文地址:https://www.cnblogs.com/guohaoblog/p/12357923.html
Copyright © 2011-2022 走看看