martes, 3 de diciembre de 2019

MTCS Información


El Monte Carlo Tree Search, más conocido como MTCS, es una técnica de inteligencia artificial en la que se mezcla dos técnicas muy populares dentro de este campo:

1º Árboles Clásicos de Decisión.

2º Aprendizaje Por Refuerzo (Q-Learning).

 Este algoritmo tiene dos fases destacadas:
Fase de exploración, en la que el agente prueba diferentes situaciones ante el mismo estado y observa que pasa al tomar esa decisión, es decir, cuanto de buena es esa decisión para nuestro objetivo.

Y una fase de explotación, en la que el agente prueba continuamente las decisiones mejores para ver si realmente sirven para alcanzar nuestro objetivo. Y así cambiar las decisiones por otras que son mejores.

Entonces el agente tiene que:
1º Explorar todas las opciones potenciales en ese tiempo.
2º Identificar rápidamente cual es la mejor.
3º Tener en cuenta las otras opciones buenas para validar como es de buena la mejor.

Utilizando la técnica del Min Max tenemos el problema de que si el árbol es muy grande escala muy mal con respecto al coste computacional.

Para el ajuste de los pesos de los nodos de nuestro MTCS tenemos los procesos de Selección, expansión, simulación y “Backpropagation” (Recalculo de abajo a arriba de los pesos de cada nodo según si la decisión final ha sido buena o mala).

Unos ejemplos visuales de cada una de estas fases serian:





La fórmula matemática que encontramos dentro de este algoritmo seria la UCT (Upper Confidence Bound 1 applied to trees):


En la que el nodo que tenga el valor mayor a la hora de aplicarle esta fórmula será el que el se elegirá como decisión.

La fórmula esta compuesta de:
Wi = número de victorias después de haber cogido este nodo.
ni = número de simulaciones de ese nodo.
Ni = número total de simulaciones de nodos parentales.
c = parámetro de exploración por lo general suele ser √2.

Referencias de:

1 comentario:

  1. Buena cosa, .... pero le falta un ejemplo concreto más descriptivo.

    luego, al aplicarlo a un ejemplo concreto, deberías de hacer una gráfica donde se refleje el aprendizaje (o no) del bot.

    Sigue así...

    ResponderEliminar