# TD-Gammon

TD-Gammon es un programa informático de backgammon desarrollado en 1992 por Gerald Tesauro en el Centro de Investigación Thomas J. Watson de IBM. Su nombre se debe a que es una red neuronal artificial entrenada mediante una forma de aprendizaje por diferencia temporal, concretamente TD-Lambda.
La versión final de TD-Gammon (2.1) se entrenó con 1,5 millones de partidas de autojuego y alcanzó un nivel de juego ligeramente inferior al de los mejores jugadores humanos de backgammon de la época. Exploró estrategias que los humanos no habían seguido y dio lugar a avances en la teoría del juego correcto del backgammon.
En 1998, durante una serie de 100 partidas, fue derrotado por el campeón del mundo por un escaso margen de 8 puntos. Su valoración poco convencional de algunas estrategias de apertura había sido aceptada y adoptada por jugadores expertos.

## Algoritmo para jugar y aprender

Durante el juego, TD-Gammon examina en cada turno todas las posibles jugadas legales y todas sus posibles respuestas (dos niveles de anticipación), introduce cada posición del tablero resultante en su función de evaluación y elige la jugada que conduce a la posición del tablero que ha obtenido la puntuación más alta. En este sentido, TD-Gammon no difiere de casi ningún otro programa informático de juegos de mesa. La innovación de TD-Gammon radica en cómo aprende su función de evaluación.
El algoritmo de aprendizaje de TD-Gammon consiste en actualizar los pesos de su red neuronal después de cada turno para reducir la diferencia entre su evaluación de las posiciones en el tablero de los turnos anteriores y su evaluación de la posición en el tablero del turno actual (de ahí lo de "aprendizaje por diferencia temporal"). La puntuación de cualquier posición del tablero es un conjunto de cuatro números que reflejan la estimación del programa de la probabilidad de cada posible resultado de la partida: Las blancas ganan normalmente, las negras ganan normalmente, las blancas ganan un gammon, las negras ganan un gammon. Para la posición final del tablero de la partida, el algoritmo compara con el resultado real de la partida en lugar de con su propia evaluación de la posición del tablero.
Después de cada turno, el algoritmo de aprendizaje actualiza cada peso de la red neuronal según la siguiente regla:
    $w_{t+1}-w_{t}=\alpha (Y_{t+1}-Y_{t})\sum _{k=1}^{t}\lambda ^{t-k}\nabla _{w}Y_{k}$
Donde:
    $w_{t+1}-w_{t}$ es la cantidad para cambiar el peso de su valor en el turno anterior. $Y_{t+1}-Y_{t}$ es la diferencia entre las evaluaciones del tablero del turno actual y del anterior. $\alpha$ es un parámetro de "velocidad de aprendizaje". $\lambda$ es un parámetro que afecta a la medida en que la diferencia actual en las evaluaciones del consejo debe retroalimentar las estimaciones anteriores.$\lambda =0$ hace que el programa corrija sólo la estimación del turno anterior; $\lambda =1$ hace que el programa intente corregir las estimaciones en todos los giros anteriores; y los valores de $\lambda$ entre 0 y 1 especifican diferentes tasas a las que la importancia de las estimaciones más antiguas debería "decaer" con el tiempo. $\nabla _{w}Y_{k}$ es el gradiente de la salida de la red neuronal con respecto a los pesos: es decir, cuánto afecta a la salida cambiar el peso.

## Experimentos y etapas de formación

A diferencia de otros programas de backgammon basados en redes neuronales, como Neurogammon (también escrito por Tesauro), en los que un experto entrenaba al programa proporcionándole la evaluación "correcta" de cada posición, TD-Gammon se programó en un principio "sin conocimientos". En los primeros experimentos, en los que sólo se utilizó una codificación en bruto del tablero sin características diseñadas por humanos, TD-Gammon alcanzó un nivel de juego comparable al de Neurogammon: el de un jugador humano de backgammon de nivel intermedio.
Aunque TD-Gammon descubrió funciones muy útiles por sí mismo, Tesauro se preguntó si su juego podría mejorarse utilizando funciones diseñadas a mano como las de Neurogammon. De hecho, el TD-Gammon autodidacta con funciones diseñadas por expertos pronto superó a todos los programas de backgammon para ordenador anteriores. Dejó de mejorar después de 1.500.000 partidas (autoaprendizaje) utilizando una red neuronal de tres capas, con 198 unidades de entrada que codificaban características diseñadas por expertos, 80 unidades ocultas y una unidad de salida que representaba la probabilidad prevista de ganar.

## Avances en la teoría del backgammon

El entrenamiento exclusivo de TD-Gammon a través del auto juego (en lugar de la tutela) le permitió explorar estrategias que los humanos no habían considerado previamente o habían descartado erróneamente. Su éxito con estrategias poco ortodoxas tuvo un impacto significativo en la comunidad del backgammon.
Por ejemplo, en la jugada de apertura, la sabiduría convencional era que dada una tirada de 2-1, 4-1 o 5-1, las blancas debían mover una sola ficha del punto 6 al punto 5. Conocida como "slotting", esta técnica cambia el riesgo de acierto por la oportunidad de desarrollar una posición agresiva. Conocida como "slotting", esta técnica cambia el riesgo de un golpe por la oportunidad de desarrollar una posición agresiva. TD-Gammon descubrió que el juego más conservador de 24-23 era superior. Los jugadores de torneos empezaron a experimentar con la jugada de TD-Gammon y tuvieron éxito. Al cabo de unos años, el slotting había desaparecido de los torneos, aunque en 2006 reapareció para el 2-1.
El experto en backgammon Kit Woolsey descubrió que el juicio posicional de TD-Gammon, especialmente su ponderación del riesgo frente a la seguridad, era superior al suyo o al de cualquier humano.
El excelente juego posicional de TD-Gammon se vio socavado por un mal juego ocasional en los finales. El final de la partida requiere un enfoque más analítico, a veces con amplias previsiones. La limitación de TD-Gammon a dos jugadas de anticipación puso un límite a lo que podía conseguir en esta parte del juego. Los puntos fuertes y débiles de TD-Gammon eran los opuestos a los programas de inteligencia artificial simbólica y a la mayoría del software informático en general: era bueno en cuestiones que requieren un "tacto" intuitivo, pero malo en el análisis sistemático.