Learning, invariance, and generalization in high-order neural networks