本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

Hessian 矩阵

fminunc Hessian 矩阵

无约束问题的 Hessian 矩阵是由目标函数 f 的二阶导数组成的矩阵:

Hessian Hij=2fxixj.

  • 拟牛顿算法 - fminunc 在解处返回估计的 Hessian 矩阵。它通过有限差分来计算估计值。

  • 信赖域算法 - fminunc 在倒数第二个迭代中返回一个 Hessian 矩阵。

    • 如果您在目标函数中提供 Hessian 矩阵,fminunc 会返回此 Hessian 矩阵。

    • 如果您提供 HessMult 函数,fminunc 将从 HessMult 函数返回 Hinfo 矩阵。有关详细信息,请参阅 fminunc options 表的 trust-region 部分中的 HessMult

    • 否则,fminunc 将基于梯度通过稀疏有限差分算法返回一个逼近矩阵。

    此 Hessian 矩阵对于倒数第二个迭代是准确的。然而,倒数第二个迭代可能并不接近最终点。

    trust-region 算法在倒数第二个点返回 Hessian 矩阵的原因是为了提高效率。fminunc 在内部使用 Hessian 矩阵来计算其下一迭代步。当 fminunc 达到停止条件时,它不需要计算下一迭代步,因此不会计算 Hessian 矩阵。

fmincon Hessian 矩阵

约束问题的 Hessian 矩阵是拉格朗日 Hessian 矩阵。对于目标函数 f、非线性不等式约束向量 c 以及非线性等式约束向量 ceq,拉格朗日函数为

L=f+iλici+jλjceqj.

λi 是拉格朗日乘数;请参阅一阶最优性度量Lagrange Multiplier Structures。拉格朗日方程的 Hessian 矩阵公式为

H=2L=2f+iλi2ci+jλj2ceqj.

fmincon 提供四种算法和几个选项来计算 Hessian 矩阵,如 fmincon Trust Region Reflective Algorithmfmincon Active Set Algorithmfmincon Interior Point Algorithm中所述。fmincon 可返回以下计算的 Hessian 矩阵:

  • active-setsqp 算法 - fmincon 返回它在倒数第二个迭代中计算的 Hessian 矩阵逼近。fmincon 会在其迭代过程中计算在解处的 Hessian 矩阵的拟牛顿逼近。一般情况下,这种逼近并不在每个分量上都与真正的 Hessian 矩阵相匹配,而是仅在某些子空间中匹配。因此,fmincon 返回的 Hessian 矩阵可能不准确。有关 active-set 计算的详细信息,请参阅 SQP Implementation

  • trust-region-reflective 算法 - fmincon 返回它在倒数第二个迭代中计算的 Hessian 矩阵。

    • 如果您在目标函数中提供 Hessian 矩阵,fmincon 会返回此 Hessian 矩阵。

    • 如果您提供 HessMult 函数,fmincon 将从 HessMult 函数返回 Hinfo 矩阵。有关详细信息,请参阅 fmincon options 中的信赖域反射算法

    • 否则,fmincon 将基于梯度通过稀疏有限差分算法返回一个逼近矩阵。

    此 Hessian 矩阵对于倒数第二个迭代是准确的。然而,倒数第二个迭代可能并不接近最终点。

    trust-region-reflective 算法在倒数第二个点返回 Hessian 矩阵的原因是为了提高效率。fmincon 在内部使用 Hessian 矩阵来计算其下一迭代步。当 fmincon 达到停止条件时,它不需要计算下一迭代步,因此不会计算 Hessian 矩阵。

  • interior-point 算法

    • 如果 Hessian 选项是 lbfgsfin-diff-grads,或如果您提供 Hessian 乘法函数 (HessMult),则 fmincon 返回 [] 作为 Hessian 矩阵。

    • 如果 Hessian 选项是 bfgs(默认值),fmincon 会返回最终点处的 Hessian 矩阵的拟牛顿逼近。此 Hessian 矩阵可能不准确,就像在 active-setsqp Hessian 矩阵算法中一样。

    • 如果 Hessian 选项是 user-supplied,则 fmincon 会在最终点处返回用户提供的 Hessian 矩阵。

相关主题