# Aprendizaje de refuerzo profundo

El aprendizaje de refuerzo profundo o Deep reinforcement learning (DRL) es un subcampo del aprendizaje automático que combina el aprendizaje reforzado con el aprendizaje profundo. El aprendizaje reforzado considera el problema de un agente computacional aprendiendo a tomar decisiones por un método de prueba y error. El aprendizaje de refuerzo profundo incorpora el aprendizaje profundo a la solución, permitiendo que dichos agentes puedan tomar decisiones con datos de entrada no estructurados sin ingeniería manual del espacio de estados. Los algoritmos que se usan en el DRL son capaces de coger entradas muy amplias (por ejemplo, cada píxel de la pantalla de un videojuego) y decidir qué acciones realizar para optimizar un objetivo (por ejemplo, maximizar la puntuación del juego). El DRL se ha usado para diversas aplicaciones, incluyendo robótica, videojuegos, procesamiento del lenguaje natural, visión artificial, educación, transporte, finanzas y salud, entre otros.

## Visión general
### Aprendizaje profundo

El aprendizaje profundo es una forma de aprendizaje automático que usa una red neuronal para transformar un conjunto de entradas en un conjunto de salidas a través de una red neuronal artificial. Los métodos de aprendizaje profundo, a menudo usando aprendizaje supervisado con conjuntos de datos etiquetados, han demostrado capacidad para resolver tareas que implican el manejo de datos complejos y de alta dimensión, como imágenes, con menos ingeniería de características manual que métodos anteriores, permitiendo un progreso significativo en varios campos, incluyendo la visión artificial y el procesamiento del lenguaje natural.

### Aprendizaje por refuerzo

El aprendizaje por refuerzo es un proceso en el que el agente aprende a tomar decisiones a través del método de prueba y error. A menudo, este problema es modelado matemáticamente como un proceso de decisión de Markov (MDP), donde un agente en cada paso de tiempo está en un estado s, toma una acción a, recibe una recompensa escalar y pasa al siguiente estado s’ en concordancia con las dinámicas medioambientales p(s’|s,a). El agente trata de aprender una política π(a|s), o mapa de observaciones a acciones, con el objetivo de maximizar su suma de recompensas esperada. En el aprendizaje de refuerzo (al contrario del control óptimo) el algoritmo solo tiene acceso a las dinámicas p(s’|s,a) a través del muestreo.

### Aprendizaje de refuerzo profundo

En muchos problemas prácticos de toma de decisiones, los estados s del MDP son de alta dimensión (por ejemplo, imágenes de una cámara o el flujo de sensores en bruto de un robot) y no puede resolverse por algoritmos tradicionales de aprendizaje de refuerzo. Los algoritmos del DRL incorporan el aprendizaje profundo para resolver esos MDPs, a menudo representando la política π(a|s) u otras funciones aprendidas como una red neuronal, y desarrollando algoritmos especializados que funcionan bien en este entorno.

## Historia

Junto con el creciente interés por las redes neuronales que comenzó a mediados de los años 80, creció el interés por el DRL, en el que se utiliza una red neuronal en el aprendizaje de refuerzo para representar políticas o funciones de valor. Dado que, en un sistema de este tipo, todo el proceso de toma de decisiones, desde los sensores hasta los motores de un robot o agente, implica una única red neuronal, también se denomina a veces aprendizaje por refuerzo de extremo a extremo o de principio a fin. Una de las primeras aplicaciones con éxito del aprendizaje por refuerzo con redes neuronales fue el TD-Gammon, un programa informático desarrollado en 1992 para jugar al backgammon. Se utilizaron cuatro entradas para el número de piezas de un color determinado en un lugar concreto del tablero, con un total de 198 señales de entrada. Con un conocimiento nulo incorporado, la red aprendió a jugar el juego a un nivel intermedio por medio del autojuego y de TD(λ).
Los libros de texto fundamentales de Sutton y Barto sobre el aprendizaje por refuerzo, Bertsekas y Tsitsiklis sobre la programación neurodinámica, y otros hicieron avanzar el conocimiento y el interés en este campo.
El grupo de Katsunari Shibata demostró que en este marco surgen diversas funciones, entre las que se incluyen el reconocimiento de imágenes, la constancia del color, el movimiento de los sensores (reconocimiento activo), la coordinación mano-ojo y el movimiento de alcance de la mano, la explicación de las actividades cerebrales, la transferencia de conocimientos, la memoria, la atención selectiva, la predicción y la exploración.
A partir de 2012, la llamada revolución del aprendizaje profundo condujo a un mayor interés en el uso de redes neuronales profundas como aproximadores de funciones en una variedad de dominios. Esto condujo a un renovado interés en los investigadores que utilizan las redes neuronales profundas para aprender la política, el valor y/o las funciones Q presentes en los algoritmos de aprendizaje de refuerzo existentes.
Alrededor de 2013, DeepMind mostró impresionantes resultados de aprendizaje utilizando RL profunda para jugar a los videojuegos de Atari. El jugador de la computadora una red neuronal entrenada utilizando un algoritmo de RL profunda, una versión profunda de Q-learning que denominaron redes Q profundas (DQN), con la puntuación del juego como recompensa. Utilizaron una red neuronal convolucional profunda para procesar 4 cuadros de píxeles RGB (84x84) como entradas. Los 49 juegos se aprendieron utilizando la misma arquitectura de red y con un conocimiento previo mínimo, superando a los métodos de la competencia en casi todos los juegos y rindiendo a un nivel comparable o superior al de un probador de juegos humano profesional.
El aprendizaje por refuerzo profundo alcanzó otro hito en 2015, cuando AlphaGo, un programa informático entrenado con RL profunda para jugar al Go, se convirtió en el primer programa informático de Go que venció a un jugador profesional humano de Go sin desventaja en un tablero de tamaño normal de 19×19. En un proyecto posterior, en 2017, AlphaZero mejoró el rendimiento en Go, al tiempo que demostró que podían utilizar el mismo algoritmo para aprender a jugar al ajedrez y al shogi a un nivel competitivo o superior al de los programas informáticos existentes para esos juegos, y volvió a mejorar en 2019 con MuZero. Por otro lado, otro hito lo consiguieron investigadores de la Universidad Carnegie Mellon en 2019 al desarrollar Pluribus, un programa informático para jugar al póker que fue el primero en vencer a profesionales en partidas multijugador de Texas hold 'em sin límite. OpenAI Five, un programa para jugar a Dota 2 cinco contra cinco venció a los anteriores campeones del mundo en un partido de demostración en 2019.
El aprendizaje de refuerzo profundo también se ha aplicado a muchos dominios más allá de los juegos. En robótica, se ha utilizado para que los robots realicen tareas domésticas sencillas y resuelvan un cubo de Rubik con una mano robótica. El RL profundo también ha encontrado aplicaciones de sostenibilidad, utilizadas para reducir el consumo de energía en los centros de datos. El RL profundo para la conducción autónoma es un área activa de investigación en el mundo académico y la industria. Loon exploró el RL profundo para navegar de forma autónoma sus globos de gran altitud.

## Algoritmos

Existen varias técnicas para entrenar políticas para resolver tareas con algoritmos de aprendizaje de refuerzo profundo, cada una con sus propias ventajas. En el nivel más alto, hay una distinción entre el aprendizaje de refuerzo basado en modelos y el libre de modelos, que se refiere a si el algoritmo intenta aprender un modelo de avance de la dinámica del entorno.
En los algoritmos de aprendizaje de refuerzo profundo basados en modelos, se estima un modelo de avance de la dinámica del entorno, normalmente mediante aprendizaje supervisado utilizando una red neuronal. A continuación, las acciones se obtienen mediante el control predictivo por modelo aprendido. Dado que la dinámica real del entorno suele divergir de la dinámica aprendida, el agente vuelve a planificar con frecuencia cuando lleva a cabo acciones en el entorno. Las acciones seleccionadas pueden optimizarse utilizando métodos de Monte Carlo, como el método de entropía cruzada, o una combinación de aprendizaje de modelos con métodos sin modelos.
En los algoritmos de aprendizaje profundo por refuerzo sin modelo, se aprende una política π(a|s) sin modelar explícitamente la dinámica de avance. Una política puede ser optimizada para maximizar los retornos estimando directamente el gradiente de la política pero sufre de una alta varianza, haciéndola poco práctica para su uso con la aproximación de funciones en la RL profunda. Se han desarrollado algoritmos posteriores para un aprendizaje más estable y se han aplicado ampliamente. Otra clase de algoritmos de aprendizaje profundo por refuerzo sin modelo se basa en la programación dinámica, inspirada en el aprendizaje por diferencia temporal y el aprendizaje Q. En los espacios de acción discretos, estos algoritmos suelen aprender una función Q Q(s,a) de la red neuronal que estima los rendimientos futuros tomando una acción a partir del estado s. En los espacios continuos, estos algoritmos suelen aprender tanto una estimación del valor como una política.

## Investigación

El aprendizaje por refuerzo profundo es un área de investigación activa, con varias líneas de investigación.

### Exploración

Un agente de RL debe equilibrar el compromiso de exploración/explotación: el problema de decidir si perseguir las acciones que ya se sabe que producen grandes recompensas o explorar otras acciones para descubrir recompensas más altas. Los agentes de RL suelen recoger datos con algún tipo de política estocástica, como una distribución de Boltzmann en espacios de acción discretos o una distribución gaussiana en espacios de acción continuos, lo que induce un comportamiento de exploración básico. La idea que subyace a la exploración basada en la novedad, o impulsada por la curiosidad, es dar al agente un motivo para explorar resultados desconocidos con el fin de encontrar las mejores soluciones. Esto se hace "modificando la función de pérdida (o incluso la arquitectura de la red) mediante la adición de términos para incentivar la exploración". Un agente también puede ser ayudado en la exploración mediante la utilización de demostraciones de trayectorias exitosas, o la recompensa-formación, dando un agente recompensas intermedias que se adaptan a la tarea que está tratando de completar.

### Aprendizaje por refuerzo fuera de la política

Una distinción importante en la RL es la diferencia entre los algoritmos basados en políticas que requieren evaluar o mejorar la política que recoge los datos, y los algoritmos fuera de política, que pueden aprender una política a partir de los datos generados por una política arbitraria. En general, los métodos basados en funciones de valor, como el aprendizaje Q, son más adecuados para el aprendizaje fuera de política y tienen una mayor eficiencia de muestreo: la cantidad de datos necesarios para aprender una tarea se reduce porque los datos se reutilizan para el aprendizaje. En el extremo, la RL fuera de línea (o "por lotes") considera el aprendizaje de una política a partir de un conjunto de datos fijo sin interacción adicional con el entorno.

### Aprendizaje de refuerzo inverso

El RL inverso se refiere a inferir la función de recompensa de un agente dado el comportamiento del mismo. El aprendizaje de refuerzo inverso puede utilizarse para el aprendizaje a partir de demostraciones (o aprendizaje de aprendizaje) infiriendo la recompensa del demostrador y optimizando después una política para maximizar los rendimientos con RL. Se han utilizado enfoques de aprendizaje profundo para varias formas de aprendizaje por imitación y RL inverso.

### Aprendizaje por refuerzos condicionados por objetivos

Otra área de investigación activa es el aprendizaje de políticas condicionadas por el objetivo, también llamadas políticas contextuales o universales π(a|s,g), que toman un objetivo adicional g como entrada para comunicar un objetivo deseado al agente. La repetición de la experiencia retrospectiva es un método para la RL condicionada por el objetivo que implica el almacenamiento y el aprendizaje de los intentos fallidos anteriores para completar una tarea. Mientras que un intento fallido puede no haber alcanzado el objetivo previsto, puede servir como una lección para lograr el resultado no deseado a través del reetiquetado retrospectivo.

### Aprendizaje por refuerzo multiagente

Muchas aplicaciones del aprendizaje por refuerzo no implican a un solo agente, sino a un conjunto de agentes que aprenden juntos y se coadaptan. Estos agentes pueden ser competitivos, como en muchos juegos, o cooperativos, como en muchos sistemas multiagente del mundo real. El aprendizaje multiagente estudia los problemas que se presentan en este entorno.

### Generalización

La promesa del uso de herramientas de aprendizaje profundo en el aprendizaje por refuerzo es la generalización: la capacidad de operar correctamente en entradas no vistas previamente. Por ejemplo, las redes neuronales entrenadas para el reconocimiento de imágenes pueden detectar que una imagen contiene un pájaro aunque nunca hayan visto esa imagen en particular o incluso ese pájaro en concreto. Dado que la RL profunda admite datos brutos (por ejemplo, píxeles) como entrada, se reduce la necesidad de predefinir el entorno, lo que permite generalizar el modelo a múltiples aplicaciones. Con esta capa de abstracción, los algoritmos de aprendizaje por refuerzo profundo pueden diseñarse de forma que se generalicen y el mismo modelo pueda utilizarse para diferentes tareas. Un método para aumentar la capacidad de generalización de las políticas entrenadas con RL profunda es incorporar el aprendizaje de representación.