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)
Loading model…
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.
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.
Loading the photo memory…
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…
Loading results…