Phase 01: Math Foundations

Procesos estocásticos

La matemática detrás de los paseos aleatorios, las cadenas de Markov y los modelos de difusión.

Type: Learn

Language:Python

Prerequisites: Phase 1, Lessons 06-07 (probability, Bayes)

Time: ~75 minutes

Objetivos de aprendizaje

  • Simula las caminatas aleatorias 1D y 2D y verifica las $\sqrt{n}$escala de desplazamiento
  • Construir un simulador de cadena de Markov y calcular su distribución estacionaria a través de la propia composición
  • Implementar la dinámica MCMC y Langevin de Metropolis-Hastings para la toma de muestras de las distribuciones objetivo
  • Conecte el proceso de difusión hacia adelante al movimiento de Brownian y explique cómo el proceso inverso genera datos

El problema

Muchos sistemas de IA implican aleatoriedad que evoluciona con el tiempo, no aleatoriedad estática, aleatoriedad estructurada y secuencial donde cada paso depende de lo que pasó antes.

Los modelos de lenguaje generan tokens uno a la vez. Cada token depende del contexto anterior. El modelo saca una distribución de probabilidad, muestras de ella, y se mueve. Ese es un proceso estocástico.

Los modelos de difusión añaden ruido a una imagen paso a paso hasta que se convierte en pura estática. Luego revertir el proceso, denonizando paso a paso hasta que surja una nueva imagen. El proceso hacia adelante es una cadena de Markov. El proceso inverso es una cadena de Markov aprendida que corre hacia atrás.

Los agentes de aprendizaje de refuerzo toman acciones en un entorno. Cada acción conduce a un nuevo estado con cierta probabilidad. El agente sigue una política aleatoria en un mundo aleatorio. Todo es un proceso de decisión de Markov.

El muestreo MCMC - la columna vertebral de la inferencia bayesiana - construye una cadena de Markov cuya distribución estacionaria es la posterior de la que quieres tomar muestras.

Todo esto se basa en cuatro ideas fundamentales:

  1. Paseos aleatorios - el proceso estocástico más simple
  2. Cadenas de Markov -- aleatoriedad estructurada con una matriz de transición
  3. Dinámica de Langevin - Descenso de gradiente con ruido
  4. Metropolis-Hastings -- muestreo de cualquier distribución

El concepto

Paseos aleatorios

Comience en la posición 0. En cada paso, lanza una moneda justa. cabezas: mueve a la derecha (+1).

Después de$n$pasos, tu posición es la suma de $n$al azar$\pm 1$La posición esperada es de 0 (el paseo es imparcial).\sqrt{n}¿ Qué ?

Esto es contrario a la intuición. La caminata es justa, no se deriva en ninguna dirección. Pero con el tiempo, vaga más y más lejos de donde comenzó. La desviación estándar después de$n$los pasos es \sqrt{n}¿ Qué ?

code
Step 0:  Position = 0
Step 1:  Position = +1 or -1
Step 2:  Position = +2, 0, or -2
...
Step 100: Expected distance from origin ~ 10 (sqrt(100))
Step 10000: Expected distance from origin ~ 100 (sqrt(10000))

In 2D, el paseo se mueve hacia arriba, hacia abajo, a la izquierda o a la derecha con la misma probabilidad.$\sqrt{n}$La escala se aplica a la distancia desde el origen.

Why \sqrt{n}?Cada paso es +1 o -1 con igual probabilidad.$n$los pasos, la posición $S_n = X_1 + X_2 + \cdots + X_n$donde cada uno X_i¿ Es verdad ?\pm 1. La variación de cada paso es de 1, y los pasos son independientes, por lo que \mathop{\mathrm{Var}}(S_n) = n. Desviación estándar = $\sqrt{n}$Por el teorema del límite central,$S_n / \sqrt{n}$converge a una distribución normal estándar.

Esto .$\sqrt{n}La escala de escala se muestra en todas partes en ML. Las escalas de ruido SGD son 1/sqrt(tamaño de lote).\sqrt{d}$La raíz cuadrada es la firma de adiciones aleatorias independientes.

Connection to Brownian motion.Haz un paseo al azar con el tamaño del paso .$1/\sqrt{n}$y $n$pasos por unidad de tiempo.$n$Se va al infinito, el camino converge al movimiento browniano.B(t)-- un proceso continuo en el que $B(t)$se distribuye normalmente con la media 0 y la varianza t¿ Qué ?

El movimiento browniano es la base matemática de la difusión. Modela el sacudimiento aleatorio de partículas en un fluido, las fluctuaciones de los precios de las acciones y, lo que es crucial, el proceso de ruido en los modelos de difusión.

Gambler's ruin.Un caminante aleatorio que comienza en posición .k, con barreras de absorción en 0 y N¿ Cuál es la probabilidad de alcanzar ?N¿Para un paseo justo?$P(\text{reach } N) = k/N$Esto es sorprendentemente simple y elegante. Se conecta con la teoría de los martingales - el paseo aleatorio justo es un martingale (valor futuro esperado = valor actual).

Las cadenas de Markov

Una cadena de Markov es un sistema que transiciona entre estados de acuerdo a probabilidades fijas. La propiedad clave: el siguiente estado depende sólo del estado actual, no de la historia.

P(X_{t+1} = j \mid X_t = i, X_{t-1} = \ldots) = P(X_{t+1} = j \mid X_t = i)

Esto es la propiedad de Markov. Significa que se puede describir toda la dinámica con una matriz de transición$P$¿Qué es esto ?

P[i][j] = \text{probability of going from state } i \text{ to state } j

Cada fila de $P$suma a 1 (debe ir a algún lugar).

Example -- Weather:

code
States: Sunny (0), Rainy (1), Cloudy (2)

P = [[0.7, 0.1, 0.2],    (if sunny: 70% sunny, 10% rainy, 20% cloudy)
     [0.3, 0.4, 0.3],    (if rainy: 30% sunny, 40% rainy, 30% cloudy)
     [0.4, 0.2, 0.4]]    (if cloudy: 40% sunny, 20% rainy, 40% cloudy)

Después de muchas transiciones, la distribución de estados converge a la distribución estacionaria.\pi, donde $\pi P = \pi$Este es el vector propio izquierdo de$P$con valor propio 1.

Para la cadena meteorológica, la distribución estacionaria es [0,55, 0,18, 0,27] -- a largo plazo, es soleado el 55% del tiempo independientemente del estado de inicio.

graph LR
    S["Sunny"] -->|0.7| S
    S -->|0.1| R["Rainy"]
    S -->|0.2| C["Cloudy"]
    R -->|0.3| S
    R -->|0.4| R
    R -->|0.3| C
    C -->|0.4| S
    C -->|0.2| R
    C -->|0.4| C

Computing the stationary distribution.Hay dos enfoques:

  1. Power method: multiplicar cualquier distribución inicial por $P$Después de suficientes iteraciones, converge.
  2. Eigenvalue method: encontrar el vector propio izquierdo de $P$con valor propio 1. Este es el vector propio de $P^T$con valor propio 1.

Ambos enfoques requieren que la cadena cumpla con las condiciones de convergencia.

Convergence conditions.Una cadena de Markov converge a una distribución estacionaria única si es:

  • Irreducible: cada estado es accesible desde cualquier otro estado
  • Aperiodic: la cadena no se ejecuta con un período fijo

La mayoría de las cadenas que encuentras en ML cumplen ambas condiciones.

Absorbing states.Un estado es absorbente si una vez que entras en él, nunca sales ($P[i][i] = 1$Absorber procesos de modelos de cadenas de Markov con estados terminales: un juego que termina, un cliente que se agita, una secuencia de tokens que golpea el token final del texto.

Mixing time.¿Cuántos pasos hasta que la cadena está "cerca" de la distribución estacionaria? formalmente, el número de pasos hasta que la distancia total de variación de estacionariedad cae por debajo de algún umbral. mezcla rápida = pocos pasos necesarios.P(1 menos la magnitud de valor propio más grande que el valor propio 1) controla el tiempo de mezcla.

Conexión con modelos de idiomas

La generación de tokens en un modelo de lenguaje es aproximadamente un proceso de Markov. Dado el contexto actual, el modelo produce una distribución sobre el siguiente token.

P(\text{token}_i) = \frac{\exp(\text{logit}_i / \text{temperature})}{\sum_j \exp(\text{logit}_j / \text{temperature})}
  • Temperatura = 1,0: distribución estándar
  • Temperatura < 1,0: más nítida (más determinista)
  • Temperatura > 1,0: más plana (más aleatoria)
  • Temperatura \to 0: argmax (compulsivo)

Los muestras de muestreo de la parte superior se truncan a la$k$Los puntos de referencia de los puntos de referencia de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra de la muestra$p$Ambos modifican las probabilidades de transición de Markov.

Movimiento browniano

El límite de tiempo continuo del paseo aleatorio.$B(t)$tiene tres propiedades:

  1. B(0) = 0
  2. $B(t) - B(s)$se distribuye normalmente con la media 0 y la varianza t - s(para t > s(en inglés)
  3. Los incrementos en los intervalos no superpuestos son independientes

El movimiento browniano es continuo pero en ninguna parte diferenciable, se tambalea en todas las escalas.

En simulación discreta, se aproxima el movimiento browniano por:

B(t + dt) = B(t) + \sqrt{dt} \, z, \quad \text{where } z \sim \mathcal{N}(0, 1)

El $\sqrt{dt}$Es importante, viene del teorema de límite central aplicado a los paseos aleatorios.

Dinámica de Langevin

La descenso gradiente encuentra el mínimo de una función.\exp(-U(x)/T), donde $U$es una función energética y $T$es la temperatura.

x_{t+1} = x_t - dt \, \nabla U(x_t) + \sqrt{2 T \, dt} \, z_t

Dos fuerzas actúan sobre la partícula:

  1. Gradient force(El artículo$-dt \cdot \nabla U$): empuja hacia la baja energía (como la descenso de gradiente)
  2. Random force(El artículo$\sqrt{2T dt} \cdot z$): empuja en direcciones aleatorias (exploración)

A temperatura baja .$T = 0$En una temperatura alta, es casi un paseo aleatorio. a la temperatura adecuada, la partícula explora el paisaje energético y pasa más tiempo en regiones de baja energía.

Connection to diffusion models.El proceso avanzado de un modelo de difusión es:

x_t = \sqrt{\alpha_t} \, x_{t-1} + \sqrt{1 - \alpha_t} \cdot \text{noise}

Esta es una cadena de Markov que mezcla gradualmente los datos con el ruido.$x_T$Es un ruido gaussiano puro.

El proceso inverso, pasar del ruido de vuelta a los datos, es también una cadena de Markov, pero sus probabilidades de transición son aprendidas por una red neuronal. La red aprende a predecir el ruido que se agregó en cada paso, y luego lo restará.

graph LR
    subgraph "Forward Process (add noise)"
        X0["x_0 (data)"] -->|"+ noise"| X1["x_1"]
        X1 -->|"+ noise"| X2["x_2"]
        X2 -->|"..."| XT["x_T (pure noise)"]
    end
    subgraph "Reverse Process (denoise)"
        XT2["x_T (noise)"] -->|"neural net"| XR2["x_{T-1}"]
        XR2 -->|"neural net"| XR1["x_{T-2}"]
        XR1 -->|"..."| XR0["x_0 (generated data)"]
    end

MCMC: Cadena de Markov Monte Carlo

A veces necesitas muestras de una distribución.$p(x)$Los exteriores bayesianos son el ejemplo clásico, ya sabes la probabilidad por la anterior, pero la constante de normalización es intratable.

Metropolis-Hastingsconstruye una cadena de Markov cuya distribución estacionaria es$p(x)$¿Qué es esto ?

  1. Comience en alguna posición .x
  2. Propón un nuevo puesto .$x'$de una distribución de propuestas Q(x' \mid x)
  3. Ratio de aceptación de cálculo: a = p(x') Q(x \mid x') / (p(x) Q(x' \mid x))
  4. Aceptad$x'$con probabilidad $\min(1, a)$De lo contrario , permanezca en la$x$¿ Qué ?
  5. Repito, ¿qué quieres?

Si ...$Q$es simétrico (por ejemplo, Q(x' \mid x) = Q(x \mid x') = \mathcal{N}(x, \sigma^2){}), la relación se simplifica a $a = p(x') / p(x)$Sólo necesitas la proporción de probabilidades, la constante de normalización cancela.

La cadena está garantizada para converger a $p(x)$En el caso de las empresas que se encuentran en el mercado de la información, el mercado de la información se ha convertido en un mercado de la información y de la información.

Why it works.La tasa de aceptación garantiza un equilibrio detallado: la probabilidad de estar en $x$y se mueve a$x'$es igual a la probabilidad de estar en $x'$y se mueve a$x$. El equilibrio detallado implica que$p(x)$Así que después de suficientes pasos, las muestras vienen de$p(x)$¿ Qué ?

Practical considerations:

  • Burn-in: descartar el primero $N$La cadena necesita tiempo para llegar a la distribución estacionaria desde su punto de partida.
  • Thinning: mantener todos k- la muestra para reducir la autocorrelación.
  • Multiple chainsSi convergen en la misma distribución, se tiene evidencia de convergencia.
  • Acceptance rate: para las propuestas de Gauss en $d$En el caso de las cadenas de distribución, la aceptación óptima es de alrededor del 23% (Roberts & Rosenthal, 2001).

Procesos estocásticos en IA

ProcessAI Application
Random walkExploration in RL, Node2Vec embeddings
Markov chainText generation, MCMC sampling
Brownian motionDiffusion models (forward process)
Langevin dynamicsScore-based generative models, SGLD
Markov decision processReinforcement learning
Metropolis-HastingsBayesian inference, posterior sampling

Construye el mismo

Paso 1: Simulador de caminar aleatorio

python
import numpy as np

def random_walk_1d(n_steps, seed=None):
    rng = np.random.RandomState(seed)
    steps = rng.choice([-1, 1], size=n_steps)
    positions = np.concatenate([[0], np.cumsum(steps)])
    return positions


def random_walk_2d(n_steps, seed=None):
    rng = np.random.RandomState(seed)
    directions = rng.choice(4, size=n_steps)
    dx = np.zeros(n_steps)
    dy = np.zeros(n_steps)
    dx[directions == 0] = 1   # right
    dx[directions == 1] = -1  # left
    dy[directions == 2] = 1   # up
    dy[directions == 3] = -1  # down
    x = np.concatenate([[0], np.cumsum(dx)])
    y = np.concatenate([[0], np.cumsum(dy)])
    return x, y

El paseo 1D almacena sumas acumuladas. Cada paso es +1 o -1. Después $n$La varianza crece linealmente con n, por lo que la desviación estándar crece a medida que$\sqrt{n}$¿ Qué ?

Paso 2: cadena de Markov

python
class MarkovChain:
    def __init__(self, transition_matrix, state_names=None):
        self.P = np.array(transition_matrix, dtype=float)
        self.n_states = len(self.P)
        self.state_names = state_names or [str(i) for i in range(self.n_states)]

    def step(self, current_state, rng=None):
        if rng is None:
            rng = np.random.RandomState()
        probs = self.P[current_state]
        return rng.choice(self.n_states, p=probs)

    def simulate(self, start_state, n_steps, seed=None):
        rng = np.random.RandomState(seed)
        states = [start_state]
        current = start_state
        for _ in range(n_steps):
            current = self.step(current, rng)
            states.append(current)
        return states

    def stationary_distribution(self):
        eigenvalues, eigenvectors = np.linalg.eig(self.P.T)
        idx = np.argmin(np.abs(eigenvalues - 1.0))
        stationary = np.real(eigenvectors[:, idx])
        stationary = stationary / stationary.sum()
        return np.abs(stationary)

La distribución estacionaria es el vector propio izquierdo de $P$Lo encontramos calculando los vectores propios de P^T(transponer convierte los propios vectores izquierdistas en propios vectores derecho).

Paso 3: Dinámica de Langevin

python
def langevin_dynamics(grad_U, x0, dt, temperature, n_steps, seed=None):
    rng = np.random.RandomState(seed)
    x = np.array(x0, dtype=float)
    trajectory = [x.copy()]
    for _ in range(n_steps):
        noise = rng.randn(*x.shape)
        x = x - dt * grad_U(x) + np.sqrt(2 * temperature * dt) * noise
        trajectory.append(x.copy())
    return np.array(trajectory)

El gradiente empuja$x$El ruido evita que se atasque. en equilibrio, la distribución de las muestras es proporcional a la$\exp(-U(x)/\text{temperature})$¿ Qué ?

Paso 4: Metrópolis-Hastings

python
def metropolis_hastings(target_log_prob, proposal_std, x0, n_samples, seed=None):
    rng = np.random.RandomState(seed)
    x = np.array(x0, dtype=float)
    samples = [x.copy()]
    accepted = 0
    for _ in range(n_samples - 1):
        x_proposed = x + rng.randn(*x.shape) * proposal_std
        log_ratio = target_log_prob(x_proposed) - target_log_prob(x)
        if np.log(rng.rand()) < log_ratio:
            x = x_proposed
            accepted += 1
        samples.append(x.copy())
    acceptance_rate = accepted / (n_samples - 1)
    return np.array(samples), acceptance_rate

El algoritmo propone un nuevo punto, verifica si tiene una probabilidad mayor (o acepta con probabilidad proporcional a la proporción) y repite.

Usalo

En la práctica, se utilizan bibliotecas establecidas para estos algoritmos, pero entender la mecánica es importante para el depuración y sintonización.

python
import numpy as np

rng = np.random.RandomState(42)
walk = np.cumsum(rng.choice([-1, 1], size=10000))
print(f"Final position: {walk[-1]}")
print(f"Expected distance: {np.sqrt(10000):.1f}")
print(f"Actual distance: {abs(walk[-1])}")

Numpy para matrices de transición

python
import numpy as np

P = np.array([[0.7, 0.1, 0.2],
              [0.3, 0.4, 0.3],
              [0.4, 0.2, 0.4]])

distribution = np.array([1.0, 0.0, 0.0])
for _ in range(100):
    distribution = distribution @ P

print(f"Stationary distribution: {np.round(distribution, 4)}")

Multiplicar la distribución inicial por $P$Después de suficientes iteraciones, converge a la distribución estacionaria sin importar dónde comenzó. Este es el método de potencia para encontrar el vector propio izquierdo dominante.

Conexiones con marcos reales

  • PyTorch diffusion:El DDPMSchedulerEn el rostro abrazadodiffusersImplementa las cadenas Markov hacia adelante y hacia atrás
  • NumPyro / PyMC:Utilice MCMC (muestreo NUTS, que mejora en Metropolis-Hastings) para la inferencia bayesiana
  • Gymnasium (RL):La función de paso medio ambiente define un proceso de decisión de Markov

Verificación de la convergencia de la cadena de Markov

python
import numpy as np

P = np.array([[0.9, 0.1], [0.3, 0.7]])

eigenvalues = np.linalg.eigvals(P)
spectral_gap = 1 - sorted(np.abs(eigenvalues))[-2]
print(f"Eigenvalues: {eigenvalues}")
print(f"Spectral gap: {spectral_gap:.4f}")
print(f"Approximate mixing time: {1/spectral_gap:.1f} steps")

La brecha espectral le dice a qué tan rápido la cadena olvida su estado inicial. Una brecha de 0.2 significa aproximadamente 5 pasos para mezclar. Una brecha de 0.01 significa aproximadamente 100 pasos. Siempre compruebe esto antes de ejecutar simulaciones largas - un cálculo de residuos de cadena mezclar lentamente.

Envío

Esta lección produce:

  • outputs/prompt-stochastic-process-advisor.md-- un prompt que ayuda a identificar qué marco de proceso estocástico se aplica a un problema dado

Las conexiones

ConceptWhere it shows up
Random walkNode2Vec graph embeddings, exploration in RL
Markov chainToken generation in LLMs, MCMC sampling
Brownian motionForward diffusion process in DDPM, SDE-based models
Langevin dynamicsScore-based generative models, stochastic gradient Langevin dynamics (SGLD)
Stationary distributionMCMC convergence target, PageRank
Metropolis-HastingsBayesian posterior sampling, simulated annealing
TemperatureLLM sampling, Boltzmann exploration in RL, simulated annealing
Mixing timeConvergence speed of MCMC, spectral gap analysis
Absorbing stateEnd-of-sequence token, terminal states in RL
Detailed balanceCorrectness guarantee for MCMC samplers

Los modelos de difusión merecen una atención especial.

q(x_t \mid x_{t-1}) = \mathcal{N}\left(x_t; \sqrt{1-\beta_t} \, x_{t-1}, \beta_t I\right)

donde$\beta_t$Es un horario de ruido.$T$pasos,$x_T$es aproximadamente $\mathcal{N}(0, I)$El proceso inverso es parametrizado por una red neuronal que predice el ruido:

p_\theta(x_{t-1} \mid x_t) = \mathcal{N}\left(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2 I\right)

Cada paso de generación es un paso en una cadena de Markov aprendida.

SGLD (Dynamics de Langevin de Gradiente Stocástico) combina la baja de gradiente de mini lote con el ruido de Langevin. En lugar de calcular el gradiente completo, se usa una estimación estocástica y se añade ruido calibrado. A medida que la tasa de aprendizaje disminuye, SGLD pasa de la optimización a la muestreo -- obtienes muestras posteriores bayesianas aproximadas de forma gratuita. Esta es una de las formas más simples de obtener estimaciones de incertidumbre de una red neuronal.

La clave de todas estas conexiones: los procesos estocásticos no son solo herramientas teóricas. Son los mecanismos computacionales dentro de los sistemas modernos de IA. Cuando ajustes la temperatura de un LLM, estás ajustando una cadena de Markov. Cuando entrenas un modelo de difusión, estás aprendiendo a revertir un proceso similar al movimiento browniano. Cuando ejecutas la inferencia bayesiana, estás construyendo una cadena que converge a la posterior.

Los ejercicios

  1. Simulate 1000 random walks of 10000 steps.Traza la distribución de las posiciones finales. Verifique que es aproximadamente Gaussian con la media 0 y la desviación estándar \sqrt{10000} = 100¿ Qué ?
  1. Build a text generator using a Markov chain.Entrenamiento en un corpus pequeño: para cada palabra, contar las transiciones a la siguiente palabra. Construir la matriz de transición. Generar nuevas frases mediante muestreo de la cadena.
  1. Implement simulated annealingEl método de cálculo de la función de un mínimo de función con muchos mínimos locales es el método de cálculo de la función de una función de un mínimo de función con una función de una función de mayor temperatura.
  1. Compare Langevin dynamics at different temperatures.Muestra de un potencial de pozo doble $U(x) = (x^2 - 1)^2$A baja temperatura, las muestras se agrupan en un pozo. a alta temperatura, se extienden a ambos.
  1. Implement the forward diffusion process.Comience con una señal 1D (por ejemplo, una onda seno). Agregue el ruido progresivamente más de 100 pasos con un cronograma de ruido lineal. Muestre cómo la señal se degrada a ruido puro. Luego implemente un simple denoizador que invierte el proceso (incluso uno ingenuo que solo restará el ruido estimado).

Indicios

Exercise 1.Llamérandom_walk_1d(10000, seed=i)Para 1000 semillas y mantener cada posición final. compruebe que la media está cerca de 0, la desviación estándar está cerca de 100, y aproximadamente el 68% de las posiciones finales están entre -100 y 100.

Exercise 2.Cuenta cada par de palabras, luego divide cada fila por su total para que cada fila se suma a 1. Pasar la matriz a MarkovChain(transition_matrix, state_names)y llamarsimulateCompruebe que cada par de palabras en su salida también se encuentre en el corpus.

Exercise 3.Acepta un punto peor con probabilidad .$\exp(-\Delta / T)$y multiplicarse.$T$Prueba en una función cuyo mínimo sabes, y compruebe tu respuesta con una búsqueda fina en la cuadrícula.

Exercise 4.El gradiente es 4x(x^2 - 1), así que pasa eso a langevin_dynamics(grad_U, x0, dt, temperature, n_steps)La barrera en la$x = 0$tiene altura 1, así que cuenta con qué frecuencia el signo de$x$en el caso de los cambios de temperatura de 0,05 a 1, y buscar la temperatura en la que el recuento comience a aumentar rápidamente.

Exercise 5.Llamédiffusion_forward(signal, 100)y la computación .$\bar{\alpha}$en el último paso como producto de $(1 - \beta_t)Si ...\bar{\alpha}está lejos de 0, la señal aún no es ruido puro, así que eleva 1Prueba tu desinfectador primero con el ruido verdadero .(x_t - \sqrt{1 - \bar{\alpha}_t} \epsilon)/\sqrt{\bar{\alpha}_t}$debe devolver la señal original exactamente.

Términos clave

TermWhat people sayWhat it actually means
Random walk"Coin-flip movement"A process where position changes by random increments at each step
Markov property"Memoryless"The future depends only on the present state, not on the history
Transition matrix"The probability table"P[i][j] = probability of moving from state i to state j
Stationary distribution"The long-run average"The distribution \pi where \pi P = \pi -- the chain's equilibrium
Brownian motion"Random jiggling"The continuous-time limit of a random walk, B(t) \sim \mathcal{N}(0, t)
Langevin dynamics"Gradient descent with noise"Update rule that combines deterministic gradient and random perturbation
MCMC"Walking toward the target"Constructing a Markov chain whose stationary distribution is the one you want
Metropolis-Hastings"Propose and accept/reject"MCMC algorithm that uses acceptance ratios to ensure convergence
Temperature"The randomness knob"Parameter controlling the tradeoff between exploration and exploitation
Diffusion process"Noise in, noise out"Forward: gradually add noise. Reverse: gradually remove it. Generates data.

Leer más

  • Ho, Jain, Abbeel (2020)-- "Deniendo los modelos probabilísticos de difusión". El documento del DDPM que lanzó la revolución del modelo de difusión.
  • Song & Ermon (2019)-- "Modelado generacional mediante la estimación de gradientes de la distribución de datos". Un enfoque basado en puntajes utilizando dinámica Langevin para muestreo.
  • Roberts & Rosenthal (2004)"Cadenas generales de estado espacial Markov y algoritmos MCMC". La teoría detrás de cuándo y por qué funciona MCMC.
  • Norris (1997)- "Cadenas de Markov". El libro de texto estándar.
  • Welling & Teh (2011)-- "Aprendizaje bayesiano a través de la Dinámica de Langevin Gradiente Estocástico". Combina SGD con la Dinámica de Langevin para la inferencia bayesiana escalable.

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.