以前遇到的面试题
1. LSTM的网络结构,以及和GRU的区别面试
答案: LSTM的三个门:输入门、输出门、遗忘门。 GRU的两个门:更新门和重置门。网络
2. 若是训练集和测试集的正确率都很高,可是实际应用的使用模型正确率很低?异步
答案:发生了数据泄露。这种多是在数据集划分的时候,也多是模型的问题,好比transformer decoder没有作mask。(答过拟合是不对的,答训练集和测试集和实际分布有差别是能够的)函数
3. 为何BERT须要mask,以前的模型不须要?学习
答案:BERT是双向的Encoder,因此须要mask。GPT是单向的transformer,ElMo是两个单向的LSTM编码的拼接。测试
4. Transformer的Muti Head的作法的缘由?优化
答案:相似CNN的多个卷积核,目的是分红多个独立的子空间,能够学习到更丰富的语义特征,从而增大模型的容量。编码
Multi-head attention allows the model to jointly attend to information from different representation subspaces at different positions.spa
5. 最大后验估计和最大似然的区别3d
答案:最大后验估计 = 似然函数 × 先验几率
6. 逻辑回归和朴素贝叶斯的区别
答案:
- Logistic Regression属于判别式模型,Naive Bayes属于生成模型。
- Naive Bayes是创建在条件独立假设基础之上的,Logistic Regression的限制则要宽松不少。
- Naive Bayes不须要优化参数,Logistic Regression须要创建损失函数,而后利用梯度降低进行优化。(参数模型和非参模型)
7. HMM、MEMM、CRF的区别
答案:
- HMM是生成式模型,MEMM和CRF是判别式模型。
- HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程当中当前状态只与前一状态有关(一阶马尔可夫模型)。
- MEMM模型克服了观察值之间严格独立产生的问题,可是因为状态之间的假设理论,使得该模型存在标注偏置问题。
- CRF模型解决了标注偏置问题,去除了HMM中两个不合理的假设,模型相应得也变复杂了。
8. BN的训练和测试
答案:
- 训练时每次会传入一批数据,计算每一个batch的均值和方差,并计算移动平均做为训练集的均值和方差
- 当测试或预测时,每次可能只会传入单个数据,这个时候直接使用训练集的均值和方差
9. 分类样本不平衡如何解决
答案:
- 数据层面:数据上采样或者下采样
- 评价指标:选用F1或者AUC等对数据不平衡不敏感的指标
- 损失函数:使用Focal Loss等损失函数
- word2vec的损失函数
答案: CBOW是根据context预测中间词,所以是:
Skip-gram是根据context预测中间词,所以是:
- ELMo的损失函数
答案:两个双向的语言模型的log损失函数之和
- TF实现多GPU并行?
答案:
同步模式:
tf中的并行主要分为两种:
- 模型并行: 将模型中不一样计算节点放在不一样硬件资源上运算
- 数据并行: 同时使用多个硬件资源来计算不一样batch的数据的梯度,几乎适用于全部深度学习模型
数据并行
- 同步数据并行: 等待全部GPU都计算完一个batch数据的梯度后,再统一将多个梯度合在一块儿,并共享更新后的模型参数,这相似于用了一个较大的batch
- 异步数据并行: 不等待全部GPU都完成计算,而是哪一个GPU完成了运算就当即将梯度更新到共享的模型参数中