A machine that learns