【问题标题】:tf.hessians(f, x): not the same value as tf.gradients(tf.gradients(f, x), x) for an isolated, single variable?tf.hessians(f, x):对于孤立的单个变量,与 tf.gradients(tf.gradients(f, x), x) 的值不同?
【发布时间】:2018-01-05 21:19:40
【问题描述】:

所以我有一个名为Wtf.Variable(),它属于shape=[1]

我知道tf.hessians(loss, W) 不等于tf.gradients(tf.gradients(loss, W), W),尽管它应该是同一件事:二阶导数。

下面是代码的一个小要点,如果我尝试用双梯度替换 Hessians,我会遇到问题: https://gist.github.com/guillaume-chevalier/6b01c4e43a123abf8db69fa97532993f 然而,我发现如果我使用双梯度,结果不会收敛。

【问题讨论】:

    标签: tensorflow mathematical-optimization gradient-descent derivative


    【解决方案1】:

    双梯度称为拉普拉斯算子:Laplace Operator。它对相同的 x 变量进行两次导数。但是,Hessian 矩阵采用两个 x 变量的导数 w.r.t 组合:Hessian Matrix。因此,Hessian 的轨迹将是 Laplacian,即双梯度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      相关资源
      最近更新 更多