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


18

En el artículo de DeepMind sobre Deep Q-Learning para videojuegos Atari ( aquí ), utilizan un método de épsilon codicioso para la exploración durante el entrenamiento. Esto significa que cuando se selecciona una acción en el entrenamiento, se elige como la acción con el valor q más alto o como una acción aleatoria. La elección entre estos dos es aleatoria y se basa en el valor de épsilon, y épsilon se recoce 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 de épsilon codicioso, pero con épsilon a un valor muy bajo, de modo que existe 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 todavía se eligen acciones aleatorias (5% del tiempo).

Mi pregunta es: ¿Por qué es necesaria alguna exploración en este momento, dado que ya se ha realizado la capacitación? Si el sistema ha aprendido la política óptima, ¿por qué no se puede elegir siempre la acción como la que tiene el valor q más alto? ¿No debería hacerse la exploración solo en el entrenamiento, y luego, una vez que se aprende la política óptima, el agente puede elegir repetidamente la acción óptima?

¡Gracias!


De alguna manera, podría estar relacionado con la naturaleza determinista del entorno ALE. Si no realiza acciones aleatorias durante las evaluaciones, siempre realizará la misma secuencia de acciones (ya que la secuencia de estados es la misma). También hacen inicios aleatorios: espere hasta 30 fotogramas sin hacer nada por este motivo.
yobibyte

Respuestas:


10

En el documento de naturaleza mencionan:

Los agentes entrenados fueron evaluados jugando cada juego 30 veces durante hasta 5 minutos cada vez con diferentes condiciones aleatorias iniciales ('noop'; ver Tabla 1 de datos extendidos) y una política de codicia electrónica con epsilon 0.05. Este procedimiento se adopta para minimizar la posibilidad de sobreajuste durante la evaluación.

Creo que lo que significan es "anular los efectos negativos del sobre / bajo ajuste". Usar epsilon de 0 es una opción totalmente explotadora (como usted señala) y hace una declaración sólida.

Por ejemplo, considere un juego de laberinto en el que las estimaciones de Q actuales del agente convergen a la política óptima, excepto para una cuadrícula, donde elige con avidez moverse hacia un límite que hace que permanezca en la misma cuadrícula. Si el agente alcanza dicho estado, y está eligiendo la acción Max Q, se quedará atrapado allí por la eternidad. Sin embargo, mantener un elemento vagamente exploratorio / estocástico en su política (como una pequeña cantidad de épsilon) le permite salir de tales estados.

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



2

Creo que el propósito de las pruebas es tener una idea de cómo responde el sistema en situaciones del mundo real.


ϵ

Opción 2:
si están preocupados por ser frágiles, jugar contra un jugador menos "prístinamente racional", entonces podrían estar "recogiendo" sus puntajes de entrenamiento para no sobreestimarlos.

Opción 3:
este es su humo mágico. Habrá partes de eso que no pueden y no quieren 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 usar pruebas repetidas y varios valores de épsilon para probar cuánta "grasa" queda en el sistema. Si tenían una aleatorización débil, o tantas muestras que incluso una aleatorización justa comienza a repetirse, entonces el método podría "aprender" un comportamiento falso para el sesgo seudoaleatorio. Esto podría permitir verificar eso en la fase de prueba.

Estoy seguro de que hay media docena de otras razones significativas, pero estas fueron las que se me ocurrieron.

EDITAR: nota para mí mismo, me gusta mucho el pensamiento "frágil". Creo que puede ser una debilidad existencial de la IA intermedia de primera generación.


1

ϵ

ϵϵ=0,05

Especialmente debido a que la entrada preprocesada contiene un historial de estados encontrados anteriormente, la preocupación es que, en lugar de generalizar al juego subyacente, el agente simplemente memoriza las trayectorias óptimas para ese juego específico y las reproduce 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ástico puede ocurrir la memorización (es decir, sobreajuste). El uso de la aleatorización durante la fase de prueba, en forma de inicios no operativos de longitud aleatoria, así como una parte de las acciones aleatorias durante el juego, obliga al algoritmo a lidiar con estados imprevistos y, por lo tanto, requiere cierto grado de generalización.

ϵϵ=0 0durante las pruebas potencialmente mejoraría el rendimiento, pero el punto aquí es mostrar la capacidad de generalizar. Además, en la mayoría de los juegos de Atari, el estado también evoluciona en un no-op y, por lo tanto, el agente naturalmente se "despegaría" si eso sucediera alguna vez. Teniendo en cuenta el ejemplo de laberinto mencionado en otra parte donde el entorno no evoluciona en no-ops, el agente rápidamente aprendería que chocar contra una pared no es una buena idea si la recompensa se forma correctamente (-1 para cada paso, por ejemplo); especialmente cuando se usan valores iniciales optimistas, la exploración requerida ocurre naturalmente. En caso de que todavía encuentre que su algoritmo se atasca en algunas situaciones, esto significa que necesita aumentar el tiempo de entrenamiento (es decir, ejecutar más episodios), en lugar de introducir una aleatorización auxiliar con respecto a las acciones.

Sin embargo, si se está ejecutando en un entorno con dinámicas del sistema en evolución (es decir, las transiciones de estado subyacentes o las recompensas cambian con el tiempo), debe conservar cierto grado de exploración y actualizar su política en consecuencia para mantenerse al día con los cambios.

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.