En el artículo sobre redes neuronales vimos la pieza por dentro: unidades simples que multiplican, suman y se encienden. Aquí vamos a verla haciendo algo.
La red no sabe jugar al dilema del prisionero. Empieza con números al azar: mira las últimas jugadas del rival, las pasa por sus neuronas y decide una acción, cooperar o traicionar.
No le damos ninguna etiqueta que diga "esta era la jugada correcta". Le dejamos jugar muchas partidas contra estrategias conocidas y miramos su puntuación: las versiones que puntúan mejor se conservan, se mezclan o se modifican un poco; las que puntúan peor desaparecen. Generación tras generación, la red encuentra una forma de jugar mejor. No porque entienda la confianza, sino porque algunas combinaciones de pesos funcionan mejor que otras en el entorno donde la hemos entrenado.
La red juega contra estos rivales y su puntuación es la media de los puntos por ronda que obtiene. La columna de la derecha es la importancia de cada rival: 0 lo ignora, 10 lo prioriza al máximo. Si pones más importancia a un rival, la red se especializa en ganarle a ese.
Aquí defines un rival escribiendo qué jugada hace en cada ronda: una
cadena de 10 letras donde cada letra indica una estrategia clásica. Por ejemplo
ABABABABAB alterna entre las dos primeras. Si la partida dura más de 10
rondas la secuencia se repite.
Eje Y: puntos por ronda (0 a 5). Cuanto más sube la línea verde, mejor está jugando la mejor red de cada generación.
Los círculos son las neuronas (5 entradas que miran las últimas jugadas del rival, 3 internas, 1 salida). Las líneas son los pesos: azul empuja la decisión hacia "traicionar" si el dato es 1, roja la empuja hacia "cooperar". Cuanto más gruesa, más influye ese peso.
Estas líneas son la red entrenada. Pégalas como estrategia en el dilema y juega contra ellas, o guárdalas con el botón de abajo.