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

Slides:



Advertisements
Presentaciones similares
Tipos de software y su desarrollo
Advertisements

Búsqueda en árboles de juego
ALGORITMOS GENETICOS EVOLUCIÓN DE UNA POBLACIÓN DE
Introducción a las Redes neuronales
Diseño y análisis de algoritmos
CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
DISEÑO DE EXPERIMENTOS
Silvana Arias Carla Espinosa Livia Loaiza INGENIERIA EN SISTEMAS
Desarrollo de la labor de marketing
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
Etapas y actividades en el desarrollo OO basado en UML
LAS CARAS DE LA EVALUACION
LA EVALUACION BASADA EN COMPETENCIAS
Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. los Algoritmos Genéticos.
MCs / Ing Rolando Tamayo
EVOLUCION METODOLOGICA DE LA ENSEÑANZA DEL TENIS
BLOQUE II: APRENDAMOS A JUGAR EN EQUIPO
ING. COM. JUAN PABLO MORENO D. M. B. A.
Redes Neuronales Monocapa
Indicadores de cooperación en el trabajo grupal
1 Problema no separable linealmente Se busca obtener un algoritmo más general que permita integrar el aprendizaje entre las dos capas.
1 Proyecto de Solución de Problemas con Programación Verano 2008.
Material de apoyo para el docente CURSO II: “CANTIDAD”
ISF5501 Ingeniería de Software
Cómo adquirir programas
DISEÑO DE CARGOS.
Modelos Computacionales
Redes Competitivas.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Competencia Prof. Ana Delia Trujillo-Jiménez
Tema 3, manual: cap. 3 ¿cómo jugamos en la vida real cuando no existen acciones dominadas? Recomendaciones o consejos de los expertos (pero son eso: recomendaciones,
EXAMEN DE DISEÑO INSTRUCCIONAL PRIMER PARCIAL.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Planeación del proceso de aprendizaje Módulo 2
Una introducción a la computación evolutiva
Algoritmos Genéticos en Aprendizaje Clase 3 de Computación Evolutiva.
Proyectos por Objetivos
INTRODUCCIÓN A JUEGOS (BÚSQUEDA CON ADVERSARIOS)
Estrategia Prof. Ana Delia Trujillo-Jiménez Univ. Interamericana de PR
Modelación Matemática en la Distritación Miguel Ángel Gutiérrez Andrade Universidad Autónoma Metropolitana.
Redes Neuronales BPN - Backpropagation Networks
ORGANIZACIÓN Y PLANIFICACIÓN
Sistemas Expertos Integrantes Javier Farfán Katherine Jara Héctor Gatica.
Alexander Aristizabal Ángelo flores herrera
Optimización Combinatoria y Grafos Búsqueda Tabú
¿Qué son las competencias?
COMPLETA LOS ESPACIOS CON LA PALABRA ADECUADA 1.LOS _______________________ SE DEFINEN COMO LA _________________LÓGICA DE _________PARA SOLUCIONAR UN.
ALGORITMOS GENETICOS.
IDENTIFICACIÓN DEL CICLO DE VIDA DEL SOFTWARE. POLITÉCNICO COLOMBIANO JAIME ISAZA CADAVID.
LINEA DE TIEMPO DE CURRICULO POR AREA
REDES NEURONALES TEORÍA MODERNA DE LA FIRMA 2010.
PortafolioPortafolio Ana Liz Pacheco Frau Educ 3013 Estrategias de Enseñanza Prof. Nancy Rodríguez.
Algoritmo de Retropropagación. Notación n i, j, k son índices de las neuronas en las distintas capas.
Taller: Inteligencia Computacional
DISTRIBUCIÓN DE PLANTAS.
Heurística. Los procesos que se llevan a cabo en el cerebro pueden ser analizados, a un nivel de abstacción dado, como procesos computacionales de algún.
TEMA: DECISIONES BAJO RIESGO –TEORIA DE JUEGOS Ing. Larry D. Concha B.
INSTRUMENTOS ESTRUCTURADOS.
LAS COMPETENCIAS.
(1) Uno de los jugadores hace Jaque mate y gana. (2) Uno de los jugadores abandona y pierde. (3) Los jugadores empatan o hacen tablas. El final como etapa.
GESTIÓN DE LA CAPACITACIÓN.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Fundamentos de Computación
Modelo de procesos de software
APRENDIZAJE BASADO EN PROYECTOS INTEGRANTES: 1.YADIRA APONTE 2.ANA ESPINOZA 3.IGNACIO MURILLO 4.RUBÉN SANTOS ENTRE PARES 2 19 DE MAYO DE 2014.
Es una metodología ágil diseñada para el desarrollo de software, basada en la calidad y el monitoreo constante del proyecto. Consiste esencialmente en.
CHARLA INFORMATIVA PARA ESTUDIANTES DE GRADO: EL TRABAJO FIN DE GRADO EN LAS TITULACIONES DE PSICOLOGÍA Y LOGOPEDIA Jueves 14 de Noviembre.
Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.
TEMA 7 ANÁLISIS DE LOS RESULTADOS TEMA 7 ANÁLISIS DE LOS RESULTADOS.
I nstruccional C onectivista al objeto Del contenido, D iseño.
Transcripción de la presentación:

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)

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

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.

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.

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 al impulso 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 en ejecucion Redes Neurales Artificiales

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)

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 N j cantidad de derrotas de j Hall of Fame Utiliza los mejores individuos de poblaciones anteriores como parte de la muestra de evaluación, con el fin de perpetuar sus habilidades.

Algoritmo shared sampling Para cada oponente O de la generación anterior o.golpe=0 Para i=0 hasta N (Tamaño de la muestra) Para cada parásito P que no esté en la muestra p.sample_fitness=0 Para cada oponente O derrotado por P P.sample_fitness+=1/1+O.golpe P2=oponente con máximo fitness Agregar P2 a la muestra Para cada oponente O de la generación anterior Si P2 derrotó a O entonces O.golpe++

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 que evolucionen en paralelo Se combinan el algoritmo de redes neurales evolutivas con las estrategias competitivas para obtener una mejora permanente

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

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

Fases del juego Fuseki: Esboza las estrategias con contacto minimo entre los grupos Medio Juego: Se establecen batalals de vida o muerte por la zonas del fuseki Yose: 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

¿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.

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.

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.

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

Estructura a tres segmentos

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?

Estudio de conexiones

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.

Parámetros de Evoluciones Tamaño tablero Neuronas Escondidas Población de redes Población de neuronas Muestra Hall Of Fame Muestra de parasitos A Nombre Corrida CoCoSane

Parámetros de Evoluciones

Resultados de la evolución 100 neuronas en la capa intermedia fuertemente conexa

Resultados de la evolución 200 neuronas en la capa intermedia fuertemente conexa

Resultados de la evolución 34 neuronas en cada capa de las fases de juego: fuseki, medio juego y yose

Resultados de la evolución 20, 60 y 20 neuronas en cada capa de las fases del juego

Resultados de la evolución

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.

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.

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.

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

¿Dudas? ¿Preguntas?