🧮 Computational Mathematics

Inicio · Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL

338 — Bellman equations

experto clase 18 de 20 4 horas demostración bellman_equations

El valor de un estado es la recompensa inmediata más el valor futuro descontado.

Fórmulas

V(s) = max_a [R(s,a) + γ·V(s')]
γ ∈ [0,1): factor de descuento
iteración de valor: aplicar la ecuación hasta converger

Desarrollo

La ecuación de Bellman descompone el valor de un estado en dos partes: lo que se obtiene ahora y lo que se puede obtener después. Esa recursión es la base de todo el aprendizaje por refuerzo y de buena parte de la programación dinámica.

El factor de descuento γ pondera el futuro. Con γ cercano a 0 el agente es miope y solo persigue recompensa inmediata; con γ cercano a 1 planifica a largo plazo. Además de reflejar una preferencia, tiene una función matemática: garantiza que la suma de recompensas de un horizonte infinito converja.

La iteración de valor aplica la ecuación repetidamente hasta que los valores dejan de cambiar. Converge siempre porque el operador de Bellman es una contracción con constante γ: cada aplicación acerca la estimación al punto fijo en un factor γ. Es una aplicación directa del teorema del punto fijo de Banach.

El límite es que exige conocer el modelo: las transiciones y las recompensas. Cuando no se conocen —que es el caso interesante— aparecen los métodos libres de modelo como Q-learning, que estiman lo mismo a partir de la experiencia. Y con espacios de estados enormes, la tabla de valores se sustituye por una red neuronal, que es lo que hace DQN.

Ejemplo trabajado

Iteración de valor sobre un MDP de cuatro estados.

estados: [0, 1, 2, 3]      terminal: 3      γ = 0,9

ecuación: V(s) = max_a [R(s,a) + γ·V(s')]

iter   V
  1    {0: 0,000, 1: 0,000, 2: 1,000, 3: 1,000}
  2    {0: 0,000, 1: 0,900, 2: 1,900, 3: 1,000}
  3    {0: 0,810, 1: 1,710, 2: 1,900, 3: 1,000}
final  {0: 1,539, 1: 1,710, 2: 1,900, 3: 1,000}

El valor se propaga hacia atrás desde el terminal,
un estado por iteración.

V(0) = 0,9 · V(1) = 0,9 · 1,71 = 1,539              ✓

Qué calcula el laboratorio

Iteración de valor sobre un MDP pequeño.

python classes/part-16-matematica-de-transformers-modelos-generativos-grafos-y-rl/338-bellman-equations/lab.py
compmath run 338

Salidas del laboratorio (11)

Muestra de la ejecución real

{
  "estados": [
    0,
    1,
    2,
    3
  ],
  "estado_terminal": 3,
  "gamma": 0.9,
  "ecuacion": "V(s) = max_a [R(s,a) + γ·V(s')]",
  "historial": [
    {
      "iter": 1,
      "V": {
        "0": 0.0,
        "1": 0.0,
        "2": 1.0,
        "3": 1.0
      },
      "delta": 1.0
    },
    {
      "iter": 5,
      "V": {
        "0": 1.539,
        "1": 1.71,
        "2": 1.9,
        "3": 1.0
      },
      "delta": 0.0
    }
  ],
  "V_final": {
    "0": 1.539,
    "1": 1.71,
    "2": 1.9,
    "3": 1.0
  }
}

Errores comunes

Dónde se usa

Aprendizaje por refuerzo, planificación en robótica, control óptimo, juegos y toma de decisiones secuenciales.

Idea rectora de la parte

Temperatura, top-k y top-p reescriben la distribución antes de muestrear.

Error a evitar

Normalizar el Laplaciano de un grafo con nodos aislados sin tratar la división por cero.

Conexión con IA

Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.

Bibliografía de la clase

Archivos de la clase