Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof....

35
Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello

Transcript of Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof....

Page 1: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas.

Prof. Alejandro Luján

Prof. Wilmer Pereira

Universidad Catolica Andres Bello

Page 2: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Contenido de la Exposición

• Introducción

• Objetivos

• El juego de GO

• ¿Por qué Redes Neurales para GO?

• Técnicas a explorar

• Diseño– Estructura a tres segmentos

– Diseño de conexiones neurales (fuertemente conexa)

Page 3: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Contenido de la Exposición

• Resultados– Detalles de las corridas evolutivas

– Resultados de las evoluciones

– Análisis de las estrategias desarrolladas

• Conclusiones

• Recomendaciones

• Segmento de preguntas

Page 4: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Introducción

• La Inteligencia Artificial se ha utilizado en juegos como ajedrez por su complejidad.

• Se desean explorar técnicas relacionadas con las Redes Neurales Artificiales y los Algoritmos Evolutivos.

• Se observan precedentes en el uso de estas técnicas en tareas similares al GO.

Page 5: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Objetivos

• Diseñar un prototipo de Red Neural capaz de jugar GO.

• Determinar un mecanismo evolutivo que permita obtener mejores redes.

• Implementar este mecanismo.

• Evaluar las redes con jugadores externos.

• Analizar resultados de las evaluaciones.

Page 6: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Unidades enlazadas a través de conexiones cargadas por pesos numéricos

El aprendizaje se basa en la actualización de esos pesos que se inicializan en la fase de entrenamiento de la red

Está formada por unidades de entrada y unidades de salida(neuronas de entrada y neuronas de salida)

El nivel de activación de la neurona artificial (equivalente alimpulso excitatorio) es un cálculo individual en cada neurona,sin control global

Se tiene una fase de aprendizaje, con ejemplos conocidos,una de prueba con otros ejemplos y finalemente la puesta enejecucion

Redes Neurales Artificiales

Page 7: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Redes neurales evolutivas

• Algoritmo Evolutivo SANE.Los individuos no son soluciones en si mismos, sino parte de una solución. Población de neuronas PN y población de redes PR... [Moriarty, Miikkulainen]

1. Limpiar fitness de cada neurona y red de poblaciones

2. Seleccionar N neuronas de PN para una red de PR

3. Crear una red neural con las neuronas seleccionadas

4. Evaluar la red para la tarea

5. Asignar fitness de la red segun la evaluación

6. Repetir los pasos de 2 a 5 para cada individuo de PR

7. Asignar a cada neurona el fitness de las mejores 5 redes en las que participó

8. Realizar mutación y cruce a ambas poblaciones (PR yPN)

Page 8: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Coevolucion competitiva

• Coevolución Competitiva: Evolucionar dos poblaciones paralelas que se enfrenten mutuamente elevando su nivel (host y parásitos que se intercambian los roles) [Rosin, Belew]

• Shared Sampling Selecciona una muestra representativa, que reúna todas las habilidades, de los parásitos.

• Fitness Sharing–Premia individuos que derroten a parásitos dominantes aunque pierdan con el resto de los parásitos (F

i = Σ

(i,O) 1 / N

j) donde O es el

número de oponentes derrotados y Nj cantidad de derrotas de j

• Hall of FameUtiliza los mejores individuos de poblaciones anteriores como parte de la muestra de evaluación, con el fin de perpetuar sus habilidades.

Page 9: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Algoritmo shared sampling

Para cada oponente O de la generación anterioro.golpe=0Para i=0 hasta N (Tamaño de la muestra)

Para cada parásito P que no esté en la muestrap.sample_fitness=0Para cada oponente O derrotado por P P.sample_fitness+=1/1+O.golpeP2=oponente con máximo fitnessAgregar P2 a la muestraPara cada oponente O de la generación anterior

Si P2 derrotó a O entonces O.golpe++

Page 10: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

SANE + Coevolucion Competitiva

En vez de evaluar con un humano o un sistema preexistente (se estancaría y adaptaría a sólo ganar a ese contrincante) se

se evalua con una competencia entre dos poblaciones queevolucionen en paralelo

Se combinan el algoritmo de redes neurales evolutivas con las estrategias competitivas para obtener una mejora permanente

Page 11: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Algoritmo definitivo

1. Limpiar fitness de cada neurona y red de poblaciones

2. Seleccionar R de la poblacion PR

3. Seleccionar N oponentes de la población parásito,

utilizando Shared Sampling

4. Seleccionar M oponentes del Hall of Fame

5. Evaluar la red contra los N+M oponentes

6. Asignar fitness de la red R utilizando Fitness Sharing

7. Repetir los pasos de 2 a 6 para cada individuo de PR

8. Agregar el mejor individuo de PR al Hall of Fame

9. Asignar a cada neurona el fitness de las mejores 5 redes en las que participo

10. Realizar cruce y mutación en ambas poblaciones

Page 12: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

El juego de GO

• Tablero cuadrado de 5 a 19 intersecciones.– Grupos

– Libertades

– Capturas (ocupa ultimo grado de libertad)

– Territorio (conteo de espacio menos las piezas capturadas)

• Restricciones

– Interseccion vacia

– No jugada suicida

– Evitar KO

Page 13: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Fases del juego

Fuseki: Esboza las estrategias con contacto minimo entre los gruposMedio Juego: Se establecen batalals de vida o muerte por la zonas del fusekiYose: fase terminal donde se cierran los ultimos grupos y se demarca el territorio

Consideraciones importantes:

Jugadas elasticas son muy alejadas del grupo (osadas pero arriesgadas) se debe ser elastico para conquistar territorios

Buscar patrones con al menos 2 ojos es importante

Page 14: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

¿Por qué RN para GO?

• Han demostrado habilidades en análisis de patrones. El GO se basa en patrones:– Figuras ofensivas, defensivas

– Figuras fuertes, débiles

– Ejemplo de patrón: Ojos

• Capacidad de solucion en problemas no algorítmicos o con complejidad inmanejable.

Page 15: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Diseño

• Tableros: tamaños 5x5 y 9x9

• Entradas: dos entradas por cada intersección, indicando si esta ocupada por blanco o por negro.

• Salidas: una para cada intersección. El valor real de salida indica que tan conveniente es jugar en esta intersección.

• Cantidad de neuronas: 500 neuronas para 9x9, 100 neuronas para 5x5.

Page 16: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Diseño

Aportes adicionales

• Organización de neuronas escondidas

– Capa escondida de forma tradicional– Estructura a tres segmentos

• Conexiones: cada neurona de entrada está conectada con todas las escondidas. Las neuronas escondidas tienen conexión con todas las de salida.

Page 17: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Estructura a tres segmentos

• Fases del juego de GO:– Fuseki

– Medio Juego

– Yose

• Cada segmento está activo en la etapa correspondiente del juego.

• El paso a la próxima fase está definido por la densidad del tablero.

• La función de evaluación es la de GNUGo y protocolo GTP

Page 18: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Estructura a tres segmentos

Page 19: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Estudio de conexiones

• Otros trabajos manejan neuronas escondidas con un número fijo de conexiones (~16%)

• ¿Por qué no tener redes completamente conexas en la capa intermedia?

Page 20: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Estudio de conexiones

Numero fijo de conexiones

0

1

2

3

4

0 20 40 60 80 100 120Generacion

Nu

me

ro d

e j

ue

go

s g

an

ad

os

Page 21: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Estudio de conexiones

Redes completamente conexas

0

1

2

3

4

0 20 40 60 80 100 120Generacion

Nu

me

ro d

e j

ue

go

s g

an

ad

os

Page 22: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Implementación

• Partiendo de SANE 2.0, éste se reescribe, corrige y rediseña.

• Se realizan evoluciones de 100 generaciones.

• Torneo cada generación: GnuGO contra las 4 mejores redes.

• Tiempos de corridas: desde 6 horas hasta 12 días.

Page 23: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Parámetros de Evoluciones

999955Tamaño tablero

2000500500250200100Neuronas Escondidas

400400200200200200Población de redes

2000040002000200020002000Población de neuronas

333333Muestra Hall Of Fame

202020202525Muestra de parasitos

2000500A500250200100Nombre Corrida

CoCoSane 

Page 24: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Parámetros de Evoluciones

995555Tamaño tablero

10016640662033endgame

300166120666033midgame

10016640662033startgame

50049820019810099Neuronas Escondidas

400400200200200200Población de redes

10001660400660200330endgame

300016601200660600330midgame

10001660400660200330startgame

50004980200019801000990Población de neuronas

333333Muestra HOF

252525252525Muestra parasitos

1003001001661661664012040666666206020343434Nombre Corrida

NeoGo 

Page 25: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Resultados de la evolución

0

1

2

3

4

0 20 40 60 80 100

Generacion

me

ro ju

eg

os

ga

na

do

s

CoCo100

100 neuronas en la capa intermedia fuertemente conexa

Page 26: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Resultados de la evolución

0

1

2

3

4

0 20 40 60 80 100

Generacion

me

ro ju

eg

os

ga

na

do

s

CoCo200

200 neuronas en la capa intermedia fuertemente conexa

Page 27: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Resultados de la evolución

0

1

2

3

4

0 20 40 60 80 100

Generacion

me

ro ju

eg

os

ga

na

do

s

NeoGo 343434

34 neuronas en cada capa de las fases de juego: fuseki, medio juego y yose

Page 28: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Resultados de la evolución

0

1

2

3

4

0 20 40 60 80 100

Generacion

me

ro ju

eg

os

ga

na

do

s

NeoGo 206020

20, 60 y 20 neuronas en cada capa de las fases del juego

Page 29: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Resultados de la evolución

0

1

2

3

4

0 20 40 60 80 100

Generacion

me

ro ju

eg

os

ga

na

do

s

NeoGo 666666

Page 30: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Resultados de la evolución

0

1

2

3

4

0 20 40 60 80 100

Generacion

me

ro ju

eg

os

ga

na

do

s

NeoGo 4012040

Page 31: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Estrategias Desarrolladas

• Ojos: en muchos juegos se evidencia la formación de ojos para la supervivencia de los grupos.

• Separación de grupos del oponente.

• Captura: las redes parecen demostrar ciertas habilidades en luchas vida o muerte.

Page 32: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Conclusiones

• Tableros 9x9: dadas las condiciones del experimento, no se observaron evidencias de aprendizaje.

• Tableros 5x5: SANE demuestra ser efectivo en el ámbito del GO, al ser combinado con las técnicas mencionadas.

• El aumento en la cantidad de neuronas en la capa intermedia no parece aportar beneficios al aprendizaje.

Page 33: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Conclusiones

• La estructura a tres segmentos no ofreció una mejora en el proceso de aprendizaje, aunque mantiene la tendencia de avance de la estructura tradicional.

• Se obtuvo exitosamente un framework que contiene una serie de clases, escritas en java, que facilitan la implementación de Coevolución Competitiva SANE para otros dominios.

Page 34: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

Recomendaciones

• Paralelizar el proceso evolutivo, dada la carga de procesamiento que esta exige.

• Utilizar una estrategia de cálculo de fitness adecuada a la estructura de tres segmentos, que evalúe cada segmento por separado.

• Neuronas de paso mas sofisticadas.

• Seguir ahondando en particularizaciones de las Redes Neurales

Page 35: Desarrollo de un Jugador de GO Basado en Redes Neurales Evolutivas. Prof. Alejandro Luján Prof. Wilmer Pereira Universidad Catolica Andres Bello.

¿Dudas?

¿Preguntas?