Unsupervised Learning (Foundations of Neural Computation)