6

机器学习知识体系汇总

 3 years ago
source link: https://zhuanlan.zhihu.com/p/365368898
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

机器学习知识体系汇总

已认证的官方帐号

作者:boxianlai

高中的时候,班主任让我们每学完一个章节,整理出这个章节的关键词和一份问题列表。现在会想起来,其实是很有用的,这让我们可以从另外一个视角来审视所学习的内容,而不是单纯的填鸭式的记忆;最近在复习机器学习相关内容,也从问题的视角来回顾机器学习知识体系,对于机器学习方向同学可以作为考察,看看里面的内容是否都能回答上来;而对于想学习机器学习的同学来说,应该可以作为一个方向,把这些内容一个个解决了,在各大厂算法岗面试中应该可以横着走了。

一、机器学习相关

1、 基本概念

l 简述解决一个机器学习问题时,你的流程是怎样的?

l 损失函数是什么,如何定义合理的损失函数?

l 回归模型和分类模型常用损失函数有哪些?各有什么优缺点

l 什么是结构误差和经验误差?训练模型的时候如何判断已经达到最优?

l 模型的“泛化”能力是指?如何提升模型泛化能力?

l 如何选择合适的模型评估指标?AUC、精准度、召回率、F1值都是什么?如何计算?有什么优缺点?

l 什么是混淆矩阵?

l ROC曲线如何绘制?相比P-R曲线有什么特点?

l 如何评判模型是过拟合还是欠拟合?遇到过拟合或欠拟合时,你是如何解决?

l 你是如何针对应用场景选择合适的模型?

l 如何选择模型中的超参数?有什么方法,并说说其优劣点

l 误差分析是什么?你是如何进行误差分析?

l 你是如何理解模型的偏差和方差?什么样的情况是高偏差,什么情况是高方差?

l 出现高偏差或者高方差的时候你有什么优化策略?

l 奥卡姆剃刀定律是什么?对机器学习模型优化有何启发?举例说明

2、 经典机器学习

Ø 特征工程

l 你是怎样理解“特征”?

l 给定场景和问题,你如何设计特征?(特征工程方法论)

l 开发特征时候做如何做数据探索,怎样选择有用的特征?

l 你是如何做数据清洗的?举例说明

l 如何发现数据中的异常值,你是如何处理?

l 缺失值如何处理?

l 对于数值类型数据,你会怎样处理?为什么要做归一化?归一化有哪些方法?离散化有哪些方法,离散化和归一化有哪些优缺点?

l 标准化和归一化异同?

l 你是如何处理CTR类特征?

l 讲解贝叶斯平滑原理?以及如何训练得到平滑参数

l 类别型数据你是如何处理的?比如游戏品类,地域,设备

l 序号编码、one-hot编码、二进制编码都是什么?适合怎样的类别型数据?

l 时间类型数据你的处理方法是什么?原因?

l 你怎样理解组合特征?举个例子,并说明它和单特征有啥区别

l 如何处理高维组合特征?比如用户ID和内容ID?

l 如何理解笛卡尔积、外积、内积?

l 文本数据你会如何处理?

l 文本特征表示有哪些模型?他们的优缺点都是什么?

l 讲解TF-IDF原理,它有什么优点和缺点?针对它的缺点,你有什么优化思路?

l N-gram算法是什么?有什么优缺点?

l 讲解一下word2vec工作原理?损失函数是什么?

l 讲解一下LDA模型原理和训练过程?

l Word2vec和LDA两个模型有什么区别和联系?

l Skin-gram和cbow有何异同?

l 图像数据如何处理?有哪些常用的图像特征提取方法

l 你是怎样做特征选择的?卡方检验、信息值(IV)、VOE都是如何计算?

l 计算特征之间的相关性方法有哪些?有什么优缺点

Ø 基础算法原理和推倒

Knn

l Knn建模流程是怎样的?

l Knn优缺点是什么?

l Knn适合什么样的场景和数据类型?

l 常用的距离衡量公式都有哪些?具体说明它们的计算流程,以及使用场景?

l 超参数K值过大或者过小对结果有什么影响,你是如何选择K值?

l 介绍一下Kd树?如何建树,以及如何搜索最近节点?

支持向量机

l 简单讲解SVM模型原理?

l SVM为什么会对缺失值敏感?实际应用时候你是如何处理?

l SVM为什么可以分类非线性问题?

l 常用的核函数有哪些?你是如何选择不同的核函数的?

l RBF核函数一定线性可分么?为什么

l SVM属于线性模型还是非线性模型?为什么?

l 训练误差为0的SVM分类器一定存在吗?说明原因?

朴素贝叶斯模型

l 讲解贝叶斯定理?

l 什么是条件概率、边缘概率、联合概率?

l 后验概率最大化的含义是什么?

l 朴素贝叶斯模型如何学习的?训练过程是怎样?

l 你如何理解生成模型和判别模型?

l 朴素贝叶斯模型“朴素”体现在哪里?存在什么问题?有哪些优化方向?

l 什么是贝叶斯网络?它能解决什么问题?

l 为什么说朴素贝叶斯也是线性模型而不是非线性模型呢?

线性回归

l 线性回归的基本思想是?

l 什么是“广义线性模型”?

l 线性回归常用的损失函数有哪些?优化算法有哪些?

l 线性回归适用什么类型的问题?有哪些优缺点?

l 请用最小二乘法推倒参数更新公式?

逻辑回归

l 逻辑回归相比于线性回归有什么异同?

l 逻辑回归和广义线性模型有何关系?

l 逻辑回归如何处理多标签分类?

l 为什么逻辑回归需要进行归一化或者取对数?

l 为什么逻辑回归把特征离散化之后效果会提升?

l 类别不平衡问题你是如何处理的?什么是过采样,什么是欠采样?举例

l 讲解L1和L2正则,它们都有什么作用,解释为什么L1比L2更容易产生稀疏解;对于存在线性相关的一组特征,L1正则如何选择特征?

l 使用交叉熵作为损失函数,梯度下降作为优化方法,推倒参数更新公式

l 代码写出训练函数

FM模型

l FM模型与逻辑回归相比有什么优缺点?

l 为什么FM模型计算复杂度时O(kn)?

l 介绍FFM场感知分解机器(Field-aware Factorization Machine),说说与FM异同?

l 使用FM进行模型训练时候,有哪些核心参数对模型效果影响大?

l 如何从神经网络的视角看待FM模型?

决策树

l 讲解完成的决策树的建树过程

l 你是如何理解熵?从数学原理上解释熵公式可以作为信息不确定性的度量?

l 联合熵、条件熵、KL散度、信息增益、信息增益比、gini系数都是什么?如何计算?

l 常用的决策树有哪些?ID3、C4.5、CART有啥异同?

l 决策树如何防止过拟合?前剪枝和后剪枝过程是怎样的?剪枝条件都是什么

随机森林(RF)

l 介绍RF原理和思想

l RF是如何处理缺失值?

l RF如何衡量特征重要度?

l RF“随机”主要体现在哪里?

l RF有哪些优点和局限性?

l 为什么多个弱分类器组合效果会比单个要好?如何组合弱分类器可以获得更好的结果?原因是什么?

l Bagging的思想是什么?它是降低偏差还是方差,为什么?

l 可否将RF的基分类模型由决策树改成线性模型或者knn?为什么?

GBDT

l 梯度提升和梯度下降有什么区别和联系?

l 你是如何理解Boosting和Bagging?他们有什么异同?

l 讲解GBDT的训练过程?

l 你觉得GBDT训练过程中哪些环节可以平行提升训练效率?

l GBDT的优点和局限性有哪些?

l GBDT是否对异常值敏感,为什么?

l 如何防止GBDT过拟合?

l 在训练过程中哪些参数对模型效果影响比较大?这些参数造成影响是什么?

k-means

l 简述kmeans建模过程?

l Kmeans损失函数是如何定义?

l 你是如何选择初始类族的中心点?

l 如何提升kmeans效率?

l 常用的距离衡量方法有哪些?他们都适用什么类型问题?

l Kmeans对异常值是否敏感?为什么?

l 如何评估聚类效果?

l 超参数类的个数k如何选取?

l Kmeans有哪些优缺点?是否有了解过改进的模型,举例说明?

l 试试证明kmeans算法的收敛性

l 除了kmeans聚类算法之外,你还了解哪些聚类算法?简要说明原理

² PCA降维

l 为什么要对数据进行降维?它能解决什么问题?

l 你是如何理解维度灾难?

l PCA主成分分析思想是什么?

l 如何定义主成分?

l 如何设计目标函数使得降维达到提取主成分的目的?

l PCA有哪些局限性?如何优化

l 线性判别分析和主成分分析在原理上有何异同?在目标函数上有何区别和联系?

3、 深度学习

Ø DNN

l 描述一下神经网络?推倒反向传播公式?

l 讲解一下dropout原理?

l 梯度消失和梯度膨胀的原因是什么?有什么方法可以缓解?

l 什么时候该用浅层神经网络,什么时候该选择深层网络

l Sigmoid、Relu、Tanh激活函数都有哪些优缺点?

l 写出常用激活函数的导数

l 训练模型的时候,是否可以把网络参数全部初始化为0?为什么

l Batchsize大小会如何影响收敛速度?

Ø CNN

l 简述CNN的工作原理?

l 卷积核是什么?选择大卷积核和小卷积核有什么影响?

l 你在实际应用中如何设计卷积核?

l 为什么CNN具有平移不变性?

l Pooling操作是什么?有几种?作用是什么?

l 为什么CNN需要pooling操作?

l 什么是batchnormalization?它的原理是什么?在CNN中如何使用?

l 卷积操作的本质特性包括稀疏交互和参数共享,具体解释这两种特性以其作用?

l 你是如何理解fine-tune?有什么技巧

Ø RNN

l 简述RNN模型原理,说说RNN适合解决什么类型问题?为什么

l RNN和DNN有何异同?

l RNN为什么有记忆功能?

l 长短期记忆网络LSTM是如何实现长短期记忆功能的?

l 长短期记忆网络LSTM各模块都使用什么激活函数,可以使用其他激活函数么?

l GRU和LSTM有何异同

l 什么是Seq2Seq模型?该模型能解决什么类型问题?

l 注意力机制是什么?Seq2Seq模型引入注意力机制主要解决什么问题?

4、 基础工具

Ø Spark

l 什么是宽依赖,什么是窄依赖?哪些算子是宽依赖,哪些是窄依赖?

l Transformation和action算子有什么区别?举例说明

l 讲解sparkshuffle原理和特性?shuffle write 和 shuffleread过程做些什么?

l Shuffle数据块有多少种不同的存储方式?分别是什么

l 哪些spark算子会有shuffle?

l 讲解sparkschedule(任务调度)?

l Sparkstage是如何划分的?

l Sparkcache一定能提升计算性能么?说明原因?

l Cache和persist有什么区别和联系?

l RDD是弹性数据集,“弹性”体现在哪里呢?你觉得RDD有哪些缺陷?

l RDD有多少种持久化方式?memory_only如果内存存储不了,会怎么操作?

l RDD分区和数据块有啥联系?

l 当GC时间占比很大可能的原因有哪些?对应的优化方法是?

l Spark中repartition和coalesce异同?coalesce什么时候效果更高,为什么

l Groupbykey和reducebykey哪个性能更高,为什么?

l 你是如何理解caseclass的?

l Scala里trait有什么功能,与class有何异同?什么时候用trait什么时候该用class

l Scala 语法中to 和 until有啥区别

l 讲解Scala伴生对象和伴生类

Ø Xgboost

l 你选择使用xgboost的原因是什么?

l Xgboost和GBDT有什么异同?

l 为什么xgboost训练会那么快,主要优化点事什么?

l Xgboost是如何处理缺失值的?

l Xgboost和lightGBM有哪些异同?

l Xgboost为什么要使用泰勒展开式,解决什么问题?

l Xgboost是如何寻找最优特征的?

Ø Tensorflow

l 使用tensorflow实现逻辑回归,并介绍其计算图

l sparse_softmax_cross_entropy_with_logits和softmax_cross_entropy_with_logits有何异同?

l 使用tensorflow过程中,常见调试哪些参数?举例说明

l Tensorflow梯度更新是同步还是异步,有什么好处?

l 讲解一下TFRecords

l tensorflow如何使用如何实现超大文件训练?

l 如何读取或者加载图片数据?

5、 业务工程实现(推荐系统为例)

l 你是如何选择正负样本?如何处理样本不均衡的情况?

l 如何设计推荐场景的特征体系?举例说明

l 你是如何建立用户模型来理解用户,获取用户兴趣的?

l 你是如何选择适合该场景的推荐模型?讲讲你的思考过程

l 你是如何理解当前流行的召回->粗排->精排的推荐架构?这种架构有什么优缺点?什么场景适用使用,什么场景不适合?

l 如何解决热度穿透的问题?(因为item热度非常高,导致ctr类特征主导排序,缺少个性化的情况)

l 用户冷启动你是如何处理的?

l 新内容你是如何处理的?

l 你们使用的召回算法有哪些?如何能保证足够的召回率?

l 实时数据和离线数据如何融合?工程上是怎样实现?如何避免实时数据置信度不高带来的偏差问题?

l 你们是如何平衡不同优化目标的问题?比如:时长、互动等

l 不同类型内容推荐时候,如何平衡不同类型内容,比如图文、视频;或者不同分类

l 如何保证线上线下数据一致性?工程上是如何实现?

l 离线训练效果好,但是上线效果不明显或在变差可能是什么问题?如何解决?

l 在实际业务中,出现badcase,你是如何快速反查问题的?举例说明

l 使用ctr预估的方式来做精排,会不会出现相似内容大量聚集?原因是什么?你是如何解决的?

l 你了解有多少种相关推荐算法?各有什么优缺点

l 深度学习可以应用到推荐问题上解决哪些问题?为什么比传统机器学习要好?

二、数学相关

1、 概率论和统计学

l 说说你是怎样理解信息熵的?

l 能否从数据原理熵解析信息熵可以表示随机变量的不确定性?

l 怎样的模型是最大熵模型?它有什么优点

l 什么是Beta分布?它与二项分布有什么关系?

l 什么是泊松分布?它与二项分布有什么关系?

l 什么是t分布?他与正态分布有什么关系?

l 什么是多项式分布?具体说明?

l 参数估计有哪些方法?

l 点估计和区间估计都是什么?

l 讲解一下极大似然估计,以及适用场景?

l 极大似然和最小二乘法有什么关系?

l 假设检验是什么?有什么作用,距离说明?一类和二类错误分别是什么?

l 什么是置信区间?

l P值数据含义是什么?如何计算?

l 如何证明两个变量是独立分布还是相关的?

l 什么是协方差,它和相关性有什么联系?

l 数学期望和平均数有何异同?

2、 最优化问题

l 什么是梯度?

l 梯度下降找到的一定是下降最快的方法?

l 牛顿法和梯度法有什么区别?

l 什么是拟牛顿法?

l 讲解什么是拉格朗日乘子法、对偶问题、kkt条件

l 是否所有的优化问题都可以转化为对偶问题?

l 讲解SMO(SequentialMinimalOptimization)算法基本思想?

l 为什么深度学习不用二阶优化?

l 讲解SGD,ftrl、Adagrad,Adadelta,Adam,Adamax,Nadam优化算法以及他们的联系和优缺点

l 参数估计有哪些方法?

l 点估计和区间估计都是什么?

l 讲解一下极大似然估计,以及适用场景?

l 极大似然和最小二乘法有什么关系?

l 假设检验是什么?有什么作用,距离说明?一类和二类错误分别是什么?

l 什么是置信区间?

l P值数据含义是什么?如何计算?

l 如何证明两个变量是独立分布还是相关的?

l 什么是协方差,它和相关性有什么联系?

l 数学期望和平均数有何异同?

更多干货尽腾讯技术欢迎关注官方公众号:腾讯技术工程,交流群已建立,交流讨论可加QQ 群:160315980(备注腾讯技术) 。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK