Improving Learning Speed and Generalization in Multi-Layer Perceptrons through Principal Component Analysis