Los algoritmos de refuerzo (o de “reinforcement”) tienen como objetivo la creación de lo que se llama un “agente” capaz de aprender a partir de sus interacciones con el entorno. Este aprendizaje se produce cuando el algoritmo recibe una “recompensa” (“reward” en inglés) en función de cuál haya sido su comportamiento.
Por ejemplo, podemos plantearnos el entrenar un algoritmo de refuerzo para que aprenda a jugar al ajedrez, para lo que pasaríamos al algoritmo el conjunto de reglas que define el juego (los movimientos posibles para cada pieza, cómo se come una pieza, etc.). Durante el entrenamiento, el algoritmo jugaría -inicialmente de forma aleatoria- y, tras cada partida, recibiría una recompensa en función de cómo lo hubiese hecho, recompensa que, en este caso, puede ser una sencilla etiqueta de tipo "ganaste" o "perdiste". A partir de esta recompensa y de las decisiones que haya tomado durante la partida, iría construyendo el modelo.
Estos algoritmos pueden interpretarse como “supervisados” en los que la etiqueta se pasa al algoritmo con un retraso (no cada vez que mueve una pieza, por ejemplo, sino al final de la partida).