Jim*_*Jim 9 c++ optimization visual-studio-2010 numerical-methods gradient-descent
我希望运行梯度下降优化来最小化变量实例化的成本.我的程序计算量很大,所以我正在寻找一个快速实现GD的流行库.什么是推荐的库/参考?
听起来您对最小化方法相当陌生。每当我需要学习一组新的数值方法时,我通常都会查看数值食谱。这本书很好地概述了该领域最常见的方法、它们的权衡,以及(重要的是)在哪里查找文献以获取更多信息。这通常不是我停下来的地方,但它通常是一个有用的起点。
例如,如果您的函数成本高昂,那么您的目标是最大限度地减少需要收敛的评估数量。如果您有梯度的解析表达式,那么假设函数及其梯度在感兴趣的领域中表现良好(缺乏奇点),那么基于梯度的方法可能会对您有利。
如果您没有解析梯度,那么您几乎总是最好使用像下坡单纯形这样的方法,该方法仅评估函数(而不是其梯度)。数值梯度的成本很高。
另请注意,所有这些方法都会收敛到局部最小值,因此它们对您最初启动优化器的点相当敏感。全局优化是一个完全不同的野兽。
最后一个想法是,您可以找到的几乎所有用于最小化的代码都相当高效。最小化的真正成本在于成本函数中。您应该花时间分析和优化您的成本函数,并选择一种能够最大限度地减少您需要调用它的次数的算法(下坡单纯形、共轭梯度和BFGS等方法都适用于不同类型的问题)。
就实际代码而言,除了已经提到的其他库之外,您还可以在NETLIB中找到许多不错的例程。大多数例程都在 FORTRAN 77 中,但不是全部;要将它们转换为 C,f2c非常有用。
| 归档时间: |
|
| 查看次数: |
8404 次 |
| 最近记录: |