anttiluode / SihtiImageModel

Sihti Image Model

A fixed sieve splits every image into residues by scale. A memory keeps the residues of the training images. To make a new image, imagine the coarse core, then read each finer residue from the stored images whose coarser state is closest. No backpropagation anywhere.

image = core + r3 + r2 + r1 + r0  (exact; the inverse is addition)

Dataset
Fine residues come from
Class

Coarse to fine — top: running sum, bottom: the band added at that step

16 more from the same class · tap one to show its stages

Loading model…

Fill in the residues

Pick a real test image. The page runs the sieve on it, keeps only the coarse bands, throws the finer residues away, and asks each memory to put them back. None of them is told the class. The whole-image memory addresses with the whole coarse image; the patch memory addresses with a 5×5 window around each place and holds 512 local rules per band. Shift the image a few pixels and watch which one copes.

Given
Position

Real photos

The same patch memory idea, fit on 200 BSDS500 photos and run here on photos it never saw. The page keeps core + r3 of each colour channel and fills r2, r1 and r0 back in, once with a single linear filter and once with the 512-rule patch memory. The whole-image memory cannot run on these at all.

Zoom on the middle of the photo

Loading the photo memory…

Ledger

Pre-registered gates, full test sets. The judge is a backprop MLP trained only on real images; it never sees samples during training.

Loading results…

Patch memory (second pre-registration)

Loading results…