What are manifolds? #778
mateuszbaran
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Introduction
A precise definition of a manifold is crucial to set up appropriate expectations for types and functions.
Unfortunately, there is no single definition that is general enough to cover all relevant cases and, at the same time, specific enough to be useful.
Here we will cover the definitions that are most relevant in practice.
The most generic relevant concept is that of a topological space.
It describes the notion of closeness of points through families of open sets which satisfy certain properties.
There are currently no functions in JuliaManifolds that can work at this level of generality.
Topology is only relevant when one wants to push boundaries of what kinds of spaces can be worked on.
It is not useful for working with existing types.
In this tutorial we will go from the most general concepts to the ones that provide the most structure.
We will briefly discuss their relevance and provide references to more in-depth materials.
Basic knowledge of multivariate calculus, linear algebra and ordinary differential equations is required to understand this tutorial.
More advanced topics are helpful but not necessary to learn something from this text.
If at any point you feel overwhelmed by the introduced concepts, feel free to skip a paragraph or even a section.
Also, let us know if you think any part could be improved.
When reading referenced material remember that advanced mathematical texts are primarily written to help people prove theorems.
Most of that knowledge is not required for working with applications.
Topology
The first concept that provides tools we can use is that of a topological manifold.${\phi_i}_{i\in I}$ where $\phi_i\colon U_i \to \mathbb{R}^n$ are charts indexed by $i$ from some index set $I$ Lee:2012 and $U_i \subseteq \mathcal{M}$ . 1 2
Such manifold
M
is described by its dimensionn=manifold_dimension(M)
and a set of functions called an atlasFor each point$p \in \mathcal{M}$ there is $i\in I$ such that $p \in U_i$ .
There are also some regularity conditions which we skip here because they are rarely relevant. 3
JuliaManifolds has a few functions for working at this level.$p$ is in its domain.$\phi_i, \phi_j$ , the composition $\phi_j \circ \phi_i^{-1}$ is called the transition map from $\phi_i$ to $\phi_j$ , see
First,
manifold_dimension
returns the numbern
for a given manifold.Next,
[`get_chart_index`](@extref Manifolds :jl:method:`Manifolds.get_chart_index-Tuple{AbstractManifold, AbstractAtlas, Any, Any}`)
points to one of the charts such thatThe value of chart on a point can be calculated using
[`get_parameters`](@extref `Manifolds.get_parameters`)
and its inverse using[`get_point`](@extref `Manifolds.get_point`)
When we have two charts
[`transition_map`](@extref `Manifolds.transition_map`)
.More details are discussed in this page and this tutorial demonstrates a use case.
Often additional restrictions are imposed, for example only atlases with only differentiable, smooth or analytic transition maps are considered.
An even stronger restriction holds for complex manifolds: the charts are complex valued ($\phi_i\colon U_i \to \mathbb{C}^n$ ) and transition maps are required to be holomorphic functions.
Note that not any manifold represented using complex numbers is a complex manifold.
In particular, no manifold of odd (real) dimension can be a complex manifold.
Complex representation is a feature of CR manifolds.
Instances of
AbstractManifold
with complex number system𝔽
are not required to be complex manifolds, though they are expected to be CR manifolds.This definition of a manifold is both too restrictive and not restrictive enough.
The first aspect is manifested by, for example:
On the other hand, an atlas is insufficient for almost every algorithm that would like to exploit relationships between points.
Topological data analysis tries discovering such structure, in the form of simplicial complexes, directly from some available data.
JuliaManifolds focuses on the case where the structure is explicitly specified by the user through a connection.
Roughly speaking, when a manifold has additional structure attached at each point, a connection specifies how structures attached to different points are related to each other.
Tangent space
Let's start with the most commonly encountered structure that can be attached to a point on a manifold: a tangent vector.$n$ -dimensional manifold $\mathcal{M}$ a point $p\in\mathcal{M}$ , and a chart $\phi_i$ around $p$ .$v\in\mathbb{R}^n$ and define a curve $\gamma(t) = \phi_i^{-1}(\phi_i(p) + tv)$ for sufficiently small $t$ .$\gamma_1, \gamma_2$ such that $\frac{d}{dt}\phi_i(\gamma_1(t))\rvert_{t=0} = \frac{d}{dt}\phi_i(\gamma_2(t))\rvert_{t=0}$ to represent the same tangent vector.$n$ -dimensional real vector space, and the definition in terms of $v$ provides a vector space isomorphism.
Let us consider an
We can take any vector
The curve is, obviously, dependent on the selection of chart in a nonlinear way.
To deal with this problem we consider any two curves
It turns out that formalizing this leads to a tangent space that is an
A tangent vector can be interpreted as a direction in which we may go from a point up to its first order behavior.$X$ at point $p$ .$f\colon \mathcal{M} \to \mathbb{R}$ at $p$ .
There is also another, equivalent 4 definition of a tangent vector
We can consider it to be the direction in which we differentiate a scalar-valued function
Let us consider an example: gradient descent.$f\colon \mathcal{M} \to \mathbb{R}$ , that is find $p^{*} = \arg\min_{p \in \mathcal{M}} f(p)$ .$p_0 \in \mathcal{M}$ and through some computations determine that $X$ is the direction of steepest descent of $f$ at $p_0$ .$X$ .$\gamma$ that could represent $X$ for some finite time $t$ .$\gamma$ .
We would like to optimize a function
We start at point
In the typical fashion, we would like to perform a step in direction
We can follow any curve
However, this procedure can result in vastly different results depending on the choice of
How do we choose which one to follow?
In some cases it doesn't matter that much and we can select whichever one can be computed the fastest.
However, often a consistent choice is required for convergence or some other desirable property of an algorithm.
A compelling solution comes in the form of an affine connection.
A curious reader may wonder why we stopped at affine functions in our definition of tangent vectors.
Surely, we could use higher-order polynomials or other families of functions to define jets and germs, among other things KolarSlovakMichor:1993.
We are not aware of any practical significance of such theories (apart from a few very specific examples) but who knows what the future holds.
Connections
Broadly speaking, a connection is a structure on a fiber bundle that specifies how fibers at different points relate to each other.$E$ can be understood is just a product manifold $\mathcal{M} \times F$ .$\pi \colon E \to \mathcal{M}$ and local trivializations establishing the product structure on open subsets of $\mathcal{M}$ .$p\in\mathcal{M}$ has an open neighborhood $U \subseteq \mathcal{M}$ such that $\pi^{-1}(U)$ is homeomorphic to $U \times F$ , that is there is a homeomorphism $h\colon \pi^{-1}(U) \to U \times F$ such that for each $e \in E$ the projection $\pi(e)$ is equal to the first component of $h(e)$ .
In the trivial case a fiber bundle
In general operations on a fiber bundle are expressed through a projection
To be more specific, each point
To give a concrete example, let's start with the tangent bundle$T\mathcal{M}$ of an $n$ -dimensional manifold $\mathcal{M}$ .$\phi_i \colon U_i \to \mathbb{R}^n$ , and thus locally identify the tangent bundle with $\mathbb{R}^n \times \mathbb{R}^n$ .$U_i \subseteq \mathcal{M}$ can be used to locally decompose the tangent bundle as $U_i \times \mathbb{R}^n$ . 5$Y$ at $p$ to another point indicated by tangent vector $X$ at $p$ :
We can find a chart
The neighborhood
Now we can locally write an ODE that shows us how to move a tangent vector
where$p_c\colon [0, 1] \to \mathbb{R}^n$ , $X_c\colon [0, 1] \to \mathbb{R}^n$ , $Y_c\colon [0, 1] \to \mathbb{R}^n$ and $\Gamma_i\colon \mathbb{R}^n \times \mathbb{R}^n \times \mathbb{R}^n \to \mathbb{R}^n$ is any differentiable function.$p_c(0) = \phi_i(p)$ , while $X_c(0)$ and $Y_c(0)$ are coefficients of, respectively, $X$ and $Y$ in the basis of $T_p \mathcal{M}$ induced by $\phi_i$ .
Initial conditions for the ODE are such that
Solving the ODE defined in this way connects the tangent space at$p$ with the tangent space at $\phi_i^{-1}(p_c(1))$ by mapping $Y$ to the tangent vector represented by $Y_c(1)$ in the basis of $T_{\phi_i^{-1}(p_c(1))} \mathcal{M}$ induced by $\phi_i$ .$\Gamma_i$ defines an affine connection for the manifold $\mathcal{M}$ 6 in chart $i$ ).
The function
The detailed investigations of differential geometry then delve into how to define affine connections in a way that makes the solution of such ODEs for different charts consistent.
When using JuliaManifolds you don't have to worry about this because we generally deal with affine connections in a consistent way but it is highly relevant when working out a new connection.
The relevant JuliaManifolds function is
[`affine_connection`](@extref Manifolds :jl:method:`Manifolds.affine_connection-Tuple{AbstractManifold, Vararg{Any, 5}}`)
You may be curious why the same function$\Gamma_i$ appears twice in ODE defining the connection.$X$ in which we move to be connected to its counterparts (defined by the second group of equations) in other tangent spaces.$p_c$ and $X_c$ but replace the equation for $Y_c$ with something else.
It is the result of one of the consistency conditions: we want the vector
It is, however, not strictly required for more general connections.7
Such connections keep the equations for
In other words, the first two equations define how to move on a manifold, while the third one defines how to connect fibers we cross when we move.
Note that, as a result of independence from selection of the chart, one usually selects a chart in which solving the affine connection ODE is the easiest.
In some special cases (like spheres) there even exist closed-form solutions.
To support such efficient computation, one can directly use the functions
exp
,log
andparallel_transport_direction
.While the conditions on the form in which fibers may be connected appear quite restrictive, in practice they turn out to still be very general.
We thus need some additional guidelines to select a connection for our manifold.
There are multiple available options.
The following list discusses the most prominent ones.
Fitting the application is, however, always the primary criterion.
JuliaManifolds prioritizes support for things that actually are practically relevant so starting from what's already available is a good approach.
Between Riemann and Finsler
In this section we focus on manifolds and their tangent bundles.
There are two popular ways in which we can specify their structure in a much less flexible way than general connections: Finsler and Riemann.8
In return we get more structure to work with, and can thus generically express more algorithms.
The initial premise can be expressed by the desire to measure distance along a path$\gamma \colon [a, b] \to \mathcal{M}$ using the formula
where$F \colon T\mathcal{M} \to [0, \infty)$ is a certain scalar function on tangent bundle called Finsler metric.BaoChernShen:2000
It has the following properties:
This Hessian
For each point$p$ the function $X \mapsto F(p, X)$ is a Minkowski norm on $T_p\mathcal{M}$ , that is the following properties hold:
The Finsler metric can be calculated using
norm
.Despite a very generic description, Finsler manifolds provide a rich structure.$d(p, q) = \inf_{\gamma} L(\gamma)$ , where the infimum is taken across all curves such that $\gamma(0) = p$ and $\gamma(1) = q$ .$F$ .
We can measure distances between points as
It is handled by the
distance
function.There is also a unique connection, called Chern connection, that arises from
It is a generalization of the famous Levi-Civita connection for Riemannian manifolds.
It is, however, much more technical to work with than the Riemannian case BaoChernShen:2000.
Many possible restrictions have been considered, for example:
inner
.JuliaManifolds was designed based on Riemannian manifolds because they are much more simple to work with and more common in applications.
However, many parts can still be generalized to Finsler manifolds, pseudo-Riemannian manifolds or even pseudo-Finsler manifolds.
Lie groups
A manifold$\mathcal{M}$ can be equipped with a smooth group operation $\circ\colon \mathcal{M} \times \mathcal{M} \to \mathcal{M}$ together with an identity element $I_{\mathcal{M}} \in \mathcal{M}$ and an inversion function $\cdot^{-1}\colon \mathcal{M} \to \mathcal{M}$ satisfying standard group conditions:
In general we don't assume commutativity, which is a major issue complicating our calculations.
Manifolds with such structure are called Lie groups and the relevant functionality is provided by Manifolds.jl and (work in progress as of December 2024) LieGroups.jl.
Before we proceed, let's take a look at what a Lie group could be.$n\times n$ matrices, denoted ${GL}(n, \mathbb{C})$ , with matrix multiplication as group operation.
There is an exhaustive classification of possible Lie groups, although nearly all relevant Lie groups are so-called matrix Lie groups.
They are defined as subgroups of the group of complex invertible
We can thus represent elements of nearly every Lie group simply as square matrices.
That's not necessarily always the best representation but it simplifies many derivations.
Note that in this representation tangent vectors are also square matrices of the same size.
The tangent space at identity,$T_{I_\mathcal{M}}\mathcal{M}$ , is known as Lie algebra of $\mathcal{M}$ and denoted $\mathfrak{g}$ .$[\cdot, \cdot] \colon \mathfrak{g} \times \mathfrak{g} \to \mathfrak{g}$ .$[X, Y] = XY - YX$ , for matrices $X, Y \in \mathfrak{g}$ .11
To actually make it an algebra it needs another operation called Lie bracket,
This operation has a unique definition in terms of the group operation.
On matrix Lie groups it can be computed as
It turns out that we are very restricted in the choice of a connection on Lie groups if we want to respect the group operation.
Exponential and logarithmic maps turn out to be uniquely determined, see PennecLorenzi:2020, Section 5.3.3.
Moreover, at the identity of matrix Lie groups they coincide with, respectively, matrix exponential and matrix logarithm.
There is, however, still a bit of freedom in the choice of connection that leads to different parallel transports.$\mathfrak{g}$ and tangent space at any other point $p\in \mathcal{M}$ using differentials of either left $L_p(q) = p \circ q$ or right $R_p(q) = q \circ p$ translations.$d L_{p}$ at identity is an isomophism between $\mathfrak{g}$ and $T_p \mathcal{M}$ .$d R_{p}$ in a similar manner.
One way to understand it is through an identification of tangent spaces that is available to us.
We can establish isomorphisms between the Lie algebra
The differential
We can also devise other isomorphisms between tangent spaces such as
We can now define affine connections on$\mathcal{M}$ that are both left- and right-invariant to group operation.$I_{\mathcal{M}}$ using either $d L_{p}$ or $d R_{p}$ and evaluating the Christoffel symbol $\Gamma_i$ at identity.$\lambda \in \mathbb{R}$ ,$\lambda=\frac{1}{2}$ ) or flat ($\lambda \in {0, 1}$ ).
The value of such connection at any point can be determined by transporting the vectors to
On each group there is a simple one-parameter family of such connections, called Cartan-Schouten connections.
In those connections the Christoffel symbol is determined by the Lie bracket of corresponding tangent vectors multiplied by a number
see PennecLorenzi:2020, Section 5.3.2.
The choice can be narrowed down by futher requiring the connection to be torsion-free (
We may now wonder if any of the affine connections we just constructed come from a certain Riemannian or Finsler metric.$\mathcal{M}$ is compact or a direct product of a compact group and a vector space LatifiToomanian:2013.
The answer is fairly simple: it is only true when the group
The most prominent examples of groups without a biinvariant metric are special Euclidean groups.
Fibers and fiber bundles
As seen in the section about the tangent space, fiber bundles can be considered as a way of attaching additional information to each point of a manifold.
A connection can be introduced to connect different fibers in a way that is decoupled from the way we move on the manifold as defined using an affine connection.
Standard formalization of this concept is known as Ehresmann connection.
One common example of a fiber bundle is the frame bundle of a manifold.$n$ -dimensional manifold we can identify such frames with elements of the general linear group ${GL}(n, \mathbb{R})$ .
Instead of considering just a single tangent vector at each point like in the tangent bundle, we now attach an entire basis of the tangent space.
On an
The existence of sections of subgroups is tied to important properties about a manifold, see G-structures on a manifold.
As of December 2024 JuliaManifolds offers little support for general fiber bundles, with the exception of tangent bundle.$\mathcal{M}$ and a single fiber seems to be good enough in practice.
Simply using a product manifold of
Due to major importance of fiber bundles in theory they are, however, expected to be more relevant in the future.
Concluding remarks
As demonstrated, there is no single definition of a manifold that fits every use case.
There are various operations that we may need for our computations.
This tutorial provides a high-level overview of those operations and describes ways in which they are interconnected.
It additionally serves as an introduction to concepts relevant to practical computations using JuliaManifolds.
Footnotes
In JuliaManifolds we either have a finite number of charts (for example, spheres require only two) or one chart for each point on the manifold. ↩
Sometimes other number systems are considered for the codomain of charts, most notably complex numbers. This discussion is restricted to the real case because it's general enough for practical purposes. Complex atlases can be represented as real atlases with real and imaginary parts separated. Quaternionic manifolds are most easily expressed though fiber bundles. Other generalizations often lead to spaces that are no longer manifolds. ↩
Specifically manifolds are required to be second-countable Hausdorff spaces, see Lee:2012, page 3 for more details. ↩
These definitions are equivalent for finite-dimensional manifolds but not for all infinite-dimensional ones. You can see kinematic tangent space for more details. ↩
Manifolds whose tangent bundle is trivial (and thus we can select $U_i=\mathcal{M}$) are called parallelizable. ↩
In the specific case of a metric connection it is called a Christoffel symbol. ↩
See for example Ehresmann connection and its different variants. ↩
Historically Finsler manifolds are very close to what Riemann actually studied, and what is now known as Riemannian manifolds has a quadratic restriction that was added later. See Chern:1996 for more details. ↩
This requirement can be slightly relaxed to nondegeneracy and many properties still hold JavaloyesSoares:2015. ↩
This condition can be expressed in many equivalent forms. The one written here is not the most simple one but possibly the easiest to interpret, since it looks similar to the Cauchy-Schwarz inequality. ↩
Lie bracket is also uniquely determined for non-matrix Lie groups, though deriving formulas for its calculation is quite technical.
See HilgertNeeb:2012, Section 9.1.2, for more details. ↩
Beta Was this translation helpful? Give feedback.
All reactions