Learning from dependent observations