Contrastive Divergence

Wprowadzenie

<strong>Contrastive Divergence (CD)</strong> to algorytm przybliżonego uczenia stosowany przede wszystkim do trenowania <strong>Restricted Boltzmann Machines (RBM)</strong>. Został wprowadzony przez Geoffreya Hintona w 2002 roku i przez prawie dekadę był jedną z najważniejszych technik w deep learning.

Motywacja

Dokładne trenowanie RBM poprzez maksymalizację log-likelihood wymagałoby bardzo długiego łańcucha Monte Carlo, co jest obliczeniowo nieefektywne. Contrastive Divergence jest szybką i praktyczną aproksymacją gradientu.

Jak działa Contrastive Divergence (k-step CD)?

  1. <strong>Faza pozytywna (Positive Phase)</strong>: Wprowadź dane treningowe do widocznej warstwy i oblicz statystyki.
  2. <strong>Faza negatywna (Negative Phase)</strong>: Uruchom k kroków Gibbs Sampling, zaczynając od danych treningowych.
  3. Oblicz różnicę między statystykami z obu faz.
  4. Zaktualizuj wagi sieci zgodnie z tą różnicą.

Najczęściej używane jest CD-1 (jeden krok Gibbsa) – pomimo dużej aproksymacji działa zaskakująco dobrze.

Zalety

  • Bardzo szybki w porównaniu do pełnego MCMC
  • Łatwy w implementacji
  • Umożliwia efektywne uczenie warstwa po warstwie (layer-wise pretraining)
  • Był podstawą sukcesu Deep Belief Networks (DBN)

Wady

  • Wprowadza bias w estymacji gradientu
  • Słabo skaluje się na bardzo głębokie modele
  • Z czasem został zastąpiony przez nowocześniejsze metody

Aktualny stan (2026)

Contrastive Divergence ma dziś głównie znaczenie historyczne i edukacyjne. Jest klasycznym przykładem w nauczaniu energy-based models. W praktyce dominują obecnie architektury oparte na transformerach, Variational Autoencoders i Diffusion Models.

Powiązane pojęcia

Dodano: 17 maja 2026