参考: 字节|算法|面经|2020| - leetcode 字节跳动data广告推荐算法实习面试经验 - leetcode 记录一次失败的字节跳动面试「算法」- leetcode 字节跳动丨算法实习丨面经已offer丨2021丨- leetcode 字节跳动算法岗武功秘籍(下)- 知乎 字节跳动丨算法工程师丨搜索方向丨面经 - leetcode 字节跳动 | 广告算法 | 暑假实习|2021| - leetcode 字节跳动 头条 算法 面经 已拿offer意向书 - 牛客网 春招算法面经 - 牛客网 字节跳动抖音广告算法社招三面凉经 字节安全风控算法暑假实习面经,许愿offer 2021 算法暑期实习申请 个人面经汇总 春招面经 字节AI nlp算法实习面经 已拿offer
开场
自我介绍(1min)
姓名,年龄,本科和硕士学校,专业,相关经历,来这里实习的原因。
项目经历介绍(言简意赅)
- 实验室介绍
- cv转推荐的原因
- 读研选择cv的原因
- 自己的优点和缺点是什么?优势是什么?
基础知识
- CNN中感受野/权值共享
- 交叉熵的公式
- 模型蒸馏的损失函数,T 调参
- Resnet理解
- Resnet相比全连接什么区别
- Alexnet/VGG/Densenet/Googlenet
- 什么是梯度消失/爆炸
- 有什么方法能解决梯度消失/梯度爆炸
- XGBOOST原理/理解(正则化项的参数,基分类器,分裂准则)
- 特征选择的方法
- 如何避免过拟合
- XGBOOST理解/损失函数/正则怎么算
- XGBOOST与GBDT对比/ Random Forest理解/Boosting与Bagging对比
- 为什么XGBOOST在大赛上表现很好/与GBDT相比优势
L1、L2的区别, L1为什么图像是菱形
我说菱形可以用取点值画出来,面试官问怎么取点,我就有点懵住了,面完才想起来菱形应该是 |x| + |y| = 1 的函数图像
梯度下降系列算法有哪些
我有点蒙住了,后来才想起来应该问问 momentum adam 之类的算不算
xgb介绍一下
- 你知道有哪些损失函数?
- softmax 与 二分类 比有什么特点
- auc 介绍一下,给出计算公式
xgb怎么并行运算
(除了自带的并行找特征分裂点,还说了一般模型的按数据和按特征并行)但是面试官一直追问详细的并行方法。。。
有哪些常见的模型优化算法(优化器 SGD, Adam)
- adam公式写一下(同时介绍了adam是momentum和RMSprop的结合)
- RMSprop为什么比adgrad好?(答:利用了系数维护梯度平方,不是简单求和)
- 为什么 adagrad 简单求和不好?
- 深度学习四种归一化方法
- 激活函数 relu, leakyrelu
- 介绍Transformer结构, self-attention怎么做的, mask是怎么做的(源码怎么实现的)?
- 你了解哪些解决不均衡样本的loss函数?
- 介绍AUC指标
- ROC曲线的横纵轴是什么
- AUC是否对正负样本比例敏感
- 数据集不平衡的处理方法
- 用了哪些数据增强的方法
- 剪枝的原理,为什么多头attention剪枝有用
- transformer的并行,encoder decoder的细节结构
- 进程线程的区别?进程和线程相比有什么好处?
- 用户态和内核态
- pyhton的 is 和 == 有什么区别?
python的class在继承父类时,super的作用是什么?
介绍一下优化函数
- 交叉熵是什么?式子怎么写?
- 卷积网络了解吗?
- 池化操作是什么?
- max-pooling 的反向传播怎么做?
- Iou、mIou
- 增大感受野
- 什么是深度可分离卷积
- 数据分布不均衡怎么办?模型选择,以及损失函数选择(比赛项目里涉及到了)
- 小样本学习
- CRF
- GCN 了解吗,讲一讲
- C++ 构造函数,虚函数
- C++ 熟练度与代码量,Python几个基础问题
- 项目/比赛/论文 中遇到的困难讲述一下,如何解决这些问题,以及收获
- python GIL
- C++ static关键词的作用
初始化参数列表有什么用
收敛时,train_loss 和 valid_loss 的变化用什么loss处理的样本不均衡,为什么,讲讲原理
- 讲下 SVM;你怎么做多分类的;既然毕业设计主要用到了应该毕竟熟练,公式推一下(卒。。。。。所以写了的东西一定要自己深入搞一下,不然不如不写)
- 医学项目落地了吗;效果如何;数据集怎么采集和处理的;模型如何选取的;怎样做的集成;为什么使用了多任务,具体怎么想怎么做的。。。。。
比赛经历,收获是什么
K-fold怎么知道模型过拟合了,如何应对过拟合
- BN怎么做,原理
- 讲了几个backbone,resnet,Xception
- 1x3x1 与3x3卷积比较
- 多尺度的好处
为什么残差学习有效(这个答比较乱,,)
了解CUDA吗?CUDA Stream、CUDA程序的原理、线程模型和内存模型?
进程和线程的关系?优缺点?线程的通信方式?
进程分配独立的系统资源,线程共享进程的资源。互斥锁、信号量、共享内存、事件等等
单核CPU中的多线程是否需要线程锁?
需要,CPU中线程是以时隙为单位交替执行的。
- 介绍我的CV比赛项目
- 介绍比赛中的有用的trick有哪些
- 介绍一下 transformer 的原理
为什么要用mask?
padding mask和sequence mask。为什么要sequence mask?防止信息穿越
bert的两种预训练方式
神经网络参数如何初始化(Xavier 初始化、He 初始化)
- Dropout 在 forward 里面怎么做
- L1 和 L2 正则化的区别
AUC 是什么,写一下代码
CART了解吗?怎么做回归和分类的?
- 哈希表了解吗?有哪些解决冲突方法?
- 堆空间栈空间了解吗?
- 机器学习中一般怎么衡量模型效果?auc值怎么理解?
- 怎么衡量两个分布的差异?KL散度和交叉熵损失有什么不同?关系是啥?
- 怎么理解最大似然估计?
- 说下红黑树叭,怎么插入的?
- 简单一点的,比如AVL树呢?
- python的GIL
- python里的多线程,怎么让它占满核呢?
- c++的虚函数和虚继承
- logistic 回归里面,输出的那个0-1之间的值,是概率值吗?你看它又叫对数几率回归,怎么理解几率这个概念?
比较下随机森林 RF 和GBDT
都是集成方法,分别是Bagging和Boosting,并行和串行。GBDT是残差学习角度。
GBDT具体细节大致说了下思路,感觉答的不是很详细
GBDT可以并行吗?
原理上是不行的,这也是训练过程比RF慢的原因。但是XgBoost作为GBDT的一种工程实现方法,在决策树的构建过程中加入了部分并行技巧,加快了速度。
GBDT和XgBoost的区别是什么呢?
XgBoost是GBDT的一个工程实现。 1)在树的构建过程中加入了一些并行技巧; 2)GBDT本身是没有预剪枝等过程的,XgBoost在构建的过程中加入了一些正则,起到了缓解过拟合的作用。
随机森林的随机怎么理解?体现在哪里?
决策树了解吗?
知道的有ID3,C4.5,CART树,分别用信息增益,信息增益比,基尼系数作为启发函数。
写出信息增益的表达式
代码写一个决策树,给定数据,启发函数是信息增益,假设所有特征的值都是数值类型的定义节点类、构建节点、选取当前节点的最优划分特征(计算所有特征的信息增益)、数据划分、构建子节点、考虑停止划分的条件。
花了好长时间写了个代码框架,然后和面试官讲了思路。
写的决策树是几叉树?
暂时考虑的是有多少种不同的取值就有多少个分支,意识到这肯定是不对的,优化的话可以将所有取值进行划分,比如二划分就可以改成二叉树。
决策树如何处理缺失值,是否敏感?
- lightgbm和xgboost的区别
- 设计能适应测试集里有缺失值的训练集没有的GBDT, 要求不能从填充数据的角度来做
- 梯度消失/爆炸产生原因
- 怎么解决梯度消失问题?
- 怎么解决梯度爆炸问题?
- 批量归一化的思想,还了解其他归一化吗?
- 说下平时用到的深度学习的trick
- 说下adam的思想
- Adam和Adagrad的区别
- 正则化的本质和作用是什么
- 介绍一下你了解的优化器和各自的优缺点
设计一个在CNN卷积核上做dropout的方式
ResNet的结构特点以及解决的问题是什么?
ResNet之前,大多认为深度越深,性能越好实际上不是,会出现信息消逝的情况。ResNet提出了“捷径”概念,将浅处的输出牵到深处,形成一个残差,相当于把信息又往深了传递了一下
了解BN吗?
为了解决网络中数据分布变化大,学习过程慢的问题。采用标准化,又引入两个可学习的参数来重建浅层网络学到的分布。
- 写逻辑回归的logloss损失函数
- 逻辑回归损失函数可以用mse吗(从梯度角度)
- 逻辑回归建模,如果只有9个正样本,一个负样本,那么有一列特征,这个特征对于的权重是正还是负
智力题/数学题
- 一根木棍分成3份,围成三角形的概率?
- 三门问题:有三扇关闭着的门,其中一扇门的后面有一辆汽车,另外两扇门后面各藏有一只山羊,选中后面有车的那扇门即可赢得汽车,否则就不能赢得任何奖品。当参赛者选定了一扇门,但未开启它的时候,节目主持人开启剩下两扇门的其中一扇,因为主持人知道哪扇门后面有汽车,主持人仅打开后面有山羊的一扇门,露出其中一只山羊。随后,主持人会问参赛者要不要换另一扇仍然关闭着的门?
答:如下图所示,若选择换门,则选中汽车的概率为 1/3+1/3=2/3;若选择不换门,则选中汽车的概率为为 1/3
- 甲扔n次骰子,取其中最大的点数作为它的最终点数,乙扔一次骰子得到点数,求乙的点数大于甲的概率
- 某种病的发病率为1/100,某种检测该病的技术检测正确率为99/100,现有一人被检测到生病的概率为p,求他真实生病的概率是多少?
- 在上一问的基础上,现在连续两次检测为有病才会停止检测,求检测次数的期望值。
- 已知var(x),var(y),E(x),E(y)求 Var(x*y)
- 54 张牌分三份,大小王在其中一堆的概率
答:设分为 A,B,C 三份,假设大王在 A,那么 A 还有 17 张牌,总共还有 53 张牌,因此小王在 A 的概率为 17/53