Self-Learning Neural Networks