Ce projet implémente un réseau de neurones basé sur des portes logiques différentiables, inspiré du concept de Logic Gate Networks (LGN) décrit dans l'article arXiv:2411.04732.
- Chaque neurone applique une combinaison pondérée de portes logiques (XOR, AND, OR, etc.).
- Les poids sont appris via un softmax différentiable sur les "logits" des fonctions logiques.
- La structure du réseau est composée de plusieurs couches, chaque neurone ayant 2 entrées et 16 fonctions logiques possibles.
.
├── bin
│ ├── main
│ └── obj
│ ├── main.o
│ ├── logical_net.o
│ ├── neural_net.o
│ └── neuron.o
├── src
│ ├── logical_net.c
│ ├── neural_net.c
│ └── neuron.c
├── headers
│ ├── logical_net.h
│ ├── neural_net.h
│ └── neuron.h
├── main.c // -----> exemple d'utilisation
├── makefile
└── readme.md
make plot