INR Architecture Notes: MLP, Fourier Features, NeRF, SIREN, and BACON

Why architecture matters for INR

For implicit neural representations (INRs), the main object is a continuous function \begin{equation} f_{\theta}: \mathbf{x} \in \mathbb{R}^{d} \rightarrow \mathbf{y} \in \mathbb{R}^{c}, \end{equation} where \(\mathbf{x}\) is a coordinate and \(\mathbf{y}\) is the signal value at that coordinate, such as intensity, RGB color, density, occupancy, or a signed distance.

Using the brainstorming-research-ideas lens, the cleanest way to organize INR architectures is to move up an abstraction ladder: start from the plain coordinate MLP, then ask how each later design changes the frequency handling of the network. The core question is always the same: how does the architecture inject, preserve, or control high-frequency information?

1. Vanilla coordinate MLP

The simplest INR uses the raw coordinate as input and applies a standard MLP.

Essential elements

  • Input coordinate \(\mathbf{x} \in \mathbb{R}^{d}\).
  • Learned affine layers \(\mathbf{W}_{\ell}, \mathbf{b}_{\ell}\).
  • Pointwise nonlinearity, usually ReLU or tanh.

Closed form

Let \(\mathbf{h}_{0} = \mathbf{x}\). For \(\ell = 1, \dots, L\), \begin{equation} \mathbf{h}{\ell} = \phi \left( \mathbf{W}{\ell}\mathbf{h}{\ell-1} + \mathbf{b}{\ell} \right), \end{equation} and the final output is \begin{equation} f_{\theta}(\mathbf{x}) = \mathbf{W}{L+1}\mathbf{h}{L} + \mathbf{b}_{L+1}. \end{equation}

Forward process

The forward pass is simply coordinate \(\rightarrow\) hidden features \(\rightarrow\) output value. This baseline is easy to implement, but it is biased toward low-frequency functions, which is why images reconstructed by raw-coordinate ReLU MLPs are usually too smooth.

2. Fourier-feature MLP

The next step is to keep the MLP simple but lift the input into a richer sinusoidal feature space before the network sees it.

Essential elements

  • Raw coordinate \(\mathbf{x}\).
  • A fixed Fourier feature map \(\gamma(\mathbf{x})\).
  • A standard MLP operating on \(\gamma(\mathbf{x})\).

Closed form

In the most general form used in Fourier feature networks, \begin{equation} \gamma(\mathbf{x}) = \left[ a_{1}\cos(2\pi \mathbf{b}{1}^{\top}\mathbf{x}), a{1}\sin(2\pi \mathbf{b}{1}^{\top}\mathbf{x}), \dots, a{m}\cos(2\pi \mathbf{b}{m}^{\top}\mathbf{x}), a{m}\sin(2\pi \mathbf{b}_{m}^{\top}\mathbf{x}) \right]^{\top}. \end{equation}

A common Gaussian random feature version is \begin{equation} \gamma(\mathbf{x}) = \left[ \cos(2\pi \mathbf{B}\mathbf{x}), \sin(2\pi \mathbf{B}\mathbf{x}) \right], \quad \mathbf{B}_{ij} \sim \mathcal{N}(0,\sigma^{2}). \end{equation}

Then the INR becomes \begin{equation} \mathbf{h}{0} = \gamma(\mathbf{x}), \qquad \mathbf{h}{\ell} = \phi(\mathbf{W}{\ell}\mathbf{h}{\ell-1} + \mathbf{b}{\ell}), \qquad f{\theta}(\mathbf{x}) = \mathbf{W}{L+1}\mathbf{h}{L} + \mathbf{b}_{L+1}. \end{equation}

Forward process

The forward pass is coordinate \(\rightarrow\) sinusoidal embedding \(\rightarrow\) ReLU MLP \(\rightarrow\) output. The frequency content is injected at the input instead of being generated only by deep learned weights.

3. NeRF-style positional encoding MLP

NeRF uses the same general idea as Fourier features, but with a deterministic multiscale positional encoding and a radiance-field-specific output structure.

Essential elements

  • Spatial coordinate \(\mathbf{x}=(x,y,z)\).
  • Viewing direction \(\mathbf{d}\).
  • Deterministic positional encoding with dyadic frequencies.
  • A density branch and a color branch.
  • A skip-style reinjection of encoded position into the hidden trunk in the standard implementation.

Closed form

For a scalar input \(p\), NeRF uses \begin{equation} \gamma(p) = \left( \sin(2^{0}\pi p), \cos(2^{0}\pi p), \dots, \sin(2^{L-1}\pi p), \cos(2^{L-1}\pi p) \right). \end{equation}

Applying this componentwise to location and direction gives encoded inputs \(\gamma_{x}(\mathbf{x})\) and \(\gamma_{d}(\mathbf{d})\). The network represents \begin{equation} F_{\theta}(\mathbf{x}, \mathbf{d}) = \left( \sigma(\mathbf{x}), \mathbf{c}(\mathbf{x}, \mathbf{d}) \right), \end{equation} where \(\sigma\) is density and \(\mathbf{c}\) is view-dependent color.

One compact forward description is \begin{align} \mathbf{h} &= \mathrm{MLP}{\theta{x}} \left( \gamma_{x}(\mathbf{x}) \right),
\sigma(\mathbf{x}) &= g_{\sigma}(\mathbf{h}),
\mathbf{c}(\mathbf{x}, \mathbf{d}) &= g_{c}\left([\mathbf{h}, \gamma_{d}(\mathbf{d})]\right). \end{align}

Forward process

The forward pass is encoded 3D point \(\rightarrow\) shared hidden trunk \(\rightarrow\) density, then hidden feature plus encoded direction \(\rightarrow\) RGB color. NeRF is therefore not just an INR for a scalar field; it is an INR coupled to volume rendering.

4. SIREN

SIREN changes the nonlinearity itself. Instead of using ReLU on top of sinusoidal inputs, it makes sinusoidal activations the core of every hidden layer.

Essential elements

  • Raw coordinate input.
  • Sine activation in every hidden layer.
  • Frequency scaling parameter \(\omega_{0}\), especially important in the first layer.
  • Special initialization so deep sine networks do not collapse.

Closed form

Let \(\mathbf{h}_{0} = \mathbf{x}\). A general SIREN can be written as \begin{equation} \mathbf{h}{\ell} = \sin \left( \omega{\ell} \left( \mathbf{W}{\ell}\mathbf{h}{\ell-1} + \mathbf{b}{\ell} \right) \right), \qquad \ell = 1, \dots, L, \end{equation} with output \begin{equation} f{\theta}(\mathbf{x}) = \mathbf{W}{L+1}\mathbf{h}{L} + \mathbf{b}_{L+1}. \end{equation}

In practice, the first layer often uses a larger frequency factor, e.g. \(\omega_{1}=\omega_{0}\) with \(\omega_{0}\approx 30\), while later layers use smaller or fixed scaling.

Forward process

The forward pass is coordinate \(\rightarrow\) affine transform \(\rightarrow\) sine \(\rightarrow\) affine transform \(\rightarrow\) sine repeatedly, ending in a linear readout. Unlike Fourier-feature MLPs, SIREN does not only inject periodic structure at the input; periodicity is preserved through the entire network.

5. BACON

BACON is best viewed as a structured multiplicative filter network. It uses sinusoidal filters of the input coordinate at every layer and mixes them through Hadamard products with learned linear transforms of the hidden state.

Essential elements

  • Fixed Fourier filter bank applied directly to the coordinate.
  • Learned linear mixing between hidden states.
  • Elementwise Hadamard multiplication between filter outputs and propagated hidden features.
  • Band-limited, often quantized frequency design.
  • Optional multiscale outputs from intermediate layers.

Closed form

Define layer-wise coordinate filters \begin{equation} \mathbf{g}{\ell}(\mathbf{x}) = \sin(\mathbf{B}{\ell}\mathbf{x} + \boldsymbol{\beta}_{\ell}), \end{equation} where \(\mathbf{B}_{\ell}\) contains fixed frequencies and \(\boldsymbol{\beta}_{\ell}\) is a phase offset.

BACON then computes \begin{align} \mathbf{z}{0}(\mathbf{x}) &= \mathbf{g}{0}(\mathbf{x}),
\mathbf{z}{\ell}(\mathbf{x}) &= \mathbf{g}{\ell}(\mathbf{x}) \odot \left( \mathbf{W}{\ell}\mathbf{z}{\ell-1}(\mathbf{x}) + \mathbf{b}{\ell} \right), \qquad \ell = 1, \dots, L,
f
{\theta}(\mathbf{x}) &= \mathbf{W}{o}\mathbf{z}{L}(\mathbf{x}) + \mathbf{b}_{o}. \end{align}

For the multiscale version, one can attach outputs at several depths: \begin{equation} f_{\theta}^{(s)}(\mathbf{x}) = \mathbf{W}{o}^{(s)} \mathbf{z}{\ell_{s}}(\mathbf{x}) + \mathbf{b}_{o}^{(s)}. \end{equation}

Forward process

The forward pass is coordinate \(\rightarrow\) sinusoidal filter \(\rightarrow\) multiply with learned hidden projection \(\rightarrow\) repeat. Relative to SIREN, BACON is more explicitly spectrum-aware because the coordinate filters are separated from the hidden linear transport and can be chosen to be band-limited from the start.

A compact comparison

Architecture Where frequency enters Nonlinearity Forward summary
Vanilla MLP Only through learned weights ReLU/tanh \(\mathbf{x} \rightarrow \mathrm{MLP} \rightarrow \mathbf{y}\)
Fourier-feature MLP Input embedding \(\gamma(\mathbf{x})\) ReLU/tanh \(\mathbf{x} \rightarrow \gamma(\mathbf{x}) \rightarrow \mathrm{MLP} \rightarrow \mathbf{y}\)
NeRF Positional encoding of \(\mathbf{x}, \mathbf{d}\) ReLU \([\gamma(\mathbf{x}), \gamma(\mathbf{d})] \rightarrow (\sigma, \mathbf{c})\)
SIREN Every hidden layer sine repeated sine-activated affine maps
BACON Layerwise sinusoidal filters Hadamard-gated sine filters filtered coordinate products across depth

My takeaway

If the task is a general continuous signal fit, the progression is usually:

  • start from a plain coordinate MLP as the reference baseline,
  • move to Fourier features or NeRF-style positional encoding when high-frequency detail is missing,
  • move to SIREN when derivatives matter or periodic activations are more natural,
  • move to BACON when explicit spectral control and multiscale behavior are important.

So the main architectural split in INR is not only “which MLP do we use”, but rather whether frequency is injected at the input, distributed across activations, or explicitly controlled by multiplicative filters.

References




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • Diffusion Priors for Photoacoustic Imaging: Promise, Constraints, and Validation
  • Inverse Problems in Imaging: Forward Models, Regularization, and Tomographic Reconstruction
  • Review on Implicit Neural Representations and its Applications in Medical Imaging
  • 2D Fan-Beam Tomography