Date:

Differentiable Self-Organizing Systems

Here is the rewritten article:

How can we construct robust, general-purpose self-organising systems?

Self-organisation is omnipresent on all scales of biological life. From complex interactions between molecules forming structures such as proteins, to cell colonies achieving global goals like exploration by means of the individual cells collaborating and communicating, to humans forming collectives in society such as tribes, governments or countries. The old adage “the whole is greater than the sum of its parts”, often ascribed to Aristotle, rings true everywhere we look.

The articles in this thread focus on practical ways of designing self-organizing systems. In particular we use Differentiable Programming (optimization) to learn agent-level policies that satisfy system-level objectives. The cross-disciplinary nature of this thread aims to facilitate ideas exchange between ML and developmental biology communities.

Articles & Comments

Growing Neural Cellular Automata

Building their own bodies is the very first skill all living creatures possess. How can we design systems that grow, maintain and repair themselves by regenerating damages? This work investigates morphogenesis, the process by which living creatures self-assemble their bodies. It proposes a differentiable, Cellular Automata model of morphogenesis and shows how such a model learns a robust and persistent set of dynamics to grow any arbitrary structure starting from a single cell.

Self-classifying MNIST Digits

This work presents a follow up to Growing Neural CAs, using a similar computational model for the goal of digit “self-classification”. The authors show how neural CAs can self-classify the MNIST digit they form. The resulting CAs can be interacted with by dynamically changing the underlying digit. The CAs respond to perturbations with a learned self-correcting classification behaviour.

Self-Organising Textures

Here the authors apply Neural Cellular Automata to a new domain: texture synthesis. They begin by training NCA to mimic a series of textures taken from template images. Then, taking inspiration from adversarial camouflages which appear in nature, they use NCA to create textures which maximally excite neurons in a pretrained vision model. These results reveal that a simple model combined with well-known objectives can lead to robust and unexpected behaviors.

Adversarial Reprogramming of Neural Cellular Automata

This work takes existing Neural CA models and shows how they can be adversarially reprogrammed to perform novel tasks. MNIST CA can be deceived into outputting incorrect classifications and the patterns in Growing CA can be made to have their shape and colour altered.

Get Involved

The Self-Organizing systems thread is open to articles exploring differentiable self-organizing sytems. Critical commentary and discussion of existing articles is also welcome. The thread is organized through the open #selforg channel on the Distill slack. Articles can be suggested there, and will be included at the discretion of previous authors in the thread, or in the case of disagreement by an uninvolved editor.

About the Thread Format

Part of Distill’s mandate is to experiment with new forms of scientific publishing. We believe that that reconciling faster and more continuous approaches to publication with review and discussion is an important open problem in scientific publishing.

Threads are collections of short articles, experiments, and critical commentary around a narrow or unusual research topic, along with a slack channel for real-time discussion and collaboration. They are intended to be earlier stage than a full Distill paper, and allow for more fluid publishing, feedback, and discussion. We also hope they’ll allow for wider participation. Think of a cross between a Twitter thread, an academic workshop, and a book of collected essays.

Threads are very much an experiment. We think it’s possible they’re a great format, and also possible they’re terrible. We plan to trial two such threads and then re-evaluate our thought on the format.

Conclusion

The articles in this thread demonstrate the potential of Differentiable Programming to design self-organizing systems that can learn and adapt in complex environments. By applying these techniques to various domains, we can unlock new possibilities for understanding and influencing the behavior of complex systems.

FAQs

Q: What is Differentiable Programming?

A: Differentiable Programming is a way of using optimization techniques to learn agent-level policies that satisfy system-level objectives.

Q: What is the purpose of this thread?

A: The purpose of this thread is to explore practical ways of designing self-organizing systems using Differentiable Programming.

Q: Can I contribute to this thread?

A: Yes, you can suggest articles or comment on existing articles through the #selforg channel on the Distill slack.

Latest stories

Read More

LEAVE A REPLY

Please enter your comment!
Please enter your name here