问题6:NLG的评估指标有哪些

  • BLEU (Bilingual Evaluation Understudy)
  • ROUGE (Recall Oriented Understudy for Gisting Evaluation)

BLEU是机器翻译中使用最广泛的评估指标,可以看成是精确率,公式如下:

ROUGE可以看作是召回率,有以下几种:

  • ROUGE-N:计算 n-gram 的召回率,即算出候选译文和参考译文重合的 n-gram 个数占参考译文的比例;

  • ROUGE-L:计算最长公共子序列(LCS)的召回率;

  • ROUGE-W:计算加权的最长公共子序列的召回率(weighted LCS);

  • ROUGE-S:计算 skip-bigram 的召回率(any pair of words in sentence order

    allowing for arbitrary gaps)。

福利:2021年最新大厂AI面试秘籍PDF 《2021年最新大厂AI面试题 Q2版》&《名企AI面试100题》,文末免费领!

问题七:二叉树的最大路径和

思路:递归

本质就是后序遍历,对于一个二叉树节点,计算左子树和右子树的最大路径和,再加上自己的值,得到该节点的最大路径和。

首先实现一个简化函数maxGain(node),计算二叉树中一个节点的最大贡献值;

计算二叉树的最大路径和,对于二叉树中的一个节点,该节点的最大路径和取决于该节点的值与该节点的左右子节点的最大贡献值,如果子节点的最大贡献值为正,则计入该节点的最大路径和,否则不计入该节点的最大路径和;

维护一个全局变量maxSum存储最大路径和,在递归过程中更新maxSum的值。

代码如下:

时间复杂度:O(N)

空间复杂度:O(N)

问题8:attention为什么要除以根号下dk

QK进行点击之后,值之间的方差会较大,也就是大小差距会较大;如果直接通过Softmax操作,会导致大的更大,小的更小;进行缩放,会使参数更平滑,训练效果更好。

问题9:最长上升子序列

如上图所示,用nums表示原数组,results[i]表示截止到nums[i]当前最长递增子序列长度为results[i],初始值均为1;

因为要找处递增序列,所以我们只需要找出nums[i]>nums[j](其中j的数,并将对应的results[j]保存在tmp临时列表中,然后找出最长的那个序列将nums[i]附加其后面;

示例:假设nums[i]= 5,i= 3

更新results[i]时只需要考虑前面小于results[i]的项,所以results[O-2]均为1;

此时nums[i]前面小于5的项有nums[2],需要将results[2]保存报tmp中,然后选取tmp中最大的数值并加1后赋值给results[i],即results[5]= 2

tmp是临时列表更新results之后需要清空;

根据上述流程更新所有results[i],即可得到下图:

此时我们只需要找出results中最大的那个值,即为最长递增子序列的长度。

参考代码如下:

问题10:神经网络有什么调参技巧?

哪些参数可以调?

网络设计相关参数:网络层数、不同层的搭建顺序、隐藏层神经元的参数设置、loss的选择、正则化参数

训练过程相关参数:网络权重初始化方法、学习率、迭代次数、batch_size。

什么时候需要调参?

欠拟合:优化数据集(数据清洗)、增加训练迭代次数、添加更多的层,增大神经元参数等

过拟合:增加样本数量(数据增