Machine Learning / Algorithm Engineer Interview Question (Chinese)

less than 1 minute read

Published:

暑期即将告一段落,我暑期算法工程师实习也顺利结束了。在面试过程中面过不少公司,大多数都为技术面试。我总结了我所有遇到过的面试题供大家参考。面试职位大多数都是机器学习方向的算法工程师,绝大多数知识点都是和ML相关的。

机器学习相关(包括NLP,CV和推荐):

  • 基础知识
    • 关于项目的问题,所有公司都会问,要对写在简历上的项目非常熟悉
    • xgboost,random forest,lightGBM的区别
    • 假设Random Forest有无穷个树,那么每个树的深度是越深越好还是越浅越好
    • 走一遍GBDT算法的流程
    • L1/L2正规区别,为什么L1比L2稀疏
    • bagging和boosting的区别,bagging降低方差(variance)还是偏差(bias)
    • xgboost怎么优化,叶子几点分裂准则,损失函数,正则
    • Logistic regression公式推导,sigmoid和softmax区别
    • Logistic regression怎么进行多分类(1v1,1 over rest)
    • Logistic regression怎么拟合非线性模型,为什么可以用kernel trick?
    • svm怎么处理非线性数据(kernel trick)以及和logistic regression的区别,loss推导
    • precision,recall和F1-score区别
    • AUC的解释
  • NLP相关
    • 对于word2vec模型和word embedding的理解,有没有自己训练过word2vec模型?
    • NLP里面的negative sampling是什么
    • 计算词向量的相似度有哪些方法
    • 解释一下N-gram, Bag-of-words(CBOW, Skip-gram)模型
    • 简单说一下LSTM和GRU的区别
    • LSTM真的可以解决梯度爆炸/消失的问题吗
    • 介绍一下Transformer,attention机制,以及它和传统RNN的区别及优势
  • CV相关
    • 简单说一下ResNet的bottleneck结构以及该模型是怎么解决的梯度爆炸的问题(short cut connection 推导)
    • ResNet真的可以解决网络退化的问题吗
    • 说一下Vision Transformer的结构,对于其他运用在视觉领域上的transformer based模型还有了解吗
    • 1*1的卷积核有什么用
    • 为什么两个33卷积的视野和一个55卷积的视野一样
    • 池化层的反传播,以及平均池化和最大池化的区别
    • 激活函数都有哪些?简单介绍,为什么要用非线性激活函数?
    • Batch Normalization的作用,以及它和Layer Normalization的区别
    • 数据归一化的作用,处理imbalanced data的方法
    • 什么是过拟合和欠拟合,具体说一说在训练小样本量模型时防止过拟合的方法
    • CNN为什么适用于图像分类
    • 神经网络常见的激活函数有哪些
    • categorical crossentropy,binary crossentropy公式
    • Yolo模型里面的anchor的作用
    • Yolov5, v4, v3 的区别有哪些,了解FPN吗
    • 了解Focal loss吗,说一下intuition
    • 有没有遇到过模型不收敛的情况,可能是什么原因,以及是怎么解决的
    • 图像处理方面:bilinear interpolation和trilinear interpolation,高通低通滤波
  • 推荐相关
    • 推荐算法UCB应用场景及reward公式
    • UCB存在的问题
    • LinUCB 算法思路及reward公式
    • 运用场景题:欧洲杯比赛日夜宵该怎么推荐?根据什么?用什么算法?

编程相关:

  • 二叉树层序历遍 (队列)
  • 最大子序和(动规)
  • 糖豆人(动规)
  • 接雨水(双指针)
  • 和为k的子数组 (前缀和)
  • Leetcode 994 (DFS)
  • 前K个高频元素 (堆)

数学题:

  • 一根不规则的绳子烧完要一小时整,问怎么用这跟绳子测量半小时的时间
  • 岛上有m个男人和m个女人,一个男人和一个女人配对,共m对。假设每一对(i,1<=i<=m)都会繁衍后代。对于第i对,如果生到男孩,就停止;如果生到女孩,就接着生直到生到男孩为止。问经过n轮迭代,岛上男女总比例(包括生出来的男孩和女孩)

其他:

  • 对Hadoop有了解吗
  • 简单说一下Spark RDD是什么
  • Spark MLlib