腾讯 Offer 已拿,这 99 道算法高频面试题别漏了,80% 都败在算法上
我自从 2015 年担任算法组 leader,作为面试官面试了不少同学。前前后后面试了超过 200 名同学,其中有不少入职的同学后来发展都不错,也坚定了自己对于选人标准的自信心。
今年 2020 年找工作尤其艰难,我把这些年作为面试官一些重要的面试题整理出来,一共 80 道,希望能够帮助到大家。
为了方便大家,我做了一个归类,一共分成了 6 大类,分别是:机器学习,特征工程,深度学习,NLP,CV,推荐系统。这些知识既是面试中的常见问题,也可以作为大家整理自己思路的参考资料。(需要的同学———【传送门】—免费获取
机器学习理论类:
1. 写出全概率公式 &贝叶斯公式
2. 模型训练为什么要引入偏差(bias)和方差(variance)? 证
3. CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型
4. 如何解决过拟合问题?
5. One-hot 的作用是什么?为什么不直接使用数字作为表示
6. 决策树和随机森林的区别是什么?
7. 朴素贝叶斯为什么“朴素 naive”?
8. kmeans 初始点除了随机选取之外的方法
9. LR 明明是分类模型为什么叫回归
10. 梯度下降如何并行化
11. LR 中的 L1/L2 正则项是啥
12. 简述决策树构建过程
13. 解释 Gini 系数
14. 决策树的优缺点
15. 出现估计概率值为 0 怎么处理
16. 随机森林的生成过程
17. 介绍一下 Boosting 的思想
18. gbdt 的中的 tree 是什么 tree?有什么特征
19. xgboost 对比 gbdt/boosting Tree 有了哪些方向上的优化
20. 什么叫最优超平面
21. 什么是支持向量
22. SVM 如何解决多分类问题
23. 核函数的作用是啥
特征工程类:
1. 怎么去除 DataFrame 里的缺失值?
2. 特征无量纲化的常见操作方法
3. 如何对类别变量进行独热编码?
4. 如何把“年龄”字段按照我们的阈值分段?
5. 如何根据变量相关性画出热力图?
6. 如何把分布修正为类正态分布?
7. 怎么简单使用 PCA 来划分数据且可视化呢?
8. 怎么简单使用 LDA 来划分数据且可视化呢?
深度学习类:
1. 你觉得 batch-normalization 过程是什么样的
2. 激活函数有什么用?常见的激活函数的区别是什么?
3. Softmax 的原理是什么?有什么作用?CNN 的平移不变性是什么?如何实现的?
4. VGG,GoogleNet,ResNet 等网络之间的区别是什么?
5. 残差网络为什么能解决梯度消失的问题
6. LSTM 为什么能解决梯度消失/爆炸的问题
7. Attention 对比 RNN 和 CNN,分别有哪点你觉得的优势
8. 写出 Attention 的公式
9. Attention 机制,里面的 q,k,v 分别代表什么
10. 为什么 self-attention 可以替代 seq2seq
自然语言处理(NLP)类:
1. GolVe 的损失函数
2. 为什么 GolVe 会用的相对比 W2V 少
3. 层次 softmax 流程
4. 负采样流程
5. 怎么衡量学到的 embedding 的好坏
6. 阐述 CRF 原理
7. 详述 LDA 原理
8. LDA 中的主题矩阵如何计算
9. LDA 和 Word2Vec 区别?LDA 和 Doc2Vec 区别
10. Bert 的双向体现在什么地方
11. Bert 的是怎样预训练的
12. 在数据中随机选择 15% 的标记,其中 80%被换位[mask],10%不变、10%随机替换其他单词,原因是什么
13. 为什么 BERT 有 3 个嵌入层,它们都是如何实现的
14. 手写一个 multi-head attention
推荐系统类:
1. DNN 与 DeepFM 之间的区别
2. 你在使用 deepFM 的时候是如何处理欠拟合和过拟合问题的
3. deepfm 的 embedding 初始化有什么值得注意的地方吗
4. YoutubeNet 变长数据如何处理的
5. YouTubeNet 如何避免百万量级的 softmax 问题的
6. 推荐系统有哪些常见的评测指标?
7. MLR 的原理是什么?做了哪些优化?
计算机视觉(CV)类:
1. 常见的模型加速方法
2. 目标检测里如何有效解决常见的前景少背景多的问题
3. 目标检测里有什么情况是 SSD、YOLOv3、Faster R-CNN 等所不能解决的,假设网络拟合能力无限强
4. ROIPool 和 ROIAlign 的区别
5. 介绍常见的梯度下降优化方法
6. Detection 你觉得还有哪些可做的点
7. mini-Batch SGD 相对于 GD 有什么优点
8. 人体姿态估计主流的两个做法是啥?简单介绍下
9. 卷积的实现原理以及如何快速高效实现局部 weight sharing 的卷积操作方式
10. CycleGAN 的生成效果为啥一般都是位置不变纹理变化,为啥不能产生不同位置的生成效果
由此看来算法真的很重要,所以小编在这里给大家分享一份算法大牛的书籍
法工程师的具体分支:
其次,算法工程师的必备技能:
▲ 至少熟悉一门编程语言 C/C++/java/python/R;
▲ 功底;熟练运用各种常用算法和数据结构,有独立的实现能力;
▲ 熟悉数据挖掘算法;
▲ 熟悉机器学习相关知识理论。
▲ 加分项:具有较为丰富的项目实践经验。
好奇的你看到这里,肯定带着大大的疑问:是不是要直接学习这些算法呢?
万丈高楼平地起,任何高深的算法都要从基础算法学起,不可能一口吃个胖子。
所以,初入门的你学习算法还是要从基础开始:
▲ 首先学习一门语言。
例如 C/C++/Java/python,初学者学 C++比较普遍。
▲ 学数据结构。
数据结构书有很多,但是有些教材晦涩难懂,建议看图解多,通俗易懂的书,推荐《趣学数据结构》。
▲ 学算法。
不要直接看《算法导论》,大量证明会让你崩溃。推荐《数据结构与算法经典问题解析》,有问题分析,完美图解,维码详解,实战演练,适合初学者快速掌握经典算法。
接下来,让我们跟随《数据结构与算法经典问题解析》作者的视角,找到学习算法与数据结构的窍门!
话不多说直接上图
如果还在上大学的同学可以先以排序和各种的基本数据结构开始入门。我花了一个星期将八大基础排序和链表/二叉树/栈/队列制作成一份精美的 PDF。
这份 PDF 阅读体验肯定是要比公众号和各大的博客平台的文章要好的。PDF 内容为纯手打!
下面简单介绍一下八大基础排序和基础的数据结构,每种排序的思想和基础的讲解和源码在 PDF 里边有。
需要完整版笔记的小伙伴可以点击此处即可获取
评论