我正在为我的博士学位研究理论机器学习——具体来说,是关于迁移学习。
出于好奇,我为什么要学习凸优化课程?
我可以在理论机器学习的研究中使用凸优化的哪些内容?
我正在为我的博士学位研究理论机器学习——具体来说,是关于迁移学习。
出于好奇,我为什么要学习凸优化课程?
我可以在理论机器学习的研究中使用凸优化的哪些内容?
机器学习算法一直都在使用优化。我们最小化损失或错误,或最大化某种评分函数。梯度下降是可能涵盖在任何机器学习课程中的“hello world”优化算法。这在回归或分类模型的情况下是显而易见的,但即使对于诸如聚类之类的任务,我们也在寻找一种最适合我们的数据的解决方案(例如, k-means最小化了集群内的平方和)。因此,如果您想了解机器学习算法的工作原理,了解更多关于优化的知识会有所帮助。而且,如果你需要做超参数调优之类的事情,那么你也是直接使用优化。
有人可能会争辩说,凸优化不应该对机器学习那么有趣,因为我们经常遇到像下面这样的损失表面,而不是处理凸函数,它远离凸函数。
(来源:https ://www.cs.umd.edu/~tomg/projects/landscapes/和 arXiv:1712.09913)
尽管如此,正如其他答案中提到的,凸优化更快、更简单且计算量更少。例如,梯度下降和类似的算法通常用于机器学习,尤其是神经网络,因为它们“工作”、规模化,并且在不同的软件中广泛实施,然而,它们并不是我们能得到的最好的,也不是最好的。陷阱,正如Ali Rahimi 在 NIPS 2017 上的演讲所讨论的那样。
另一方面,进化算法等非凸优化算法似乎在 ML 社区中获得越来越多的认可,例如通过神经进化训练神经网络似乎是最近的研究课题(另见arXiv:1712.07897 )。
我认为这里有两个问题。
我认为@Tim 对为什么要优化有一个很好的答案。我强烈同意并建议任何对机器学习感兴趣的人掌握持续优化。因为优化过程/随着时间的推移找到更好的解决方案,是计算机的学习过程。
我想更多地谈谈为什么我们对凸函数感兴趣。原因很简单:凸优化“更容易解决”,而且我们有很多可靠的算法要解决。
但是世界是凸的吗?不,为什么要沉迷于凸度?检查这个比喻
一个警察看到一个醉汉在路灯下找东西,就问醉汉丢了什么。他说他丢了钥匙,他们俩一起在路灯下看。几分钟后,警察问他是否确定他把他们丢在这里了,醉汉回答说,不,他在公园里丢了他们。警察问他为什么要在这里搜查,醉汉回答说:“这里有灯”。
正如 hxd1011 所说,凸问题更容易解决,无论是理论上还是(通常)在实践中。因此,即使对于非凸问题,许多优化算法也是从“步骤 1。将问题简化为凸问题”(可能在 while 循环内)开始的。
非线性寻根也会发生类似的事情。通常解决方案(例如,使用牛顿法)是“第 1 步。简化为线性问题,因为我们知道如何解决这些问题”。
最重要的一点是,机器学习适用于没有最佳解决方案的问题。你能做的最好的事情就是找到一个好的近似值。
相反,当您遇到优化问题时,虽然存在最优解,但通常无法在合理的时间内或以合理的处理能力找到它。
您使用的工具和算法根本不同。因此,虽然我会说学习优化课程并没有直接的好处,但了解一些相关领域总是好的。如果你能识别出一个优化问题,你就会知道你不应该用机器学习算法来解决它,而是用优化算法来解决。我要说的是,仅这一点就很有价值。