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!
fuente
Respuestas:
En el documento de naturaleza mencionan:
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.
fuente
fuente
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.
fuente
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.
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.
fuente