本文由 「AI前线」原创,原文连接: 跳槽季·机器学习面试不彻底指南
做者|Vincent
编辑|Emily
AI 前线导读:”春节就这么一眨眼过去了,眼看着就到了“金三银四”的跳槽黄金季节了,想必在去年饱经磨砺的你已经有了新的方向和目标,此时正在摩拳擦掌、蓄势待发,世界人工智能将来的发展重任眼看着就要落在了大家的肩上!可是!当大家凭借强大的简历经过了企业的筛选,来到面试环节,面对面试官那深邃而忧郁的目光,你可以招架几个回合?因此,咱们整理了一些机器学习面试前你须要准备的要点,供你参考,干货满满哟~”git
概述github
本文是机器学习面试不彻底指南,由于面试和经验这些东西也每每都是一家之言,可参考,但并不必定就彻底适合你。因此,咱们搜集了一些比较靠谱的经验,整合起来放送给你,但愿可以对你的职业生涯有所帮助。面试
一些善意的提醒算法
相信可以进入面试的朋友,简历必定是优中选优的,因此这部分咱们很少做赘述。可是,当面试官让你当面对简历中的项目经验进行描述的时候,请必定记住一条原则:编程
用可量化的方式去介绍你以前的项目。bootstrap
举个简单的例子:网络
1.曾参与训练了 XX 机器学习系统,取得了不错的成果。架构
2.分别使用 Keras,Tensorflow 和 Node.js 设计并部署了一个深度学习模型,进行目标识别。与传统神经网络(例如 ResNet)相比,该模型具备 1/30 的模型大小,1/3 的训练时间,1/5 的推理时间,以及 2 倍的收敛速度。框架
如何?是否是明显感受到第二个更好?由于它量化了你的贡献,并突出了你使用的特定技术(证实你具备相关专业知识)。仅仅须要简单记录你在实验过程当中所作的事情。但不要夸大,多花一些时间浏览你的简历以及过去的项目,以确保你在面试现场能够解释得很好。机器学习
根据面试的阶段,你可能会被问到不一样的事情,你会被问到几乎全部科技工做中可能要求的东西,好比几个简单的编程问题。
不少时候,看似简单的问题反映了面试官真正关心的东西。 你有解决这个问题的好方法吗? 你收集要求仍是只是作出假设?你测试了你的代码吗? 你是如何选择你的测试用例的? 你作了什么折衷? 你是否意识到须要作一个权衡?
当被问到机器学习的内容时,面试官首先但愿知道你熟悉这个术语,而且知道经常使用的技术框架。 没有必要知道每种算法的全部细节,可是在回答中须要证实你知道各类框架的基本属性。 你还可能会被问到你将如何处理一个特定的问题。
另外,不要陷入假设每一个问题都是机器学习问题的陷阱。 有些面试官常常看到应聘者在回答问题时答非所问,不能由于你懂机器学习,就把全部问题都归结为机器学习的问题。
知识点总结
为了方便各位读者阅读和收藏,咱们为你们总结了一些比较实用的知识点,同时在文章的底部还会附上本文参考的几篇文章的连接,各位读者能够自行取阅。
先看看下面这张图:
这是一位机器学习专家给出的机器学习面试前,一个应聘者须要了解的技术要点。右侧的技术要点从上到下分别为:
左边的彩色字体分别对应了:机器学习研究员、大数据科学家、机器学习工程师、机器学习架构师。右边相同颜色的方框里面包含的,就是这一职位在面试前须要重点准备的科目,若是年后你就要开始面试了,那么能够趁着这段假期,对照着这张图进行查漏补缺。
如下是机器学习面试常见的基础概念。
线性回归
逻辑回归
KNN
给定一个数据点,使用必定的距离度量(例如欧几里德距离)计算 K 个最近的数据点(近邻)。对于分类,能够取大多数近邻的标签;对于回归,咱们采用标签值的均值。
对于 KNN 来讲,咱们不须要训练模型,咱们只是在推理时间内进行计算。这可能在计算上很昂贵,由于每一个测试样本都须要与每一个训练样本进行比较以了解它们有多接近。
有近似的方法能够有更快的推断时间,经过将训练数据集划分红区域。
注意,当 K 等于 1 或其余小数字时,模型容易出现过拟合(高方差),而当 K 等于数据点数或更大的数字时,模型容易出现欠拟合(高误差)。
SVM
决策树
Bagging
为了解决过拟合问题,咱们可使用称为 bagging(bootstrap aggregating)的集成方法,它减小了元学习算法的方差。bagging 能够应用于决策树或其余算法。
这是一个很好的例子:
随机森林
随机森林经过增长一些随机性来进一步改善 bagging。在随机森林中,只随机选择一部分特征来构建树(而不是子采样实例)。好处是随机森林减小了树之间的相关性。
假设咱们有一个数据集。有一个信息增益很高的特征,以及一些预测性较弱的特征。在 bagging 树中,大多数树将在顶部拆分时使用这个预测性很强的特征,所以使得大部分树看起来类似,而且高度相关。与互不相关的结果相比,对高度相关的结果取平均不会大量下降方差。在随机森林中,每一次划分节点咱们只考虑特征的一个子集,并所以经过引入更多不相关的树来进一步减小方差。
在实践中,调整随机森林须要拥有大量的树(越多越好,但须要考虑计算约束)。此外,用 min_samples_leaf(叶节点的样本的最小数量)来控制树大小和过拟合。
特征的重要性:
在决策树中,更重要的特征可能更接近树的顶部。经过计算它在森林中全部树上出现的平均深度,咱们能够获得一个特征对于随机森林的重要性。
Boosting 树
原理
Boosting 树以迭代方式创建在弱学习器身上。在每次迭代中,都会添加一个新的学习器,而全部现有的学习器都保持不变。全部的学习器根据他们的表现(例如,准确性)进行加权,而且在加入弱学习器以后,对数据进行从新加权:错误分类的样例得到更多的权重,而正确分类的样例减小权重。所以,将来的弱学习器会更多地关注以前的弱学习器错误分类的样例。
与随机森林(RF)的区别
XGBoost(极端梯度提高):
XGBoost 使用更正则化的模型来控制过拟合,从而使其具备更好的性能。
Stacking
MLP
MLP,多层前馈神经网络。每一层能够有多个神经元,下一层中每一个神经元的输入是上一层中全部神经元输出的线性或非线性组合。为了训练网络,逐层反向传播偏差。理论上 MLP 能够近似任何函数。
CNN
Conv 层是卷积神经网络的基础结构。Conv 层由一组可学习的滤波器(例如 5 × 5 × 3,宽×高×深)组成。在前向传递期间,咱们将滤波器在输入上滑动(或更准确地说,卷积)并计算点积。当网络反向传播偏差时,再次进行学习。
初始层能够捕捉低级特征(如角度和边缘),然后面的层能够学习前一层低级特征的组合,所以能够表示高级特征,如形状和目标部分。
RNN 和 LSTM
RNN 是神经网络的另外一个范式,有不一样层的神经元,每一个神经元不仅把前一层神经元的输出做为输入,并且把同一层的前一个神经元的输出做为输入。
这看起来很棒,但实际上因为相同矩阵的一系列乘法运算,会形成梯度消失或梯度爆炸,使 RNN 几乎不能运做。为了解决这个问题,咱们可使用 RNN 的一个变种,长短时记忆(LSTM),它可以学习长期的依赖关系。
LSTM 背后的数学算法可能至关复杂,但直观上 LSTM 引入了输入门 - 输出门 - 遗忘门 - 记忆单元(内部状态)
LSTM 模仿人类的记忆过程:忘记旧的东西(旧的内部状态×遗忘门)并从新输入(输入节点×输入门)
word2vec
生成与判别
给定一个训练集,像逻辑回归或感知器这样的算法会试图找到一条直线,即决策边界,将大象和狗分开。而后,将新的动物分类为大象或狗,算法会检查样本在决策边界的哪一边,并据此作出预测。
下面是一种不一样的方法。首先,看大象,咱们能够创建一个大象看起来像什么的模型。而后,看着狗,咱们能够创建一个狗的样子的单独模型。最后,为了对新动物进行分类,咱们能够将新动物与大象模型进行匹配,并将其与狗模型进行匹配,看看新动物看起来更像大象仍是更像咱们在训练集中看到的狗。
参数与非参数
以上是机器学习的不彻底面试指南,也许跟你本身学习的方法和路线会有些许出入,不要担忧,全部的方法都只是参考,真正适合你的,须要你本身去探索,资料求精不求多,存在脑子里面的叫知识,存在硬盘里叫文档。
但愿你的职业生涯一片无悔,加油!
参考文章
更多干货内容,可关注AI前线,ID:ai-front,后台回复「AI」、「TF」、「大数据」可得到《AI前线》系列PDF迷你书和技能图谱。