我正在为理论博士研究理论机器学习-具体来说就是转移学习。
出于好奇,为什么要上凸优化课程?
在理论机器学习的研究中,我可以从凸优化中得到什么?
我正在为理论博士研究理论机器学习-具体来说就是转移学习。
出于好奇,为什么要上凸优化课程?
在理论机器学习的研究中,我可以从凸优化中得到什么?
Answers:
机器学习算法始终使用优化。我们将损失或错误最小化,或将某种评分功能最大化。梯度下降是可能在任何机器学习课程中涵盖的“ hello world”优化算法。正是在回归或分类模型的情况明显,但即使有任务,如集群,我们正在寻找一个解决方案最佳适合我们的数据(如k均值最小化的聚类内平方和的)。因此,如果您想了解机器学习算法是如何工作的,那么了解有关优化的更多信息会有所帮助。此外,如果您需要做诸如超参数调整之类的事情,那么您也将直接使用优化。
有人可能会说凸优化不应该是有趣的机器学习,因为,而不是处理凸函数,我们经常会遇到丢失的表面,如下面的一个,那是远远凸。
(来源:https ://www.cs.umd.edu/~tomg/projects/landscapes/和 arXiv:1712.09913)
但是,如在其他答案中所述,凸优化更快,更简单且计算量更少,因此将一个问题“凸化”(使其友好地凸优化)然后使用非凸优化通常更容易。例如,梯度下降算法和类似算法通常用于机器学习(尤其是神经网络)中,因为它们可以“工作”,扩展并在不同的软件中广泛实现,尽管如此,我们也不尽所能获取并有其陷阱。正如Ali Rahimi在NIPS 2017上的演讲所讨论的。
另一方面,诸如进化算法之类的非凸优化算法似乎在ML社区中越来越受到认可,例如,通过神经进化训练神经网络似乎是最近的研究主题(另请参见arXiv:1712.07897)。
我认为这里有两个问题。
我认为@Tim对于为什么要进行优化有很好的答案。我坚决同意,并会推荐任何对机器学习感兴趣的人精通持续优化。由于优化过程/随着时间的推移寻找更好的解决方案,是计算机的学习过程。
我想更多地谈谈为什么我们对凸函数感兴趣。原因很简单:凸优化最容易解决,而且我们有很多可靠的算法可以解决。
但是世界是凸的吗?不。为什么沉迷于凸度?检查这个隐喻
一名警察看到一名醉酒男子在路灯下寻找东西,并询问醉酒者丢失了什么。他说他丢了钥匙,他们俩都在路灯下一起看。几分钟后,警察问他是否确定自己在这里丢了他们,喝醉的人回答,不,他在公园里丢了他们。警察问他为什么要在这里搜身,喝醉的人回答说:“这就是光明所在”。
最重要的一点是,机器学习适用于没有最佳解决方案可用的问题。您能做的最好的就是找到一个很好的近似值。
相反,当您遇到优化问题时,有一个最佳解决方案,但通常无法在合理的时间内或以合理的处理能力找到它。
您使用的工具和算法根本不同。因此,尽管我会说参加优化课程没有直接的好处,但最好还是了解一些相关领域。如果您可以识别优化问题,您就会知道您不应该使用机器学习算法来解决它,而应该使用优化算法来解决。我想说,仅此一项就值得很多。
正如hxd1011所说,凸问题在理论上和(通常)在实践中都更容易解决。因此,即使对于非凸问题,许多优化算法也从“步骤1.将问题简化为凸问题”开始(可能在while循环内)。
非线性寻根也会发生类似的情况。通常,解决方案(例如,使用牛顿法)是“第1步。归结为线性问题,因为我们知道如何解决这些问题”。
如果您的兴趣在于应用于深度学习的(凸)优化(您提到了转移学习,在神经网络的实践中广泛使用)应用程序,我强烈建议您考虑阅读http的第8章(用于训练深度神经网络的优化)。://www.deeplearningbook.org/
讨论了凸优化,以及为什么在应用深度神经网络时还没有如此成功。当然,也许您可以在这一领域进行研究,从而改变当前的共识!
正如我从Jerome H. Friedman那里听到的那样,机器学习中开发的方法实际上本身并不属于机器学习社区。
在我看来,机器学习更像是来自其他领域的各种方法的集合。
从统计学习的角度来看,回归和分类的三个主要问题是:
什么是从中提取近似器的函数族
您如何拉功能的标准是什么
寻找最佳功能的方法是什么
以某种建设性的方式对(1)进行操作-使用数学优化可以如何帮助还不是很明显
以某种建设性的方式对(2)进行操作-很明显,目标就是目标。数学优化可以对此提供帮助。
要以某种建设性的方式对(3)进行操作-您需要进行数学优化。
数学优化包括以下几部分:
还有一些方法可以某种方式处理“随机性”,甚至 “没人知道如何解决随机凸优化”。
非凸优化-通常情况下,人们的意思是连续的目标,但曲率会有所不同。这个星球上的人们不知道如何精确地解决它。实际上,所有方法都可以利用(1)
组合优化-比(2)更为复杂,现在对于您发现的参数甚至无法应用减号运算符。一个例子是决策树中的“区域”。因此,有两种解决方法:a)凸现问题并使用(1)中的方法b)蛮力。不适用于大量参数。c)蛮力但有一些贪婪的步骤。这是CART要做的。
因此,至少我认为我可以建议您:
I)凸优化是大多数优化问题的核心。
II) “ 01:15实际上,与ML或AI相比,优化是更大的课题,但实际上是更大的课题。” (https://www.youtube.com/watch?v=uF3htLwUHn0&t=992s)