赞
踩
目录
1. 什么perplexity?它在NLP中的地位是什么?
2. ReLu的问题是什么?
3. 使用SVD学习潜在特征和使用深度网络获取嵌入向量有什么区别?
4. LSTM的hidden和cell存储的信息时什么?
5. 带bias的LSTM模型的参数个数
6. LSTM的复杂度
7. transformer的时间复杂度
8. 为什么self-attention这么牛B?
9. Adam optimizer的局限性是什么?
10. AdamW和Adam有什么不同?
11. 在多任务学习中,软、硬参数共享的区别是什么?
12. BatchNorm和LayerNorm的区别?
13. 为什么transformer使用LayerNorm,而不是BatchNorm?
14. 如果你知道你的训练数据有错误,你会对你的深度学习代码做什么改变?
15. 在transformer中使用最多的层是哪一层?
16. 说一个不适用dropout的语言模型
17. GPT和BERT有什么不同?
18. Bert和ALBert v2有什么不同?
19. 如何减少训练好的神经网络模型的推理时间?
对自己复盘的NLP做个总结:
1. 什么perplexity?它在NLP中的地位是什么?
perplexity是一种表达模型在预测中出现的混乱程度的方法。熵越大=越混乱。使用perplexity来评估NLP中的语言模型。一个好的语言模型会给正确的预测赋予更高的概率。
2. ReLu的问题是什么?
梯度爆炸(通过梯度裁剪来解决)
死亡ReLu----激活为0时不进行学习(通过加参数的ReLu解决)
激活值的均值和方差不是0和1.(通过从激活中减去0.5来部分解决这个问题)
3. 使用SVD学习潜在特征和使用深度网络获取嵌入向量有什么区别?
SVD使用输入的线性组合,而神经网络使用非线性组合。
4. LSTM的hidden和cell存储的信息时什么?
hidden存储到当前时间步的所有信息,cell存储将来的时间步中可能需要的特定信息。
5. 带bias的LSTM模型的参数个数
4(mh+h**2 +h),其中m是输入向量的尺寸,h是输出向量的尺寸,hidden也是一样。
要注意的是mh中m>>h,因此重要的一点是需要使用小的词汇表。
6. LSTM的复杂度
序列长度*(hidden**2)
7. transformer的时间复杂度
(序列长度**2)*hidden,当hidden尺寸大于序列长度时(通常是这种情况),transformer速度比LSTM快。
8. 为什么self-attention这么牛B?
在计算复杂性方面,当序列长度n小于表示维数d时,self-attention层速度比recurrent层要快,实际情况也是这样,同时可以在机器翻译中使用最先进的模型来进行句子的比较,比如word-piece和byte-pair表示。
9. Adam optimizer的局限性是什么?
虽然使用Adam进行训练有助于快速收敛,但结果模型的泛化性能往往不如使用SGD进行动量训练时的泛化性能。另一个问题是,即使Adam有自适应学习率,当使用良好的学习率计划时,它的性能也会提高。特别是在训练的早期,使用低效的学习率来避免发散是有益的。这是因为在一开始,模型的权值是随机的,因此得到的梯度不是很可靠。如果学习率太大,可能会导致模型采取太大的步骤,而没有确定合适的权重。如果学习率太大,可能会导致模型采取太大的步骤(步长过大,容易跳过最优点),而没有确定合适的权重。
当模型克服了这些初始稳定性问题后,可以提高学习速度,加快收敛速度。这个过程被称为学习率热身。
10. AdamW和Adam有什么不同?
AdamW是Adam在权重上使用了L2正则化,这样小的权重泛化性能更好。
11. 在多任务学习中,软、硬参数共享的区别是什么?
在硬共享中,我们一次训练所有的任务,并根据所有的损失更新权重。在软共享中,我们一次只训练一个任务。
12. BatchNorm和LayerNorm的区别?
BatchNorm----为每一个batch计算每一层的均值和方差
LayerNorm----独立计算每一层每一个样本的均值和方差
13. 为什么transformer使用LayerNorm,而不是BatchNorm?
从LayerNorm的优点看,它对batch大小是健壮的,并且在样本级别而不是batch级别工作得更好。
14. 如果你知道你的训练数据有错误,你会对你的深度学习代码做什么改变?
我们可以做标签平滑,其中的平滑值是基于百分误差。如果任何特定的类有已知的误差,我们还可以使用类权值来修正损失。
15. 在transformer中使用最多的层是哪一层?
Dropout
16. 说一个不适用dropout的语言模型
ALBert v2:ALBert中参数共享的正则化效果非常强,不需要dropout(ALBert v1中有dropout)
17. GPT和BERT有什么不同?
GPT不是双向的,没有masking概念
Bert在训练中加入下一个句子预测任务,所以它有sengment嵌入
18. Bert和ALBert v2有什么不同?
ALBert中,嵌入矩阵分解(减少参数数量)
ALBert中没有dropout
ALBert中实现了参数共享(有助于减少参数数量并进行正则化)
19. 如何减少训练好的神经网络模型的推理时间?
在GPU/TPU/FPGA上进行服务
16位量化,部署在支持fp16的GPU上提供服务
剪枝以减少模型参数
知识蒸馏(用于较小的transformer模型或简单的神经网络)
采用分层softmax
————————————————
版权声明:本文为CSDN博主「fly_Xiaoma」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38664232/article/details/104708677
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。