我正在寻找运行梯度下降优化以最小化变量实例化的成本。我的程序在计算上非常昂贵,所以我正在寻找一个可以快速实现 GD 的流行库。推荐的图书馆/参考资料是什么?
问问题
10905 次
4 回答
5
听起来您对最小化方法相当陌生。每当我需要学习一组新的数值方法时,我通常会查看数值食谱。这本书很好地概述了该领域最常见的方法、它们的权衡,以及(重要的是)在哪里可以查看文献以获取更多信息。它通常不是我停下来的地方,但它通常是一个有用的起点。
例如,如果您的函数成本很高,那么您的目标是最小化需要收敛的评估次数。如果您有梯度的解析表达式,那么基于梯度的方法可能对您有利,假设函数及其梯度在感兴趣的域中表现良好(缺乏奇异性)。
如果您没有分析梯度,那么您几乎总是最好使用仅评估函数(而不是其梯度)的下坡单纯形法。数值梯度很昂贵。
另请注意,所有这些方法都将收敛到局部最小值,因此它们对您最初启动优化器的点相当敏感。全局优化是完全不同的野兽。
最后的想法是,您可以找到的几乎所有用于最小化的代码都将相当有效。最小化的实际成本在成本函数中。您应该花时间分析和优化您的成本函数,并选择一种算法来最大限度地减少您需要调用它的次数(下坡单纯形法、共轭梯度法和BFGS等方法都适用于不同类型的问题)。
在实际代码方面,除了已经提到的其他库之外,您还可以在NETLIB找到很多不错的例程。大多数例程都在 FORTRAN 77 中,但不是全部;要将它们转换为 C,f2c非常有用。
于 2012-07-18T03:38:25.937 回答
2
尝试对学生免费提供的CPLEX 。
于 2012-07-16T23:26:59.050 回答