Você está na página 1de 13

El Juego del Gato Resuelto con Aprendizaje Reforzado Mediante el Algoritmo SARSA

ISC. Csar Medina Trejo ISC. Mercedes Prez Villafuerte


INSTITUTO TECNOLGICO DE CIUDAD MADERO Divisin de Estudios de Posgrado e Investigacin Maestra en Ciencias en Ciencias de la Computacin

Marzo de 2009

Resumen
Este artculo aborda el problema de un agente que aprende a jugar el conocido juego del Gato mediante el algoritmo SARSA, el cual es un algoritmo de Diferencias Temporales para el Aprendizaje Reforzado. En un principio, el agente no tiene experiencia de cmo jugar, slo tiene el conocimiento de cundo gana, pierde o empata. Los juegos experimentales se efectan entre 2 agentes; el Agente Aleatorio que apunta en una casilla vaca de manera aleatoria y el Agente Reforzado, el cual adquiere conocimiento conforme transcurren las partidas para jugar bien, logrando bloquear jugadas y ganar. Se encuentra una mejora entre los primeros experimentos sin experiencia en los experimentos posteriores donde ya aprendi el Agente Reforzado.

Introduccin
El juego del Gato es un juego muy conocido en muchas partes del mundo, conocido tambin como Tic Tac Toe, Tres en raya, Noughts and Crosses, etc. En este juego, 2 jugadores toman sus turnos para marcar los espacios de un tablero de tres por tres, un jugador toma las Xs y el otro toma las 0s; el juego termina hasta que un jugador gana poniendo 3 de sus marcas trazando una lnea horizontal, vertical o diagonal.

Para esta experimentacin se crearon 2 diferentes agentes; el primero, el cual hemos llamado Agente Aleatorio (AA), toma su turno marcando algn espacio vaco de manera aleatoria, sin alguna estrategia ms que sea un movimiento permitido. El segundo agente implementado lo hemos llamado Agente Reforzado (AR), ste no tiene experiencia de cmo jugar, ni las estrategias para ganar, slo se le ha especificado cundo ha ganado, perdido o empatado el juego. En un principio, el Agente Reforzado se comporta como un agente aleatorio, ya que al iniciar cuenta con el mismo conocimiento que el Agente Aleatorio, pero conforme transcurren las partidas, el Agente Reforzado adquiere conocimiento de cmo jugar, incluso bloquear jugadas del oponente y ganar. El Agente Reforzado adquiere conocimiento a base de la prueba y el error, sin necesidad de especificarle qu movimientos debe hacer. El Agente Reforzado se ha implementado en base de la tcnica de Aprendizaje Reforzado, especficamente usando el mtodo de Diferencias Temporales empleando el algoritmo SARSA que posteriormente se describir su funcionamiento. Se quiere lograr que el Agente Reforzado adquiera suficiente conocimiento para que sea capaz de ganarle al Agente Aleatorio ms veces en un determinado nmero de partidas. Posteriormente se mostrarn los resultados obtenidos de las experimentaciones y el comportamiento del Agente Reforzado en el transcurso de ellas.

Estado del Arte


El juego del gato ha sido resuelto de diversas maneras incluyendo las tcnicas de Aprendizaje Reforzado. Charles Babbage en el siglo XIX pens adaptar su famosa mquina analtica para que jugara ajedrez y ms tarde en desarrollar una maquina que jugara al gato. En 1961, Donald Michie [1] describi un sistema de aprendizaje de prueba y error para aprender cmo jugar el juego del Gato, este sistema lo llam MENACE (MatchBox Educable Noughts and Crosses Engine). El sistema consista de un ensamble de cajas de cerillos para cada posicin posible del juego, cada caja contena un nmero de cuentas de vidrio, un color diferente para cada movimiento posible de esa posicin. Dibujando una cuenta aleatoriamente de la caja correspondiente a la posicin actual del juego, se podra determinar el movimiento de MENACE. Cuando un juego se acababa, las cuentas se agregaban o se quitaban de las cajas usadas durante el juego para premiar o castigar las decisiones de MENACE.

Michie fue la influencia de muchos trabajos posteriores sobre aprendizaje reforzado como lo fueron Sutton y Barto. Michie hizo mucho nfasis en el papel de la prueba y el error y el aprendizaje como un aspecto esencial en el aprendizaje reforzado. Ghory [3] investig la aplicacin del algoritmo de Aprendizaje Reforzado de Diferencias Temporales () y redes neuronales para resolver el problema de producir un agente que fuera capaz de jugar juegos de tableros. Hace una identificacin y formalizacin de las propiedades principales de los juegos que son importantes para el Aprendizaje de Diferencias Temporales y una discusin de diferentes mtodos para generar datos de entrenamiento. Los experimentos que realiz han sido conducidos con el sistema que implement usando los juegos Gato y Conecta 4 para examinar un nmero diferente de mejoras potenciales. Gonzlez [4] Presenta un anlisis y diseo de agentes que deben aprender la resolucin de laberintos estticos y dinmicos mediante el uso del Aprendizaje reforzado, mostrando la ventaja de que el aprendizaje se realiza en lnea y no se requiere un entrenamiento previo.

Marco Terico
Este tipo de aprendizaje tambin es conocido como aprendizaje con la asistencia de un crtico o editor. Esto quiere decir que aunque no existe una categora sugerida, en cambio la categora dada en un nuevo grupo de sugerencias puede interpretarse como correcta o incorrecta aunque especficamente no se seale ni el porqu ni el como de que est equivocada. El aprendizaje reforzado es una fusin de la prueba y el error y el problema de Control ptimo y su solucin [2]. Esta tcnica de aprendizaje permite crear agentes que realicen tareas sin precisarle cmo deben hacerlas. En el Aprendizaje reforzado slo se le da a la computadora una meta a alcanzar, entonces la computadora aprende como alcanzar esa meta con pruebas y fallas interactuando con su ambiente, de esta manera corrige los errores y aprende de ellos. Muchos investigadores estn buscando esta forma de inteligencia de mquina y estn entusiasmados acerca de la posibilidad de resolver problemas que nunca han sido resueltos previamente [7]. Los principales elementos involucrados en el problema de Aprendizaje Reforzado son los siguientes [4]: Agente: Es el aprendiz, el cual debe hacer tareas y tomar de decisiones, para lograr alcanzar una meta y adquirir experiencia de sus decisiones. Ambiente: Todo aquello que no es controlado por el agente genera estados y recibe acciones, y permite evaluar las acciones del agente. Estado: Es una representacin del ambiente que tiene el agente. Accin: Conducta que el agente utiliza para modificar al ambiente.

Poltica: Define la forma en que el agente debe conducirse a partir de un estado dado. Una poltica se puede representar en una tabla o en otro tipo de estructura. Normalmente una poltica se define implcitamente en la tabla asociada a una funcin de valor. La determinacin de una poltica es el ncleo del enfoque ya que esta define la conducta del agente. Funcin de Recompensas: Define la meta a lograr por el agente. Determina que tan deseable es un estado o una pareja (estado, accin). En cierto sentido que eventos son buenos o malos para que el agente logre su meta. El objetivo del agente es maximizar la cantidad de premios recibida durante el tiempo del experimento. La funcin de premios define lo que es bueno para el agente en forma inmediata. Funcin de valor (estado): El valor de un estado es la cantidad total de premios que el agente espera acumular en el futuro, a partir del estado dado. Especifica lo que es bueno para el agente en el largo plazo. Se buscan hacer acciones que den los valores ms altos, no la recompensa mayor. V(si )=E ri | si Funcin de valor (estado-accion): Valor esperado del premio acumulado en el futuro, a partir del estado y la accin dados. La estimacin de los valores de estas funciones es el ncleo de la actividad de este mtodo. Q(si ,a i )=E ri | si ,ai En el problema de aprendizaje reforzado, el agente toma decisiones en funcin de una seal provista por el ambiente, llamada estado del ambiente. Existen 3 formas de resolver problemas de Aprendizaje Reforzado, los cuales son la Programacin Dinmica (DP), Mtodo de Monte Carlo (MC) y los mtodos de Diferencias Temporales (TD) [4]. El mtodo de Diferencias Temporales combina tcnicas de Programacin Dinmica y Monte Carlo. No requieren de un modelo y son completamente incrementales, pero son ms complejos de analizar. Los mtodos de diferencias temporales basan su actualizacin en una estimacin existente y slo tienen que esperar el siguiente paso. El algoritmo de TD(0) se describe en la Fig. 1 [5]:
Inicializa V(s) arbitrariamente y a la poltica a evaluar Repite (para cada episodio): Inicializa s Repite (para cada paso del episodio): a accin dada por para s Realizar accin a; observar r, y s V(s)V(s)+[r+V(s)-V(s)] ss Hasta que s sea terminal Fig. 1 Algoritmo de TD(0)

La actualizacin de valores tomando en cuenta la accin sera: Q(st,at) Q(st,at)+[rt+1+ Q(st+1,at+1)- Q(st,at)] El algoritmo es prcticamente el mismo, solo que se llama SARSA (State-Action-RewardState-Action). ste es un algoritmo para aprender una poltica de decisiones Markovianas, es usado en el rea de aprendizaje reforzado de aprendizaje computacional; este algoritmo est descrito a continuacin en la Fig. 2 [5]:
Inicializa Q(s,a)arbitrariamente Repite (para cada episodio): Inicializa s Selecciona una a a partir de s usando la poltica dada por Q Repite (para cada paso del episodio): Realizar accin a; observar r, y s Escoger a de s usando la poltica derivada de Q Q(s,a) Q(s,a)+[r+Q(s,a)-Q(s,a)] ss; aa Hasta que s sea terminal

Fig. 2 Algoritmo SARSA

Donde es una constante que representa el parmetro del tamao de pasos (step-size), se conoce como la razn de descuento y est entre 0 <1. Existen dos formas para asegurar que todas las acciones pueden ser seleccionadas indefinidamente [5]:

Los algoritmos on-policy: Estiman el valor de la poltica mientras la usan para el control. Se trata de mejorar la poltica que se usa para tomar decisiones. Los algoritmos off-policy: Usan la poltica y el control en forma separada. La estimacin de la poltica puede ser por ejemplo greedy y la poltica de comportamiento puede ser greedy. Osea que la poltica de comportamiento est separada de la poltica que se quiere mejorar.

Con -greedy la mayor parte del tiempo se selecciona la accin que da el mayor valor estimado, pero con probabilidad se selecciona una accin aleatoriamente.

Implementacin
Como ya se ha mencionado anteriormente, se crearon 2 agentes para enfrentarlos en diferentes partidas del Gato. El Agente Aleatorio no es el objeto de estudio en las experimentaciones, su nica funcin es anotar en una casilla disponible del tablero sin ms que eso. El objeto de estudio durante las experimentaciones es el Agente Reforzado el cual se describir a continuacin. El Agente Reforzado fue modelado tomando como base los elementos que participan en el problema del Aprendizaje Reforzado. En seguida se describir cada uno de ellos. Es necesario mencionar que el Agente Aleatorio est asociado al jugador 1 y es representado por X, el Agente Reforzado est asociado al jugador 2 y es representado por O. Caractersticas del Agente El agente est modelado en base al algoritmo SARSA que anteriormente se ha descrito. Esta ser la tcnica que usar para aprender a jugar y ganar en el juego del Gato. Estados Un lmite superior del nmero de estados que se pueden encontrar en el transcurso de los juegos asciende a 39=19,683, es decir, hay 3 posibles estados para cada casilla y hay un total de 9 casillas [6]. Se dice que se tiene 3 posibles estados por cada casilla debido a que puede estar disponible, ocupado por el jugador 1 u ocupado por el jugador 2. En el valor de 39 se incluyen muchos estados ilegales o posiciones ilegales, por ejemplo, podran existir 4 Xs y solo 2 0s. De manera ms cuidadosa, eliminando estas posiciones ilegales se obtienen 5478 posibles estados, y sabiendo que existe la simetra en los estados, aplicando rotacin y reflexin a este conjunto de estados se pueden llegar a considerar idnticos, y con esto se llega a la conclusin de que existen 765 diferentes posiciones esenciales. En el modelado del agente, dado que se conoce la cantidad de posiciones, pero no se conoce cules son esas posiciones, el agente agregar en su conocimiento todos los estados que se vayan generando en el transcurso de los movimientos de ambos agentes en cada partida. Los Estados se van agregando cada vez que se genera un movimiento de ambas partes, este estado se busca en la matriz de estados existentes, si ya existe no se agrega a esta matriz, en caso contrario, este nuevo estado se agrega a la matriz de Estados y se incrementa el contador de estados existentes. Al finalizar los juegos, la matriz de Estados y de Acciones se guardan en un archivo de poltica, para poder usar esos datos en juegos posteriores y ya tener conocimiento de qu movimientos son los convenientes para un estado dado. De esta manera se tendr el conjunto de Estados almacenados en una matriz bidimensional. Enseguida se muestra en la Fig 3 la representacin de un posible estado en el juego:

S= 2 1

Fig. 3. Representacin de Estados

Acciones Las posibles acciones para el agente es anotar en cualquiera de las 9 casillas. Las acciones estn representadas por una matriz de nmeros del 1 a 9 que representan las casillas del tablero. a= 1 2 3 4 5 6 7 8 9

Fig. 4. Representacin de Acciones

Ambiente El ambiente en que se desenvuelve el agente es un tablero de 3x3 visto de manera fsica, de manera lgica, este tablero es representado por una matriz de tamao 1x9. En esta matriz es donde los agentes anotarn sus tiradas conforme sea su turno. Esto se muestra en la Fig. 5.

Fig. 5. Representacin del Ambiente

El ambiente en que se desenvuelve el agente es dinmico, ya que conforme los jugadores van anotando en las casillas, el ambiente se modifica, es ah donde radica la problemtica del aprendizaje para el agente, ya constantemente se encuentra con nuevos estados. Esto es un problema cuando el agente aun no tiene experiencia ya que no tiene conocimiento previo de cul es la mejor accin a tomar, sin embargo, conforme transcurren las partidas adquirir la experiencia necesaria para tomar estas decisiones.

Funcin de Recompensas Se establecieron 2 tipos de recompensas castigos para lograr el aprendizaje en el agente. Estas se describen a continuacin: Para que anote en una casilla vaca Recompensa= +1; Se premia al agente cuando decide anotar en una casilla disponible. Castigo= -1; Se castiga al agente cuando intenta anotar en una casilla ya ocupada ya sea por el mismo o por el contrario. Despus de terminar una partida Recompensa= +2; Se premia al agente cuando al finalizar una partida el resultado fue de ganador, esta recompensa se asocia a la ltima accin que realiz el agente para el estado previo, ya que esa fue la que le permiti ganar. Castigo= -2; Se castiga al agente cuando al finalizar la partida resulta perdedor. El castigo se asocia a la ltima accin que realiz para el estado previo, ya que esta accin permiti que el oponente ganara, ya que no bloque ese movimiento que le permiti ganar, la prxima vez que se encuentre en ese estado, no tomar esa accin y optar por otra accin positiva que posiblemente permita bloquear la jugada del oponente. A continuacin se ejemplifican estas ltimas situaciones en las Figs. 6 y 7: Premio por Ganar

Fig. 6. Ejemplo de Premio por Ganar

Castigo por Perder

Fig. 7. Ejemplo de Castigo por Perder

Poltica La poltica est representada por una tabla donde se asocian todas las mejores acciones para cada estado que se va generando. Funcin de valor (estado-accion) Es representado por una matriz bidimensional que asocia todas las acciones para cada estado generado. Para el desarrollo del algoritmo se le dio valores a las constantes =0.1,=1 =0.1 y 0.01.

Pruebas Experimentales y Resultados


A continuacin se har una descripcin de las pruebas que se hicieron para conocer el desempeo que tuvo el Agente Reforzado en las Partidas. Se hicieron 6 experimentos diferentes que se describen en seguida:
1. 5 muestras de 200 partidas sin experiencia del Agente Reforzado y un valor de

=0.1.
2. 5 muestras de 200 partidas sin experiencia del Agente Reforzado y un valor de

=0.01.

3. Una muestra en donde el agente Reforzado tiene que ganar 15 veces consecutivas,

con un valor de =0.1.


4. Una muestra en donde el agente Reforzado tiene que ganar 15 veces consecutivas,

con un valor de =0.01.


5. 5 muestras de 200 partidas con experiencia del Agente Reforzado despus de haber

ganado 15 veces consecutivas con un valor de =0.1.


6. 5 muestras de 200 partidas con experiencia del Agente Reforzado despus de haber

ganado 15 veces consecutivas con un valor de =0.01.

Para los experimentos 1,2,4,6 se mostrarn resultados en tablas que contendrn informacin del nmero de veces que gana cada agente y tambin el numero de empates. Para los experimentos 3 y 4 se mostrar los resultados en tablas, las cuales contendrn informacin de cuntas partidas se llevaron a cabo para que el Agente Reforzado ganara 15 veces consecutivas, as como el nmero de partidas ganadas por cada agente as como el nmero de empates.

Experimento 1
Muestras 1 2 3 4 5 Totales Promedio No. de Ganados por Ganados por Juegos Juegos A. Aleatorio A. Reforzado Empatados 200 95 81 24 200 121 61 18 200 115 70 15 200 103 84 13 200 99 77 24 1000 533 373 94 200 106.6 74.6 18.8

Tabla 1. Resultados del Experimento 1, sin experiencia y un valor de =0.1.

Experimento 2
Muestras 1 2 3 4 5 Totales Promedio No. de Ganados por Ganados por Juegos Juegos A. Aleatorio A. Reforzado Empatados 200 112 77 11 200 105 85 10 200 107 89 4 200 96 99 5 200 117 74 9 1000 537 424 39 200 107.4 84.8 7.8

Tabla 2. Resultados del Experimento 2, sin experiencia y un valor de =0.01.

Experimento 3
Muestras 1 2 3 4 5 Totales Promedio No. de Ganados por Ganados por Juegos A. Aleatorio A. Reforzado 127491 38181 68725 88453 28951 46429 47356 8263 29539 79577 26889 41229 112691 33834 60895 455568 136118 246817 91113.6 27223.6 49363.4 Juegos Empatados 20585 13073 9554 11459 17962 72633 14526.6

Tabla 3. Resultados de 5 muestras en donde el agente Reforzado tiene que ganar 15 veces consecutivas, con un valor de =0.1, sin experiencia.

Experimento 4 Muestras No. de Juegos 1 2 3 4 5 Totales Promedio 198590 298099 169040 275489 55721 996939 199387.8 Ganados por Ganados por A. Aleatorio A. Reforzado 75638 102108 99871 160851 71126 82342 94482 144961 15896 32784 357013 523046 71402.6 104609.2 Juegos Empatados 20844 37377 15572 36046 7041 116880 23376

Tabla 4. Resultados de 5 muestras en donde el Agente Reforzado tiene que ganar 15 veces consecutivas, con un valor de =0.01, sin experiencia.

Experimento 5
Muestras 1 2 3 4 5 Totales Promedio No. de Ganados por Ganados por Juegos Juegos A. Aleatorio A. Reforzado Empatados 200 38 129 33 200 30 131 39 200 28 132 40 200 42 122 36 200 36 133 31 1000 174 647 179 200 34.8 129.4 35.8

Tabla 5. Resultados del Experimento 5, con experiencia y un valor de =0.1.

Experimento 6
Muestras 1 2 3 4 5 Totales Promedio No. de Ganados por Ganados por Juegos Juegos A. Aleatorio A. Reforzado Empatados 200 51 113 36 200 46 125 29 200 50 118 32 200 56 115 29 200 56 113 31 1000 259 584 157 200 51.8 116.8 31.4

Tabla 6. Resultados del Experimento 6, con experiencia y un valor de =0.01.

Conclusiones
Despus de hacer los experimentos se puede concluir que el algoritmo SARSA funciona de manera satisfactoria para este problema en particular, ya que en un principio se pueden ver los resultados obtenidos cuando el agente no tiene experiencia, aunque el agente aleatorio gana en los 2 experimentos sin experiencia del Agente Reforzado se puede ver que no es una diferencia demasiado grande. Sin embargo, como se puede observar en los 2 ltimos experimentos, el agente Reforzado, despus de que adquiere experiencia, la diferencia de veces ganadas de parte del agente Reforzado es muy alta, incluso los empates son mayores que las veces que logra ganar el Agente Aleatorio. Respecto al valor de para dar la oportunidad de diversificacin. Se observa que el valor de 0.1 devuelve mejores resultados que el de 0.01, esto demuestra que es bueno darle oportunidad al agente de probar con otras acciones. De los experimentos 3 y 4 se pudo observar que cuando el valor de es 0.01 hace que tarde ms tiempo en ganar 20 veces consecutivas. Es decir, tarda ms tiempo en adquirir experiencia, debido a que tiende a hacer algo parecido a una bsqueda secuencial. Al terminar los experimentos se concluy que sin experiencia el Agente Reforzado gan el 39.85% de las veces en 2000 juegos realizados, el 53.5% el Agente Aleatorio y un 6.65% empataron. Al hacer el experimento con experiencia el Agente Reforzado gan el 61.55% de 2000 juegos realizados, el Agente Aleatorio gan el 21.65% de las veces y empataron un 16.8% de los juegos; lo anterior demuestra que el Agente Reforzado aprendi a ganar al transcurrir los juegos. Resulta satisfactorio el desempeo del algoritmo SARSA, los resultados de los experimentos demuestra que efectivamente, el agente logra adquirir experiencia a travs de la prueba y el error. Adems de los resultados de cantidad de ganados, en el transcurso de los

experimentos 5 y 6 se pudo observar que las pruebas se terminaron de manera ms rpida.

Referencias
[1] Michie, D. (1961). Trial and error. In Barnett, S. A. and McLaren, A., editors, Science Survey,Part 2, pages 129-145, Harmondsworth. Penguin. [2]. Sutton R., Barto A. (1998). Reinforcement Learning. An Introduction. Ed. MIT Press; Cambridge, Massachusetts, USA. [3] Ghory, I.(2004) Reinforcement Learning in Board Games. Volume, Department of Computer Science, University of Bristol. [4] Gonzlez, J., Fraire, H., Flores J., Varela C. Anlisis y Diseo de Agentes de Aprendizaje Reforzado. Instituto Tecnolgico de Cd. Madero. Mxico [5] Morales E., Gonzlez J. (2006) Aprendizaje Computacional. Instituto Nacional de Astrofsica, ptica y Electrnica (INAOE) Ciencias Computacionales. [6] Anurag, B., Pratul, V., Kalyanmoy, D. (2007) Evolution of No-loss Strategies for the Game of TicTac-Toe. Indian Institute of Technology Kanpur. India. [7] Harmon, M., Harmon, S. (2000) Reinforcement Learning: A Tutorial. Wright State University

Você também pode gostar