- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题:我最近的任务是设计一个非线性求解器,但我的求解器没有收敛到正确的解。
**预期**:“最小化(x)”方法应该将我的参数 vector x 减少到最小值。
观察到:在我调用“最小化(x)”之后,我得到一个状态返回,显示 RelativeErrorTooSmall。
问题:有人可以解释一下这个枚举值的含义吗?
文档:关于 Eigen Levenberg Marquardt 类的唯一可用文档基本上是 .h 文件。以下是枚举列表:
enum Status {
NotStarted = -2,
Running = -1,
ImproperInputParameters = 0,
RelativeReductionTooSmall = 1,
RelativeErrorTooSmall = 2,
RelativeErrorAndReductionTooSmall = 3,
CosinusTooSmall = 4,
TooManyFunctionEvaluation = 5,
FtolTooSmall = 6,
XtolTooSmall = 7,
GtolTooSmall = 8,
UserAsked = 9
};
这是头文件的链接:https://eigen.tuxfamily.org/dox/unsupported/NonLinearOptimization_2LevenbergMarquardt_8h_source.html
这是一个之前的堆栈溢出问题,其中包含测试程序: How to use the Eigen unsupported levenberg marquardt implementation?
最佳答案
搜索 .h 文件后发现,此返回代码意味着算法在某个步骤无法声明成功,但在调整该步骤的参数方面进展甚微。
if (delta <= parameters.xtol * xnorm)
return LevenbergMarquardtSpace::RelativeErrorTooSmall;
xnorm 项是通过算法即时计算的。它是对参数在某种绝对意义上倾向于多大的估计。 (最好将问题缩放到参数的绝对值趋于统一。)Parameters.xtol 是一个数字,用户可以将其设置为参数中的“小”差异。典型值是机器效率的平方根。实际上,这是代码中的默认值。
假设库代码是正确的,收敛失败可能是由于以下任何原因造成的:
对函数计算的准确度估计过于乐观。尝试将 Parameters.xtol 设置得更大一些。至少使用 double 。确保所有参数的比例大致相同。
问题条件不好,这意味着 Hessian 在参数空间的某些方向上比其他方向大得多。确保您的参数缩放良好,并至少使用 double 。可能需要使用条件矩阵。这太深了,无法进入这里。
计算出的梯度不能很好地估计损失函数的梯度。如果问题条件良好,则梯度计算或损失函数计算有问题。针对梯度的有限差分估计测试它们。
我拥有自己经过充分测试的超快速解算器。我很想与您取得联系,但 SO 并不热衷于此。
关于c++ - 了解 Levenberg Marquardt 枚举返回。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48213584/
我正在使用 Levenberg-Marquardt algorithm最小化 6 个参数的非线性函数。每次最小化我有大约 50 个数据点,但我没有得到足够准确的结果。我的参数彼此相差几个数量级这一事实
我有一些代码可以使理论预测与实验数据相吻合,我想运行 LMA(Levenberg-Marquardt 算法)以使理论与实验相吻合。然而,计算是非常重要的,每个模型在单个处理器上需要大约 10-30 分
我是一名程序员,想了解 Levenberg–Marquardt 曲线拟合算法的工作原理,以便自己实现。是否有任何好的教程可以详细解释它是如何与作为程序员而不是数学家的读者一起工作的。 我的目标是在 o
问题:我最近的任务是设计一个非线性求解器,但我的求解器没有收敛到正确的解。 **预期**:“最小化(x)”方法应该将我的参数 vector x 减少到最小值。 观察到:在我调用“最小化(x)”之后,我
我尝试基于 Numerical Optimization using the Levenberg-Marquardt Algorithm 在 Julia 上实现用于求解非线性方程的 levenberg
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我通常使用 MATLAB 编写代码,但出于某些原因我决定改用 JAVA 方法。 问题很简单:我想了解如何将以下 MATLAB 代码转换为有效的 JAVA 代码。 在 MATLAB 中,我有一个名为 f
我能够使用 peak-o-mat 将曲线拟合到 x/y 数据集, 如下所示。那是线性背景和 10 条洛伦兹曲线。 因为我需要拟合许多相似的曲线,所以我使用 mpfit.py 编写了一个脚本化的拟合例程
我正在将 Matlab 中使用 Levenberg-Marquardt 训练算法的神经网络代码移植到 Python。我正在使用 Neurolab,我相信 Levenberg-Marquardt 训练算
我正在尝试使用 Matlab 中的 levenberg-Marquardt 最小二乘法将具有四个未知参数的巨大函数拟合到我的数据中。我使用了这个命令: [x, resnorm]=lsqcurvefit
我有一个关于如何在 Python 中使用 Levenberg-Marquardt 优化方法的问题。 SCIPY库里有很多optimization methods . 我尝试了两种方法(Nelder-M
我正在尝试将 Levenberg-Marquardt 算法实现为 Keras 优化器,如所述 here但我有几个问题,最大的一个是这个错误 TypeError: Tensor objects are
我正在尝试用 Java 编写 levenberg marquardt,这是我的代码: while (iter <= 10 || mse < 0.0001) { call.cal
我成功地使用了 Eigen 的 Levenberg-Marquart 类,示例来自:http://techblog.rga.com/determining-indoor-position-using-
我正在尝试最小化以下示例函数: F(x) = f[0]^2(x[0],...,x[n-1]) + ... + f[m-1]^2(x[0],...,x[n-1]) 最小化这种函数的一般方法是 Leven
在相机校准中,我使用 calibrateCamera() 从校准图案的多个 View 中查找相机参数。它恰恰做了两件事: 1) 假设镜头畸变为零,估计封闭形式的初始相机参数。 2) 运行全局 Leve
我正在尝试根据 Manolis Lourakis ( Available here) ) 用 C 语言编写的 Levenberg-Marquardt 算法构建 mex 文件。我已经做了很多搜索,但还没
我在最小化 python 中的复杂非线性函数时遇到了麻烦。该函数实际上是用于拟合实验数据的拟合模型的卡方。为了获得全局最小值,我使用 scipy 中的 basshopping 函数。该函数是 mini
我正在使用 Matlab 中的 lsqcurvefit 函数对一些实验数据进行建模。数据采用特定形状,因此算法只是调整该形状的系数以改变其振幅等。 该模型运行良好并且拟合良好(我计算了卡方)。 Lev
我是一名优秀的程序员,十分优秀!