NoiseNCA: Noisy Seed Improves Spatio-Temporal Continuity of Neural Cellular Automata
<|reference_start|>NoiseNCA: Noisy Seed Improves Spatio-Temporal Continuity of Neural Cellular Automata: Neural Cellular Automata (NCA) is a class of Cellular Automata where the update rule is parameterized by a neural network that can be trained using gradient descent. In this paper, we focus on NCA models used for texture synthesis, where the update rule is inspired by partial differential equations (PDEs) describing reaction-diffusion systems. To train the NCA model, the spatio-temporal domain is discretized, and Euler integration is used to numerically simulate the PDE. However, whether a trained NCA truly learns the continuous dynamic described by the corresponding PDE or merely overfits the discretization used in training remains an open question. We study NCA models at the limit where space-time discretization approaches continuity. We find that existing NCA models tend to overfit the training discretization, especially in the proximity of the initial condition, also called "seed". To address this, we propose a solution that utilizes uniform noise as the initial condition. We demonstrate the effectiveness of our approach in preserving the consistency of NCA dynamics across a wide range of spatio-temporal granularities. Our improved NCA model enables two new test-time interactions by allowing continuous control over the speed of pattern formation and the scale of the synthesized patterns. We demonstrate this new NCA feature in our interactive online demo. Our work reveals that NCA models can learn continuous dynamics and opens new venues for NCA research from a dynamical system's perspective.<|reference_end|>
@article{pajouheshgar2024noisenca:,
    title={NoiseNCA: Noisy Seed Improves Spatio-Temporal Continuity of Neural
  Cellular Automata},
    author={Ehsan Pajouheshgar, Yitao Xu, Sabine S"usstrunk},
    journal={Artificial Life (ALife) 2024},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.06279},
    primaryClass={cs.CV cs.AI cs.GR cs.MA}
}