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


27

我正在为理论博士研究理论机器学习-具体来说就是转移学习。

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

  • 在理论机器学习的研究中,我可以从凸优化中得到什么?


2
目前尚不清楚您是反对凸部,优化部还是两者。
Mehrdad '18年

请注意,您接受的答案显然是错误的。也许您可以再次查看该问题,然后选择一个更有意义的答案。
xji

凸优化和数学优化是构建模型的工具-此技术用于构建模型/执行控制/查找可理解现象的参数,甚至有些不确定性。
bruziuz

机器学习与构建函数近似(如折算方法)有关,并且据您所知,概念选择函数之一可最大程度地减少损失(非凸值甚至是最差的指标变量),因此ML在非凸优化中发挥了很好的作用。
bruziuz

FYI“凸优化不能用于深学习- S.Boyd” - youtu.be/uF3htLwUHn0?t=2810
bruziuz

Answers:


59

机器学习算法始终使用优化。我们将损失或错误最小化,或将某种评分功能最大化。梯度下降是可能在任何机器学习课程中涵盖的“ hello world”优化算法。正是在回归或分类模型的情况明显,但即使有任务,如集群,我们正在寻找一个解决方案最佳适合我们的数据(如k均值最小化的聚类内平方和的)。因此,如果您想了解机器学习算法是如何工作的,那么了解有关优化的更多信息会有所帮助。此外,如果您需要做诸如超参数调整之类的事情,那么您也将直接使用优化。

有人可能会说凸优化不应该是有趣的机器学习,因为,而不是处理凸函数,我们经常会遇到丢失的表面,如下面的一个,那是远远凸

现实生活中非凸损失情况的示例。

(来源:https ://www.cs.umd.edu/~tomg/projects/landscapes/arXiv:1712.09913

但是,如在其他答案中所述,凸优化更快,更简单且计算量更少,因此将一个问题“凸化”(使其友好地凸优化)然后使用非凸优化通常更容易。例如,梯度下降算法和类似算法通常用于机器学习(尤其是神经网络)中,因为它们可以“工作”,扩展并在不同的软件中广泛实现,尽管如此,我们也不尽所能获取并有其陷阱。正如Ali Rahimi在NIPS 2017上的演讲所讨论的。

另一方面,诸如进化算法之类的非凸优化算法似乎在ML社区中越来越受到认可,例如,通过神经进化训练神经网络似乎是最近的研究主题(另请参见arXiv:1712.07897)。


5
这个答案似乎没有解决“凸”问题
Haitao Du

@ hxd1011我对此发表了评论。
蒂姆

好答案!真正解决了对ML至关重要的优化,以及如何通过使用与梯度下降一起使用的凸逼近来简化ML。
ChuckCottrill

这应该是公认的答案。
Jan Kukacka,

11

我认为这里有两个问题。

  • 为什么要研究优化
  • 为什么凸优化

我认为@Tim对于为什么要进行优化有很好的答案。我坚决同意,并会推荐任何对机器学习感兴趣的人精通持续优化。由于优化过程/随着时间的推移寻找更好的解决方案,是计算机的学习过程。

我想更多地谈谈为什么我们对凸函数感兴趣。原因很简单:凸优化最容易解决,而且我们有很多可靠的算法可以解决。

但是世界是凸的吗?不。为什么沉迷于凸度?检查这个隐喻

一名警察看到一名醉酒男子在路灯下寻找东西,并询问醉酒者丢失了什么。他说他丢了钥匙,他们俩都在路灯下一起看。几分钟后,警察问他是否确定自己在这里丢了他们,喝醉的人回答,不,他在公园里丢了他们。警察问他为什么要在这里搜身,喝醉的人回答说:“这就是光明所在”。


2
但隐喻地,这就是为什么您要使用手电筒的原因。在黑暗中搜索密钥几乎是不可能的,因此您可以将问题改编成自己知道的解决方法。如果您要解决非凸算法的问题,并且想出一个耗资300万美元的解决方案,而我使用凸优化来解决一个类似的问题,请回答我的问题,找到解决成本为2的非凸问题的解决方案百万美元,我找到了一个更好的答案。
prosfilaes

这个答案在很多层面上都是有缺陷的。将凸分析与路灯效果进行比较是错误的。我建议您参考博伊德(Boyd)和范登贝格(Vandenberghe)的入门教材《凸优化》,以了解有关该主题的更多信息。
Digio

2

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

相反,当您遇到优化问题时,有一个最佳解决方案,但通常无法在合理的时间内或以合理的处理能力找到它。

您使用的工具和算法根本不同。因此,尽管我会说参加优化课程没有直接的好处,但最好还是了解一些相关领域。如果您可以识别优化问题,您就会知道您不应该使用机器学习算法来解决它,而应该使用优化算法来解决。我想说,仅此一项就值得很多。


33
是的,在机器学习中,我们正在寻找最佳的近似值。但是,您说这两者“根本不同” 是错误的。机器学习算法使用优化来最小化损失函数,并根据数据和目标找到最佳参数。当您调整超参数时,您正在寻找它们的最佳组合。在每种情况下,您都在最大化或最小化某些东西以实现您的目标,因此您正在使用某种优化。
蒂姆

@Tim:是的,我应该用不同的措词。
Toby

17
如果您同意,那么您可能应该改写它。
蒂姆

19
这个答案显然是错误的。大量的机器学习问题归结为优化问题。
恢复莫妮卡

2
在“优化问题中通常找不到最佳解决方案”的说法是错误的。尤其是在凸优化的情况下(这是OP所要解决的),可以轻松找到最优解(例如,随着学习率下降的梯度下降,可以保证收敛到凸函数的最优值)。最大的问题是机器学习中的许多问题都是非凸的
Jan Kukacka

2

正如hxd1011所说,凸问题在理论上和(通常)在实践中都更容易解决。因此,即使对于非凸问题,许多优化算法也从“步骤1.将问题简化为凸问题”开始(可能在while循环内)。

非线性寻根也会发生类似的情况。通常,解决方案(例如,使用牛顿法)是“第1步。归结为线性问题,因为我们知道如何解决这些问题”。


1

如果您的兴趣在于应用于深度学习的(凸)优化(您提到了转移学习,在神经网络的实践中广泛使用)应用程序,我强烈建议您考虑阅读http的第8章(用于训练深度神经网络的优化)。://www.deeplearningbook.org/

讨论了凸优化,以及为什么在应用深度神经网络时还没有如此成功。当然,也许您可​​以在这一领域进行研究,从而改变当前的共识!


0

正如我从Jerome H. Friedman那里听到的那样,机器学习中开发的方法实际上本身并不属于机器学习社区。

在我看来,机器学习更像是来自其他领域的各种方法的集合。

从统计学习的角度来看,回归和分类的三个主要问题是:

  1. 什么是从中提取近似器的函数族

  2. 您如何拉功能的标准是什么

  3. 寻找最佳功能的方法是什么


以某种建设性的方式对(1)进行操作-使用数学优化可以如何帮助还不是很明显

以某种建设性的方式对(2)进行操作-很明显,目标就是目标。数学优化可以对此提供帮助。

要以某种建设性的方式对(3)进行操作-您需要进行数学优化。


数学优化包括以下几部分:

  1. 凸优化/凸分析-数学上非常酷的领域。不可区分性不是问题。凸函数的泛化有50个,在应用上,两个以上的应用是拟凸和对数凹的。

还有一些方法可以某种方式处理“随机性”,甚至 “没人知道如何解决随机凸优化”。

  1. 非凸优化-通常情况下,人们的意思是连续的目标,但曲率会有所不同。这个星球上的人们不知道如何精确地解决它。实际上,所有方法都可以利用(1)

  2. 组合优化-比(2)更为复杂,现在对于您发现的参数甚至无法应用减号运算符。一个例子是决策树中的“区域”。因此,有两种解决方法:a)凸现问题并使用(1)中的方法b)蛮力。不适用于大量参数。c)蛮力但有一些贪婪的步骤。这是CART要做的。


因此,至少我认为我可以建议您:

I)凸优化是大多数优化问题的核心。

II) “ 01:15实际上,与ML或AI相比,优化是更大的课题,但实际上是更大的课题。” https://www.youtube.com/watch?v=uF3htLwUHn0&t=992s


根据本网站的标准,这只是一个简短的回答-您认为您可以对此进行扩展吗?否则,它可能最适合作为注释。
Silverfish '18年

好。我将进行扩展,但是实际上可以写一篇有关与各个领域的联系的文章。实际上,我问了斯蒂芬·博伊德(Stephen P. Boyd)有关人们以前和何时思考的问题– youtu.be/XV1E-Jnc4SU?t=242。他说,当今世界已经破裂。
bruziuz

1
@Silverfish我更新了,现在是长文本而不是一句话。
bruziuz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.