26 votos

¿Por qué Q-Learning utiliza epsilon-greedy durante las pruebas?

En el documento de DeepMind sobre Deep Q-Learning para videojuegos de Atari ( aquí ), utilizan un método epsilon-greedy para la exploración durante el entrenamiento. Esto significa que cuando se selecciona una acción en el entrenamiento, o bien se elige la acción con el valor q más alto, o bien una acción aleatoria. La elección entre estas dos es aleatoria y se basa en el valor de epsilon, y epsilon se rectifica durante el entrenamiento de manera que, inicialmente, se toman muchas acciones aleatorias (exploración), pero a medida que avanza el entrenamiento, se toman muchas acciones con los valores q máximos (explotación).

Luego, durante las pruebas, también utilizan este método epsilon-greedy, pero con epsilon a un valor muy bajo, de tal forma que hay un fuerte sesgo hacia la explotación sobre la exploración, favoreciendo la elección de la acción con el valor q más alto sobre una acción aleatoria. Sin embargo, a veces se eligen acciones aleatorias (el 5 % de las veces).

Mis preguntas son:

  1. ¿Por qué es necesaria la exploración en este momento, dado que ya se ha realizado la formación?

  2. Si el sistema ha aprendido la política óptima, ¿por qué no se puede elegir siempre la acción con el valor q más alto?

  3. ¿No debería hacerse la exploración sólo en el entrenamiento, y una vez aprendida la política óptima, el agente puede simplemente elegir repetidamente la acción óptima?

18voto

Zhubarb Puntos 2330

En el documento sobre la naturaleza mencionan:

Los agentes entrenados fueron evaluados jugando cada juego 30 veces durante hasta 5 minutos cada vez con diferentes condiciones aleatorias iniciales ('noop'; véase la tabla 1 de datos ampliados) y una política e-greedy con epsilon 0,05. Este procedimiento se adopta para minimizar la posibilidad de sobreajuste durante la evaluación.

Creo que lo que quieren decir es "anular los efectos negativos de un ajuste excesivo o insuficiente". Usar épsilon de 0 es una elección totalmente explotadora (como señalas) y hace una declaración contundente.

Por ejemplo, consideremos un juego de laberinto en el que las estimaciones actuales de Q del agente convergen a la política óptima excepto en una cuadrícula, en la que elige codiciosamente moverse hacia un límite que le hace permanecer en la misma cuadrícula. Si el agente llega a uno de estos estados y elige la acción Max Q, se quedará atascado allí para siempre. Sin embargo, mantener un elemento vagamente explorativo / estocástico en su política (como una pequeña cantidad de épsilon) le permite salir de esos estados.

Dicho esto, de las implementaciones de código que he visto (y codificado yo mismo) en la práctica el rendimiento se mide a menudo con la política codiciosa por las razones exactas que usted enumera en su pregunta.

4voto

hoyin Puntos 21

La respuesta está en el propio documento. Utilizaron $\epsilon\ = 0.05$ para evitar el sobreajuste. Este modelo se utiliza como referencia. Yobibyte mencionó en el comentario que hacen arranques aleatorios por la misma razón. Y luego se evalúa el rendimiento del algoritmo contra un experto humano. El algoritmo no tiene un modelo de su oponente, por lo que el diminuto épsilon. Si tiene el modelo de su oponente, su problema será determinista en lugar de estocástico. Espero que esto responda a su pregunta

2voto

jws121295 Puntos 36

Creo que el objetivo de las pruebas es hacerse una idea de cómo responde el sistema en situaciones reales.

Opción 1:
Podrían hacer algo de ruido en el juego del mundo real, haciendo jugadas verdaderamente aleatorias. Esto podría hacer que $\epsilon$ -El cambio de política refleja perfectamente el juego real.

Opción 2:
Si les preocupa ser frágiles, jugando contra un jugador menos "prístinamente racional", entonces podrían estar "templando" sus puntuaciones de entrenamiento para no sobrevalorarlas.

Opción 3:
Este es su humo mágico. Habrá partes que no puedan ni quieran compartir. Podrían estar publicando esto para ocultar algo patentado o excepcionalmente relevante para su negocio que no quieren compartir.

Opción 4:
Podrían utilizar pruebas repetidas y varios valores de épsilon para comprobar cuánta "grasa" queda en el sistema. Si tuvieran una aleatoriedad débil, o tantas muestras que incluso una aleatoriedad justa empezara a repetirse, entonces el método podría "aprender" un comportamiento falso debido a un sesgo pseudoaleatorio. Esto podría permitir comprobarlo en la fase de prueba.

Estoy seguro de que hay media docena más de razones significativas, pero éstas son las que se me han ocurrido.

EDITAR: nota para mí, me gusta mucho la idea de "quebradizo". Creo que puede ser una debilidad existencial de la IA intermedia de primera generación.

1voto

Xtigyro Puntos 18

La razón de utilizar $\epsilon$ -La ventaja del aprendizaje por refuerzo durante la fase de prueba es que, a diferencia del aprendizaje automático supervisado (por ejemplo, la clasificación de imágenes), en el aprendizaje por refuerzo no hay ningún conjunto de datos no visto y retenido disponible para la fase de prueba. Esto significa que el algoritmo se prueba en la misma configuración en la que se ha entrenado. En el artículo se menciona (sección Métodos, Procedimiento de evaluación):

Los agentes entrenados se evaluaron jugando a cada juego 30 veces durante un máximo de 5 minutos cada vez con diferentes condiciones aleatorias iniciales ("no- op'; véase la tabla 1 de datos ampliados) y un $\epsilon$ -política ambiciosa con $\epsilon = 0.05$ . Este procedimiento se adopta para minimizar la posibilidad de sobreajuste durante la evaluación.

Especialmente porque la entrada preprocesada contiene un historial de estados encontrados previamente, la preocupación es que, en lugar de generalizar al juego subyacente, el agente simplemente memorice trayectorias óptimas para ese juego específico y las repita durante la fase de prueba; esto es lo que se entiende por "la posibilidad de sobreajuste durante la evaluación" . Para entornos deterministas esto es obvio, pero también para transiciones de estado estocásticas puede producirse memorización (es decir, sobreajuste). El uso de la aleatorización durante la fase de prueba, en forma de arranques sin salida de duración aleatoria, así como una parte de acciones aleatorias durante el juego, obliga al algoritmo a enfrentarse a estados imprevistos y, por tanto, requiere cierto grado de generalización.

Por otra parte $\epsilon$ -Greedy es no se utiliza para mejorar potencialmente el rendimiento del algoritmo ayudándole a desatascarse en regiones mal entrenadas del espacio de observación. Aunque una política determinada sólo puede considerarse siempre una aproximación de la política óptima (al menos para este tipo de tareas), se han entrenado mucho más allá del punto en el que el algoritmo realizaría acciones sin sentido. Utilizando $\epsilon = 0$ durante las pruebas mejoraría potencialmente el rendimiento, pero de lo que se trata aquí es de demostrar la capacidad de generalización. Además, en la mayoría de los juegos de Atari el estado también evoluciona en un no-op, por lo que el agente naturalmente se "desatascaría" si eso ocurriera alguna vez. Teniendo en cuenta el ejemplo del laberinto mencionado anteriormente, en el que el entorno no evoluciona en caso de no-op, el agente aprendería rápidamente que chocar contra una pared no es una buena idea si la recompensa tiene la forma adecuada (-1 por cada paso, por ejemplo); especialmente cuando se utilizan valores iniciales optimistas, la exploración necesaria se produce de forma natural. En caso de que el algoritmo se atasque en algunas situaciones, significa que hay que aumentar el tiempo de entrenamiento (es decir, ejecutar más episodios), en lugar de introducir algún tipo de aleatoriedad auxiliar con respecto a las acciones.

Sin embargo, si se trabaja en un entorno en el que la dinámica del sistema evoluciona (es decir, las transiciones de estado subyacentes o las recompensas cambian con el tiempo), habrá que mantener cierto grado de exploración y actualizar la política en consecuencia para seguir el ritmo de los cambios.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X