Q-aprender a aprender el comportamiento de rastreo de minas

votos
0

Estoy intentando utilizar Q-aprender a aprender el comportamiento de rastreo de minas en una versión discreta de barrenderos inteligentes de Mat Buckland, la disposición original aquí http://www.ai-junkie.com/ann/evolved/nnt1.html , para una asignación. La asignación nos limita a 50 iteraciones de 2000 se mueve en una cuadrícula que es efectivamente 40x40, con las minas de reposición y el agente que se está generado en una ubicación aleatoria cada iteración.

He tratado de aprendizaje q actuando con sanciones para mover, recompensas para barrer minas y sanciones por no golpear una mina. El agente barredora parece incapaz de aprender a barrer minas efectivamente dentro de las 50 iteraciones, ya que se entera de que va a celda específica es buena, pero después de una la mina se ha ido, ya no es recompensado, pero penalizado por ir a esa celda con el movimiento costo

Quería intentar proporcionar recompensas sólo cuando todas las minas fueron despejadas en un intento de hacer que el entorno estático, ya que sólo habría un estado de no todas las minas de recogida, o todas las minas recogidos, pero estoy luchando para poner en práctica esto debido al agente que tiene 2000 sólo se mueve por iteración y ser capaz de dar marcha atrás, nunca se las arregla para barrer todas las minas en una iteración dentro del límite con o sin recompensas para recoger minas.

Otra idea que tenía era tener una matriz Q efectivamente nueva para cada mina, por lo que una vez que una mina se recoge, las transiciones barredora a esa matriz y opera fuera de que cuando la mina actualmente se excluye de la consideración.

¿Hay enfoques mejor que pueda tomar con esto, o tal vez más ajustes prácticos a mi propio enfoque que puedo intentar?

Publicado el 09/10/2019 a las 19:01
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Teniendo en cuenta que la barredora puede ver siempre la mina más cercana, esto debería ser bastante fácil. Desde su pregunta Asumo que su único problema es encontrar una buena función de la recompensa y la representación de su estado de agente.

La definición de un estado

posiciones absolutas rara vez son útiles en un entorno aleatorio, especialmente si el entorno es infinito como en su ejemplo (ya que el robot puede pasar por encima de las fronteras y reaparecer en el otro lado). Esto significa que no se necesita el tamaño del entorno para el agente para operar (que de hecho lo necesitaremos para simular el espacio infinito, aunque).

Una función de recompensa calcula su valor de retorno basado en el estado actual del agente en comparación con su estado anterior. Pero ¿cómo podemos definir un estado? Vamos a ver lo que realmente se necesita con el fin de operar el agente como queremos que lo haga.

  1. La posición del agente.
  2. La posición de la mina más cercana.

Eso es todo lo que necesitamos. Ahora he dicho erlier que las posiciones absolutas son malas. Esto es porque hace que la tabla Q (usted lo llama matriz Q) estático y muy frágil a la aleatoriedad. Así que vamos a tratar de eliminar por completo abosulte posiciones de la función de recompensa y reemplazarlos con posiciones relativas. Por suerte, esto es muy simple en su caso: en lugar de utilizar las posiciones absolutas, se utiliza la posición relativa entre la mina y el agente más cercano.

Ahora no nos ocupamos con coordenadas más, pero los vectores. Permite calcular el vector entre los puntos: v = pos_mine - pos_agent. Este vector nos da dos piezas muy importantes de información:

  1. la dirección en la que la mina nearst es, y
  2. la distancia a la mina más cercana.

Y estos son todo lo que necesitamos para hacer nuestro agente operativo. Por lo tanto, un estado de agente se puede definir como

State: Direction x Distance

de los cuales la distancia es un valor de punto flotante y la dirección, ya sea un flotador que describe el ángulo o un vector normalizado.

La definición de una función de recompensa

Teniendo en cuenta nuestro estado que acaba de definir, lo único que nos importa en nuestra función recompensa es la distancia. Puesto que todo lo que queremos es mover el agente hacia las minas, la distancia es todo lo que importa. Aquí hay algunas conjeturas cómo la función de recompensa podría trabajar:

  1. Si el agente barre una mina (distancia == 0), devolver una gran recompensa (p. 100).
  2. Si el agente se mueve hacia una mina (distancia se está reduciendo), devolver un neutro (o pequeño) recompensa (. Ex 0).
  3. Si el agente se aleja de una mina (distancia está aumentando), Retuan una recompensa negativo (ex. -1).

En teoría, ya que penaltize alejándose de una mina, que ni siquiera necesita la regla 1 aquí.

Conclusión

Lo único que queda es la determinación de una buena tasa de aprendizaje y de descuento para que su agente se realiza bien después de 50 iteraciones. Sin embargo, dada la simplicidad del medio ambiente, esto no debería siquiera importa mucho. Experimentar.

Respondida el 10/10/2019 a las 16:59
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more