网站首页 > 技术文章 正文
作者: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聚类算法之外,你还了解哪些聚类算法?简要说明原理
2 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 数学期望和平均数有何异同?
猜你喜欢
- 2024-11-01 循环神经网络的使用RNN和LSTM rnn循环神经网络的原理
- 2024-11-01 #一天一个AI知识点# 什么是LSTM? #lstm有什么用
- 2024-11-01 NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意
- 2024-11-01 TensorFlow 1.9更新,侧重对tf.keras文档,GRU和LSTM实现的改进
- 2024-11-01 #一天一个AI知识点# 什么是GRU? #gru1
- 2024-11-01 人工智能基础:LSTM及其变种介绍,方便针对实际问题取舍
- 2024-11-01 别再用RNN和LSTM了!注意力模型才是王道
- 2024-11-01 深度学习——动画版RNN、LSTM和GRU计算过程
- 2024-11-01 首次大规模神经机器翻译架构分析结果出炉,LSTM 优于GRU
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)