Neural networks for real world tasks : limitations and solutions