Contrastive Divergence

Wprowadzenie

Contrastive Divergence (CD) to algorytm przybliżonego uczenia stosowany przede wszystkim do trenowaniaRestricted Boltzmann Machines (RBM). 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. Faza pozytywna (Positive Phase): Wprowadź dane treningowe do widocznej warstwy i oblicz statystyki.
  2. Faza negatywna (Negative Phase): 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

Restricted Boltzmann Machine (RBM) • Deep Belief Network (DBN) • Gibbs Sampling • Markov Chain Monte Carlo (MCMC) • Geoffrey Hinton • Energy-Based Models • Variational Inference • Diffusion Models

Dodano: 17 maja 2026