问题标签 [levenberg-marquardt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
113 浏览

c++ - 使用 Eigen 的 Levenberg-Marquardt 的参数边界

我正在使用 Eigen 的 Levenberg-Marquardt 实现,想知道如何为应该优化的参数设置一些界限。

当我将一些 GNU octave 程序迁移到 Eigen 时,我预计可能会有一些边界可以很容易地作为模块的参数提供。

我实现的布局与本示例中的几乎相同。我没有提供 df() 实现,而是使用 Eigen::NumericalDiff 来近似它。

那么如何对提供给最小化()的参数实施一些限制?当离开我的预期范围时,我考虑过将 operator() 中的错误(fvec)设置为一些较高的值,但在一些小型测试中,这导致了奇怪的结果。

0 投票
0 回答
57 浏览

opencv - 如何在 EmguCV 中执行 Levenberg-Marquardt 优化以进行相机自动校准?

一个项目需要 EmguCV/OpenCV 拼接类的某些部分,而无需运行完整的算法。特别是我对自动校准部分感兴趣。我尝试在 EmguCV 中执行的步骤之一是 OpenCV 拼接模块的 EstimateCameraParams 和“Bundle Adjustment Step”。

由于 EmguCV 中的 Stiching 无法访问 OpenCV Stitching 的子模块(需要配置,因此该类没有方法),我必须在 C#/EmguCV 中重新编码detail::BundleAdjusterBasehttps://github.com/opencv/opencv/blob/master /modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp)。

大多数代码都可以,但我需要访问CvLevMarq.

我在 EmguCV 中没有找到任何 Levenberg-Marquardt 参考资料。

我错过了什么还是没有办法在 EmguCV 中调用 OpenCV 求解器?

我尽量不做算法的“BundleAdjuster”部分,但它允许通过自动校准获得纵横比或主点,这真的很有趣。

提前感谢您在此问题上的任何帮助。

0 投票
1 回答
87 浏览

r - R 中的优化:Levenberg-Marquardt 在 minpack.lm 中使用 nls.lm:将“maxiter”重置为 1024

我正在尝试通过使用 Rosenbrock 函数来了解如何nls.lm在 R 库minpack.lm中使用,以查看算法是否在 f(x,y) = (1,1) 处收敛到全局最小值。无论有没有分析雅可比行列式,我都会这样做。在这两种情况下,我都会收到一条警告,告诉我算法已决定将调用中指定的最大迭代次数恢复nls.lm为 1024:

由于我最初的猜测是 (-1.2, 1.0),因此该算法永远不会完全达到 (1,1)。我在 GitHub 上找到了该库的源代码,以下代码行与此处相关:

https://github.com/cran/minpack.lm/blob/master/src/nls_lm.c

为什么最大迭代次数限制为 1024 是否有任何逻辑?有位和 2^10 的东西?我想将该库用于不同的应用程序,但是这个迭代上限可能会阻止这种情况。任何见解将不胜感激。

0 投票
0 回答
42 浏览

r - 通过 R 中的 Huber 损失函数进行优化

我目前正在使用nls.lmR 中的包来优化我的模型。据我从minpack.lm包裹的文档中了解到,只有标准的平方损失可以被接受作为退货。

优化提供的答案非常好并且相当快。但是,我对异常值的权重有疑问,因此想尝试使用 Hubers 损失函数来替代平方损失。我已经尝试了一些标准优化算法,例如 `optim 中的各种选项,但这些方法似乎对我的数据失败。全局优化也不能解决问题,因为我需要优化很多参数。

简而言之,我正在寻找一种优化方法,它允许自定义损失函数(非线性),它也接受初始参数猜测。R中是否有一种方法可以使用非线性迭代重新加权最小二乘法?像这样的东西:https ://en.wikipedia.org/wiki/Iteratively_reweighted_least_squares ?

希望有人可能知道一种方法,任何帮助都会受到好评:)

请注意,我无法分享我的数据/模型,因为不幸的是它们是更大项目的一部分

0 投票
0 回答
18 浏览

levenberg-marquardt - 如何在 Python 中使用 levmar() C 库

我能够成功运行levmar.test(),但是当我尝试运行 dlevmar_der(levmar C 头文件中的一个函数)时,它说该函数不包含 dlevmar_der。谁能指导我如何使用C 库是 python,以及在 python 中使用 C 库的头文件的步骤,我可以执行优化?

PS:Python 的内置函数没有给出令人满意的结果。

0 投票
0 回答
46 浏览

python - 在python中计算雅可比和黑森矩阵

我有一组数据,x 和 y 值,具有 n 个拟合参数。我有一个已知的函数,并且以某种方式涉及 n 个拟合参数。有没有办法对函数进行编码,使其接受任意数量的拟合参数?

我正在尝试编写 levenberg-marquardt 算法以使参数适合数据。我如何使用 numpy 或 scipy 计算关于拟合参数的导数的 hessian 和 jacobian 矩阵?

我试过类似的东西

但是我不知道如何让 scipy 计算每个 P[i] 的梯度