In conventional supervised learning, one searches for "vertical" patterns, connecting inputs directly to outputs. One can instead search for "horizontal" patterns, which go across the learning set, connecting one part of it with another. One way to do this is to pre-process the learning problem before feeding it to a conventional generalizer (like backpropagation). This pre-processing technique...