whitead / dmol-book

Deep learning for molecules and materials book
https://dmol.pub
Other
614 stars 120 forks source link

Issue on page 15.Normalizing Flows #202

Closed bridgesra closed 1 year ago

bridgesra commented 2 years ago

Text states

We call these functions bijectors because they are bijective (1 to 1, onto). An example of a bijector is an element-wise cosine (assuming is between 0 and ) and non-bijective function would be a reduction. Any function which changes the number of elements is automatically not bijective.

The last sentence is incorrect. E.g., see bijection $\mathbb{R}^2 \to \mathbb{R}$ here

Recommend simply using the previous example of a bijection $cos: [0,\pi] \to [-1,1]$ and saying something like "when considering cosine on $[0,2\pi]$, we see cosine touches all of $[0,1]$ twice and hence is not injective."

Perhaps the statement you want is that normalizing flows are diffeomorphisms, that is bijective and differentiable functions. Since diffeomorphisms (geometry preserving maps) are in particular topological isomorphisms (topology preserving maps), they preserve dimension. This means any map that changes dimensions cannot be a diffeomorphism and will not be a normalizing flow.

Book is very helpful!

whitead commented 1 year ago

Fixed by #223