为什么要研究用于理论机器学习的凸优化?

机器算法验证 机器学习 优化 凸的 迁移学习
2022-02-10 22:25:38

我正在为我的博士学位研究理论机器学习——具体来说,是关于迁移学习。

  • 出于好奇,我为什么要学习凸优化课程?

  • 我可以在理论机器学习的研究中使用凸优化的哪些内容?

4个回答

机器学习算法一直都在使用优化。我们最小化损失或错误,或最大化某种评分函数。梯度下降是可能涵盖在任何机器学习课程中的“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 步。简化为线性问题,因为我们知道如何解决这些问题”。

最重要的一点是,机器学习适用于没有最佳解决方案的问题。你能做的最好的事情就是找到一个好的近似值。

相反,当您遇到优化问题时,虽然存在最优解,但通常无法在合理的时间内或以合理的处理能力找到它。

您使用的工具和算法根本不同。因此,虽然我会说学习优化课程并没有直接的好处,但了解一些相关领域总是好的。如果你能识别出一个优化问题,你就会知道你不应该用机器学习算法来解决它,而是用优化算法来解决。我要说的是,仅这一点就很有价值。