tf.hessians(f,x):对于一个孤立的单变量,与tf.gradients(tf.gradients(f,x),x)的值不同?

时间:2017-07-30 05:18:10

标签: tensorflow mathematical-optimization gradient-descent derivative

所以我的tf.Variable()名为W shape=[1]

我认为tf.hessians(loss, W)并不等于tf.gradients(tf.gradients(loss, W), W),尽管它应该是相同的:二阶导数。

如果我尝试用双梯度替换Hessians,我会得到问题的代码的小小要点: https://gist.github.com/guillaume-chevalier/6b01c4e43a123abf8db69fa97532993f 然而,我观察到如果我使用双梯度,结果不会收敛。

1 个答案:

答案 0 :(得分:-1)

双梯度称为拉普拉斯算子:Laplace Operator。它将衍生的w.r.t取两次相同的x变量。然而,Hessian矩阵采用两个x变量的衍生w.r.t组合:Hessian Matrix。因此,Hessian的痕迹将是拉普拉斯算子,这是双​​梯度。