机器学习面经

         经历了2023年的秋招,现在也已经入职半年了,空闲时间将面试中可能遇到的机器学习问题整理了一下,可能答案也会有错误的,希望大家能指出!另外,不论是实习,还是校招,都祝福大家能够拿到满意的Offer!

机器学习面经系列的其他部分如下所示(这是我在其他地方写的,感兴趣的同学可以点波关注捏):

机器学习面经-共13章节

1、机器学习模型

1.1 有监督学习模型

1.2 无监督学习模型

 1.3 概率模型

什么是监督学习?什么是非监督学习?

         所有的回归算法和分类算法都属于监督学习。并且明确的给给出初始值,在训练集中有特征和标签,并且通过训练获得一个模型,在面对只有特征而没有标签的数据时,能进行预测。

        监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如 分类。

        非监督学习:直接对输入数据集进行建模,例如强化学习、K-means 聚类、自编码、受限波尔兹曼机。

        半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。

          目前最广泛被使用的分类器有人工神经网络、支持向量机、最近邻居法、高斯混合模型、朴素贝叶斯方法、决策树和径向基函数分类。

         无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。

1.5、回归、分类、聚类的区别与联系

1.6、生成模式 vs 判别模式

        生成模型: 由数据学得联合概率分布函数 P(X,Y),求出条件概率分布P(Y|X)的预测模型。 朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机。         判别式模型: 由数据直接学习决策函数 Y = f(X),或由条件分布概率 P(Y|X)作为预测模型。 K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场。

2、线性模型

2.1 线性回归

        原理: 用线性函数拟合数据,用 MSE 计算损失,然后用梯度下降法(GD)找到一组使 MSE 最小的权重。

        线性回归的推导如下所示:

2.1.1 什么是回归?哪些模型可用于解决回归问题?

  •         指分析因变量和自变量之间关系.
  •         线性回归: 对异常值非常敏感
  •         多项式回归: 如果指数选择不当,容易过拟合。
  •         岭回归
  •         Lasso回归
  •         弹性网络回归

2.1.2 线性回归的损失函数为什么是均方差?

2.1.3 什么是线性回归?什么时候使用它?

        利用最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.

  • 自变量与因变量呈直线关系;
  • 因变量符合正态分布;
  • 因变量数值之间独立;
  • 方差是否齐性。

2.1.4 什么是梯度下降?SGD的推导?

        BGD: 遍历全部数据集计算一次loss函数,然后算函数对各个参数的梯度,更新梯度。 

BGD、SGD、MBGD之间的区别​

2.1.5 什么是最小二乘法(最小平方法)?

        它通过最小化误差的平方和寻找数据的最佳函数匹配。

2.1.6 常见的损失函数有哪些?

  • 0-1损失
  • 均方差损失(MSE)
  • 平均绝对误差(MAE)
  • 分位数损失(Quantile Loss)
  • 分位数回归可以通过给定不同的分位点,拟合目标值的不同分位数; 实现了分别用不同的系数控制高估和低估的损失,进而实现分位数回归
  • 交叉熵损失
  • 合页损失 一种二分类损失函数,SVM的损失函数本质: Hinge Loss + L2 正则化

2.1.7 有哪些评估回归模型的指标?

        衡量线性回归法最好的指标: R-Squared

 什么是正规方程?‍

        正规方程组是根据最小二乘法原理得到的关于参数估计值的线性方程组。正规方程是通过求解​编辑来找出使得代价函数最小的参数解出: ​编辑

2.1.9 梯度下降法找到的一定是下降最快的方向吗?

        不一定,它只是目标函数在当前的点的切平面上下降最快的方向。 在实际执行期中,牛顿方向(考虑海森矩阵)才一般被认为是下降最快的方向,可以达到超线性的收敛速度。梯度下降类的算法的收敛速度一般是线性甚至次线性的(在某些带复杂约束的问题)。

2.1.10 MBGD需要注意什么? 如何选择m?

        一般m取2的幂次方能充分利用矩阵运算操作。 一般会在每次遍历训练数据之前,先对所有的数据进行随机排序,然后在每次迭代时按照顺序挑选m个训练集数据直至遍历完所有的数据。

也称为"对数几率回归"。

知识点提炼

  1.     1.分类,经典的二分类算法!
  2.     2.LR的过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证这个求解的模型的好坏。
  3.     3.Logistic 回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)
  4.     4.回归模型中,y 是一个定性变量,比如 y = 0 或 1,logistic 方法主要应用于研究某些事件发生的概率。
  5.     5.LR的本质:极大似然估计
  6.     6.LR的激活函数:Sigmoid
  7.     7.LR的代价函数:交叉熵

优点:

  •     1.速度快,适合二分类问题
  •     2.简单易于理解,直接看到各个特征的权重
  •     3.能容易地更新模型吸收新的数据

缺点:

  •    对数据和场景的适应能力有局限性,不如决策树算法适应性那么强。LR中最核心的概念是 Sigmoid 函数,Sigmoid函数可以看成LR的激活函数。
  • Regression 常规步骤:
  •     寻找h函数(即预测函数)
  •     构造J函数(损失函数)
  •     想办法(迭代)使得J函数最小并求得回归参数(θ)

LR伪代码:

  •     初始化线性函数参数为1
  •     构造sigmoid函数
  •     重复循环I次
  •             计算数据集梯度
  •             更新线性函数参数
  •     确定最终的sigmoid函数
  •     输入训练(测试)数据集
  •     运用最终sigmoid函数求解分类的推导

为什么 LR 要使用 sigmoid 函数?

        1.广义模型推导所得 2.满足统计的最大熵模型 3.性质优秀,方便使用(Sigmoid函数是平滑的,而且任意阶可导,一阶二阶导数可以直接由函数值得到不用进行求导,这在实现中很实用)

为什么常常要做特征组合(特征交叉)?

  •         LR模型属于线性模型,线性模型不能很好处理非线性特征,特征组合可以引入非线性特征,提升模型的表达能力。
  •         另外,基本特征可以认为是全局建模,组合特征更加精细,是个性化建模,但对全局建模会对部分样本有偏,
  •         对每一个样本建模又会导致数据爆炸,过拟合,所以基本特征+特征组合兼顾了全局和个性化。

为什么LR比线性回归要好?

  •         LR和线性回归首先都是广义的线性回归;其次经典线性模型的优化目标函数是最小二乘,而LR则是似然函数;另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。LR就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,LR的鲁棒性比线性回归的要好

参数求解的优化方法?(机器学习中常用的最优化方法)

        梯度下降法,随机梯度下降法,牛顿法,拟牛顿法(LBFGS,BFGS,OWLQN)

        目的都是求解某个函数的极小值。

工程上,怎么实现LR的并行化?有哪些并行化的工具?

  •         LR的并行化最主要的就是对目标函数梯度计算的并行化。
  •         无损的并行化:算法天然可以并行,并行只是提高了计算的速度和解决问题的规模,但和正常执行的结果是一样的。
  •         有损的并行化:算法本身不是天然并行的,需要对算法做一些近似来实现并行化,这样并行化之后的双方和正常执行的结果并不一致,但是相似的。
  •         基于Batch的算法都是可以进行无损的并行化的。而基于SGD的算法都只能进行有损的并行化。

如何解决低维不可分问题?

        通过特征变换的方式把低维空间转换到高维空间,而在低维空间不可分的数据,到高维空间中线性可分的几率会高一些。

        具体方法:核函数,如:高斯核,多项式核等等

与最大熵模型MaxEnt的关系?

        没有本质区别。LR是最大熵对应类别为二类时的特殊情况,也就是当LR类别扩展到多类别时,就是最大熵模型。

为什么 LR 用交叉熵损失而不是平方损失(MSE)?

编辑

        如果使用均方差作为损失函数,求得的梯度受到sigmoid函数导数的影响;

​编辑求导:​编辑

        如果使用交叉熵作为损失函数,没有受到sigmoid函数导数的影响,且真实值与预测值差别越大,梯度越大,更新的速度也就越快。

​编辑求导:​编辑

        记忆:mse的导数里面有sigmoid函数的导数,而交叉熵导数里面没有sigmoid函数的导数,sigmoid的导数的最大值为0.25,更新数据时太慢了。

能否解决非线性分类问题?

可以,只要使用kernel trick(核技巧)。不过,通常使用的kernel都是隐式的,也就是找不到显式地把数据从低维映射到高维的函数,而只能计算高维空间中数据点的内积。​编辑

用什么来评估LR模型?

  • 1.由于LR是用来预测概率的,可以用AUC-ROC曲线以及混淆矩阵来确定其性能。
  • 2.LR中类似于校正R2 的指标是AIC。AIC是对模型系数数量惩罚模型的拟合度量。因此,更偏爱有最小的AIC的模型。

如何解决多分类问题?(OvR vs OvO)

编辑

在训练的过程当中,如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响?

        如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。但是对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。

2.2.13 为什么在训练的过程当中将高度相关的特征去掉?

  •         去掉高度相关的特征会让模型的可解释性更好。
  •        可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。
  •         其次是特征多了,本身就会增大训练的时间。

        今日先更新到这里了,机器学习的总共为12章节,除此之外还有深度学习!等后续一序列更新~​

#机器学习面经##机器学习算法工程师面试##算法工程师##秋招##暑期实习#
全部评论
如果有想加入华为的同学,欢迎私信联系~
点赞 回复 分享
发布于 03-27 17:09 广东
求在哪可以看到机器学习面经-共13章节!
点赞 回复 分享
发布于 2024-06-07 05:19 美国
线性回归2.1.3那里是不是应该残差符合正态分布
点赞 回复 分享
发布于 2024-06-05 07:26 美国
大佬你好,请问机器学习面试会考代码能力吗
点赞 回复 分享
发布于 2024-03-14 17:16 重庆

相关推荐

05-28 09:03
已编辑
电子科技大学 C++
接到面试通知之后准备了一些测试岗的面经,广电还是业界内比较有名的中小厂,能进去应该不错,流程大概就是一面即终面,最后挂了。本来以为会问一些测试的八股或者流程之类的,结果还是问简历的内容比较多。可能因为是实习岗的原因吧,感觉公司没有特别重视。但也好,先让我进去啊自我介绍1 你大几来着?未来打算考研吗?再说吧2 你职业生涯规划?走技术(半年后再看这里当时应该说走测试的...经验就是jd写什么就走什么提问我的项目(有四个)1 哪一个你觉得涉及算法最多?我没弄懂他的意图...那当然还得是情绪识别...因为其他的根本没什么可说的...基于机器学习的情绪识别1 问了输入输出参数,前期对数据有哪些处理,结果如何......个人情况1 大学学了哪些课程?我回答简历上有的,简单介绍了一下专业...2 实习一周能去几天?几个月?只要有空我都能去,2~3个月吧。(虽然实际可能1~2个月(这里半年后来看还是没经验,问几个月的直接无脑六个月八个月3 实习想得到什么?攒技术4 会说粤语吗?会。5 公司有一个有关粤语的项目6 我们公司在广州,你在成都?实习你确定能来2个月?这里答了两个月,感觉国企招实习生就是应付指标?要长不要短,要近不要远。反问1公司有什么实习生培养流程吗?没有特定的流程。会有一个入门导师,但不会有统一培训。软件测试有很多方向,可能不会都涉及到,实习生可能会进行一些很繁琐无聊的工作,到时候如果觉得不行可以和我们说。总结1.实习时长无脑六个月,说什么都说可以就完了2.项目还是太浅,明显感觉的hr无从下问。3.hr和我都没开摄像头,怀疑是kpi,但是当时不懂这些...当见世面了4.这里的面试结束之后全力复习期末了,基本没再找面试,一周之后感谢信。5.这个寒假还约了朋友打美赛,打完就是年初一,整个寒假就二十几天相当于。找实习可能就要告一段落了。后面寒假就在沉淀,学技术...开学之后两个月把计网操作系统都看了大概。然后网上找了个还行的项目组做了项目然后就写简历准备二次实习了。
投递广电运通等公司6个岗位
点赞 评论 收藏
分享
1️⃣一面1.自我介绍和项目介绍2.介绍一下了解的大模型有哪些,这些模型在结构上有什么差异3.说一下大模型常用的位置编码有哪些,各有什么优缺点4.介绍一下大模型的预训练后训练以及推理是怎么做的,并且详细问了 RLHF 的做法,包括 PPO 算法的原理,以及 DPO 和 PPO 的区别5.大模型的超长上下文是怎么做的,比如说 KIMI6.大模型智能体是怎么工作的,有哪些组件7.场景题:如何训练一个大模型,可以做到精确的提取摘要8.代码:股票的四个题121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV✴️整体来说一面偏基础,没有太多发散性的问题,整个面试一个半小时多2️⃣二面1.自我介绍2.因为之前是做 CV 的,所以面试官问了 CV 和 NLP 的区别和联系,在 Transformer 的大背景下,CV、NLP,包括语音等,能否实现大一统3.训练大模型的时候数据怎么清洗,怎么处理,怎么配比,怎样操作能更容易使模型达到更好的性能4.什么是大模型的幻觉,如何减轻幻觉问题5.大模型的复读问题是怎么产生的,业内一般有什么解决办法6.大模型的工具调用怎么实现7.Agent 有哪几部分构成,了解哪些具体的实现方法8.开放题:之前训练大模型的时候遇到过什么困难,你是怎么解决的9.代码:实现一个 Tokenizer,只能用 PyTorch 基础语法✴️二面相比于一面更加看重综合素质,喜欢考察分析问题解决问题的能力,二面也面试了一个多小时,面试官还是挺专业的。3️⃣三面1.首先过项目,但是问的特别细致,尤其是一个 Agent 的项目,从背景,到动机,再到做法,最后的结果,都问的非常细,大概有半个小时的时间2.开放题:你觉得当前大模型还存在怎样的问题,有什么解决办法吗3.开放题:让你自己设计一个 Agent,会怎么做,为什么这样做4.找工作比较在意的点是什么,除了薪资还有什么5.对文心一言这个产品了解吗,有哪些优点和值得改进的点6.如果给你发 Offer,你到这个团队能做出什么贡献✴️三面整体来说更加综合,不止有一些技术问题,还有职业规划这些问题,更加考察整体的能力。面试官应该是这个团队的大老板,看问题更加系统和全面,整体面下来还是比较有压力的。📳对于想求职算法岗的同学,如果想参加高质量项目辅导,提升面试能力,欢迎后台联系。
百度三面308人在聊 查看26道真题和解析
点赞 评论 收藏
分享
1️⃣一面时间:9.12  时长:1hcode:统计岛屿数量、最大岛屿面积,DFS方法解了然后介绍实习项目,面试官非常耐心地听,没有打断八股1.bert和gpt的区别?(从模型架构、训练方式、使用场景方面回答的)2.训练/微调一个LLM的流程?3.实习时用的 megatron 框架吗,对分布式训练框架了解多少?(回答了deepspeed和megatron区别,以及几种并行方式,以及deepspeed的三种zero)4.了解强化学习吗,跟SFT有什么区别?5.反问:业务,对岗位的期望💣评价:有点紧张,算法题有一个小失误没注意到2️⃣二面时间:9.14  时长:1h八股1.写一下 attention 公式(代码实现了下)2.训练时为什么要mask,推理时也需要吗?两处有什么区别?推理时的sequence length和训练时一样吗3.transformer和传统seq2seq模型有什么区别?4.计算attention时为什么要除以d_k,这个d_k的含义是?5.attention计算时还有哪些scale处理?6.attention中softmax函数作用、公式、为什么有减去最大值的处理?换个函数还能这样处理吗?7.解释数值上溢、下溢问题8.讲一下prompt书写的经验,如何判断prompt是否达标,如何改进prompt9.讲一下SFT,会对哪部分计算loss?为什么?10.讲一下deepspeed11.训练用一个7b模型要占用多少显存?不同zero阶段能够节省多少显存?12.训练模型时用了几张卡,有遇到什么异常中断问题吗?反问: 在乎候选人什么能力?对面试表现有哪些改进意见?💣评价: 基础不够扎实,网上有的知识都能回答上来,在同龄人里算比较优秀,欠缺一些多机多卡实践经验。  
查看17道真题和解析
点赞 评论 收藏
分享
评论
27
193
分享

创作者周榜

更多
牛客网
牛客企业服务