El aprendizaje por refuerzo, o Reinforcement Learning, es otro tipo de algoritmos de Machine Learning en el que el objetivo es el desarrollo de un sistema -que recibe el nombre de agente- que se desea que mejore su eficiencia realizando cierta tarea basándose en la interacción con su entorno. Para ello, el agente recibe recompensas (rewards en inglés) que le permiten adaptar su comportamiento.
Desde cierto punto de vista este tipo de algoritmos puede considerarse una forma de algoritmos supervisados -al fin y al cabo el agente va a recibir una "etiqueta" (la recompensa)-. Sin embargo, esta etiqueta no es la "verdad fundamental" (ground truth) asociada a su comportamiento, solo es un indicador de cuan bien o mal ha realizado su acción. Por poner un ejemplo, si entrenamos un algoritmo para que juegue de forma eficiente al ajedrez, el hecho de que el algoritmo gane una partida y reciba una recompensa positiva no indica que los movimientos de piezas realizados sean "los correctos" (afirmado de modo absoluto). Simplemente indica que éstos fueron adecuados en el entorno específico en el que se produjeron.
A medida que recibe recompensas, el agente debe desarrollar la estrategia correcta -llamada política (policy)- que lo lleve a obtener recompensas positivas en todas las situaciones posibles.