Yes, stacking spatial poolers doesnt do much, it only looses information at each layer.
The major problem I am facing with spatial pooler is basically that its way too lossy at encoding data, it ignores completelly some bits and patterns, even when a bit is the most important one for the task, since it has no way of knowing.
I havent even tried to use HTM at anything with it. honestly, the triadic memory is just better and more efficient most of the time.
The most accuracy I managed at mnist classification with the spatial pooler was 75%
And decent reconnstruction of the digit was nearly impossible.
but I noticed that its easy to turn a spatial pooler into a variation of a RBM, all you need to do is generate a reconstruction, subtract the reconstruction from the input and what you get is a signed error, this error can be used to directly update the synapses.
I havent tested this RBM-pooler in MNIST so far but it can get almost lossless reconstructions of the data so I’m using it as a encoder for natural image patches, I’ve had a moderate sucess at image upscaling with it although its only slightly better than bicubic interpolation since its good at anti-aliasing.