You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Hessian矩阵推导疑问:论文公式推导、二阶微分计算及严谨参考资料请求

Hessian矩阵推导疑问:论文公式推导、二阶微分计算及严谨参考资料请求

我最近在读一篇论文《How Hessian structure explains mysteries in sharpness regularization》,卡在了第2页的公式(2)推导上——不知道它是怎么从公式(1)用标准的乘积或链式法则推出来的。

我平时处理多元导数(向量或矩阵)的链式/乘积法则时,习惯用微分的思路(从MathSE的帖子里学的):先计算微分,比如$D(f\circ g) = Df(g) Dg$或者$D(fg) = (Df)\cdot g + g\cdot Df$,再根据列向量惯例,通过转置操作推导出梯度。这个方法大多时候都管用(比如我能顺利推导出这篇论文第20页的公式13a、13b、13c),但用到二阶导数时就彻底摸不着头绪了。

这里先明确一下微分的定义(方便后续讨论):

对于函数$f : \mathbb{R}^n \rightarrow \mathbb{R}^m$,微分$Df(x)$满足$f(x + \Delta x) = f(x) + Df(x) \Delta x$,其中乘法是常规的矩阵乘法。

我的核心疑问是:既然Hessian矩阵$\nabla^2_{\theta}\mathcal{L} = D[\nabla_{\theta}\mathcal{L}]$,那怎么从公式(1)推导出公式(2)呢?我尝试用乘积法则展开,得到:
\begin{align*}
D[\nabla_{\theta}\mathcal{L}] = D_{\theta}[J\top\nabla_{z}\mathcal{L}]&=D_{\theta}[J]\top\nabla_{z}\mathcal{L} + J^\top D_{\theta}[\nabla_{z}\mathcal{L}].
\end{align*}
但这里有两个关键问题搞不懂:

  • (a) 第一项里的Jacobian矩阵的微分$D_{\theta}[J]$该怎么计算?完全摸不清这个微分的形式和意义。
  • (b) 第二项里的不同变量下梯度的微分$D_{\theta}[\nabla_{z}\mathcal{L}]$又该怎么处理?变量从$z$换成$\theta$,这个微分的转换逻辑是什么?

另外,我这种先算微分再推导梯度/Hessian的思路到底对不对?有时候感觉有点“投机取巧”,但多数情况都能work,有没有严谨的参考资料能系统讲解这类多元高阶导数的计算(不是只给现成公式,而是从原理层面讲清楚推导逻辑),帮我彻底搞明白这类问题?

非常感谢!

备注:内容来源于stack exchange,提问作者tempered_overfit

火山引擎 最新活动