问题标签 [hessian-matrix]

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 回答
1020 浏览

optimization - norm-1的梯度和粗麻布?

为了解决 MATLAB 中的优化问题,我需要计算以下 norm-1 函数的梯度和 hessian:

这里 x 是参数(n×1 向量),A 是已知的固定矩阵(n×n 矩阵)。有人看过类似的计算来指点我吗?

非常感谢。

0 投票
1 回答
702 浏览

python - theano T.grad() 错误:不是计算图的一部分

代码:

输出:

图的导数怎么不是图的一部分?这就是为什么使用扫描来计算粗麻布的原因吗?

0 投票
1 回答
368 浏览

matlab - hessian 对称和稀疏命令的非常小的数值问题

我在 MATLAB 中使用 IPOPT 来运行优化,我遇到了一些问题,它说:

在查看了我的 Hessian Matrix 之后,我发现它所抱怨的非对称元素非常接近,这里有一个例子:

显然,这些元素足够接近,并且存在一些数字舍入问题或类似问题。此外,当我以 H 作为输入调用 MATLAB 的 issymmetric 函数时,我得到了错误。有没有办法忘记这些非常小的对称差异?

更多信息:

我正在使用优化的 matlabFunction 来实际计算整个粗麻布 (H),然后在将其传递给 IPOPT 之前进行了一些后处​​理:

tril 命令生成一个下三角矩阵,因此这些数字差异不应该发挥作用。因此,问题可能在于它抱怨 sparse 命令传回增加的列索引而不是增加行索引。有没有办法改变这一点,以便它在增加行索引时传回稀疏矩阵?

0 投票
0 回答
1366 浏览

r - 在 polr 中使用 Hessian 计算方差-协方差矩阵

我正在尝试使用函数的 Hessian 矩阵输出来计算 polr 模型的方差-协方差矩阵。这是来自 polr 帮助文件中的示例。

产量:

当我取 Hessian 矩阵的逆时,除了最后一行和最后一列,我得到相同的矩阵,它对应于中|高截距。

产量:

如果我然后尝试使用 Hessian 派生的方差-协方差矩阵 导出系数的标准误差sqrt(diag(solve(house.plr$Hessian))),我最终会得到中 | 高截距的标准误差的不同估计值,我会从summary(house.plr). 有人可以解释这里发生了什么吗?

编辑:下面的 aosmith 评论提供了这个问题的简单答案,vcov.polr它不仅返回逆 Hessian,还涉及估计的阈值。我的困惑,其解释可能对其他人有用,源于这样一个事实,即使用vcov从调查包中的有序逻辑函数返回的对象svyolr返回一个不考虑估计阈值的矩阵。看起来好像vcov.svyolr只是简单地返回 Hessian 的逆矩阵,这不足以在有序逻辑模型中推导方差 - 协方差矩阵(如果我在这方面错了,请纠正我)。假设当我试图在进一步分析中使用它时它确实给我带来了麻烦。(我最终通过从summary.svyolr,它计算正确的 vcov 以确定标准误差。)

为了说明我的意思,我通过重新格式化上面的数据集来继续上面的代码,以便它可以被 使用svyolr,然后尝试使用“vcov”提取 vcov 矩阵:

这将返回一个可以与上面返回的矩阵进行对比的矩阵vcov(house.plr),注意最后一行和最后一列:

0 投票
0 回答
752 浏览

python - 当参数有界时,使用 python 包 numdifftools 计算梯度和粗麻布

我使用 scipy.minimize 最小化了对数似然函数,并且我想计算与参数相关的标准误差。

在参数不受限制的情况下,使用 numdifftools(nd.Gradient 和 nd.Hessian)效果很好。当参数有界时我遇到问题,因为 nd.Gradient 尝试使用未定义函数的参数值超出范围来计算函数。

我的猜测是我应该使用与 step 相关的选项(step_max、step_nom 等),但我不明白它们是如何工作的。谁能帮我了解如何使用它们?

谢谢

0 投票
0 回答
279 浏览

python - 关于矩阵输入的theano中的Hessian

我正在尝试获得theano梯度和粗麻布的矢量化版本,即我想在几个点计算梯度和粗麻布,在矩阵中给出,如下所示:

我有一个功能:

我想用一个命令在多个点计算它的梯度。我可以这样做:

它返回一个矩阵,其中行是在点 (1,2) 和 (3,4) 计算的梯度。我想为粗麻布得到相同的结果(在这种情况下,它将是一个与矩阵相反的 3 维张量,但相同的想法)。以下代码:

返回错误:

我能够使用以下代码获得适当的结果

但它会产生许多不必要的零,并且似乎是一种获得所需结果的低效且“丑陋”的方式。有没有人遇到过类似的问题,或者你能提出什么建议吗?

0 投票
1 回答
1682 浏览

r - Rsolnp 中的警告:解决方案不可靠,因为无法反转 Hessian

我试图了解为什么在尝试使用 solnp 解决此问题时会收到警告消息?以下是我收到的消息 -

以下是代码

0 投票
1 回答
287 浏览

matlab - CVXGEN 程序的任意尺寸

我想解决MatLab使用CVXGEN. 我偏爱CVXGENover CVX,因为CVXGEN它要快得多。特别想解决

其中f(x)是二次形式,并且X是紧凑的、凸的,并且由线性函数定义。问题的大小因运行而异。我想尽可能地自动化这个过程。为了说明,一个 CVXGEN代码示例是:

​此代码输入于cvxgen.com。然后,在这个网站上,我可以生成给我一个唯一编号的 C 代码。然后我可以使用唯一编号将其编译成 MEX 代码。csolve最后,我可以通过运行以下代码从 MatLab调用此 MEX 代码 ( )

但是,此过程需要针对n我要运行的问题的每个维度,我需要转到cvxgen.com、更改n、编译代码,然后运行我的MatLab代码。是否可以让n输入作为参数?这样,我只需要编译一次代码,然后在我的MatLab代码集中params.n = nparams.Q = eye(n,n),然后调用[vars, status] = csolve(params);.

0 投票
0 回答
1412 浏览

r - 使用 Rsolnp 在 R 中使用多个变量进行优化

我之前曾问过这个问题,并想继续跟进,因为我尝试了其他一些方法,但效果不佳。

我本质上是在尝试优化 R 中的 NLP 类型问题,它具有二进制和整数约束。相同的代码如下:

我收到以下警告/错误:

我的理解是,Hessian 是一个稀疏矩阵,因此在反转时可能存在问题?另外,是否有更好的方法来进行这种优化,因为它似乎不是一个复杂的问题,而且我觉得我在这里遗漏了一些相当简单的东西!

问题的描述在这个问题中给出了很好的细节。

任何帮助将不胜感激。

0 投票
0 回答
1145 浏览

python - statsmodel.api fit() 抛出溢出错误

我正在使用逻辑回归进行 Mnist 数字分类,并且正在使用 statsmodel.api 库来拟合参数,但 Logit.fit() 仍然会引发溢出警告。以下是我在 Windows10、p​​ython 2.7 上使用从http下载的库时遇到的错误://www.lfd.uci.edu/~gohlke/pythonlibs/