este es el video de la fase 2.
Friday, February 27, 2009
LMS en Webots con Naos
Breve descripción del medio ambiente.
El medio ambiente se desarrolla a partir del simulador 3D Simspark, el cual es el simulador oficial para las competencias dentro de la Robocup Standard League y contiene todas las reglas para oficiales para llevar a cabo partidos de fútbol con los robots bípedos llamados Nao. El simulador contiene diferentes elementos básicos que definen las dimensiones de la cancha, así como la ubicación de las porterías y la pelota. Además incluye a diferentes Naos para ambos equipos y con la posibilidad de especializar sus acciones para que sean porteros, defensas o delanteros. El objetivo final primordial para cada jugador de cada equipo será meter la bola en el arco contrario y así realizar un gol para aumentar en un punto el marcador de su equipo.
Para la realización de la fase 2 del proyecto en la implementación de los algoritmos del recocido simulado y LMS de aprendizaje, hemos utilizado el simulador Webots para Windows, el cual contiene características similares a las del Simspark pero posee una interfaz más útil para el desarrollo de nuestras pruebas.
Descripción detallada de la actividad o acción que va a aprender el agente.
La acción que el agente, en nuestro caso un robot Nao, va a aprender suena relativamente sencilla: en qué posición de la cancha es adecuado disparar a la portería contraria para anotar un gol, tomando en cuenta algunas otras variables como si algún robot enemigo podría bloquearle el tiro.
El Nao a través de su cámara integrada lo primero que hará será observar a su alrededor para detectar el medio en el que se encuentra en ese momento para poder dictaminar bien los resultados. En principio siempre pateará la bola sin importar qué haya o no haya enfrente ni cómo esté posicionado en la cancha, con esto se irán ajustando los pesos que posteriormente influirán en la toma de la decisión más adecuada. Lo ideal a aprender se va a basar en qué posición está en el campo, en qué ángulo se encuentra con respecto a la portería para analizar si debe girar un poco y también tomará en cuenta los robots contrarios.
Solución planteada al problema utilizando el Algoritmos LMS.
1) Selección de la experiencia de aprendizaje
La experiencia de aprendizaje será Directa; es decir, por cada vez que el robot haga un disparo (sin importar si este va a portería o no), se le dirá si hizo bien o hizo mal. Con esto se obtiene un resultado inmediato que nos dirá con precisión cuál fue su último movimiento y si fue correcto o incorrecto. Utilizar este tipo de aprendizaje nos ayudará a dar una respuesta con precisión, además de que no será necesario terminar una corrida completa (en este caso un partido de 10 min) para poder determinar si el robot ha aprendido o no.
2) Selección de la función objetivo
La función objetivo tendrá en cuenta 4 variables como ya se había mencionado. Éstas son:
· X1 = Posición del robot sobre la cancha.
· X2 = Existe un rival enfrente que pueda taparle el disparo.
· X3 = Ángulo del robot con respecto a la portería.
· X4 = Ángulo del robot con respecto a la pelota.
El resultado final será tomado con base en la función:
V(b) ->
Si el robot pateó la bola y consiguió meter gol V(b) = 100;
Si el robot pateó la bola y no consiguió meter gol V(b) = -100;
Si no es ninguno de estos estados finales se manda llamar la función
V^(b) = W0 + X1W1 + X2W2 + X3W3 + X4W4
Esta función recalculará los pesos para que en la siguiente iteración el robot ya sepa distinguir un poco mejor qué variables debe tomar más en cuenta para acertar en el resultado final.
3) Selección de la representación de la función objetivo
Seleccionamos la función objetivo basándonos en la capacidad del robot a hacer distintas actividades, o en las restricciones del mismo. La función es muy sencilla, si anota gol con un disparo (tomando en cuenta todas las variables ya establecidas), se le otorga un valor de 100, con esto se le dice que lo que hizo está bien, por el contrario, si dispara y no anota gol (por cualquier motivo) se le otorgará un valor de -100.
Conclusiones después de la programación.
Después de haber tenido un arduo trabajo programando los Naos en Java con la plataforma Webots, nos dimos cuenta que simular un robot no es programar cualquier otra cosa. Los robots son totalmente dinámicos y obtienen sus valores tratando de imitar el pensamiento y sentidos humanos, lo que complica aún más su buen desempeño.
La implementación del algoritmo LMS no fue sencilla ya que necesitamos manejar muchos datos en concordancia con el comportamiento del Nao, y por esta razón en algunos casos como para obtener la ubicación del Nao en la cancha tuvimos que desarrollar e implementar nuevas funciones que no incluían la simulación.
Algoritmo LMS - Oriam y su Huerto de Tomates
Breve descripción del medio ambiente.
En esta etapa de desarrollo, el medio ambiente es un mundo virtual en dos dimensiones, representando una cancha de futbol pero con las porterías en las esquinas. El juego cuenta con dos equipos, Rojos y Azules, ambos controlados por agentes. Cada escenario cuenta con dos bases en los extremos del mismo en donde los personajes podrán anotar puntos.
Descripción detallada de la acción a aprender por el agente.
La acción que deben aprender los agentes es bloquear un ataque del equipo contrario. Los agentes deben ser capaces de observar el estado de su ambiente en el momento que el equipo contrario este atacando y aprender que acciones son las mejores dependiendo de la situación que este ocurriendo en ese momento, es decir, en el momento en que el equipo contrario tome la pelota, los agentes deben poder analizar el número de enemigos que protegen la pelota, el número de amigos que atacan a quien lleva la pelota y el número de amigos que atacan a quienes protegen la pelota e ir aprendiendo dependiendo de que tan bueno han resultado estos estados y adaptando las acciones que realizan al atacar, como atacar a quienes protegen la pelota, atacar a quien lleva la pelota, o bien incrementar su velocidad para llegar a la zona de tiro.
Solución planteada usando LMS
Actividad T: Bloquear Ataques
Desempeño P: % de ataques bloqueados
Experiencia de entrenamiento E: partidos jugados contra si mismo.
Feedback: indirecto.
El agente selecciona una serie de estados y al final el ambiente le da un resultado.
Entrenar contra si mismo.
Función objetivo:
V: B -> R
V(b) = 6 -> Bloquear un ataque
V(b) = 3 -> Mata a algún agente que no tenga la pelota
V(b) = -3 -> Muere al intentar bloquear un ataque
V(b) = -6 ->El equipo contrario anota
V(b) = ^V(b)
X1 = # de enemigos protegiendo a quien lleva la pelota
X2 = # de amigos atacando a quien lleva la pelota
X3 = # de amigos atacando a los enemigos que protegen a quien lleva la pelota
^V(b) = W0 + W1X1+ W2X2 + W3X3
Wi <- Wi + n*(Vtrain(b) - ^V(b))*Xi n = 0.1 Conclusiones después de la programación
Fue interesante ver como cada agente cuando esta realizando la acción y al mismo tiempo aprendiendo como realizarla mejor según la retroalimentación que recibe, ya que cambia totalmente la forma en la que se desarrolla el juego, y aunque realmente no estamos enseñando a atacar, como se defiende mejor en cualquier zona, logra en todos los casos ganar los juegos. Creo que lo más difícil del algoritmo es realmente entender como aplicarlo al problema, ya que nos costo mucho ver cuales podrían ser los factores que realmente afectan y como decirle al agente si el estado es bueno o malo. Al final las funciones no resultaron complicadas, pero el darnos cuenta de cómo plantearlo fue lo más complicado.
En esta etapa de desarrollo, el medio ambiente es un mundo virtual en dos dimensiones, representando una cancha de futbol pero con las porterías en las esquinas. El juego cuenta con dos equipos, Rojos y Azules, ambos controlados por agentes. Cada escenario cuenta con dos bases en los extremos del mismo en donde los personajes podrán anotar puntos.
Descripción detallada de la acción a aprender por el agente.
La acción que deben aprender los agentes es bloquear un ataque del equipo contrario. Los agentes deben ser capaces de observar el estado de su ambiente en el momento que el equipo contrario este atacando y aprender que acciones son las mejores dependiendo de la situación que este ocurriendo en ese momento, es decir, en el momento en que el equipo contrario tome la pelota, los agentes deben poder analizar el número de enemigos que protegen la pelota, el número de amigos que atacan a quien lleva la pelota y el número de amigos que atacan a quienes protegen la pelota e ir aprendiendo dependiendo de que tan bueno han resultado estos estados y adaptando las acciones que realizan al atacar, como atacar a quienes protegen la pelota, atacar a quien lleva la pelota, o bien incrementar su velocidad para llegar a la zona de tiro.
Solución planteada usando LMS
Actividad T: Bloquear Ataques
Desempeño P: % de ataques bloqueados
Experiencia de entrenamiento E: partidos jugados contra si mismo.
Feedback: indirecto.
El agente selecciona una serie de estados y al final el ambiente le da un resultado.
Entrenar contra si mismo.
Función objetivo:
V: B -> R
V(b) = 6 -> Bloquear un ataque
V(b) = 3 -> Mata a algún agente que no tenga la pelota
V(b) = -3 -> Muere al intentar bloquear un ataque
V(b) = -6 ->El equipo contrario anota
V(b) = ^V(b)
X1 = # de enemigos protegiendo a quien lleva la pelota
X2 = # de amigos atacando a quien lleva la pelota
X3 = # de amigos atacando a los enemigos que protegen a quien lleva la pelota
^V(b) = W0 + W1X1+ W2X2 + W3X3
Wi <- Wi + n*(Vtrain(b) - ^V(b))*Xi n = 0.1 Conclusiones después de la programación
Fue interesante ver como cada agente cuando esta realizando la acción y al mismo tiempo aprendiendo como realizarla mejor según la retroalimentación que recibe, ya que cambia totalmente la forma en la que se desarrolla el juego, y aunque realmente no estamos enseñando a atacar, como se defiende mejor en cualquier zona, logra en todos los casos ganar los juegos. Creo que lo más difícil del algoritmo es realmente entender como aplicarlo al problema, ya que nos costo mucho ver cuales podrían ser los factores que realmente afectan y como decirle al agente si el estado es bueno o malo. Al final las funciones no resultaron complicadas, pero el darnos cuenta de cómo plantearlo fue lo más complicado.
Link:
Kawabonga! Fase 2
a. Breve descripción del medio ambiente.
El Internet es un sistema global de redes interconectadas que intercambian datos.
El ambiente en particular son los blogs que son web escritas en (x)HTML y que utilizan el protocolo HTTP para transferir datos de una computadora llamada Servidor a otra llamada cliente.
b. Breve descripción de la actividad o acción que va a aprender tu agente.
Un blog es un conjunto de palabras tanto en los post como en títulos.
Dentro del algoritmo, cada blog es representado por una tabla asociativa de palabras y el numero de veces que aparece esa palabra en ese blog (un count).
Categorizamos o agrupamos dos o más blogs de acuerdo a la distancia (similaridad entre los counts de las palabras). Si dos blogs hablan de un mismo tema es probable que utilicen las mismas palabras. El algoritmo deberá aprender la importancia que tienen las similaridades y diferencias entre las palabras de los títulos, posts y tags para determinar la categoría a la que pertenecen los blogs.
c. Solución planteada al problema utilizando el Algoritmos LMS.
1. Selección de la experiencia de aprendizaje
Feedback: No supervisado, el propósito es encontrar regularidades y patrones en el input.
Control de ejemplos: El programa elegirá la secuencia de estados y al final dar un resultado
2. Selección de la función objetivo
V(B)=1 si ha categorizado correctamente
V(B)=0 si ha categorizado incorrectamente
V(B)=V'(B), en otro caso
3. Selección de la representación de la función objetivo
V'(b) = w0 + (w1x1 - w2x2)/w5x5 + (w3x3 - w4x4)/w6x6 + (w7x7 - w8x8)/w9x9
x1 = Palabras similares dentro de posts entre dos blogs (distancia/acercamiento entre las palabras similares)
x2 = Palabras distintas dentro de posts entre dos blogs (distancia/alejamiento entre las palabras distintas)
x3 = Tags Iguales
x4 = Tags Distintas
x5 = Total de Palabras dentro de posts
x6 = Total de Tags dentro de posts
x7 = Palabras similares en título
x8 = Palabras diferentes en titulo
x9 = Palabras totales en titulos
4. Selección del algoritmo de aproximación – LMS para este caso.
El Internet es un sistema global de redes interconectadas que intercambian datos.
El ambiente en particular son los blogs que son web escritas en (x)HTML y que utilizan el protocolo HTTP para transferir datos de una computadora llamada Servidor a otra llamada cliente.
b. Breve descripción de la actividad o acción que va a aprender tu agente.
Un blog es un conjunto de palabras tanto en los post como en títulos.
Dentro del algoritmo, cada blog es representado por una tabla asociativa de palabras y el numero de veces que aparece esa palabra en ese blog (un count).
Categorizamos o agrupamos dos o más blogs de acuerdo a la distancia (similaridad entre los counts de las palabras). Si dos blogs hablan de un mismo tema es probable que utilicen las mismas palabras. El algoritmo deberá aprender la importancia que tienen las similaridades y diferencias entre las palabras de los títulos, posts y tags para determinar la categoría a la que pertenecen los blogs.
c. Solución planteada al problema utilizando el Algoritmos LMS.
1. Selección de la experiencia de aprendizaje
Feedback: No supervisado, el propósito es encontrar regularidades y patrones en el input.
Control de ejemplos: El programa elegirá la secuencia de estados y al final dar un resultado
2. Selección de la función objetivo
V(B)=1 si ha categorizado correctamente
V(B)=0 si ha categorizado incorrectamente
V(B)=V'(B), en otro caso
3. Selección de la representación de la función objetivo
V'(b) = w0 + (w1x1 - w2x2)/w5x5 + (w3x3 - w4x4)/w6x6 + (w7x7 - w8x8)/w9x9
x1 = Palabras similares dentro de posts entre dos blogs (distancia/acercamiento entre las palabras similares)
x2 = Palabras distintas dentro de posts entre dos blogs (distancia/alejamiento entre las palabras distintas)
x3 = Tags Iguales
x4 = Tags Distintas
x5 = Total de Palabras dentro de posts
x6 = Total de Tags dentro de posts
x7 = Palabras similares en título
x8 = Palabras diferentes en titulo
x9 = Palabras totales en titulos
4. Selección del algoritmo de aproximación – LMS para este caso.
d. Conclusiones después de la programación
Después de programarlo nos dimos cuenta, que tras varias corridas del algoritmo, la categorización se fue volviendo más exacta conforme se ajustaban los pesos, sin embargo creemos que el uso de este algoritmo no es la mejor solución para el tipo de aprendizaje que queremos lograr.
Subscribe to:
Comments (Atom)