Introduction to the theory of neural computation: John A. Hertz, Anders S. Krogh and Richard G. Palmer☆