下一节:反转协变Hessian矩阵 上一级:几何技术细节 上一节:绕过\mathrm{Stief}(n,k)

协变微分

在有了梯度的概念和对流形约束下的移动概念后,人们可能会想要开始某种优化程序。仅从这些概念出发,可以实现一种最速下降法。然而,为了进行复杂的优化,通常需要关于函数的二阶导数信息。

特别是,人们可能想知道,如果从Y移动到Y+\epsilon H,梯度会变化多少。在流形上,这实际上可能是一个难以回答的问题。从技术上讲,Y处的梯度是T_Y(\mathrm{Stief}(n,k))的一个成员,而Y+\epsilon H处的梯度是T_{Y+\epsilon H}(\mathrm{Stief}(n,k))的一个成员。虽然在平坦空间中取它们的差值没有问题(见图9.8),但如果这在弯曲空间中进行,可能会得到一个不属于任一点切空间的向量(见图9.9)。

图9.8:在平坦空间中,比较相邻点的向量没有问题,因为所有向量都位于同一个切空间中。
图9.8:在平坦空间中,比较相邻点的向量没有问题,因为所有向量都位于同一个切空间中。
图9.9:在弯曲流形中,比较相邻点的向量可能导致向量不在切空间中。
图9.9:在弯曲流形中,比较相邻点的向量可能导致向量不在切空间中。

一种更复杂的方法是首先以某种方式将Y+\epsilon H处的梯度移动到Y,使其以平行方式从Y+\epsilon H翻译到Y,然后在相同的切空间中比较这两个梯度。可以检查,对于V \in T_{Y+\epsilon H}(\mathrm{Stief}(n,k)),规则

V \rightarrow V + \epsilon \Gamma(V,H),
其中\Gamma(V,H)是Levi-Civita联络,将V转换为T_{Y}(\mathrm{Stief}(n,k))的一个元素,并保留内积信息(至\epsilon的一阶)。这是可以在通常文献中找到的标准平行移动规则([80,459,273,222],以及其他)。

使用这个规则来比较相邻向量,然后有以下规则来取向量场的导数:

D_H G = \frac{d}{ds} G(Y+sH) \vert _{s=0} + \Gamma(G,H),
其中G是任何向量场(但我们只对梯度场的导数感兴趣)。这是软件中dgrad实现的函数。

在无约束最小化中,梯度g = \nabla f沿向量\vec{h}的二阶导数是Hessian [\frac{\partial^2 f}{\partial x_i \partial x_j}]乘以\vec{h}。协变地,我们有类似的规则,

\left[\frac{\partial^2 f}{\partial x_i \partial x_j} \right] \vec{h} =(\vec{h} \cdot \nabla) g\sim D_H G.



下一节:反转协变Hessian矩阵 上一级:几何技术细节 上一节:绕过\mathrm{Stief}(n,k)
Susan Blackford 2000-11-20