Bueno, pues creo que sobra decir que nuestro pequeño proyecto de naves autómatas inteligentes asesinas se convirtió en uno de apuestas de partidos de la NBA. Habiéndo dicho esto, procedemos a desentrañar nuestro proyecto de la siguiente manera:
Medio ambiente
Nuestro medio ambiente es un programa que simula las quinielas que se llevan a cabo a fin de apostar en los partidos de basketball de la temporada regular de la NBA, donde los equipos juegan al menos unas 3 veces cada semana. El medio ambiente ha sido programado en el lenguaje C++ y es una aplicación de escritorio con visualización en consola.
Básicamente el medio te da la opción de entrenar por medio del algoritmo LMS o de apostar por los partidos de una fecha que no se ha jugado.
Actividad de aprendizaje
El propósito del agente inteligente, es aprender qué estadísticas tomar en cuenta a fin de hacer una mejor apuesta por un equipo, es decir, que al monitorear las actividades de la temporada regular y el comportamiento de los equipos, observa y aprende qué factores son los más importantes para llevar a un equipo a la victoria.
Los pesos que se le dan a cada estadística (puntos, asistencias, rebotes, faltas, etc.), se ajustan a medida que los equipos juegan y de esta forma se predice de mejor manera qué equipo tiene una mayor posibilidad de ganar para los siguientes encuentros.
Un aspecto importante a considerar es que la máquina al aprender se beneficia más de los equipos que son en cierta manera más consistentes, ya que le permite aprender de entrenamientos que son más representativos de la realidad.
Solución
a. Selección de experiencia de aprendizaje
Tarea (T): Apostar convenientemente en los partidos de basket ball de la NBA
Medida de desempeño (P): % de apuestas ganadas y de dinero obtenido
Experiencia de entrenamiento (E): Apuestas con cierto grado de incertidumbre
Retroalimentación: indirecta
Ejemplos de entrenamiento: Partidos calendarizados ya jugados.
Distribución de ejemplos de prueba: Partidos calendarizados por jugar.
b. Selección de la función objetivo
Función meta: Escoger apuesta (V): B → M
B: Conjunto de estadísticas reales
M: Conjunto de posibles ganadores donde:
Equipo al que apuesto gana V(b) = 100
Equipo al que apuesto pierde V(b) = -100
c. Representación de la función objetivo
Función polinomial: w0 + w1x1 + w2x2 + . . . + w13x13 + w14x14
Donde:
x1 = % Puntos por partido
x2 = % Tiros de campo
x3 = % Tiros de 3 puntos
x4 = % Tiros libres
x5 = % Asistencias
x6 = % Rebotes ofensivos
x7 = % Rebotes defensivos
x8 = % Robos de balón
x9 = % Turnovers (contraataques)
x10 = % Faltas
x11 = % Bloqueos
x12 = % Tiros de campo anotados
x13 = % Tiros de 3 puntos anotados
x14 = % Tiros libres anotados
Y donde:
{w0, w1, w2 . . . w13, w14} = Pesos a aprender, inicializados en 0.5
d. Selección de algoritmo de aproximación
Ejemplos de entrenamiento [b, VEnt (b)]
Algoritmo LMS (Least Mean Square)
Calcula los pesos de la siguiente manera:
wi → wi + ŋ ( VEnt (b) – V’(b) ) xi
Ejemplo:
pesos[j] += COEFN*(calificacion[n]-valorF)*(diferenciaPuntos[n][j]);
Donde:
ŋ = COEFN = .001 (Constante que ayuda a calcular pesos)
Conclusiones
El algoritmo LMS ha funcionado correctamente al actualizar los pesos de manera efectiva. Un ejemplo es que ha dado un menor peso a factores menos importantes como las faltas, las cuáles muchas veces no afectan al resultado de los partidos, mientras que ha asignado un mayor peso a factores como los tiros de campo anotados por partido, dónde estos si representan un factor clave para la victoria de un equipo.
Otra de las conclusiones que sacamos, es que a fin de que las apuestas fueran más certeras, es necesario que los valores reales de los equipos sean más consistentes. Por ejemplo, equipos que siempre juegan de la misma manera, tienen una mayor representatividad a la hora de poner a prueba el programa, ya que sus pesos fueron calculados de una manera más fidedigna. Existen otros equipos menos consistentes los cuales podrían jugar muy bien un partido y en otro perder de manera muy marcada. Estos equipos también alimentan al sistema y lo hacen más susceptible a fallas, sin embargo, al final el agente determina basado en su aprendizaje, a quién debemos apostar, y acierta al hacerlo muchas veces.
También cabe mencionar que entre más se alimente al sistema con ejemplos de entrenamiento, más puede este definir un posible ganador. A la fecha lo hemos alimentado con 4 semanas y aún así ya tiene una conclusión bastante fuerte y acertada de qué factores son los que más influyen en los equipos en particular.
Monday, March 2, 2009
Fase 2 - Proyecto
Aqui les dejamos una breve descripción de nuestro avance dos del proyecto. Haber que les pareció, esperamos sus comentarios. Cualquier duda ya saben hahaha.
Breve descripción del medio ambiente.
Para este avance del proyecto, desarrollamos un ambiente representado por una matriz de 23 por 23. En principio está llena de ceros, excepto por la parte donde inician los elementos “nano”. La posición inicial, se encuentra aproximadamente en la mitad de la matriz y los elementos “nano” son representados por unos. Entonces, las figuras están formadas por unos, de acuerdo a los movimientos posibles para los elementos “nano”.
Descripción detallada de la acción a aprender por el agente.
Lo que el agente en principio debe de aprender es a formar una figura, en este caso la figura final propuesta es una silla. Para la implementación de este aprendizaje, se utilizarán una cantidad de reglas determinadas por el ambiente, estas son las que determinaran que figura se puede realizar. En términos generales, las reglas determinan que cada elemento “nano” no puede moverse si rompe en dos la estructura base, y cada elemento sólo puede moverse uniéndose a los otros elementos adyacentes. Finalmente cada movimiento asertivo con respecto a la figura final le dará razón al aprendizaje.
Solución planteada usando LMS
Actividad T: Aprender a realizar una figura, en este caso una silla.
Desempeño P: Número de aciertos de acuerdo a la figura final o a aprender.
Experiencia de entrenamiento E: El mejor movimiento posible a elegir a partir de las piezas con movimiento libre.
Feedback: Directo.
El agente tiene como opción varios tipos de movimientos, con base en estos, él elige el adecuado que resulte más certero a la figura inicial. Todo esto sin afectar los elementos ya posicionados correctamente en el espacio.
Entrenar con varias figuras, para aprender nuevos patrones. Todo esto con base en los movimientos posibles.
Función objetivo:
V: B - > R
V(b) = 50 -> Completó la figura final
V(b) = -50 -> No completó la figura final
V(b) = ^V(b)
x1 = Número de verticales
x2 = Distancia de la figura con respecto a su posición final (número de casillas).
x3 = Número de coincidencias entre las horizontales y las verticales.
V^(b) = w¬0 + x1w1 + x2w2 + x3w3 + x4w4
Los pesos dentro de la función objetivo se van ajustando con respecto al resultado que regresa la función experto. La selección de esta función esta basada en el hecho de que entre más acercado esté al resultado final mejores resultados de aprendizaje va a tener el agente, lo que influye directamente en la implementación para tener un aprendizaje rápido y eficaz para formar la figura determinada como la final.
Conclusiones después de la programación
Los resultados fueron interesantes. Cuando iniciamos la etapa de programación, no teníamos idea si de verdad el agente iba a aprender. Ya una vez programado, vimos de manera rápida como el agente aprendía e iba ajustando los pesos. Esto lo empezó a hacer con respecto a la función que el experto ofrecía así como el resultado del número de elementos que estaban bien de acuerdo a la figura final. Por este motivo, el agente aprendía muy rápido a realizar la figura. Aunque no se desarrolló de manera específica, se dejó abierta la parte de que aprendiera más de una sola figura, por lo que sólo se tendrían que guardar los elementos ya aprendidos, para generar nuevas figuras e incluso letras, sólo guardando las figuras ya aprendidas y utilizando el mismo algoritmo.
Breve descripción del medio ambiente.
Para este avance del proyecto, desarrollamos un ambiente representado por una matriz de 23 por 23. En principio está llena de ceros, excepto por la parte donde inician los elementos “nano”. La posición inicial, se encuentra aproximadamente en la mitad de la matriz y los elementos “nano” son representados por unos. Entonces, las figuras están formadas por unos, de acuerdo a los movimientos posibles para los elementos “nano”.
Descripción detallada de la acción a aprender por el agente.
Lo que el agente en principio debe de aprender es a formar una figura, en este caso la figura final propuesta es una silla. Para la implementación de este aprendizaje, se utilizarán una cantidad de reglas determinadas por el ambiente, estas son las que determinaran que figura se puede realizar. En términos generales, las reglas determinan que cada elemento “nano” no puede moverse si rompe en dos la estructura base, y cada elemento sólo puede moverse uniéndose a los otros elementos adyacentes. Finalmente cada movimiento asertivo con respecto a la figura final le dará razón al aprendizaje.
Solución planteada usando LMS
Actividad T: Aprender a realizar una figura, en este caso una silla.
Desempeño P: Número de aciertos de acuerdo a la figura final o a aprender.
Experiencia de entrenamiento E: El mejor movimiento posible a elegir a partir de las piezas con movimiento libre.
Feedback: Directo.
El agente tiene como opción varios tipos de movimientos, con base en estos, él elige el adecuado que resulte más certero a la figura inicial. Todo esto sin afectar los elementos ya posicionados correctamente en el espacio.
Entrenar con varias figuras, para aprender nuevos patrones. Todo esto con base en los movimientos posibles.
Función objetivo:
V: B - > R
V(b) = 50 -> Completó la figura final
V(b) = -50 -> No completó la figura final
V(b) = ^V(b)
x1 = Número de verticales
x2 = Distancia de la figura con respecto a su posición final (número de casillas).
x3 = Número de coincidencias entre las horizontales y las verticales.
V^(b) = w¬0 + x1w1 + x2w2 + x3w3 + x4w4
Los pesos dentro de la función objetivo se van ajustando con respecto al resultado que regresa la función experto. La selección de esta función esta basada en el hecho de que entre más acercado esté al resultado final mejores resultados de aprendizaje va a tener el agente, lo que influye directamente en la implementación para tener un aprendizaje rápido y eficaz para formar la figura determinada como la final.
Conclusiones después de la programación
Los resultados fueron interesantes. Cuando iniciamos la etapa de programación, no teníamos idea si de verdad el agente iba a aprender. Ya una vez programado, vimos de manera rápida como el agente aprendía e iba ajustando los pesos. Esto lo empezó a hacer con respecto a la función que el experto ofrecía así como el resultado del número de elementos que estaban bien de acuerdo a la figura final. Por este motivo, el agente aprendía muy rápido a realizar la figura. Aunque no se desarrolló de manera específica, se dejó abierta la parte de que aprendiera más de una sola figura, por lo que sólo se tendrían que guardar los elementos ya aprendidos, para generar nuevas figuras e incluso letras, sólo guardando las figuras ya aprendidas y utilizando el mismo algoritmo.
Subscribe to:
Comments (Atom)