syncx

Official code repository for NeurIPS 2024 paper "Recurrent Complex-Weighted Autoencoders for Unsupervised Object Discovery"

https://github.com/agopal42/syncx

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary

Keywords

autoencoder complex-valued-neural-networks object-centric-learning representation-learning
Last synced: 6 months ago · JSON representation ·

Repository

Official code repository for NeurIPS 2024 paper "Recurrent Complex-Weighted Autoencoders for Unsupervised Object Discovery"

Basic Info
Statistics
  • Stars: 8
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Topics
autoencoder complex-valued-neural-networks object-centric-learning representation-learning
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Recurrent Complex-Weighted Autoencoders for Unsupervised Object Discovery

Current state-of-the-art synchrony-based models encode object bindings with complex-valued activations and compute with real-valued weights in feedforward architectures. We argue for the computational advantages of a recurrent architecture with complex-valued weights. We propose a fully convolutional autoencoder, SynCx, that performs iterative constraint satisfaction: at each iteration, a hidden layer bottleneck encodes statistically regular configurations of features in particular phase relationships; over iterations, local constraints propagate and the model converges to a globally consistent configuration of phase assignments. Binding is achieved simply by the matrix-vector product operation between complex-valued weights and activations, without the need for additional mechanisms that have been incorporated into current synchrony-based models. SynCx outperforms or is strongly competitive with current models for unsupervised object discovery. SynCx also avoids certain systematic grouping errors of current models, such as the inability to separate similarly colored objects without additional supervision.

This repo provides a reference implementation for the Synchronous Complex Network (SynCx) model architecture introduced in the paper titled "Recurrent Complex-Weighted Autoencoders for Unsupervised Object Discovery" (https://arxiv.org/abs/2405.17283).


Model figure


Main Result


Setup

To download the data use the links provided on the EMORL GitHub repository: https://github.com/pemami4911/EfficientMORL, or directly from here: https://zenodo.org/records/4895643. Save the *.h5 files under data folder in this git repository.

Run Experiments

To train and test the SynCx, run one of the following commands, depending on the dataset:

python train.py --profile=syncx_tetrominoes

python train.py --profile=syncx_dsprites

python train.py --profile=syncx_clevr

To train and test the Rotating Features (RF) baseline model, run one of the following commands, depending on the dataset:

python train.py --profile=rf_tetrominoes

python train.py --profile=rf_dsprites

python train.py --profile=rf_clevr

Remember to edit the entity and project arguments for wandb.init command in train.py to log the experiments on your Weights&Biases account and desired project folder.

Citation

When using this code, please cite our paper:

@inproceedings{gopalakrishnan2024recurrent, title={Recurrent Complex-Weighted Autoencoders for Unsupervised Object Discovery}, author={Gopalakrishnan, Anand and Stani{\'c}, Aleksandar and Schmidhuber, J{\"u}rgen and Mozer, Michael Curtis}, booktitle={Thirty-eighth Conference on Neural Information Processing Systems}, year={2024} }

Contact

For questions and suggestions, feel free to open an issue on GitHub or send an email to anand@idsia.ch.

Owner

  • Name: Anand Gopalakrishnan
  • Login: agopal42
  • Kind: user
  • Company: The Swiss AI Lab (IDSIA)

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Gopalakrishnan"
  given-names: "Anand"
  orcid: "https://orcid.org/0000-0001-6336-5224"
title: "syncx"
version: 1.0.0
doi: 10.5281/zenodo.14617831
date-released: 2025-01-08
url: "https://github.com/agopal42/syncx"

GitHub Events

Total
  • Watch event: 11
  • Push event: 1
Last Year
  • Watch event: 11
  • Push event: 1

Dependencies

requirements.txt pypi
  • Pillow *
  • einops *
  • h5py *
  • matplotlib *
  • numpy *
  • opencv-python *
  • scikit-learn *
  • torch *
  • torchvision *
  • tqdm *
  • umap-learn *
  • wandb *