1. Definicja modelu generatywnego: parametry theta ~ p(theta) prior, symulator produkuje x ~ p(x|theta) gdzie likelihood moze byc nieznane. 2. Sample synthetic training set: N razy losuj theta_i ~ p(theta), symuluj x_i = simulator(theta_i), otrzymujesz dataset {(theta_i, x_i)} rozmiaru N (typowo 10k-1M). 3. Zbuduj neural density estimator q_phi(theta|x): siec conditional (wejscie: x, wyjscie: gestosc nad theta). Standardem sa normalizing flows - MAF, NSF, coupling flows - bo zapewniaja tractable density i sampling. 4. Trening: minimalizuj -E[log q_phi(theta_i|x_i)] po datasecie - to jest cross-entropy do prawdziwego posterior. Optymalizacja SGD/Adam. 5. Inferencja: dla obserwacji real x_obs, oblicz posterior q_phi(theta|x_obs) - jeden forward pass. Mozesz samplowac theta ~ q_phi(theta|x_obs) i wyliczyc marginalne, kwantyle, credible intervals. 6. Sekwencyjne warianty (SNPE-A/B/C): iteracyjnie zawezaj sampling regionu theta blizej x_obs (proposal distribution) i przetrenuj - zwieksza efektywnosc dla trudnych obserwacji. 7. Diagnostyka: SBC (Simulation-Based Calibration) - sprawdza czy posterior jest dobrze skalibrowany na syntetycznych probach.
Klasyczna inferencja bayesowska wymaga policzenia p(x|theta) - likelihood dla obserwacji x pod hipoteza theta. Dla wielu ciekawych modeli likelihood jest intractable: symulatory czastek (Pythia), molekularne (MD), ekologiczne, robotyczne - liczysz tylko forward simulation, nie backward likelihood. NPE eliminuje ten problem: trenujesz siec na parach (theta, x) z symulatora, siec uczy sie p(theta|x). Dodatkowo NPE amortyzuje inferencje - po treningu inferencja dla dowolnego nowego x jest tania (jeden forward pass), podczas gdy ABC/MCMC per zapytanie wymaga tysiecy symulacji.
Forward model produkujacy x = simulator(theta) - moze byc dowolnym black-box (physics engine, ODE solver, agent-based model, robot simulator).
Oficjalna
Rozklad prawdopodobienstwa nad przestrzenia parametrow - definiuje jakie theta sa apriori mozliwe. Typowo uniform lub gaussian nad fizycznie sensownym zakresem.
Oficjalna
Conditional network q_phi(theta|x) - siec neuronowa uczaca sie posterior. Standard: normalizing flows (MAF, NSF, coupling flows) bo daja tractable log-density i szybki sampling.
Oficjalna
Opcjonalna siec f(x) redukujaca wysokowymiarowe obserwacje (obrazy, time-series) do niskowymiarowego embeddingu przed q_phi(theta|f(x)). Trenowana wspolnie.
Oficjalna
W wariantach SNPE-A/B/C: iteracyjnie zawezany proposal q~(theta) dla nastepnej rundy symulacji, dzieki czemu wiecej danych treningowych znajduje sie blisko istotnego x_obs.
Oficjalna
Jesli symulator nie generuje wiarygodnie realnych x_obs, NPE zwroci pewny, ale zly posterior. Podobne do ryzyka w klasycznym Bayes.
Curse of dimensionality: dla theta wymiaru >10-20 potrzeba wykladniczo wiecej symulacji, N=10k moze byc nieadekwatne.
Publikowanie wynikow NPE bez sprawdzenia Simulation-Based Calibration - posterior moze byc systematycznie zbyt szeroki/waski.
Za waski prior wyklucza prawidlowe theta; za szeroki marnuje symulacje w bezuzytecznych regionach.
Dla wysokowymiarowego x (obrazy) embedding network moze sie overfitowac do symulowanych x_i, zaburzajac posterior dla realnych obserwacji.
Rubin, Tavare, Beaumont - rozwoj klasycznego likelihood-free inference przez rejection sampling z summary statistics. Fundament ktory NPE zastapi 32 lata pozniej.
Rezende i Mohamed formalizuja normalizing flows jako narzedzie do trenowania expressive density models - bezposredni prekursor architektury NPE.
Pierwsza formalna praca NPE - trening MDN (Mixture Density Network) jako conditional posterior. Wariant sekwencyjny (SNPE-A) proponuje adaptive proposal.
Papamakarios et al. wprowadzaja MAF - normalizing flow ktore staje sie de facto standardem dla NPE. Rozwiazuje ograniczenia MDN.
Rozszerzenia sekwencyjne SNPE-B (Lueckmann et al.) i SNPE-C / APT (Automatic Posterior Transformation, Greenberg et al.) - kluczowe usprawnienia efektywnosci dla trudnych obserwacji.
Tejero-Cantero et al. publikuja biblioteke sbi (Python, sbi-dev.github.io/sbi) - referencyjna open-source implementacja NPE + NLE + NRE. Rownolegle Neural Spline Flows Durkan et al. zwiekszaja ekspresywnosc estymatorow.
Community rozwija narzedzia diagnostyczne - SBC (Talts et al.) i systematyczne benchmarki (sbibm - Lueckmann et al.) pokazuja gdzie NPE dziala, a gdzie zawodzi.
NVIDIA RoboLab (RSS 2026) stosuje NPE do wyliczenia posterior p(theta_env|task_outcome) - ktore parametry srodowiska (lighting, camera pose) najbardziej wplywaja na sukces polityki. Dowod ze NPE przenosi sie skutecznie do praktycznych zastosowan poza fizyka/biologia.
Złożoność czasowa: O(N_train * T_simulator) trening + O(1) per inferencja. Złożoność przestrzenna: O(|phi|) parametry sieci + O(N_train * (dim_theta + dim_x)) dataset.
N = rozmiar datasetu (theta_i, x_i). Wiecej = lepszy posterior, ale drozszy trening.
Rodzaj normalizing flow. MAF - najprostszy, NSF - wyzsza expresywnosc, coupling flows - szybszy sampling.
Ilosc rund w sequential variants. 1 runda = amortyzowany klasyczny NPE. Wiecej = focused na konkretnym x_obs.
Normalizing flows sa dense - kazdy forward pass wykorzystuje wszystkie parametry. Dla bardzo duzych zadan uzywa sie factored flows.
Symulacje trening sa embarrassingly parallel (kazda theta_i niezalezna). Trening flow'a jest standardowo SGD parallel.
Trening normalizing flow to standardowy trening deep learning - Tensor Cores przyspieszaja matmul. Symulacje czesto niezalezne od GPU.
Symulacje generujace training set czesto uruchamiane na CPU cluster (embarrassingly parallel), trening flow moze byc na CPU dla malych zadan.
NPE jako paradygmat nie ma preferencji hardware, dostosowuje sie do domeny.