我正在开发一个可以自动校准激光雷达的应用程序。激光雷达有四个参数( a、b、c、d ),每个参数的范围为-5.0至5.0,步长为0.1。激光雷达可以输出一个名为error.In general,f(a, b, c, d) = error的值。误差值越小,激光雷达的标定效果越好。程序应该找到a、b、c、d,这样error就可以尽可能地最小化。我不知道函数的表达式,所以不能应用梯度下降函数。然而,函数应该是凸的。我可以用有限差分近似梯度,但是得到激光雷达的输出是昂贵的;在线上有很多无梯度优化,但是我应该选择哪种算法。有什么想法吗?
发布于 2022-07-08 23:43:50
您可以从尼尔德-米德方法开始。它从以前的函数评价点中建立了一个单纯形,并反映出它们剔除了最坏的点,选择了一个新的试点。
为了减少函数计算的数量,可以从以前的函数计算中插入一个4D二次函数。然后取这个插值函数的最小值作为下一个估计。重复此过程,直到达到收敛或搜索时间耗尽为止。
在收敛缓慢的情况下,间歇随机重新启动。
可以将变量分隔到允许的范围,也可以惩罚违反限制的变量。
https://stackoverflow.com/questions/72917498
复制相似问题