John A. Hertz, Anders S. Krogh, Richard G. Palmer, Introduction to the Theory of Neural Computation