Hulu的面试题系列
和Hulu的自制剧一样
追下去才更会发现它的魅力哦~
今天的主题是
【优化简介】
引言
优化是应用数学的一个分支,也是机器学习的核心组成部分。有文章[1] 认为,
机器学习算法 =模型表征+ 模型评估+ 优化算法
其中优化算法所做的事情就是在模型假设空间中找到模型评估指标最好的模型。不同的模型假设、不同的评估指标,对应的优化算法都不尽相同,例如经典的SVM(线性分类模型+ 最大间隔)、逻辑回归(线性分类模型+ 交叉熵)、CART(决策树模型+ 基尼纯度)等。
随着大数据和深度学习的迅猛发展,在实际应用中我们面临的大多是大规模、高度非凸的优化问题,这给传统的基于全量数据、凸优化的优化理论带来巨大的挑战。如何设计适用于新场景的高效、准确的优化算法成为近年来的研究热点。虽然优化是一门能够追溯到拉格朗日、欧拉的“古老”学科,但是大部分能够用于训练深度神经网络的优化算法直到最近几年才被提出,例如Adam算法[2] 等。
目前大部分机器学习工具已经内置了常用的优化算法,所以我们实际只需要一行代码即可完成调用,省去了实现的烦恼。但鉴于优化算法在机器学习中的重要作用,我们认为了解优化算法的原理还是很有必要的,也许在解决实际问题的过程中你也能提出更好的求解算法呢。
我们从一道简单的题开始这段激动人心的优化之旅吧。
“梯度验证”
场景描述
为了求解一个优化问题,最重要的操作是计算目标函数的梯度。在一些机器学习的应用中,例如深度神经网络,目标函数的梯度公式非常复杂,需要验证自己写出的实现代码是否正确。
问题描述
假设你需要求解优化问题
并且用代码实现了求目标函数值和求目标函数梯度的功能。问如何利用求目标函数值的功能来验证求目标函数梯度的功能是否正确?
先验知识
线性代数,微积分
解答和分析
参考文献
[1] Domingos, Pedro. "A few useful things to know aboutmachine learning." Communications of the ACM 55.10 (2012): 78-87.
[2] Kingma, Diederik, and Jimmy Ba. "Adam:A method for stochastic optimization." arXiv preprint arXiv:1412.6980(2014).
下一题预告
【不均衡样本集的处理】
场景描述
在训练分类模型时,经常会遇到样本不均衡的问题。对于很多分类算法,直接采用不均衡的样本集进行训练学习会存在一些问题。例如,对于正负样本比例达到1:99的二分类问题,分类器简单地将所有样本都判为负样本就能达到99%的正确率,这显然并不是我们想要的,我们想让分类器在正样本和负样本上都有足够的准确率和召回率。
问题描述
对于二分类问题,当训练集中正负样本不均衡时,如何处理数据以更好地训练分类模型?
欢迎留言提问或探讨
关注“Hulu”微信公众号
点击菜单栏“机器学习”获得更多系列文章