Realworld参数优化

时间:2012-12-23 17:55:55

标签: java optimization parameters machine-learning

我需要为我的最新研究项目进行参数优化。我有一个算法,目前有5个参数(四个双[0,1]和一个标称3个值)。该算法使用这些参数来计算一些东西,然后我计算精度,召回& FMeasure。单次运行大约需要1,8s。目前我正在以0.1步长的方式浏览每个参数,这显示了大约全局最大值的位置。但我希望找到精确的全局最大值。我已经研究过Gradient Descent,但我真的不知道如何将它应用于我的算法(如果它甚至可能)。请问有人如何实施这样的算法,因为我对这种工作很陌生。

干杯, 丹尼尔

1 个答案:

答案 0 :(得分:3)

你当然可以做得比网格搜索更好。

在应用渐变下降等算法之前,您必须确保您的参数空间不包含局部最大值,或者至少您的起点接近全局最大值,并且您的步长足以引导您进入

在您的情况下,我建议您尽可能多地绘制随机样本。这是探索参数空间比网格搜索更好的方法。以这种方式收集足够的数据后,您可以使用模式查找算法,例如mean shift或其快速衍生产品之一,或直接进行优化。由于您没有参数空间的雅可比行列式,因此可以使用Broyden's method迭代逼近它或secant method,例如BFGS

另请参阅此相关问题:How can I adjust parameters for image processing algorithm in an efficient way?