【1】机器学习算法面试八股

1. 分类算法常用哪些?

  1. KNN
  2. LR(逻辑回归)
  3. SVM
  4. 决策树、随机森林
  5. 神经网络

2. 回归算法一般用哪些?

  1. 线性回归
  2. 决策树、GBDT
  3. XGboost
  4. 神经网络

3. 回归方法中使用的评价指标是哪些?

  1. 均方误差(MSE):
  2. 均方根误差(RMSE)
  3. MAE(平均绝对误差)
  4. R Squared

4. 分类中使用的损失函数是哪些?为什么是交叉熵而不是mae?

  1. 0-1损失函数(zero-one loss):在感知机中,使用的该损失函数
  2. 对数损失函数(log loss):用于最大似然估计,等价于交叉熵损失函数
  3. 指数损失函数(exponential loss):在adaboost中使用的该损失函数
  4. 合页损失函数(hinge loss):在SVM中使用的该损失函数
  5. 交叉熵损失函数(cross-entropy loss):用于分类任务 在LR与神经网络中,分类最常使用的是交叉熵*:
  6. 因为平方损失函数权重更新过慢,采用交叉熵损失函数可以完美解决过慢的问题,它具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的良好性质。
  7. sigmoid作为激活函数的时候,如果采用均方误差损失函数,那么这是一个非凸优化问题,不宜求解,容易陷入局部最优解。而采用交叉熵损失函数依然是一个凸优化问题,更容易优化求解。

5. 对于小数据集一般怎么处理呢?小数据集中如何防止过拟合? 第一个思路: 小数据集配合神经网络时,必须要考虑过拟合的问题。 最有效的方法应该是扩充数据集:数据集越大,网络泛化性能越好,所以努力扩充数据集,通过平移、翻转、旋转、放缩、随机截取、加噪声、色彩抖动等等方式。 其他防止过拟合的方法:比如l1、l2,dropout、BN、验证集、模型集成

第二个思路: 神经网络需要大数据,所以可以考虑其他机器学习方法。

6.常用什么激活函数?

  1. sigmoid
  2. tanh
  3. ReLU
  4. Leaky ReLU
  5. Mish激活函数

[链接](7. https://blog.csdn.net/weixin_42057852/article/details/84644348?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_antiscanv2&utm_relevant_index=1) 7. sigmoid函数有使用过吗?与relu激活函数有什么不同?

sigmoid型函数是第一个被广泛应用于神经网络的激活函数。经过sigmoid型函数作用后,输出的值范围在[0,1]之间。但是sigmoid型函数的输出存在均值不为0的情况,并且存在梯度消失的问题,在深层网络中被其他激活函数替代。在逻辑回归中使用的该激活函数用于输出分类。

  1. 函数不同
  2. sigmoid存在梯度消失的问题;relu型函数可以有效避免梯度消失的问题

8. SGD,Momentum,Adagard,Adam原理

SGD为随机梯度下降,每一次迭代计算数据集的mini-batch的梯度,然后对参数进行跟新。

Momentum参考了物理中动量的概念,前几次的梯度也会参与到当前的计算中,但是前几轮的梯度叠加在当前计算中会有一定的衰减。

Adagard在训练的过程中可以自动变更学习的速率,设置一个全局的学习率,而实际的学习率与以往的参数模平方和的开方成反比。

Adam利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,在经过偏置的校正后,每一次迭代后的学习率都有个确定的范围,使得参数较为平稳。 链接

9.L1不可导的时候该怎么办

当损失函数不可导,梯度下降不再有效,可以使用坐标轴下降法,梯度下降是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向,假设有m个特征个数,坐标轴下降法进参数更新的时候,先固定m-1个值,然后再求另外一个的局部最优解,从而避免损失函数不可导问题。

使用Proximal Algorithm对L1进行求解,此方法是去优化损失函数上界结果。

10.sigmoid函数特性 alt

#我的求职思考##如何判断面试是否凉了##23届找工作求助阵地##软件开发薪资爆料##互联网没坑了,还能去哪里?#
机器学习算法面经 文章被收录于专栏

介绍秋招面试过程中对机器学习算法、数据挖掘、python语言、C++语言、数据结构的面试题目和基础总结

全部评论
获益匪浅
1 回复 分享
发布于 2024-02-18 22:08 山东
写得很好
1 回复 分享
发布于 2023-10-13 20:31 湖南

相关推荐

05-04 17:20
武汉大学
已注销:技术栈删了,让ai把你的项目丰富化,干的活太少了,像是写了个demo,起码一个项目四点重要内容,内容用技术栈描述,取得了什么进展,简历大部分都留给项目,其他的压缩
如何写一份好简历
点赞 评论 收藏
分享
xdm 早上喝奶茶差点喷出来。事情是这样的,我们班有个哥们儿,简称 L,去年秋招拿了字节sp,专业方向是后端。我们当时都震惊:这哥们儿平时课上从来不发言,期末小组作业基本是划水的那种,刷题平台 commit记录我点进去看过,绿格子稀稀拉拉。但他面试一路绿灯。一面二面三面 hr 面,全过,给的还是sp。当时班级群里恭喜他的、问他经验的、约饭的,热闹了一周。他说自己"运气好,准备充分"。我们都信了,直到三月初他入职。入职第二周开始,班里另一个进字节的同学W(在隔壁组的)开始跟我他的不对劲。一开始是写代码慢,后来写不出来,再后来是组里 mentor 让他fix 一个简单 bug 都搞了一下午没动静。最离谱的是上周。W 说他们大部门搞了个新人分享会,让新人讲一下自己负责模块的设计思路。L 上去讲了 20分钟,全程念稿子,问答环节别人随便问一个"那你这里为什么用 Redis 不用 Memcached",他直接卡 30秒说"这个我回去再确认一下"。会后他 mentor 直接找 leader 谈,leader 找 hr 谈,hr调出了他面试录像,全程对比口型和回答节奏,发现他二三面有大量时长在偷偷看屏幕外(推测开了双机位 AI 答题)。(这段是 W后来转述给我的,他自己也是听他组里同事八卦来的)昨天下班前,W 告诉我L 被辞退了,让他自己走,不走就走仲裁但会发函到学校。L 现在已经回学校了,朋友圈仅三天可见。我说真的,我不是个心眼小的人,但是我看到这个消息的时候真的有种"嗯,挺好"的感觉。去年秋招我投字节后端,简历挂。我准备了八个月,背 八股 + 刷 500 题 +项目改了三版,连面试机会都没拿到。班里这哥们儿凭着一个外挂上岸,最后还是被甩出来了。不是说作弊就一定会被发现,但是当面试拿到的 offer远远超出真实能力的时候,迟早会有这一天。试用期三个月不是给你过家家的,是真的要写代码、要在会议上回答问题、要扛需求的。我现在反而有点同情他。同情他相信"上岸就是终点"。发出来不是为了嘲笑谁,就是想说给那些正在被身边作弊上岸的同学搞得很 emo 的 uu 们听——别急,回旋镖很长,但它一定会回来。你继续刷你的题,写你的项目,背你的八股。该是你的迟早是你的,不是你的早晚还得还回去。xdm 共勉。
牛客12588360...:我不想评论面试方式,作弊是绝对不对的,但是你八股加刷题也不过是个做题小子,他穿帮纯粹是他菜,你也没有高明到哪里去
点赞 评论 收藏
分享
评论
7
77
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务