ARotting's picture
Publish Interactive factorial latent-code explorer
9220556 verified
|
Raw
History Blame Contribute Delete
2.12 kB
metadata
title: Factorial Code Forge Lab
emoji: 🧪
colorFrom: indigo
colorTo: blue
sdk: static
app_file: index.html
pinned: false

Factorial Code Forge

Factorial Code Forge mixes two statistically independent non-Gaussian sources and asks a tiny autoencoder to recover a useful two-dimensional code. In the experimental variant, two adversarial predictors try to infer each latent coordinate from the other while the encoder tries to make those predictions fail. Reconstruction and variance constraints prevent a constant-code shortcut.

The historical anchor is Schmidhuber's 1992 Learning Factorial Codes by Predictability Minimization. The modern experiment compares predictability minimization with an architecture-matched reconstructive encoder, PCA whitening, and FastICA. It is a new controlled benchmark, not a reproduction of the original paper's implementation or datasets.

Verified results

Models trained on 20,000 mixed samples and were measured once on 5,000 new samples:

Code Absolute correlation Symmetric MI estimate
Autoencoder control 0.02200 0.22345
Online neural-adversarial ablation 0.01886 0.22678
Validation-selected predictability minimum 0.01158 0.00280
PCA whitening 0.02039 0.22275
FastICA 0.00590 0.00326

The selected 12-parameter linear codec reconstructed the mixtures at 1.08e-14 MSE. Its rotation was selected using polynomial cross-predictors on a held-out portion of the training set, never the test set. The online neural minimax game did not improve nonlinear dependence and is retained as a negative stability result rather than omitted.

Reproduce

uv run python projects/factorial-code-forge/train.py

Hosted showcase

This free static Space preserves the complete original Gradio source, trained artifacts, evaluation files, and local launch requirements. Hugging Face now requires PRO for CPU-backed Gradio hosting, so the public landing page is static while the checked-in app.py remains the authoritative runnable demo.