¿Por qué no ve capas de abandono en ejemplos de aprendizaje de refuerzo?


13

He estado buscando aprendizaje de refuerzo y específicamente jugando con la creación de mis propios entornos para usar con OpenAI Gym AI. Estoy usando agentes del proyecto stable_baselines para probar con él.

Una cosa que he notado en prácticamente todos los ejemplos de RL es que nunca parece haber capas de abandono en ninguna de las redes. ¿Por qué es esto?

He creado un entorno que simula los precios de las divisas y un agente simple, usando DQN, que intenta saber cuándo comprar y vender. Al entrenarlo en más de un millón de pasos tomados de un conjunto específico de datos que consta de datos de precios de 5 minutos por un mes, parece que se ajusta demasiado. Si luego evalúo a los agentes y el modelo con un valor de datos de un mes diferente, se realiza abismalmente. Suena como un sobreajuste clásico.

Pero, ¿hay alguna razón por la que no ve las capas de abandono en las redes RL? ¿Hay otros mecanismos para tratar de lidiar con el sobreajuste? ¿O en muchos ejemplos de RL no importa? por ejemplo, puede que solo haya una verdadera forma de obtener la máxima puntuación máxima en el juego 'breakout', por lo que es mejor que aprendas exactamente eso y no necesites generalizar.

¿O se considera que la naturaleza caótica del entorno en sí debería proporcionar suficientes combinaciones diferentes de resultados para que no necesite tener capas de abandono?


1
¿Has intentado agregar el abandono a una red RL para ver qué sucede? Tengo (para un solucionador LunarLander_v2 que funciona bien de lo contrario), y los resultados fueron terribles, va desde la resolución en 400 episodios, hasta no lograr resolverlo nunca (y probé muchas variaciones en otros parámetros). Otra regularización está bien, e incluso es beneficiosa. Sin embargo, aún no sé por qué los problemas con la deserción escolar estaban pensando en hacer una pregunta aquí. . .
Neil Slater

Neil, sí, parece que tu experiencia allí refleja lo que dice Dennis a continuación. Como esperaba, en el escenario del tipo 'resuelve este rompecabezas' realmente estás buscando un sobreajuste, ya que quieres resolver ese rompecabezas específico. Y quieres saber si te encuentras con un alienígena azul frente a un alienígena rojo, ya que podrían comportarse de manera diferente en tu juego.
Matt Hamilton

@MattHamilton Acabo de ver un hilo de tweets que alguien hizo sobre la historia de "Los investigadores de RL están evaluando la información de la capacitación". He editado un enlace a eso en mi respuesta. El punto sigue siendo el mismo cuando se trata de responder a su pregunta, pero estoy de acuerdo con la cadena de tweets a los que he vinculado que la verdad es un poco más matizada.
Dennis Soemers

Respuestas:


11

La deserción esencialmente introduce un poco más de variación. En entornos de aprendizaje supervisado, esto a menudo ayuda a reducir el sobreajuste (aunque creo que el abandono también se está volviendo menos ... de moda en los últimos años que en los años anteriores; sin embargo, no estoy 100% seguro, no es mi principal área de experiencia).

En el aprendizaje por refuerzo, la varianza adicional no es realmente lo que estamos buscando. Ya tiende a haber una gran cantidad de variación en las señales de aprendizaje que obtenemos, y esta variación ya tiende a ser un problema importante para la estabilidad y / o la velocidad de aprendizaje. Por ejemplo:

  • La aleatoriedad en la selección de acciones conduce a una variación en los rendimientos que observamos
  • Puede haber aleatoriedad inherente al entorno mismo, lo que lleva a una variación adicional en nuestras observaciones (algunos entornos no son deterministas)
  • r+maxaQ(s,a)r

Muchas partes importantes de los algoritmos de Deep RL (sin los cuales nuestros procesos de entrenamiento resultan empíricamente para desestabilizar y descomponer) están muy adaptados para reducir esa variación. Por ejemplo, las redes de destino en DQN se introdujeron específicamente para reducir el problema del objetivo móvil. Desde este punto de vista, no es sorprendente que si tuviéramos que agregar más varianza artificial por otros medios nuevamente (como la deserción), esto dañaría el rendimiento / desestabilizaría el aprendizaje.


¿Hay otros mecanismos para tratar de lidiar con el sobreajuste? ¿O en muchos ejemplos de RL no importa? por ejemplo, puede que solo haya una verdadera forma de obtener la máxima puntuación máxima en el juego 'breakout', por lo que es mejor que aprendas exactamente eso y no necesites generalizar.

En la mayoría de las investigaciones actuales de Aprendizaje de refuerzo (profundo), el sobreajuste no se considera un problema. La gran mayoría de la investigación de RL consiste en la capacitación en un entorno (por ejemplo, Cartpole, o Breakout, o un nivel particular en Pacman, o navegar en un laberinto específico, etc.), y evaluar constantemente el rendimiento durante ese proceso de aprendizaje, o evaluar rendimiento después de dicho proceso de aprendizaje en el mismo entorno .

Si fuéramos a comparar esa metodología de evaluación con lo que sucede en el aprendizaje supervisado ... básicamente estamos evaluando el desempeño en el conjunto de capacitación * . En el aprendizaje supervisado, esto sería absolutamente inaceptable, pero en RL se trata en gran medida como aceptable y más norma que excepción. Algunos dicen que esto es simplemente un problema en la investigación actual de RL, algo que necesita cambiar. También se podría argumentar que no es necesariamente un problema; si realmente somos capaces de capacitar al agente precisamente en el mismo entorno en el que deseamos implementarlo más tarde ... bueno, entonces, ¿cuál es el problema con su sobreajuste en ese entorno?

Por lo tanto, cuando utilizamos la metodología de evaluación descrita anteriormente, de hecho, estamos sobreajustando a un entorno específico, pero el sobreajuste es bueno en lugar de malo según nuestros criterios de evaluación . Sin embargo, está claro que esta metodología no conduce a agentes que puedan generalizarse bien; Si constantemente entrena a un agente para navegar en un laberinto en particular, es probable que no pueda navegar en un laberinto diferente después del entrenamiento.

* Nota: la verdad, en mi opinión, es un poco más matizada que la que realmente estamos "evaluando en el conjunto de entrenamiento" en RL. Vea, por ejemplo, este bonito hilo de tweets: https://twitter.com/nanjiang_cs/status/1049682399980908544


He creado un entorno que simula los precios de las divisas y un agente simple, usando DQN, que intenta saber cuándo comprar y vender. Al entrenarlo en más de un millón de pasos tomados de un conjunto específico de datos que consta de datos de precios de 5 minutos por un mes, parece que se ajusta demasiado. Si luego evalúo a los agentes y el modelo con un valor de datos de un mes diferente, se realiza abismalmente. Suena como un sobreajuste clásico.

Tenga en cuenta que su metodología de evaluación descrita aquí ya no se ajusta a la metodología de evaluación más "común". Tiene un problema con la deriva del concepto , con la falta de estacionariedad en el entorno. Esto significa que el sobreajuste puede ser un problema para usted.

Aún así, no estoy seguro de si la deserción ayudaría (sigue siendo una variación adicional que puede doler). En primer lugar, querrá asegurarse de que haya alguna forma de realizar un seguimiento del tiempo / mes en sus entradas, de modo que al menos tenga la oportunidad de aprender una política que se adapte con el tiempo. Si tiene un límite claro y sólido entre la "fase de entrenamiento" y la "fase de evaluación", y sabe que la deriva del concepto ocurre a través de ese límite (sabe que su entorno se comporta de manera diferente en la fase de entrenamiento de la fase de evaluación) ... usted Realmente no tengo muchas esperanzas de aprender una política solo a partir de la experiencia en la fase de capacitación que todavía funciona bien en la fase de evaluación. Sospecho que tendrá que deshacerse de ese límite claro y sólido. Usted' También querré seguir aprendiendo durante la fase de evaluación. Esto permite que su algoritmo de aprendizaje realmente acumule experiencia en el entorno modificado y se adapte a él.


1
¡Dennis, muchas gracias por su respuesta tan detallada! Mucho de esto confirma que creo mis sospechas: es decir, que más RL está tratando de resolver un problema muy específico en un entorno específico en el que a menudo hay una clara "mejor" solución para ese problema.
Matt Hamilton

2
@MattHamilton Tenga en cuenta que hay investigaciones hacia RL para entornos más generales. Si está interesado en esas cosas, querrá buscar combinaciones de "Aprendizaje de transferencia" y "Aprendizaje de refuerzo", o cosas como RL de tareas múltiples (RL de objetivos múltiples también puede ser interesante, pero probablemente sea un poco diferente ) Sin embargo, ese tipo de esfuerzos aún tienden a ser significativamente menos eficaces que el enfoque tradicional de capacitación y evaluación en un entorno a la vez.
Dennis Soemers
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.