理解Jacobian矩阵与分布变换

理解Jacobian矩阵

本文主要是以下教程的一个整理:
Khan-academy: The Jacobian matrix
可能有错,欢迎指正。

Locally Linear

我们考虑一下简单的函数:
f ( [ x y ] ) = [ x + sin ⁡ ( y ) y + sin ⁡ ( x ) ] f\left(\left[\begin{array}{l} {x} \\ {y} \end{array}\right]\right)=\left[\begin{array}{l} {x+\sin (y)} \\ {y+\sin (x)} \end{array}\right] f([xy])=[x+sin(y)y+sin(x)]
他将一个[x,y]的点,经过一个变换,就像下图那样:

在这里插入图片描述
这似乎很复杂,没办法分析,但一个很重要的性质是Localy linear, 我们看一个很小的正方形:

在这里插入图片描述
然后进行上述变换的操作:

在这里插入图片描述
神奇的事情发生了,在局部结构里面,这个变换看起来就是一个线性变换。等等,线性变换是什么意思?

线性变换

线性变换是什么意思?我们知道,一个向量乘一个矩阵其实就是一个线性变换,但直观来看,是什么样的,我们看以下这个线性变换是怎样的。

[ 2 − 3 1 1 ] [ x y ] → [ 2 x + ( − 3 ) y 1 x + 1 y ] \left[\begin{array}{rr}{2} & {-3} \\ {1} & {1}\end{array}\right]\left[\begin{array}{l}{x} \\ {y}\end{array}\right] \rightarrow \left[\begin{array}{ll} {2 x+(-3)} & {y} \\ {1 x+1} & {y} \end{array}\right] [2131][xy][2x+(3)1x+1yy]

在这里插入图片描述
可以看到,对比于非线性变换,线性变换之后的坐标,其实都是相互平行的,换句话说,如果我们能知道基在线性变换后的结果,我们就能想象出整个坐标系是长什么样的。显然,

[ 2 − 3 1 1 ] [ 1 0 ] → [ 2 1 ] \left[\begin{array}{rr}{2} & {-3} \\ {1} & {1}\end{array}\right]\left[\begin{array}{l}{1} \\ {0}\end{array}\right] \rightarrow \left[\begin{array}{ll} {2 } \\ {1 } \end{array}\right] [2131][10][21]

[ 2 − 3 1 1 ] [ 0 1 ] → [ − 3 1 ] \left[\begin{array}{rr}{2} & {-3} \\ {1} & {1}\end{array}\right]\left[\begin{array}{l}{0} \\ {1}\end{array}\right] \rightarrow \left[\begin{array}{ll} {-3 } \\ {1 } \end{array}\right] [2131][01][31]

我们发现,基变换后的结果恰好对应与变换矩阵的第一列和第二列!

Jacobian Matrix

现在回到正题,我们刚才说了,非线性的变换在某个局部点上的变换,可以看作是一个线性变换,而这个线性变换应该是一个2*2的矩阵来的,我们希望知道这个矩阵是什么。

现在我们开始分析一下这个局部变换:先考虑在原空间上x轴一个很小的距离dx:
在这里插入图片描述
经过一个线性变化,这个很短的 ∂ x \partial x x变成了在另一个空间中很小的一步(如下图绿色箭头)
在这里插入图片描述

这个绿色的箭头,就是 ∂ x \partial x x经过变换后的样子,可以看到这个变换是斜向下的变换,也就是说他同时改变了两个坐标,是一种2维的变换,该变换可以分解成两个坐标上的变换,在x轴上的变换后的长度就是绿色虚线,这个长度是等于 ∂ f 1 = ∂ f 1 / ∂ x ∗ ∂ x \partial f_1=\partial f_1/\partial x*\partial x f1=f1/xx,而变换率则是 ∂ f 1 / ∂ x \partial f_1/\partial x f1/x (ps: 之所以可以用导数表示变化率是因为这就是导数的定义: lim ⁡ Δ x → 0 f ( x + Δ x , y ) − f ( x , y ) Δ x \lim_{\Delta x \to 0}\frac{f(x+\Delta x,y)-f(x,y)}{\Delta x} limΔx0Δxf(x+Δx,y)f(x,y)),同理,在y轴上的变换是红色虚线, ∂ f 2 / ∂ x \partial f_2/\partial x f2/x.

回想一下,根据上面的线性变换矩阵,我们知道,变换矩阵的第一列实际上是用来变换x轴的值,所以我们将 ∂ f 1 / ∂ x \partial f_1/\partial x f1/x ∂ f 2 / ∂ x \partial f_2/\partial x f2/x.放在变换矩阵的第一列,同理

在这里插入图片描述
原始坐标的 ∂ y \partial y y,经过变换后(红色箭头)的坐标,在新坐标系上的变化率是 ∂ f 1 / ∂ y \partial f_1/\partial y f1/y ∂ f 2 / ∂ y \partial f_2/\partial y f2/y. 于是我们就得到了jacobian matrix,他可以实现线性转换:

[ ∂ f 1 / ∂ x ∂ f 1 / ∂ y ∂ f 2 / ∂ x ∂ f 2 / ∂ y ] [ ∂ x 0 ] → [ ∂ f 1 ∂ f 2 ] \left[\begin{array}{rr} {\partial f_1/\partial x} & {\partial f_1/\partial y} \\ {\partial f_2/\partial x} & {\partial f_2/\partial y} \end{array}\right]\left[\begin{array}{l}{\partial x} \\ {0}\end{array}\right] \rightarrow \left[\begin{array}{ll} {\partial f_1 } \\ {\partial f_2 } \end{array}\right] [f1/xf2/xf1/yf2/y][x0][f1f2]

[ ∂ f 1 / ∂ x ∂ f 1 / ∂ y ∂ f 2 / ∂ x ∂ f 2 / ∂ y ] [ 0 ∂ y ] → [ ∂ f 1 ∂ f 2 ] \left[\begin{array}{rr} {\partial f_1/\partial x} & {\partial f_1/\partial y} \\ {\partial f_2/\partial x} & {\partial f_2/\partial y} \end{array}\right]\left[\begin{array}{l}{0} \\ {\partial y}\end{array}\right] \rightarrow \left[\begin{array}{ll} {\partial f_1 } \\ {\partial f_2 } \end{array}\right] [f1/xf2/xf1/yf2/y][0y][f1f2]

理解分布变换

现在我们思考下概率分布变换的问题,考虑如下变换:
y = g ( x ) \mathbf{y}=g(\mathbf{x}) y=g(x)

随机变量通过一个函数f进行变换,根据公式,他们的分布变换公式为:

p x ( x ) = p y ( g ( x ) ) ∗ ∣ det ⁡ J g ( x ) ∣ p y ( y ) = p x ( g − 1 ( y ) ) ∗ ∣ det ⁡ J g − 1 ( y ) ∣ p_x(x)=p_y(g(x))*|\det J g(x)| \\ p_y(y)=p_x(g^{-1}(y))*|\det J g^{-1}(y)| px(x)=py(g(x))detJg(x)py(y)=px(g1(y))detJg1(y)

其实出现这个原因是因为我们希望这个通过变换后的分布的积分 ∫ x p y ( g ( x ) ) d x \int _x p_y(g(x))dx xpy(g(x))dx是等于1的,然而,如果g是非线性变换,其映射空间的dy与原空间dx的长度是不相等的(如果x是高维就是dx的体积不再相等),从而导致这个积分是不等于1的。为了修复这个积分,我们需要将dx转换,使得他适用于另外一个空间: ∣ det ⁡ J g ( x ) ∣ ∗ d x |\det J g(x)|*dx detJg(x)dx,这个转换就是乘上Jacobian matrix, 从上一章内容我们知道,乘上一个Jacobian可以将dx的长度转换成dy的长度,又因为,我们知道 p y p_y py对于 d y dy dy的积分是等于1的,所以转换后对于dx的积分也是等于1的.

我们可以进一步直观地来理解这个分布变换:
在这里插入图片描述
如图所示,这是一个p(x)到p(y)分布转换的一个例子,我们发现,在x被拉长了两倍,于是,如果我们不做任何补偿,将会出现 p y ( y ) = p x ( y − 1 2 ) = 1 p_y(y)=p_x(\frac{y-1}{2})=1 py(y)=px(2y1)=1的情况,显然,这时候新的分布 p y ( y ) p_y(y) py(y)的面积是等于2的,这显然是错的。这是因为 d x = 1 2 d y dx=\frac{1}{2}dy dx=21dy,要想在dy的积分下等于1,那么就要补偿从dx转到dy这一尺度转换的损失:

p y ( y ) = p x ( y − 1 2 ) 1 2 = 0.5 p_y(y)=p_x(\frac{y-1}{2})\frac{1}{2}=0.5 py(y)=px(2y1)21=0.5

这里1/2其实就是等于 ( y − 1 2 ) ′ = 1 / 2 (\frac{y-1}{2})'=1/2 (2y1)=1/2

参考资料

https://www.khanacademy.org/math/multivariable-calculus/multivariable-derivatives/jacobian/v/the-jacobian-matrix

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值