Self-Optimizing Learning