参数估计以最小化运行时间
Parameter Estimation to Minimize Runtime
假设,我有一个算法,其运行时间取决于两个参数。我想找到最小化运行时间的最佳参数集。这两个参数是0到INFINITY范围内的连续double值。
因此,对于两个参数 a、b:我想找到 a 和 b 的最佳值,以最小化运行时间。我认为这是非常标准的做法,但我找不到这方面的好文献。 MLE, Least Squares等文献我找的很少,但是都是讲分布的。
首先动动脑筋,定性地理解那些参数与运行时间之间可能存在的函数关系。这意味着首先要了解可能的最大值的数量和位置、函数的平滑度、渐近行为以及您可以找到的任何其他线索。
然后确定一个合理的值范围,以便对函数值进行采样。如果这些范围非常宽,则最好使用几何级数而不是算术(例如,2 的幂)进行采样。
然后用图形查看器测量和观察函数值并确认您的直觉。这很可能足以发现绝对最大值的粗略位置。如果它能给你最后的改进百分比,那么找到一个准确的位置可能是无用的。最佳位置也很可能取决于特定的数据集,使得准确定位的用处更小。
假设,我有一个算法,其运行时间取决于两个参数。我想找到最小化运行时间的最佳参数集。这两个参数是0到INFINITY范围内的连续double值。
因此,对于两个参数 a、b:我想找到 a 和 b 的最佳值,以最小化运行时间。我认为这是非常标准的做法,但我找不到这方面的好文献。 MLE, Least Squares等文献我找的很少,但是都是讲分布的。
首先动动脑筋,定性地理解那些参数与运行时间之间可能存在的函数关系。这意味着首先要了解可能的最大值的数量和位置、函数的平滑度、渐近行为以及您可以找到的任何其他线索。
然后确定一个合理的值范围,以便对函数值进行采样。如果这些范围非常宽,则最好使用几何级数而不是算术(例如,2 的幂)进行采样。
然后用图形查看器测量和观察函数值并确认您的直觉。这很可能足以发现绝对最大值的粗略位置。如果它能给你最后的改进百分比,那么找到一个准确的位置可能是无用的。最佳位置也很可能取决于特定的数据集,使得准确定位的用处更小。