1. 最直接的实际作用:把“难积分”变成“容易积分”
例如:
\[\int 2x\cos(x^2)\,dx
\]
看到 (x^2),令:
\[y=x^2
\]
那么:
\[dy=2x\,dx
\]
所以:
\[\int 2x\cos(x^2)\,dx
=
\int\cos y\,dy
=
\sin y+C
\]
最终:
\[\boxed{\sin(x^2)+C}
\]
这里换元的作用就是:
找到一个更合适的坐标,让原来复杂的问题变简单。
这句话对理解机器学习非常重要。
2. 神经网络里最直接的联系:概率分布的变量变换
神经网络大量处理概率分布。
假设随机变量:
\[X
\]
经过一个变换:
\[Y=f(X)
\]
我们知道:
\[dy=f'(x)\,dx
\]
所以:
\[dx=\frac{dy}{f'(x)}
\]
如果概率质量在变量变换前后必须保持一致,那么:
\[p_X(x)\,dx=p_Y(y)\,dy
\]
因此:
\[p_Y(y)
=
p_X(x)\frac{dx}{dy}
\]
也就是:
\[\boxed{
p_Y(y)
=
p_X(x)
\left|\frac{dx}{dy}\right|
}
\]
这就是概率密度的变量变换公式。
注意这里已经出现了你刚才那个:
\[dx=\frac{dy}{y'}
\]
只是它从“积分换元”进入了“概率密度变换”。
3. 这个东西在神经网络里有一个非常重要的应用:Normalizing Flow
这是机器学习中一个非常典型的应用。
假设我们从一个非常简单的概率分布开始:
\[z\sim N(0,1)
\]
然后神经网络学习一个可逆变换:
\[x=f_\theta(z)
\]
我们希望知道 (x) 的概率密度:
\[p_X(x)
\]
根据变量变换:
\[p_X(x)
=
p_Z(z)
\left|
\frac{dz}{dx}
\right|
\]
如果是多维情况,就变成:
\[\boxed{
p_X(x)
=
p_Z(z)
\left|
\det
\frac{\partial z}{\partial x}
\right|
}
\]
这里的:
\[\det
\frac{\partial z}{\partial x}
\]
就是Jacobian determinant(雅可比行列式)。
所以你刚才的一维公式:
\[\boxed{
dx=\frac{dy}{y'}\,dy
}
\]
可以看成多维 Jacobian 的一维祖先。
4. 为什么一定要除以 (y')?
这个地方其实非常值得深入理解。
假设:
\[y=2x
\]
那么:
\[dy=2dx
\]
也就是说,(x) 轴移动:
\[dx=1
\]
对应 (y) 轴移动:
\[dy=2
\]
所以如果你改用 (y) 来描述同一块区域,就必须修正尺度:
\[dx=\frac{dy}{2}
\]
因此:
\[\int f(x)\,dx
=
\int f(x(y))\frac{dy}{2}
\]
除以导数,本质上是在补偿坐标变换造成的“拉伸”。
这就是 Jacobian 为什么存在的直觉来源。
5. 神经网络中还有一个非常重要的地方:期望值
机器学习经常写:
\[\mathbb E_{x\sim p(x)}[f(x)]
\]
它实际上就是积分:
\[\boxed{
\mathbb E[f(X)]
=
\int f(x)p(x)\,dx
}
\]
如果进行变量变换:
\[y=g(x)
\]
那么:
\[\mathbb E[f(X)]
=
\int f(x)p_X(x)\,dx
\]
换成 (y):
\[=
\int
f(x(y))
p_X(x(y))
\left|\frac{dx}{dy}\right|
dy
\]
所以:
\[\boxed{
\text{积分换元}
\rightarrow
\text{概率变量变换}
\rightarrow
\text{期望值变换}
}
\]
而期望值、概率分布、损失函数又是机器学习的核心数学对象。
6. 再往神经网络靠一步:反向传播虽然不是积分换元,但思想相通
神经网络:
\[x
\rightarrow
z
\rightarrow
a
\rightarrow
L
\]
例如:
\[z=wx+b
\]
\[a=\sigma(z)
\]
\[L=L(a)
\]
反向传播使用链式法则:
\[\frac{\partial L}{\partial w}
=
\frac{\partial L}{\partial a}
\frac{\partial a}{\partial z}
\frac{\partial z}{\partial w}
\]
这里不是积分换元,但你会发现一个非常漂亮的共同思想:
积分换元:
\[dx
\rightarrow
\frac{dx}{dy}dy
\]
反向传播:
\[\frac{dL}{dx}
=
\frac{dL}{dy}
\frac{dy}{dx}
\]
两者都在处理:
当我们改变变量/坐标之后,原来的量应该如何随之调整?
7. 建立这样一张“数学地图”
把几个东西其实正在逐渐串起来:
\[\boxed{\text{导数}}
\]
描述:
局部变化率 / 局部尺度
↓
\[\boxed{\text{方向导数}}
\]
描述:
沿某个方向变化多快
↓
\[\boxed{\nabla}
\]
描述:
所有方向变化率组成的向量
↓
\[\boxed{\text{积分}}
\]
描述:
把局部微小量累积成整体
↓
\[\boxed{\text{换元}}
\]
描述:
换一个坐标描述同一个整体时,如何修正尺度
↓
\[\boxed{\text{Jacobian}}
\]
描述:
多维坐标变换造成的尺度变化
↓
\[\boxed{\text{概率密度变换}}
\]
↓
\[\boxed{\text{Normalizing Flow / 生成模型}}
\]
这条线非常值得继续学。
方向导数、梯度、积分,下一步如果把 Jacobian(雅可比矩阵) 接进来,会发现它其实就是把你现在的一维:
\[\frac{dy}{dx}
\]
推广到多维:
\[\boxed{
J=
\frac{\partial(y_1,\ldots,y_m)}
{\partial(x_1,\ldots,x_n)}
}
\]
而这正好会把微积分 → 多元微积分 → 神经网络反向传播 → 概率 → 深度学习连成一条线。