有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Realworld参数优化

我需要为我的最新研究项目进行参数优化。我有一个算法,目前有5个参数(四个双[0,1]和一个带3个值的标称值)。该算法使用这些参数来计算一些内容,然后我计算精度、召回率和;F测量。一次运行大约需要1,8秒。目前,我正在使用0.1步长来检查每个参数,它显示了全局最大值的大致位置。但我想找到精确的全球最大值。我研究过梯度下降法,但我真的不知道如何将其应用到我的算法中(如果可能的话)。由于我对这类工作非常陌生,谁能给我一点指导,我将如何实现这样一个算法

干杯, 丹尼尔


共 (1) 个答案

  1. # 1 楼答案

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

    在应用像梯度下降这样的算法之前,你必须确保你的参数空间不包含局部最大值,或者至少你的起点接近全局最大值,并且你的步长足够合适,可以让你达到它

    在你的情况下,我建议你从尽可能多的随机抽样开始。这是一种比网格搜索更好的探索参数空间的方法。一旦通过这种方式收集了足够的数据,就可以使用模式查找算法,例如mean shift或其更快的派生算法,或者直接进行优化。因为没有参数空间的雅可比矩阵,所以可以使用Broyden's method迭代逼近它,或者使用secant method,比如BFGS

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