← capítulo

Máquinas de Boltzmann de campo medio

Limpia el ruido de una imagen binaria con una sola creencia: un pixel probablemente se parece a sus vecinos.

Escribe eso como una energía, lee la energía como una probabilidad, y resuélvela con la inferencia aproximada más barata que existe — campo medio. Sin conjunto de entrenamiento, sin etiquetas.

El estira y afloja

El modelo

Energía de Ising / Boltzmann, y luego una distribución de Boltzmann sobre las configuraciones:

E(x)=J(i,j)xixj    hixiyiE(x) = -J \sum_{(i,j)} x_i x_j \; - \; h \sum_i x_i y_i p(x)=1Zexp ⁣(E(x))p(x) = \frac{1}{Z} \exp\!\big(-E(x)\big)

ZZ suma sobre 25762^{576} configuraciones de una cuadrícula de 24×24 — intratable. Así que no la calculamos.

Campo medio

Aproxima el posterior con monedas independientes por pixel, una media μi\mu_i para cada una, y actualiza cada una según el campo que la presiona:

μitanh ⁣(JjN(i)μj  +  hyi)\mu_i \leftarrow \tanh\!\Big( J \sum_{j \in \mathcal{N}(i)} \mu_j \; + \; h\, y_i \Big)

Bárrelo un pixel a la vez hasta la convergencia. Eso minimiza la energía libre:

F(μ)=Eq[E(x)]H(q)=logZ+KL(qp)F(\mu) = \mathbb{E}_q[E(x)] - H(q) = -\log Z + \mathrm{KL}(q \,\|\, p)

Empujar FF hacia abajo acerca la aproximación al posterior verdadero.

Míralo quitar el ruido

Arriba: la estimación actual de campo medio μ\mu, barrido por barrido. Abajo: la energía libre, deslizándose cuesta abajo y sin subir nunca.

La garantía

Los barridos secuenciales (Gauss-Seidel) son descenso por coordenadas sobre FF — así que solo puede bajar. Primo de la subida monótona de EM, apuntando al revés.

−1009.6 → −1351.7, convergió en 13 barridos.

Desde cero vs. baseline

18% de ruido de sal y pimienta sobre un "3" de 24×24. No hay gemelo en sklearn — el baseline honesto es un filtro de mediana de 3×3 (voto de mayoría). BernoulliRBM es un primo, no un sustituto (él aprende sus acoplamientos).

Iterar sobre toda la cuadrícula le gana a un voto local de un solo tiro por ~4 dB.

Conclusiones