算法工程师-基础面试题

1.解释偏差-方差

    偏差-方差用于指导模型在拟合能力和复杂度之间取得较好的平衡.

  • 偏差表示一个模型在不同训练集上的平均性能与最优模型的差异,刻画了模型的拟合能力.偏差较大,可以通过增加数据特征,提高模型的复杂度,减小正则化系数等操作来改进.
  • 方差表示一个模型在不同训练集上的差异,刻画了一个模型是否容易过拟合.方差较大,可以通过较低模型复杂度,加大正则化系数,引入先验,使用集成模型等方法解决.

2.解释ROC与AUC

  • ROC全称为受试者工作曲线,横轴为假正例率,纵轴为真正例率.根据学习器对样本的预测结果从大到小排序,按此顺序逐个把样本作为正例进行预测,每次算出一个假正例率和一个真正例率.ROC曲线上的点越接近于(0,1),学习器越完美.
  • AUC的定义为ROC曲线所覆盖的面积;物理含义是任取一对正负样本,正样本的预测得分大于负样本的预测得分的概率.AUC越大,分类器分类效果越好.

3.预防过拟合的方法有哪些?(8个)

  • l1和l2正则化:通过约束参数的l1和l2范数来减小模型在训练数据上的过拟合现象.
  • 权重衰减:在每次更新参数时,引入一个衰减系数,theta_{t}=(1-\beta)theta_{t-1}-\alpha g_{t}

       在SGD优化算法中,权重衰减等价于l2正则化 L2 weight decay和Batch Norm - 知乎本文主要是对下面这篇博客的总结和翻译 L2 Regularization and Batch Norm上来先是一个结论,l2 weight decay(wd)配合batch norm的效果就是对learning rate动态的调节! In particular, when used together with b…https://zhuanlan.zhihu.com/p/56142484

  • 提前停止:当验证集上的错误率不再下降时,就停止迭代
  • dropout:当训练一个神经网络时,设置一个固定的概率p,对每个神经元以p的概率来判定要不要保留,这种方式可以使神经网络不会过分依赖某些局部特征;在测试阶段,所有神经元都是激活的,会造成训练和测试时网络的输出不一致,为了缓解这个问题,将神经层的输入x乘以p,也相当于把不同的神经网络做了平均.
  • 数据增强
  • 标签平滑:大多数数据集的标签都有一定的错误,错误的标签不利于最小化损失函数.避免这种情况的一种方法就是给标签引入一定的噪声.
  • 集成学习:奏效的原因是不同的模型通常不会在测试集上产生完全相同的误差.
  • 剪枝处理:是决策器学习算法对付过拟合的主要手段.预剪枝:若当前节点的划分不能带来决策器性能的提升,则停止划分并将当前节点标记为叶节点;后剪枝:先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察,若该节点对应的子树替换为叶节点能带来决策树性能的提升,则将该子树替换为叶节点.

4.解决类型不平衡的问题的方法

    参考分类中解决类别不平衡问题_小白学视觉的博客-CSDN博客

   (1)数据层面的方法,包括重采样技术和集成学习方法

  • 过采样:对训练集中的少量类样本进行过采样.包括随机过采样方法,SMOTE过采样方法以及Borderline-SMOTE过采样方法.随机过采样方法通过复制少量类样本来扩大训练集,容易出现过拟合问题.SMOTE算法的基本思想是对于每个少量类样本xi,从它在少量类的k近邻中随机选择一个样本xj,然后在xi和xj之间的连线上随机选择一个点作为新合成的少数类样本.Borderline-SMOTE考虑了少量类样本周围多数类的分布情况,选出类别边界上的少量类样本集合,在这个集合上执行SMOTE算法.
  • 欠采样:对训练集中的多数类样本进行欠采样.包括随机欠采样方法,EasyEnsemble算法以及BalanceCascade算法.随机欠采样通过随机删除部分多数类的样本,这种做法会造成信息缺失.EasyEnsemble算法从多数类样本中有放回的方式随机采样n次,每个选取与少量类样本数目相近的样本个数,可以得到n个集合;然后,将每一个多数类的样本子集与少量类样本合并训练出一个模型,可以得到n个模型;最终模型的结果是这n个模型的预测平均值.BalanceCascade算法将AdaBoost作为基分类器,在每一轮训练时都使用多数类与少量类数量上相等的训练集,然后使用该分类器对所有多数类样本进行预测,通过控制分类阈值来控制FP率,将所有判断正确的样本剔除,然后进入下一轮迭代.

    (2)算法层面的方法(代价敏感)

  • 代价敏感学习:核心要素是代价矩阵.如决策树在阈值选择,分裂标准及剪枝时考虑代价矩阵,使用代价矩阵对损失函数进行加权平均,Adaboost的样本权重更新时对代价高的误分类样本大大提高其权重,而对代价高的正确分类样本适当地降低其权重,使其权重降低地相对较小.

    (3)评价指标:混淆矩阵,F1,ROC和AUC

5.常见分布

    根据随机变量的类型划分.

  • 离散随机变量
    • 伯努力分布.离散随机变量x的取值是{0,1},参数\mu是x取值为1时的概率
    • 二项分布.用于描述n次独立的伯努力实验中有m次成功的概率.
    • 多项分布.是将二项分布由单随机变量扩展到多随机变量.
  • 连续随机变量
    • 均匀分布.参数是区间端点[a,b]
    • 高斯分布.参数是均值和方差
    • 指数分布.参数是\lambda
    • beta分布.参数是a和b
    • 狄利克雷分布.将beta分布由一个连续随机变量扩展到多个连续随机变量.

6.transformer

  • The Annotated Transformer:https://nlp.seas.harvard.edu/2018/04/03/attention.html
  • 常见问答:BERT面试常考点 - 知乎深度学习在NLP领域落地开花后,预训练+Fituning几乎成功了各种任务的通用解决方案,而BERT几乎将预训练的效果推到了史无前例的极致,也成了各大公司面试必考题。本文先对BERT做个简单的回顾,然后列出一些面试中比…https://zhuanlan.zhihu.com/p/362182288Transformer面试总结_真心乖宝宝的博客-CSDN博客_transformer面试1. Transformer的位置信息和bert的位置信息有什么不一样?Transformer计算token的位置信息这里使用正弦波↓,类似模拟信号传播周期性变化。这样的循环函数可以一定程度上增加模型的泛化能力。但BERT直接训练一个position embedding来保留位置信息,每个位置随机初始化一个向量,加入模型训练,最后就得到一个包含位置信息的embedding,最后这个position embedding和word embedding的结合方式上,BERT选择直接拼接2. Transfhttps://blog.csdn.net/weixin_45069761/article/details/107851875

WordPiece 和 BPE 的区别_xiyou__的博客-CSDN博客_bpe区分WordPiece和BPEhttps://blog.csdn.net/xiyou__/article/details/124173953

你可能感兴趣的:(算法)