¿Qué es el aprendizaje por refuerzo profundo?

Junto con el aprendizaje automático no supervisado y el aprendizaje supervisado, otra forma común de creación de IA es el aprendizaje por refuerzo.

Guía de Inteligencia Artificial

Más allá del aprendizaje de refuerzo regular, el aprendizaje de refuerzo profundo puede conducir a resultados sorprendentemente impresionantes, gracias al hecho de que combina los mejores aspectos del aprendizaje profundo y el aprendizaje de refuerzo.

Veamos cómo funciona precisamente el aprendizaje de refuerzo profundo.

Todo lo que debes saber por refuerzo profundo?

Antes de sumergirnos en el aprendizaje por refuerzo profundo, podría ser una buena idea refrescarnos sobre cómo funciona el aprendizaje por refuerzo regular.

En el aprendizaje por refuerzo, los algoritmos orientados a objetivos se diseñan a través de un proceso de prueba y error, optimizando la acción que conduce al mejor resultado y la acción que obtiene la mayor recompensa.

Cuando se entrenan los algoritmos de aprendizaje por refuerzo, se les otorgan “recompensas” o “castigos” que influyen en las acciones que tomarán en el futuro. Los algoritmos intentan encontrar un conjunto de acciones que proporcionen al sistema la mayor recompensa, equilibrando las recompensas inmediatas y futuras.

Los algoritmos de aprendizaje por refuerzo son muy potentes porque se pueden aplicar a casi cualquier tarea, pudiendo aprender de forma flexible y dinámica de un entorno y descubrir posibles acciones.

Descripción general del aprendizaje por refuerzo profundo

Cuando se trata de aprendizaje de refuerzo profundo, el entorno generalmente se representa con imágenes. Una imagen es una captura del entorno en un momento determinado.

El agente debe analizar las imágenes y extraer información relevante de ellas, utilizando la información para informar qué acción debe tomar.

El aprendizaje de refuerzo profundo generalmente se lleva a cabo con una de dos técnicas diferentes: aprendizaje basado en valores y aprendizaje basado en políticas.

Las técnicas de aprendizaje basadas en valores hacen uso de algoritmos y arquitecturas como redes neuronales convolucionales y Deep-Q-Networks. Estos algoritmos funcionan convirtiendo la imagen a escala de grises y recortando partes innecesarias de la imagen.

Posteriormente, la imagen se somete a varias convoluciones y operaciones de agrupación, extrayendo las partes más relevantes de la imagen. Las partes importantes de la imagen se utilizan luego para calcular el valor Q de las diferentes acciones que puede realizar el agente.

Los valores Q se utilizan para determinar el mejor curso de acción para el agente y después de calcular los valores Q iniciales, se lleva a cabo una retropropagación para poder determinar los valores Q más precisos.

Los métodos basados en políticas se utilizan cuando la cantidad de acciones posibles que el agente puede realizar es extremadamente alta, lo que suele ser el caso en escenarios del mundo real. Situaciones como estas requieren un enfoque diferente porque calcular los valores Q para todas las acciones individuales no es pragmático.

Los enfoques basados en políticas operan sin calcular los valores de función para acciones individuales. En su lugar, adoptan políticas aprendiendo la política directamente, a menudo a través de técnicas llamadas gradientes de política.

Los gradientes de políticas funcionan al recibir un estado y calcular las probabilidades de las acciones en función de las experiencias previas del agente. A continuación, se selecciona la acción más probable.

Este proceso se repite hasta el final del período de evaluación y las recompensas se entregan al agente. Una vez que las recompensas se han repartido con el agente, los parámetros de la red se actualizan con retropropagación.

¿Qué es Q-Learning?

Debido a que Q-Learning es una parte muy importante del proceso de aprendizaje por refuerzo profundo, tomemos un tiempo para comprender realmente cómo funciona el sistema de Q-learning.

El proceso de decisión de Markov

Para que un agente de IA lleve a cabo una serie de tareas y alcance un objetivo, el agente debe ser capaz de lidiar con una secuencia de estados y eventos. El agente comenzará en un estado y debe realizar una serie de acciones para llegar a un estado final, pueden existir una gran cantidad de estados existentes entre los estados inicial y final.

El almacenar información sobre cada estado es poco práctico o imposible, por lo que el sistema debe encontrar una manera de preservar solo la información de estado más relevante. Eso se logra mediante el uso de un proceso de decisión de Markov que conserva solo la información sobre el estado actual y el estado anterior.

Cada estado sigue una propiedad de Markov, que rastrea cómo el agente cambia del estado anterior al estado actual.

Q-aprendizaje profundo

Una vez que el modelo tiene acceso a la información sobre los estados del entorno de aprendizaje, se pueden calcular los valores Q. Los valores Q son la recompensa total otorgada al agente al final de una secuencia de acciones.

Los valores Q se calculan con una serie de recompensas. Hay una recompensa inmediata, calculada en el estado actual y dependiendo de la acción actual. También se calcula el valor Q para el estado subsiguiente, junto con el valor Q para el estado posterior, y así sucesivamente hasta que se hayan calculado todos los valores Q para los diferentes estados.

También hay un parámetro Gamma que se usa para controlar cuánto peso tienen las recompensas futuras en las acciones del agente. Las políticas generalmente se calculan inicializando aleatoriamente los valores Q y dejando que el modelo converja hacia los valores Q óptimos en el transcurso del entrenamiento.

Redes Q profundas

Uno de los problemas fundamentales que implica el uso de Q-learning para el aprendizaje por refuerzo es que la cantidad de memoria requerida para almacenar datos se expande rápidamente a medida que aumenta el número de estados.

Deep Q Networks resuelve este problema al combinar modelos de redes neuronales con valores Q, lo que permite que un agente aprenda de la experiencia y haga conjeturas razonables sobre las mejores acciones a tomar. Con Q-learning profundo, las funciones de valor Q se estiman con redes neuronales.

La red neuronal toma el estado como datos de entrada y genera valores Q para todas las diferentes acciones posibles que el agente podría realizar.

El Q-learning profundo se logra almacenando todas las experiencias pasadas en la memoria, calculando las salidas máximas para la red Q y luego usando una función de pérdida para calcular la diferencia entre los valores actuales y los valores teóricos más altos posibles.

Aprendizaje por refuerzo profundo versus aprendizaje profundo

Una diferencia importante entre el aprendizaje profundo por refuerzo y el aprendizaje profundo regular es que, en el caso del primero; las entradas cambian constantemente, lo que no ocurre en el aprendizaje profundo tradicional.

¿Cómo puede el modelo de aprendizaje dar cuenta de las entradas y salidas que cambian constantemente?

Esencialmente, para tener en cuenta la divergencia entre los valores predichos y los valores objetivo, se pueden usar dos redes neuronales en lugar de una. Una red estima los valores objetivo, mientras que la otra red es responsable de las predicciones.

Los parámetros de la red de destino se actualizan a medida que el modelo aprende, después de que haya pasado un número determinado de iteraciones de entrenamiento. Las salidas de las respectivas redes luego se unen para determinar la diferencia.

Aprendizaje basado en políticas

Los enfoques de aprendizaje basados en políticas funcionan de manera diferente a los enfoques basados en el valor Q. Mientras que los enfoques de valor Q crean una función de valor que predice recompensas por estados y acciones, los métodos basados en políticas determinan una política que asignará estados a acciones.

En otras palabras, la función de política que selecciona acciones se optimiza directamente sin tener en cuenta la función de valor.

Gradientes de políticas

Una política para el aprendizaje de refuerzo profundo cae en una de dos categorías: Estocástica o determinista.

Una política determinista es aquella en la que los estados se asignan a acciones, lo que significa que cuando la política recibe información sobre un estado, se devuelve una acción. Mientras tanto, las políticas estocásticas devuelven una distribución de probabilidad para las acciones en lugar de una sola acción discreta.

Las políticas deterministas se utilizan cuando no hay incertidumbre sobre los resultados de las acciones que se pueden tomar. En otras palabras, cuando el propio entorno es determinista. Por el contrario, los resultados de políticas estocásticas son apropiados para entornos en los que el resultado de las acciones es incierto.

Por lo general, los escenarios de aprendizaje por refuerzo implican cierto grado de incertidumbre, por lo que se utilizan políticas estocásticas.

Los enfoques de gradiente de políticas tienen algunas ventajas sobre los enfoques de Q-learning, así como algunas desventajas.

En términos de ventajas, los métodos basados en políticas convergen en parámetros óptimos de manera más rápida y confiable. El gradiente de la política puede seguirse hasta que se determinen los mejores parámetros, mientras que con los métodos basados en valores, pequeños cambios en los valores de acción estimados pueden conducir a grandes cambios en las acciones y sus parámetros asociados.

Los gradientes de política también funcionan mejor para espacios de acción de alta dimensión. Cuando hay un número extremadamente alto de posibles acciones a realizar, el Q-learning profundo se vuelve poco práctico porque debe asignar una puntuación a cada acción posible para todos los pasos de tiempo, lo que puede ser imposible computacionalmente.

Sin embargo, con los métodos basados en políticas, los parámetros se ajustan con el tiempo y la cantidad de posibles mejores parámetros se reduce rápidamente a medida que el modelo converge.

Los gradientes de políticas también son capaces de implementar políticas estocásticas, a diferencia de las políticas basadas en valores. Debido a que las políticas estocásticas producen una distribución de probabilidad, no es necesario implementar una compensación de exploración/explotación.

En términos de desventajas, la principal desventaja de los gradientes de política es que pueden atascarse en la búsqueda de parámetros óptimos, centrándose solo en un conjunto estrecho y local de valores óptimos en lugar de los valores óptimos globales.

Función de puntaje de política

Las políticas utilizadas para optimizar el rendimiento de un modelo tienen como objetivo maximizar una función de puntuación: J( θ ). Si J( θ ) es una medida de qué tan buena es nuestra política para lograr la meta deseada, podemos encontrar los valores de “ θ ” que nos dan la mejor política. Aunque primero, se necesita calcular una recompensa política esperada.

Estimada la recompensa de la política para tener un objetivo, algo hacia lo que optimizar. La función de puntuación de política es la forma en que se calcula la recompensa de política esperada y existen diferentes funciones de puntuación de política que se usan comúnmente, como: Valores iniciales para entornos episódicos, el valor promedio para entornos continuos y la recompensa promedio por paso de tiempo.

Ascenso de gradiente de política

Después de usar la función de puntaje de política deseada y calcular una recompensa de política esperada, podemos encontrar un valor para el parámetro ” θ ” que maximiza la función de puntaje. Para maximizar la función de puntuación J( θ ), se utiliza una técnica llamada “ascenso de gradiente”.

El ascenso de gradiente es similar en concepto al descenso de gradiente en el aprendizaje profundo, pero optimizando para el aumento más pronunciado en lugar de la disminución. Eso se debe a que nuestra puntuación no es “error”, como en muchos problemas de aprendizaje profundo. Nuestra puntuación es algo que queremos maximizar.

Se utiliza una expresión llamada Teorema del Gradiente de la Política para estimar el gradiente con respecto a la política “ θ ”.


Conclusión final del aprendizaje por refuerzo profundo

En resumen, el aprendizaje por refuerzo profundo combina aspectos del aprendizaje por refuerzo y las redes neuronales profundas. El aprendizaje de refuerzo profundo se realiza con dos técnicas diferentes: Q-learning profundo y gradientes de políticas.

Los métodos de Deep Q-learning tienen como objetivo predecir qué recompensas seguirán a ciertas acciones realizadas en un estado determinado, mientras que los enfoques de gradiente de políticas tienen como objetivo optimizar el espacio de acción, prediciendo las acciones.

Los enfoques basados en políticas para el aprendizaje por refuerzo profundo son de naturaleza determinista o estocástica. Las políticas deterministas asignan estados directamente a las acciones, mientras que las políticas estocásticas producen distribuciones de probabilidad para las acciones.

Relacionado

❌ React Native, crear aplicación como Netflix con Mario Díez

[no_toc] [expand title="Índice del Vídeotutorial"] 1. FlatList Horizontal 2. Componente Swiper 3. Menú Animado y Header 4. FlatList Grid 5. Más Flexbox, Tabs y Linear gradiantes 6. Reproductor de Vídeo 7. Share API 8. Animatable Header y NativeEvents 9. React Navigation 10. Header Múltiple con Animated 11. Modal con React Navigation 12. React Navigation con Redux 13. Servidor NodeJS con MongoDB para React Native 14. Conectando ¡SEGUIR LEYENDO!

❌ React Native con Mario Díez

[no_toc] [expand title="Índice del Vídeotutorial"] 1. Instalación 2. Introducción 3. Props y State 4. Fetch Data 5. ListView 6. Fech Data 2 7. Navigator IOS 8. Navigator 9. Flexbox 10. PropTypes 11. TabBarIOS 12. Formularios 13. AsyncStorage 14. Recorriendo Arrays con Map 15. Notificaciones Push 16. Notificaciones Push desde NodeJS 17. Barra de Búsqueda en ListView 18. Utilización de CameraRoll 19. Children o Props 20. Diferenciar ¡SEGUIR LEYENDO!

❌ React Native con Iván B. Trujillo

[no_toc] [expand title="Índice del Vídeotutorial"] 1. Primeros Pasos 2. Componentes, Botones y Alertas 3. Pantalla de Login, Navegador y Vistas 4. Navegación por Pestañas 5. Peticiones a API y ListView 6. Vista Detalles y Paso de Propiedades a Componente Hijo [/expand] [yotuwp type="playlist" id="PLuzQ5Ac_9_cI-ukaElfIFKXyhLsADBiJe" ] [expand title="Creador"] Editor del blog de Medium: Canarias JS [/expand]

❌ Javascript con Píldoras Informáticas

[no_toc] [expand title="Índice del Vídeotutorial"] 1. Presentación. Vídeo 1 2. Introducción. Vídeo 2 3. Sintaxis Básica I. Ubicación del código. Vídeo 3 4. Sintaxis Básica II. Estructuras Básicas. Vídeo 4 5. Sintaxis Básica III. Operadores Básicos. Vídeo 5 6. Sintaxis Básica IV. Operadores y prompt. Vídeo 6 7. Sintaxis Básica V Arrays, Matrices, Arreglos. Vídeo 7 8. Sintaxis Básica V. Arrays, Matrices, Arreglos II. Vídeo 8 ¡SEGUIR LEYENDO!

❌ Javascript con Falcon Masters

[no_toc] [expand title="Índice del Vídeotutorial"] 1. Introducción 2. Variables 3. Tipos de Dato 4. Arreglos 5. Metodos y propiedades para los Arreglos 6. Condicionales 7. Ciclo Fo 8. Ciclo While 9. Funciones 10. Ejercicio con Funciones y Formularios 11. Scope de Javascript (ámbito de las variables) 12. Metodos y propiedades para Cadenas de Texto 13. Introducción al DOM (Document Object Model) 14. Creando Nodos del DOM ¡SEGUIR LEYENDO!

Salir de la versión móvil