Learning from Limited and Imperfect Data