极客视点
极客时间编辑部
极客时间编辑部
113242 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:50
登录|注册

应聘机器学习工程师必知的8个基础面试题(上)

讲述:初明明大小:4.41M时长:04:50
文章来源:机器之心(微信公众号:almosthuman2014)
近日,公众号“机器之心”编译了 JP Tech 发表的一篇文章,介绍了他们在面试机器学习相关岗位时可能会提出的一些基础面试问题,并提供了解答方案。以下是重点内容,希望能给你带来参考价值。
问题一:假设深度学习模型已经找到了 1000 万个人脸向量,如何通过查询以最快速度找到一张新人脸?
这个问题涉及到深度学习算法的实际应用,关键点在于索引数据的方法。这是将 One Shot Learning 应用于人脸识别的最后一步,也是最重要的一步。
对于这个问题,你首先应该通过 One Shot Learning 给出人脸识别方法的整体概况。这可以简单地理解成将每张脸转换成一个向量,然后识别新的人脸是寻找最接近于输入人脸的向量。通常,人们会使用有三元组损失(triplet loss)的定制损失函数的深度学习模型来完成这一任务。
但是,如果有图像数量增长,那么在每次识别中都计算与 1000 万个向量的距离可不明智,你需要思考在真实向量空间上索引数据的方法,让查询更加便捷。
这些方法的主要思想是将数据划分成简单的结构,以便查询新数据(可能类似于树结构)。当有新数据时,在树中查询有助于快速找到距离最近的向量。
问题二:对于分类问题,准确度指数完全可靠吗?你通常使用哪些指标来评估你的模型?
针对分类问题的评估方法有很多。准确度是一种很简单的指标,也就是用正确的预测数据除以总的数据。这听起来很合理,但现实情况是,这种度量方式对不平衡的数据问题来说并不够显著。假设你正在构建用于预测网络攻击的预测模型,其攻击请求大约占请求总数的 1/100000。
如果该模型预测所有请求都是正常的,那么其准确率也高达 99.9999%,但在这个分类模型中,这个数字通常是不可靠的。这时,你可以使用混淆矩阵,它会展示数据点实际属于的类别,以及模型预测的类别。
除了表达真正例和假正例指标对应的定义该分类的每个阈值变化之外,还有名为受试者工作特征(ROC)的图表,基于此,你可以知道模型是否有效。
问题三:你怎么理解反向传播?请解释动作机制。
这个问题的目标是测试参加面试的人是否理解神经网络的工作方式。你需要说明以下几点:前向计算是帮助模型计算每层权重的过程,计算会得到一个结果 yp。这时会计算损失函数的值;损失函数值能体现模型的优劣程度,如果这个损失函数不够好,你就需要找到一种能够降低这个损失函数值的方法。这时你就需要使用导数,而反向传播能帮助你计算网络中每一层的导数。基于每一层的导数值,优化器可以通过梯度下降来更新网络的权重。
反向传播会使用链式法则机制或导数函数,从最后一层到第一层计算每一层的梯度值。
问题四:激活函数有什么含义?激活函数的饱和范围是什么?
激活函数的目的是突破神经网络的线性性质。你可以将这些函数简单理解成一种过滤器,作用是决定信息是否可以通过神经元。在神经网络训练期间,激活函数在调整导数斜率方面具有非常重要的作用。
相比于使用线性函数,使用非线性激活函数能让神经网络学习更复杂的函数表征,但为了有效地使用它们,你需要理解非线性函数的性质。大多数激活函数都是连续可微的函数,输出会因为输入的变化而变化。
激活函数的饱和范围很容易理解,就是当输入值变化时输出值不再变化的区间。这个变化区间存在两个问题。
其一是在神经网络的前向方向上,落在激活函数饱和范围内的层的值将会逐渐得到许多同样的输出值,这会导致整个模型出现同样的数据流。这个现象被称为协方差偏移(covariance shifting)。
其二是在反向方向上,饱和范围内的导数为零,由此导致网络几乎无法再学习到任何东西。这就是我们在批归一化问题中提到的要将值的范围设定为零均值的原因。
以上是 JP Tech 提到的前四个机器学习相关岗位基础面试题,其余四个问题及解决方案将在下文继续分享,欢迎持续关注。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 小斧
    机器学习与算法确实很火。
收起评论
显示
设置
留言
1
收藏
72
沉浸
阅读
分享
手机端
快捷键
回顶部