美文网首页
机器学习面试备忘

机器学习面试备忘

作者: 婉妃 | 来源:发表于2019-05-26 09:45 被阅读0次

    面经

    机器学习算法一定要推导!
    面试地点:字节跳动-北京

    面试官是一个技术部的大牛,基本是半英文交流的。首先给了一张纸去写一个递归,然后开始问算法相关的问题,如Xgboost和GBDT、以及欠拟合和过拟合的解决方法。当然截止目前,其实都还算是简单的,最后,最伤心的事情来了,推导算法!从最简单的决策树C4.5开始,能推导出几个,加几分。心态直接崩了,好像只成功推导了C4.5,CART,HMM,LR,SVM,其他的都不成功。
    面试官笑了笑,也没问其他问题,也没让我问问题,心很忐忑。过了一周左右,我终于放心了,是真的凉了
    面试官的问题:

    问对于logistic regession问题:prob(t|x)=1/(1+exp(w*x+b))且label y=0或1,请给出loss function和权重w的更新公式及推导。
    答这个题其实是BAT1000题中的一道,w的更新公式可以由最小化loss function得到,也可以用极大似然函数方法求解,过程略...大家可以直接搜BAT面试1000题。

    面试知识点掌握

    1. 知识点梳理

    https://github.com/shunliz/Machine-Learning

    1. 算法推导

    https://shunliz.gitbooks.io/machine-learning/content/

    附: 机器学习十大算法

    http://panchuang.net/2018/09/17/%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%8D%81%E5%A4%A7%E7%AE%97%E6%B3%95/

    1. 如何选择算法

    微软如何选择 Azure 机器学习工作室算法:

    https://docs.microsoft.com/zh-cn/azure/machine-learning/studio/algorithm-choice#algorithm-notes

    机器学习算法优缺点对比及选择(汇总篇):

    https://ask.hellobi.com/blog/shuzhiwuyu/19008

    盘点最实用的机器学习算法优缺点分析,没有比这篇说得更好了:

    https://cloud.tencent.com/developer/article/1111064

    面试中常见问题

    softmax loss在遇到样本不均衡的情况下,能够做出那些改进?
    答focal loss, 加上temperature 或者 label smooth

    算法相关的简单问题(GBDT、Xgboost等
    Logistic Regression优化方程的证明。

    两道算法题,手写代码。一道基于线性数据结构,一道基于树形数据结构

    gbdt:

    • gbdt原理
    • gbdt推导
      • 公式分布推导
      • 残差如何计算
      • 损失函数形式
      • 基于常见损失函数的公式推导
    • boosting体现在哪里
    • 非mse损失时-\nabla_{F_{m-1}}L(y_i,F_{m-1}(x_i))作为残差近似值的数学意义
    • gbdt的weak learner是什么,为什么用CART回归树而不是分类树(分类树残差相减没有意义)
    • CART回归树
      • 节点分裂规则,写出公式
      • 公式中每个值在实际训练中是怎么计算出来的,举例子说明
      • 连续变量节点如何划分
      • 离散变量节点如何划分
    • gbdt的训练过程
      • 做分类预测时如何训练
      • 做回归预测时怎么训练
    • gbdt分类输出
      • 输出概率如何计算
      • 能否计算多分类, 是互斥多分类还是非互斥的?
      • 如果做互斥多分类,在哪一步改进?
    • gbdt调参
      • 调过哪些参数, 各有哪些作用
      • 重要参数为什么有这些作用?从原理出发讲一下
      • gbdt里的subsample作用,为何可以提高泛化,和rf的采样是否相同
      • rf里行采样,列采样解释,作用
      • rf为什么要使得每棵树不一样,数学解释
      • shrinkage作用
    • gbdt学习速率设置
      • 为什么设置学习速率可防止过拟合?
      • 深度学习中常见的学习速率设置方式有哪些? 数学公式
      • gbdt中学习速率是如何使用的?数学解释
      • 通常合理设置学习速率模型会变好,原理是什么
    • gbdt+lr过程

    lr:

    • 数学推导, 求导
    • sigmoid why?

    svm:

    • svm原理
    • 对偶作用
    • 推导公式

    dnn, cnn:

    • 画网络结构
    • 用到的激活函数, relu好处
    • 优化方法, 每种优化的过程, 参数更新公式
    • 动量
      • 可走出局部最小值原因? 数学解释
      • 动量为啥比mini-batch好: 数学解释

    正则:

    • l1, l2的作用
    • 为什么l1稀疏,l2权重衰减? 不能画图, 数学解释

    不均衡样本:

    • 上采样, 下采样
    • easy-enesmble

    多模型对比:

    • gbdt, xgboost, rf
    • lr, 线性模型

    特征工程及模型评估:

    • 模型效果评估方式, ROC
    • 模型性能下降的改进
    • 过拟合原因及改善
    • 特征筛选方式

    关于GBDT重点关注一下:

    • Boosting算法Bagging算法介绍
    • GBDT基本原理
    • GBDT如何正则化
    • GBDT分裂规则
    • GBDT的“梯度提升”体现在那个阶段
    • GBDT如何做特征选择
    • GBDT为什么使用cart回归树而不是使用分类树
    • 为什么GBDT的树深度较RF通常都比较浅
    • GBDT那些部分可以并行
    • GBDT与RF的区别
    • GBDT与XGBoost的区别
    • xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度?

    这里有一份答案:
    https://blog.csdn.net/xwl198937/article/details/79749048#gbdt%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8cart%E5%9B%9E%E5%BD%92%E6%A0%91%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BD%BF%E7%94%A8%E5%88%86%E7%B1%BB%E6%A0%91

    工程算法:

    • 斐波那契数列非递归编程
    • 二叉树遍历
    • 中位数查找,不能对数组排序
    • 合并k个有序数组
    • 假设全球所有人都在一个矩形方格中,每个人有坐标(xi,yi),距离每个人半径为r的范围中的总人数为Ci,现在要求max(Ci),应当使用什么方法进行处理?
    • 如果一个国家发行的钞票面值都是斐波那契里的数字,给s定一个物品价值n,问购买这个物品总共有多少种钞票组合方式。
    • 这里重点关注回答里的算法问题: 如何准备机器学习工程师的面试 ? - 姚凯飞的文章 - 知乎
      https://zhuanlan.zhihu.com/p/29969587

    面试总结:
    https://www.cnblogs.com/ModifyRong/p/7744987.html

    相关文章

      网友评论

          本文标题:机器学习面试备忘

          本文链接:https://www.haomeiwen.com/subject/guhxtctx.html