Blog para documentar el trabajo de programación realizado en la clase de Aprendizaje Automático del Tec de Monterrey, Campus Estado de México. Enero-Mayo 2010.

Monday, February 22, 2010

Actividad de Programación 2: Algoritmo LMS


Medio Ambiente:
Nuestro medio ambiente será como un tipo calabozo con forma de laberinto (el cuál será dinámico), constará de una entrada y una salida Y tres tipos de agentes principales: buscador, guardián y espía. El agente buscador se encargará de buscar un objeto y huir hacia la salida, evitando lo más que pueda al agente guardián. El agente guardián se encargará de hacer rondas en el calabozo en diferentes zonas (mientras las va conociendo y aprendiendo) y en cuanto encuentre al agente buscador, seguirlo para capturarlo. El agente espía se encargará de ayudar al agente buscador para encontrar el objeto verdadero, indicándole dónde hay atajos e interfiriendo en las comunicaciones de los agentes guardianes (solo en el caso que exista más de un agente guardián). Puede que existan más buscadores y de ésta forma los agentes guardianes se confundirán.

En caso de que solo existiera una entrada, se tendría que conseguir el objeto único que podrá convertir la entrada en la salida, para esto, nuestro agente tendría que recordar el camino por el que vino, siempre tratando de evitar al agente guardia.

Existirán agentes guardias, los cuales estarán recorriendo todo el calabozo para conocer el terreno y estar haciendo guardia en algunas de las zonas del mismo. Dentro del calabozo existen diversos objetos, de los cuales hay uno que es el que le abrirá la puerta a la salida, pero hay objetos falsos, copias, que tratarán de confundir al agente buscador.
Actividad que aprende:
El agente buscador (Agente verde) aprende a sobrevivir por lapsos de tiempo establecidos sin ser capturado por los guardias (Agentes rojos). Después de hacer la evaluación con el algoritmo LMS el agente debe ir aprendiendo a cambiar la dirección en la que se mueve, si hay algún guardia cerca en la dirección que se está moviendo, de esta forma evitará ser atrapado por intervalos de tiempo cada vez más grandes. Cada que el agente es capturado este regresa a su punto de origen para empezar de nuevo su camino.
Solución con LMS:
i) Experiencia de aprendizaje:
a. Tarea: No ser atrapado por los guardias.
b. Evaluación: Tiempo sin ser atrapado.
c. Experiencia de aprendizaje:
i. La selección de estados es creada por el agente y el ambiente le da la solución de acuerdo a los diferentes estados.
ii. La distribución de ejemplos en este caso será dada siempre en el mismo programa por lo que se podría considerar una prueba contra si mismo ya que al ser puesto en otro ambiente puede afectar su comportamiento.
ii) Función objetivo
a. V:L -> [1,2,3,4]
En este caso L define el laberinto y un arreglo, en donde se describen las cuatro posibles direcciones en las que se puede mover el agente. [arriba, abajo, derecha, izquierda ].
V (b) = 100 si el agente logró sobrevivir sin ser atrapado.
V (b) = -100 si el agente fue atrapado por un guardia dentro del intervalo de tiempo establecido.
Si b no es un estado final entonces V(b) = V(b’) donde b’ se calcula con el sucesor por medio del algoritmo.
iii) Representación
x1: Número de guardianes.
x2: Intervalos de tiempo pasados sin ser capturado.
x3: Numero de veces capturado en el intervalo.
V(b) = w1x1+w2x2+w3x3
iv) Algoritmo LMS
a. Valores iniciales de los pesos:
i. Para cada w inicial se toma un valor de 0.1 ya que al principio el agente no sabe qué tan importante es cada valor en el arreglo.
b. Valores iniciales de las constantes de aprendizaje
c. Patrones
i. Se utiliza un arreglo de con las variables establecidas en la representación donde los 2 elementos mas importantes son el segundo y tercero, de tal forma que:
[(3,0,1),-100] -> Este patrón representa que el agente fue capturado una vez, por alguno de los 3 guardias, antes de haber sobrevivido un solo intervalo de tiempo.
[(3,2,0), 100] -> Este patrón representa que el agente ha sobrevivido por lo menos 2 intervalos de tiempo sin ser capturado, o en su defecto fue capturado, pero logró sobrevivir sin ser capturado más veces, el contador de las capturas se reinicia una vez que se ha evaluado la función de esta forma, se puede reiniciar la cuenta de las capturas. Para evaluar si el agente, no ha sido capturado en cierto tiempo, al finalizar la evaluación puede ser que si haya sido capturado, pero que también haya sobrevivido intervalos de tiempo sin ser capturado, por lo que si el número de veces que sobrevivió es mayor al de capturas, se evalúa con 100.
[(3,3,5), -100] -> En este patrón se observa el caso de que el agente si llego a sobrevivir intervalos de tiempo algunas veces, pero a final de cuentas fue capturado más veces de las que sobrevivió por lo que se evalúa de una forma negativa.
Conclusiones:
Esta actividad nos permitió observar el comportamiento de un agente utilizando el algoritmo de LMS, de tal forma que en un ambiente el cual es refrescado cada cierto tiempo se puede observar mejoras en el comportamiento, ya que aprende conforme al tiempo y las evaluaciones que se hacen. Partiendo del mismo inicio, después de varias iteraciones el agente debe comportarse de una manera más “inteligente” aprendiendo a mantenerse lejos de sus enemigos.
El algoritmo LMS puede ser de gran utilidad para casos en los que se tiene una retroalimentación inmediata ya que al estar evaluando la función de aprendizaje puede tomar decisiones en los momentos adecuados.

Video:

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.