Parte 2: Comparaciones y aplicaciones
Si aún no ha leído la guía de reinforcement learning vuelva atrás y compruébelo primero aquí . Ese artículo le proporcionará los conceptos clave en reinforcement learning. Entonces estará listo para comparar completamente los diferentes tipos de aprendizaje automático.
Comparando el reinforcement learning con otros tipos de aprendizaje automático
Es posible que haya oído hablar de otros tipos de aprendizaje automático, es decir: aprendizaje supervisado, aprendizaje no supervisado, etc. Comprender cómo el reinforcement learning (RL) difiere de ellos es una buena forma de comprender el paisaje de aprendizaje automático.
Aprendizaje supervisado
El tipo más fácil de ML a comprensión es aprendizaje supervisado. El aprendizaje supervisado es aprender con etiquetas humanas. La clasificación de imágenes es un tipo de aprendizaje supervisado. Usted tiene un algoritmo y, basado en imágenes etiquetadas, el sistema puede clasificar la imagen como un gato o un perro. El algoritmo aprende al observar el conjunto de entrenamiento y luego puede inferir correctamente el sujeto de una imagen desconocida.
Otro buen ejemplo de un problema de aprendizaje supervisado es un problema de regresión. En un problema de regresión, toma una serie de parámetros y estima un valor real y continuo basado en esos parámetros. Por ejemplo, puede tomar información sobre una casa (el número de habitaciones, pies cuadrados, cantidad de ventanas, etc.) y generar un precio. Sabemos lo que valen muchas casas y podemos alimentar esos ejemplos etiquetados en el algoritmo. Luego, cuando presente una nueva casa al sistema, puede obtener una buena estimación del precio por sí misma. Estos son problemas que son fáciles de enmarcar como problemas de aprendizaje supervisado.
Aprendizaje no supervisado
Por otro lado, tenemos aprendizaje sin supervisión: Aprendizaje sin etiquetas. Un buen ejemplo de esto es tomar datos de compra del usuario y agrupar a sus clientes en categorías con patrones de compra similares. Su algoritmo hace la agrupación y puede sugerir productos a personas dentro de una categoría determinada. No le decimos al algoritmo qué es una etiqueta o un nombre de categoría, simplemente le entregamos un montón de datos y crea grupos basados en patrones en los datos. El aprendizaje no supervisado también se usa ampliamente para visualizar una gran cantidad de datos complejos. Hace que sea más fácil para un ser humano ver toda la información en una imagen.
Reinforcement learning
El reinforcement learning se describe con frecuencia como que cae entre el aprendizaje supervisado y el no supervisado. Hay etiquetas de retardo (recompensas), que se otorgan a un algoritmo a medida que aprende a interactuar en un entorno. Un algoritmo aprende en base a cómo se redacta el problema del aprendizaje. Esto es exactamente lo que hace que el reinforcement learning se destaque en cosas como la toma de decisiones en tiempo real, la IA de videojuegos, la navegación de robots y otras tareas complejas. La clave es darle al sistema la capacidad de comprender qué decisiones son buenas y cuáles son malas, según el estado actual del entorno.
Aplicaciones de Reinforcement Learning: Aplicando estos conceptos
En el artículo anterior, cubrimos los conceptos básicos del reinforcement learning. Aquí hay un pequeño resumen de lo que hemos cubierto hasta ahora en la forma de un ejemplo concreto:
Imagine un ratón en un laberinto básico. El mouse será nuestro agente .
Para empezar, verificaremos las cosas que nuestro agente necesita:
- Objetivo: El mouse tiene el objetivo de maximizar la cantidad de queso que obtiene
- Acciones: El mouse se puede mover en cualquiera de los cuatro puntos cardinales
- Sentidos : El mouse puede observar el estado del entorno en el que se encuentra (inicio, nada, queso pequeño, dos quesitos pequeños, queso grande y muerte). Para nuestro ejemplo simple, solo tener un sentido simple del estado del medio ambiente es más que suficiente.
Además, veamos los subelementos de nuestro problema y veamos cómo se miden:
- La política: en cualquier estado, ¿cuál de las cuatro acciones tomará nuestro ratón?
- La señal de recompensa: Positiva (se obtuvo un queso, pero ¿qué tan grande es un queso?), neutral (no se alcanzó ningún estado), o negativo (el estado de muerte ha terminado nuestro juego).
- La función de valor: esto es algo que nuestro mouse construirá y mantendrá sobre la marcha. Se puede ajustar en el transcurso de una iteración o en muchas ejecuciones a través del laberinto.
- El modelo: si permitimos que nuestro mouse conozca el tamaño de su entorno, puede almacenar un modelo de él en su memoria. Podemos representar el mundo como una cuadrícula 2D (matriz), lo que permite al mouse completar si hay una recompensa positiva, negativa o nula en un cuadrado de cuadrícula dado mientras atraviesa y observa el entorno real
Diseccionemos una base , política codiciosa que un agente puede emplear:
Una de las políticas es una estrategia de Q-table. Q-table significa ‘tabla de calidad’. Es una tabla de acciones y estados, así como las recompensas asociadas con ellos. Podríamos emplear una estrategia básica que diga que cuando encontremos un estado, elija la acción que le dará más recompensa a nuestro agente. Cuando nuestro agente no sabe qué le dará más recompensa, elija una acción al azar.
Al principio, la mesa de nuestro mouse está vacía No sabe nada. Elige su estrategia al azar, y puede moverse a la derecha y recibe una pequeña cantidad de queso, por ejemplo. Eso es bueno, ¡y nuestro agente recibe una señal de recompensa! La tabla se actualiza en consecuencia, y nuestro agente seguirá eligiendo acciones hasta que haya agotado todas las posibilidades o haya muerto.
Ya puedes ver surgir un problema: cuando reiniciamos nuestro laberinto, nuestro agente tiende a moverse siempre hacia el queso pequeño, sin optar nunca por una alternativa desconocida. Esto se conoce como la compensación de exploraciones versus explotación, pero volveremos sobre eso en un momento.
Ahora que hemos visualizado cómo funcionan estos componentes Juntos, profundicemos en algunas de las cosas que se necesitan para cualquier problema de reinforcement learning que deseamos resolver.
Reinforcement learning de redacción con tareas
Uno de los principales componentes a considerar para una aplicación de reinforcement learning es cómo está estructurada la tarea Estos se dividen generalmente en dos categorías: episódica o continua.
1. Tareas episódicas
Las tareas episódicas tienen estados iniciales y finales distintos. Podemos guardar estos “episodios” y entrenarlos “fuera de línea”. Un buen ejemplo serían nuestros niveles de Mario de nuestro artículo anterior.
2. Tareas continuas
Las tareas continuas no tienen fin. Esto podría ser como un algoritmo de toma de decisiones que predice cuándo alguien debería comprar o vender acciones en el mercado bursátil.
Esto siempre está evolucionando y cambiando, con muchos factores ambientales. No existen claros estados de inicio y fin que nos permitan dividir fácilmente un episodio en el que entrenar por temor a que nuestro algoritmo se ajuste demasiado a un pequeño segmento de tiempo.
El mercado de valores siempre está cambiando. Cortarlo en episodios es ignorar la continuidad vinculada de cómo evoluciona
La forma en que formulamos los objetivos y recompensas de nuestro agente está determinada por el tipo de tarea que buscamos completar, porque puede cambiar la naturaleza de cuando aprendemos (algo de lo que hablaremos a continuación).
Cuándo aprender
El tiempo es crítico en la forma en que un agente realizará una tarea. Tal vez un agente debería estar aprendiendo en cada cuadro de juego, o tal vez el agente aprenda en episodios.
Podríamos emplear una estrategia de Monte Carlo de ciclismo a través de todo el episodio de aprendizaje y luego mejorar y ser más inteligentes con cada iteración.
Estas opciones tienen diferentes compensaciones y pueden o no ser factibles dependiendo del tipo de tarea que nuestro agente esté tratando de completar (una tarea continua nunca puede usar la estrategia de Monte Carlo ya que requiere ciclismo a través de un episodio de entrenamiento, algo que no funciona). Incluso existe para una tarea continua!).
Exploración versus explotación
La compensación de exploración versus explotación es algo que se encuentra rápidamente cuando un agente explora un entorno. Si un agente se entera al principio de que si hace algo simple, recibirá una pequeña cantidad de recompensa, es probable que continúe haciendo esa simple cosa una y otra vez, acumulando pequeñas recompensas en tiempo extra. Si explora lo desconocido e intenta encontrar nuevas situaciones, puede obtener una recompensa aún mayor.
En términos humanos, esto es como hacer la pregunta ¿vas al restaurante al que siempre vas y que sabes que será bueno? ¿O te aventuras en lo desconocido y echas un vistazo al lugar que nunca antes has probado que podría ser completamente fantástico?
Cómo se estructurará la política de un agente determinará qué tipo de acciones aprenderá a explotar y cuándo decidirá explorar.
La exploración temprana puede generar recompensas mucho mayores a largo plazo, sin embargo, enfocarse demasiado en la exploración puede resultar en acciones subóptimas en estados de los que sabemos mucho.
Esto te lleva a terminar con menos recompensas de las que podríamos haber obtenido.El intercambio exploración-contra-explotación sigue siendo una pregunta abierta y es un área de investigación particularmente interesante, en mi opinión.
Enfoques
Esto nos lleva a otro factor importante en la creación de una aplicación de reinforcement learning. ¿Está basado en valores o en políticas?
Enfoque basado en políticas
Hemos mencionado anteriormente que la política de un agente es cómo toma decisiones sobre qué acciones tomar en función del estado actual del entorno. Un agente de RL con un enfoque de aprendizaje basado en políticas intentará y aprenderá una política compleja con una estructura de decisión que le permita intentar y tomar la acción óptima en cualquier situación dada.
Enfoque basado en el valor
En el otro extremo del espectro, tenemos aplicaciones de RL basadas en valores. La función de valor es la estimación actual de la recompensa a largo plazo que nuestro algoritmo RL acumulará. Si tenemos un agente basado en el valor, se enfocará en la optimización basada en esa función. Eso incluye centrarse en aprender mejores y mejores estimaciones para la recompensa a largo plazo, así como tomar acciones codiciosas para maximizar esa función en un momento dado. De muchas maneras, podemos pensar en esto como un agente que aprende una política codiciosa implícita para tomar acciones.
Enfoque de actor crítico
La decisión entre un algoritmo basado en valores y un algoritmo basado en políticas es significativo al decidir cómo se verá un algoritmo de reinforcement learning. La sección transversal de estas dos líneas de pensamiento se llama enfoque de actor crítico. Cuenta con un seguimiento de las ganancias de recompensa futuras estimadas (nuestra función de valor), así como el aprendizaje de políticas nuevas y más complejas a seguir para que nuestro agente obtenga mayores recompensas en escalas de tiempo más largas. Rápidamente se convierte en un problema mucho más difícil ya que el algoritmo ahora optimiza dos funciones a la vez.
Hay mucho enfoque en el dominio actor-crítico y ha habido muchos algoritmos geniales que han surgido de él. El actor-crítico con ventaja asíncrona de Google (A3C) es un excelente ejemplo de un genial algoritmo de crítica de actor que ha mostrado muchos buenos resultados.
Conclusión
En los últimos dos artículos, también hemos cubierto la terminología básica. como algunos de los conceptos más complicados en torno a un problema de reinforcement learning. Afortunadamente, con estos dos componentes, usted siente que tiene una buena comprensión de lo que es el reinforcement learning y algunas de las consideraciones que entra en la escritura de un algoritmo al usarlo.
En este momento, es posible que se sienta muy entusiasmado con RL. Es posible que se pregunte cómo puede comenzar con los sistemas que funcionan en RL. En el próximo artículo, nos sumergiremos en donde RL está sobresaliendo, cuáles son las principales preguntas abiertas, y algunos recursos para aprender a escribir algoritmos RL usted mismo.