一个关于雅克比行列式的解释
一、概念
雅克比行列式本质上就是一阶导数以一定的方法排列的矩阵。
这里可以展开两个思考🤔:为什么是一阶导数?以什么样的方式进行排列?这种排列有什么意义呢?
雅克比行列式是什么?比较学术的解释是: 在向量微积分中,雅克比矩阵是一阶偏导数以一定方式排列成的矩阵,其行列式称为雅克比行列式。雅克比矩阵的重要性在与它体现了一个可微方程与给出点的最优线性逼近。因此,雅克比矩阵类似于多元函数的导数。
数学上的表达如下:
二、理解
下面有一句话,我觉得十分有必要仔细的看一下:
它解释了为什么是一阶导数?以什么样的方式进行排列?这种排列有什么意义呢?
为什么是一阶导数:
- 因为要表示在p点上的最优逼近,所以是要求函数F的一阶导数的
以什么样的方式进行排列?这种排列有什么意义?
- 排列方式就是如上图所示,为什么这样排列,我个人的理解是为了与(x-p)相乘,所以要这样地排列。
三、举个例子
# Importing the library
import tensorflow as tf
x = tf.constant([[4, 2],[1, 3]], dtype=tf.dtypes.float32)
# Using GradientTape
with tf.GradientTape() as gfg:
gfg.watch(x)
y = x * x * x
# Computing jacobian
res = gfg.jacobian(y, x)
# Printing result
print("res:",res)
上面这段代码的例子呢: y = x 3 y = x^3 y=x3, 其中 ∇ y ∇ x = 3 x 2 \frac{\nabla y}{\nabla x} = 3 x^2 ∇x∇y=3x2, 所以最后的答案是:
res: tf.Tensor(
[[[[48. 0.]
[ 0. 0.]]
[[ 0. 12.]
[ 0. 0.]]]
[[[ 0. 0.]
[ 3. 0.]]
[[ 0. 0.]
[ 0. 27.]]]], shape=(2, 2, 2, 2), dtype=float32)
下面是我手动的推导:
![](https://img-blog.csdnimg.cn/c56cad58e41946e293da122cbc27d598.png)