“雅可比行列式”本质上是在回答一个很朴素的问题:

一个非线性变换,在某个点附近,会把一小块空间的面积/体积放大多少倍?

它就是这个“局部体积缩放倍数”。

先区分两个容易混的东西:

  • 雅可比矩阵 Jacobian matrix:描述各个输出对各个输入的局部变化率。
  • 雅可比行列式 Jacobian determinant:雅可比矩阵的行列式,描述局部面积/体积缩放比例。

假设有二维变换

​\begin{cases} u=f(x,y)\\ v=g(x,y) \end{cases}雅可比矩阵是

​J= \frac{\partial(u,v)}{\partial(x,y)} = \begin{bmatrix} \frac{\partial u}{\partial x} & \frac{\partial u}{\partial y}\\ \frac{\partial v}{\partial x} & \frac{\partial v}{\partial y} \end{bmatrix}而所谓“雅可比行列式”,就是

​\det J.

1. 为什么一个“行列式”能表示面积变化?

先看一个最简单的线性变换:

​\begin{bmatrix} u\\v \end{bmatrix} = \begin{bmatrix} 2&0\\ 0&3 \end{bmatrix} \begin{bmatrix} x\\y \end{bmatrix}.也就是

​u=2x,\qquad v=3y.原来一个 ​1\times 1 的小正方形:

​\text{面积}=1经过变换后,横向变成 2 倍,纵向变成 3 倍:

​\text{面积}=2\times3=6.矩阵行列式恰好是

​\det \begin{bmatrix} 2&0\\ 0&3 \end{bmatrix} =6.所以

​|\det J|=6就是:

局部面积被放大了 6 倍。

三维也是一样:

​|\det J|表示局部体积变化倍数。


2. 但非线性变换怎么办?

比如

​u=x^2,\qquad v=y.这个变换不是线性的。

不同位置,横向缩放程度不一样。

因为

​\frac{\partial u}{\partial x}=2x.所以雅可比矩阵

​J= \begin{bmatrix} 2x&0\\ 0&1 \end{bmatrix}于是

​\det J=2x.这意味着:

  • ​x=1 附近,面积约放大 ​2 倍;
  • ​x=5 附近,面积约放大 ​10 倍;
  • ​x=0.1 附近,面积约缩小到 ​0.2 倍。

关键就在“附近”。

虽然整体变换是非线性的,但只要把区域看得足够小,在某一点附近就近似是线性的:

​\Delta \mathbf y \approx J(\mathbf x)\Delta \mathbf x.所以雅可比矩阵可以理解成:

非线性函数在某个点的局部线性变换矩阵。

而它的行列式自然就是这个局部线性变换的体积缩放比例。


3. 一个特别经典的例子:极坐标

肯定见过:

​x=r\cos\theta,\qquad y=r\sin\theta.为什么极坐标积分里面总有一个莫名其妙的 ​r

​dx\,dy=r\,dr\,d\theta

这个 ​r 就是雅可比行列式来的。

计算 Jacobian:

​J= \frac{\partial(x,y)}{\partial(r,\theta)} = \begin{bmatrix} \cos\theta & -r\sin\theta\\ \sin\theta & r\cos\theta \end{bmatrix}.行列式:

​\det J = r\cos^2\theta+r\sin^2\theta =r.于是

​dx\,dy = |\det J|\,dr\,d\theta = r\,dr\,d\theta.这个结果其实非常直观。

在极坐标中取一个小方块:

​dr\times d\theta.它映射到笛卡尔坐标中并不是一个真正的矩形,而是一个小扇环。

径向长度:

​dr圆周方向长度大约是:

​r\,d\theta.因此面积:

​dA \approx dr\cdot r\,d\theta = r\,dr\,d\theta.所以这个 ​r 本质上就是:

​(r,\theta) 空间变到 ​(x,y) 空间时,面积发生的局部伸缩。


4. 为什么概率论里它特别重要?

这可能也是最近频繁遇到它的原因。

假设随机变量

​X经过变换得到

​Y=f(X).概率本身不能凭空增加或减少。

例如一维:

​y=2x.假设 ​X 在区间

​[0,1]均匀分布,那么 ​Y 就在

​[0,2]上。

空间长度扩大了 2 倍,因此概率密度必须降低到原来的 ​1/2

​p_Y(y)=\frac12 p_X(x).这个 ​1/2 就来自 Jacobian:

​\frac{dx}{dy}=\frac12.所以概率密度变换公式:

​p_Y(y) = p_X(x) \left| \frac{dx}{dy} \right|.多维情况下变成

​\boxed{ p_Y(\mathbf y) = p_X(\mathbf x) \left| \det \frac{\partial\mathbf x} {\partial\mathbf y} \right| }或者写成正向变换

​\boxed{ p_Y(\mathbf y) = \frac{ p_X(\mathbf x) }{ \left| \det \frac{\partial\mathbf y} {\partial\mathbf x} \right| } }这就是为什么在:

  • 正态分布
  • Normalizing Flow
  • VAE
  • 概率变量变换
  • 坐标变换
  • 积分换元

里面一直会看到 Jacobian determinant。


5. 可以把它和普通导数对应起来

其实 Jacobian 没那么神秘。

一维函数:

​y=f(x)导数

​\frac{dy}{dx}描述:

一小段长度 ​dx 被放大多少倍。

因为

​dy\approx \frac{dy}{dx}dx.到了二维:

​\begin{bmatrix} du\\dv \end{bmatrix} \approx J \begin{bmatrix} dx\\dy \end{bmatrix}.而面积满足

​du\,dv \approx |\det J|\,dx\,dy.三维:

​dV' \approx |\det J|\,dV.所以可以直接记成:

​\boxed{ \text{导数} \quad\longrightarrow\quad \text{长度缩放} } ​\boxed{ \text{Jacobian 矩阵} \quad\longrightarrow\quad \text{各方向如何变形} } ​\boxed{ |\det J| \quad\longrightarrow\quad \text{体积总体缩放多少倍} }

6. Jacobian 矩阵和 Jacobian 行列式其实包含的信息量差很多

比如

​J= \begin{bmatrix} 2&0\\ 0&\frac12 \end{bmatrix}.它表示:

  • ​x 方向拉长 2 倍;
  • ​y 方向压缩到 ​1/2

​\det J=1.因此面积完全没变:

​2\times\frac12=1.所以:

Jacobian 矩阵

告诉“怎么变形”。

而:

Jacobian determinant

只告诉:

最终面积/体积总共变化多少。

它把很多方向信息压缩成了一个数字。


7. 为什么有时候行列式会是负数?

比如

​u=-x,\qquad v=y.这是把图形沿 ​y 轴翻转。

Jacobian:

​J= \begin{bmatrix} -1&0\\ 0&1 \end{bmatrix}于是:

​\det J=-1.面积显然没有变,还是 1 倍。

负号表示的是:

空间的方向 orientation 被翻转了。

所以计算面积、体积、概率密度时通常取绝对值:

​|\det J|.

8. 一个非常有用的几何理解

假设二维空间中有两个很小的基向量:

​d\mathbf x_1= \begin{bmatrix} dx\\0 \end{bmatrix}, \qquad d\mathbf x_2= \begin{bmatrix} 0\\dy \end{bmatrix}.它们构成一个小矩形。

经过函数 ​f 后:

​d\mathbf y_1 \approx Jd\mathbf x_1, ​d\mathbf y_2 \approx Jd\mathbf x_2.原来的小矩形通常会变成一个小平行四边形。

而矩阵行列式本身就是:

矩阵的列向量所张成平行四边形的有向面积。

所以

​|\det J|自然就成为面积缩放比例。

这并不是一个人为规定出来的公式,而是矩阵行列式本身的几何意义


9. 和高斯分布的联系

多维高斯:

​p(x)= \frac{1} {(2\pi)^{d/2}|\Sigma|^{1/2}} \exp \left( -\frac12(x-\mu)^T\Sigma^{-1}(x-\mu) \right).里面为什么会有

​|\Sigma|^{-1/2}?其实背后就是 Jacobian。

假设

​Z\sim\mathcal N(0,I)然后做变换

​X=\mu+LZ其中

​LL^T=\Sigma.这相当于把标准正态的球:

​Z拉伸成一个椭球:

​X.这个线性变换的体积变化是

​|\det L|.因为

​\det\Sigma = \det(LL^T) = (\det L)^2,所以

​|\det L| = \sqrt{|\Sigma|}.概率密度必须反向除以体积膨胀比例:

​p_X(x) \propto \frac1{|\det L|} = \frac1{\sqrt{|\Sigma|}}.因此

​\frac1{\sqrt{|\Sigma|}}本质上就是:

高斯从单位球被拉伸为椭球之后,为保证总概率仍然等于 1,需要用 Jacobian 修正密度。


最终可以把“雅可比行列式”压缩成一句非常值得记住的话:

​\boxed{ \text{Jacobian determinant} = \text{非线性映射在某一点附近的局部体积缩放率} }

​\boxed{ J = \text{局部如何拉伸、旋转、剪切} } ​\boxed{ |\det J| = \text{拉伸完之后体积总体变成了多少倍} }如果从这个角度理解,积分换元、概率密度变换、多维高斯里的 ​|\Sigma|、Normalizing Flow 里的 log det J,其实全都是同一件事。