目录

Flow Matching Guide and Code 第5章解读:指数映射-对数映射-测地线条件流

用最通俗的话说一遍指数映射、对数映射和测地线条件流在干什么。

在平面上要从点 A 走到点 B,最简单就是沿直线走,并且可以「按比例」走:

  • t=0t=0:在 A
  • t=0.5t=0.5:在 A、B 中间
  • t=1t=1:到 B

数学上就是:位置 = A + t·(B−A)
这里 (B−A) 就是「从 A 指向 B 的向量」,t 就是「走了多少比例」。


球面是弯的,没有平面那种直线,但有大圆弧(球面上两点之间的最短路径),这就是球面上的「直线」——叫测地线

  • 在平面上:从 A 沿直线走、速度恒定,就是直线运动。
  • 在球面上:从 A 沿大圆弧走、速率恒定,就是测地线运动。

所以:
测地线 = 流形上的「直线」(最短路径、或「沿曲面直着走」的路径)。


  • 平面上:从点 xx 出发,速度是向量 vv,1 秒后就在 x+vx+v
    所以:「起点 xx + 速度 vv」→ 1 秒后的点 = x+vx+v

  • 球面上:从点 xx 出发,沿着「速度 vv 所指的那条大圆弧」走,走弧长等于 v|v| 的那一段(相当于「速度大小」),终点就记作 expx(v)\exp_x(v)

一句话:
expx(v)\exp_x(v) = 从 xx 出发、按速度 vv 沿测地线走「单位时间/单位弧长」后到的点。

平面就是:expx(v)=x+v\exp_x(v) = x + v

为什么叫「指数」? 在流形上「按切向量沿测地线走」这种操作,在数学上统一记作 exp\exp,是因为在一个最经典的特例里它就是我们熟悉的指数函数:考虑正实数乘法群 (0,+)(0,+\infty),在单位元 11 处的切空间可以看成 R\mathbb{R}。从 11 出发、「速度」为 vv 沿测地线走 1 单位,得到的点恰好是 eve^v(以 ee 为底的指数)。若从别的点出发也一样:从 22 出发、速度为 vv 沿测地线走 1 单位,得到的是 2ev2 \cdot e^v,即 exp2(v)=2ev\exp_2(v) = 2 e^v;一般地 expx(v)=xev\exp_x(v) = x \cdot e^v,所以「指数」eve^v 始终出现,只是起点 xx 不同时多一个因子。流形上这套「起点 + 速度 → 沿测地线走一段后的终点」的映射,就沿用了「指数映射」这个名字;对数映射 log\log 则是它的逆。


反过来:

  • 平面上:从 A 到 B,你要的「速度向量」就是 B−A(方向 + 长度)。
    所以:「起点 xx + 终点 yy」→ 该沿的向量 = yxy-x,记成 logx(y)=yx\log_x(y)=y-x

  • 球面上:从 xxyy,沿着连接它们的那段大圆弧,这段弧在起点 xx 处的「切向量」(方向 + 弧长)就是 logx(y)\log_x(y)
    也就是说:xx 出发、以 logx(y)\log_x(y) 为速度沿测地线走 1 单位,就会到 yy,即 expx(logx(y))=y\exp_x(\log_x(y)) = y

一句话:
logx(y)\log_x(y) = 「从 xxyy 这条测地线」在 xx 处的切向量(往哪走、走多长)。

平面就是:logx(y)=yx\log_x(y) = y - x


我们要做的是:x0x_0 平滑地「插值」到 x1x_1,并且要沿着流形上的「直线」(测地线)走。

  • 先算 logx0(x1)\log_{x_0}(x_1):从 x0x_0x1x_1 的测地线在 x0x_0 处的切向量(相当于「往 x1x_1 的方向和距离」)。
  • 再乘一个比例 κ(t)\kappa(t)t=0t=0 时是 0,t=1t=1 时是 1):相当于「只走这条测地线的 κ(t)\kappa(t) 比例」。
  • 最后用 expx0()\exp_{x_0}(\cdots) 把「走了一段的切向量」变回「流形上的点」:
    ψt(x0x1)=expx0(κ(t)logx0(x1))\psi_t(x_0|x_1) = \exp_{x_0}\bigl(\kappa(t)\log_{x_0}(x_1)\bigr)
    就是「在 tt 时刻,你沿这条测地线走到了哪里」。

通俗总结:

  • log\log:知道「从 x0x_0x1x_1 该沿哪条测地线、走多长」。
  • κ(t)\kappa(t):控制「走到几分之几」。
  • exp\exp:把「走了几分之几」变成「现在在流形上的哪个点」。

所以在流形上,测地线条件流 = 沿测地线按比例从 x0x_0 走到 x1x_1,和平面上的「A + t·(B−A)」是同一类想法,只是把「直线」换成了「测地线」,「减法」换成了 log\log,「加法」换成了 exp\exp

相关内容