Deep Q-learning (2021)
Hemos estudiado e implementado una clase de algoritmos conocidos como deep Q-learning, inspirados en la mezcla entre el aprendizaje reforzado y el aprendizaje profundo. El objetivo principal de estos algoritmos es resolver un problema de decisión de Markov en un espacio de estados muy grande, donde los algoritmos clásicos de aprendizaje por refuerzo no tienen éxito. Primero, presentamos las ideas básicas de programación dinámica y aprendizaje reforzado y algunos ejemplos de PDMs que se resuelven utilizando algoritmos model-free. Luego, presentamos y motivamos las redes neuronales. A continuación, discutimos los diferentes optimizadores, funciones de costo y arquitecturas que se suelen elegir en deep learning. Posteriormente, mezclamos estos dos conceptos y mencionamos cómo los investigadores han abordado los principales problemas que surgen al fusionar estas dos áreas, como el entrenamiento de una red neuronal con datos correlacionados. Con la ayuda de varias bibliotecas, como Gym, Tensorflow 2.0 y Keras-rl2, implementamos varios agentes DQN. Comenzamos entrenando a un agente DQN simple en un problema de control óptimo llamado Acrobot, donde la función Q se aproxima usando una red neuronal con dos capas ocultas de 32 nodos. Después de esto, implementamos tres variantes del agente DQN para tres entornos Atari diferentes. Estos nueve agentes diferentes fueron entrenados con 10 millones de pasos usando la misma arquitectura para el agente DQN. Finalmente, decidimos entrenar más a un agente de DQN, aquel usado para el juego de Breakout, y lo entrenamos por otros 5 millones de pasos. Después de hacer esto, los pesos del agente cambiaron de mínimo local, lo que le dio al agente una recompensa mucho más alta que antes. Además, los vectores de características de la última capa oculta se estudiaron utilizando un mapa tSNE en diferentes etapas de entrenamiento del entrenamiento para visualizar la representación de múltiples estados a lo largo del proceso de aprendizaje.