Neural implicit representations
Neural nets as coordinate mappings
January 21, 2021 — April 26, 2023
A cute hack for generative (only generative?) neural nets. Unlike other structures, here we allow the output to depend upon image coordinates, rather than some presumed-invariant latent factors. I am not quite sure what the rational is for implicit being used as the term here. There is nothing especially implicit about that.
So the terminology is not self explanatory. At least it is distinctive, right?
Haha no. Implicit representation networks are not the neural network ones using implicit in a confusing way. See also “implicit layers”, which allow an optimisation problem to be solved in a neural net, which is not the same thing. And which is also not, to my mind, particularly implicit.
Awesome implicit representations:
Implicit Neural Representations (sometimes also referred to coordinate-based representations) are a novel way to parameterize signals of all kinds. Conventional signal representations are usually discrete — for instance, images are discrete grids of pixels, audio signals are discrete samples of amplitudes, and 3D shapes are usually parameterized as grids of voxels, point clouds, or meshes. In contrast, Implicit Neural Representations parameterize a signal as a continuous function that maps the domain of the signal (i.e., a coordinate, such as a pixel coordinate for an image) to whatever is at that coordinate (for an image, an R,G,B color). Of course, these functions are usually not analytically tractable — it is impossible to “write down” the function that parameterizes a natural image as a mathematical formula. Implicit Neural Representations thus approximate that function via a neural network.
Implicit Neural Representations have several benefits: First, they are not coupled to spatial resolution any more, the way, for instance, an image is coupled to the number of pixels. This is because they are continuous functions! Thus, the memory required to parameterize the signal is independent of spatial resolution, and only scales with the complexity of the underlying signal. Another corollary of this is that implicit representations have “infinite resolution” — they can be sampled at arbitrary spatial resolutions.
This is immediately useful for a number of applications, such as super-resolution, or in parameterizing signals in 3D and higher dimensions, where memory requirements grow intractably fast with spatial resolution.
However, in the future, the key promise of implicit neural representations lie in algorithms that directly operate in the space of these representations.
At first glance this is a cute hack (does reality plausibly ever know its own coordinates with reference to some grid system?), but maybe it is more useful than that description implies. As an audio guy I cannot help but notice similarity to what synthesizer designers do all the time when designing new instruments, which are terrible representations of “real” instruments but are deft at making novel sounds by ingenious parameterisations. There is a short speculative essay to write on that, with a side journey into signal sampling.
1 Neural Signed Distance Functions
Fruitful sub-field, defining shapes as level sets of some neural function. Very popular for 3d data.
- Some experiments in learning signed distance fields from data
- MetaSDF: Meta-learning Signed Distance Functions
- DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation/CVPR 2019 Open Access Repository
There are some techniques that look useful in there. I am curious about Atzmon et al. (2019);Atzmon and Lipman (2020);Chabra et al. (2020);Gropp et al. (2020);Huang, Bai, and Kolter (2021);Ma et al. (2021);Ortiz et al. (2022);Park et al. (2019);Takikawa et al. (2021);Zhu et al. (2022).
2 Neural rednering
NeRFs etc. See neural rendering.
3 In generative art
hardmaru’s Compositional pattern-producing network uses apparently a classic type of implicit rep NNs. See generative art with NNs for more of that.
4 In PDEs
Implicit representations are the main trick that makes PINNs go.
5 Position encoding
See position encoding.