Algoritmus Metropolis – Hastings - Metropolis–Hastings algorithm

Tento návrh rozdělení Q navrhuje další bod ke kterému náhodná procházka mohla pohybovat.

V statistik a statistické fyziky je metropole-Hastings algoritmus je Monte Carlo Markov řetězec metoda (MCMC) pro získání sekvence náhodných vzorků z rozdělení pravděpodobnosti , z níž přímý odběr vzorků je obtížné. Tuto sekvenci lze použít k aproximaci distribuce (např. Ke generování histogramu ) nebo k výpočtu integrálu (např. Očekávané hodnoty). Metropolis – Hastings a další algoritmy MCMC se obecně používají pro vzorkování z vícerozměrných distribucí, zvláště když je počet dimenzí vysoký. Pro jednorozměrné distribuce obvykle existují jiné metody (např. Vzorkování s adaptivním odmítnutím ), které mohou přímo vracet nezávislé vzorky z distribuce, a ty neobsahují problém autokorelovaných vzorků, který je vlastní metodám MCMC.

Dějiny

Algoritmus byl pojmenován po Nicholasovi Metropolisovi , který je autorem článku z roku 1953 Rovnice stavových výpočtů rychlými výpočetními stroji společně s Ariannou W. Rosenbluth , Marshall Rosenbluth , Augusta H. Teller a Edward Teller . Tento článek navrhl algoritmus pro případ symetrických distribucí návrhů a WK Hastings jej v roce 1970 rozšířil na obecnější případ.

Existuje určitá kontroverze, pokud jde o kredit za vývoj algoritmu. Metropolis, který byl obeznámen s výpočetními aspekty této metody, vytvořil termín „Monte Carlo“ v dřívějším článku se Stanisławem Ulamem a vedl skupinu v teoretické divizi, která navrhla a vyrobila počítač MANIAC I používaný při experimentech v 1952. Před rokem 2003 však neexistoval podrobný popis vývoje algoritmu. Poté, krátce před svou smrtí, se Marshall Rosenbluth zúčastnil konference v LANL v roce 2003 u příležitosti 50. výročí publikace z roku 1953. Na této konferenci Rosenbluth popsal algoritmus a jeho vývoj v prezentaci s názvem „Genesis algoritmu Monte Carlo pro statistickou mechaniku“. Další historické objasnění uvádí Gubernatis v článku z deníku z roku 2005, který popisuje konferenci k 50. výročí. Rosenbluth dává jasně najevo, že on a jeho manželka Arianna odvedli práci a že Metropolis nehrála ve vývoji jinou roli než poskytování počítačového času.

To je v rozporu s účtem Edwarda Tellera, který ve svých pamětech uvádí, že pět autorů článku z roku 1953 spolupracovalo „dny (a noci)“. Naproti tomu podrobný popis Rosenblutha připisuje Tellerovi zásadní, ale raný návrh „využít statistickou mechaniku a vzít v úvahu souborné průměry namísto sledování podrobné kinematiky“. To, říká Rosenbluth, ho přimělo přemýšlet o zobecněném přístupu Monte Carlo - o tématu, které, jak říká, často diskutoval s Johnem Von Neumannem . Arianna Rosenbluth vyprávěla (Gubernatis v roce 2003), že Augusta Teller zahájila práci s počítačem, ale že to převzala sama Arianna a napsala kód od nuly. V ústní historii zaznamenané krátce před jeho smrtí Rosenbluth opět připisuje Tellerovi, že položil původní problém, sám jeho vyřešení a Arianna programování počítače. Pokud jde o pověst, není důvod zpochybňovat Rosenbluthův účet. V biografické monografii Rosenbluth Freeman Dyson píše:

Mnohokrát jsem přišel do Rosenbluthu, položil jsem mu otázku [...] a odpověď jsem dostal do dvou minut. Pak by mi obvykle trvalo týden tvrdé práce, abych detailně pochopil, proč byla Rosenbluthova odpověď správná. Měl úžasnou schopnost prohlédnout si komplikovanou fyzickou situaci a dosáhnout správné odpovědi fyzickými argumenty. Enrico Fermi byl jediný další fyzik, kterého jsem znal a který se svým intuitivním uchopením fyziky vyrovnal Rosenbluthovi.

Intuice

Algoritmus Metropolis – Hastings může čerpat vzorky z jakéhokoli rozdělení pravděpodobnosti s hustotou pravděpodobnosti za předpokladu, že známe funkci úměrnou hustotě a hodnoty z ní lze vypočítat. Díky požadavku, který musí být spíše úměrný hustotě, než aby se jí přesně rovnal, je algoritmus Metropolis – Hastings obzvláště užitečný, protože výpočet nezbytného normalizačního faktoru je v praxi často extrémně obtížný.

Algoritmus Metropolis – Hastings funguje tak, že generuje posloupnost hodnot vzorků takovým způsobem, že jak se vytváří stále více hodnot vzorků, distribuce hodnot se blíže blíží požadovanému rozdělení. Tyto hodnoty vzorků jsou vytvářeny iterativně, přičemž distribuce dalšího vzorku je závislá pouze na aktuální hodnotě vzorku (čímž sekvence vzorků vytvoří řetězec Markov ). Konkrétně při každé iteraci algoritmus vybere kandidáta na další hodnotu vzorku na základě aktuální hodnoty vzorku. Potom je s určitou pravděpodobností kandidát buď přijat (v takovém případě je kandidátská hodnota použita v další iteraci), nebo odmítnut (v takovém případě je kandidátská hodnota zahozena a aktuální hodnota je znovu použita v další iteraci) - pravděpodobnost přijetí je určeno porovnáním hodnot funkcí aktuálních a kandidátních hodnot vzorku s ohledem na požadované rozdělení.

Pro ilustraci je níže popsán algoritmus Metropolis, speciální případ algoritmu Metropolis – Hastings, kde je funkce návrhu symetrická.

Algoritmus metropole (symetrická distribuce návrhu)

Nechť je funkce, která je úměrná požadované funkci hustoty pravděpodobnosti (aka rozdělení cíle).

  1. Inicializace: Vyberte libovolný bod, který má být prvním pozorováním ve vzorku, a zvolte libovolnou hustotu pravděpodobnosti (někdy psanou ), která navrhne kandidáta na další hodnotu vzorku vzhledem k hodnotě předchozího vzorku . V této části se předpokládá, že je symetrický; jinými slovy, musí uspokojit . Obvyklý výběr je nechat být Gaussian distribuce centrovaný při , takže body blíže k větší pravděpodobností navštíví příští, takže posloupnost vzorků do náhodné procházky . Funkce je označována jako hustota návrhu nebo distribuce skoků .
  2. Pro každou iteraci t :
    • Vygenerováním kandidáta pro další vzorek výběrem z distribuce .
    • Vypočítat na poměr přijetí , který bude použit pro rozhodnutí, zda přijmout nebo odmítnout kandidáta. Protože f je úměrné hustotě P , máme to .
    • Přijmout nebo odmítnout :
      • Vygenerujte jednotné náhodné číslo .
      • Pokud pak přijměte kandidáta nastavením ,
      • Pokud , pak kandidáta odmítněte a místo toho nastavte .

Tento algoritmus pokračuje náhodným pokusem pohybovat se po ukázkovém prostoru, někdy tahy přijímá a někdy zůstává na místě. Poměr přijatelnosti udává, jak pravděpodobný je nový navrhovaný vzorek vzhledem k aktuálnímu vzorku podle rozdělení, jehož hustota je . Pokud se pokusíme přesunout do bodu, který je pravděpodobnější než stávající bod (tj. Bod v oblasti s vyšší hustotou odpovídající an ), vždy tento pohyb přijmeme. Pokud se však pokusíme přejít na méně pravděpodobný bod, někdy tento krok odmítneme a čím větší je relativní pokles pravděpodobnosti, tím je pravděpodobnější, že nový bod odmítneme. Budeme tedy mít tendenci zůstat v oblastech s vysokou hustotou (a vracet z nich velké množství vzorků) , zatímco jen příležitostně navštívíme oblasti s nízkou hustotou. Intuitivně to je důvod, proč tento algoritmus funguje a vrací vzorky, které hustotou sledují požadované rozdělení .

Ve srovnání s algoritmem, jako je adaptivní odmítnutí vzorkování, který přímo generuje nezávislé vzorky z distribuce, mají Metropolis – Hastings a další algoritmy MCMC řadu nevýhod:

  • Vzorky jsou ve vzájemném vztahu. Přestože dlouhodobě sledují správně , sada blízkých vzorků bude navzájem korelovat a nebude správně odrážet distribuci. To znamená, že pokud chceme sadu nezávislých vzorků, musíme většinu vzorků vyhodit a odebrat pouze každý n -tý vzorek, pro nějakou hodnotu n (typicky určeno zkoumáním autokorelace mezi sousedními vzorky). Autokorelaci lze snížit zvýšením šířky skoku (průměrná velikost skoku, která souvisí s rozptylem rozdělení skoku), ale také se tím zvýší pravděpodobnost odmítnutí navrhovaného skoku. Příliš velká nebo příliš malá skoková velikost povede k pomalému míchání Markovova řetězce, tj. Vysoce korelované sady vzorků, takže k získání rozumného odhadu jakékoli požadované vlastnosti distribuce bude zapotřebí velmi velkého počtu vzorků.
  • Ačkoli Markovův řetězec nakonec konverguje k požadované distribuci, počáteční vzorky mohou sledovat velmi odlišné rozdělení, zvláště pokud je počáteční bod v oblasti s nízkou hustotou. Jako výsledek, burn-in je obvykle nutné období, ve kterém počáteční počet vzorků (např první 1000 nebo tak nějak) jsou vyhozeny.

Na druhou stranu většina jednoduchých metod odběru vzorků odmítnutí trpí „ kletbou dimenzionality “, kde se pravděpodobnost odmítnutí exponenciálně zvyšuje v závislosti na počtu dimenzí. Metropolis – Hastings, spolu s dalšími metodami MCMC, nemají tento problém do takové míry, a proto jsou často jediným dostupným řešením, když je počet rozměrů distribuce, která má být odebrána, vysoký. V důsledku toho jsou metody MCMC často metodami volby pro produkci vzorků z hierarchických bayesovských modelů a dalších vysoce dimenzionálních statistických modelů používaných v dnešní době v mnoha oborech.

U vícerozměrných distribucí zahrnuje klasický algoritmus Metropolis – Hastings, jak je popsán výše, výběr nového vícerozměrného vzorkovacího bodu. Když je počet dimenzí vysoký, nalezení vhodné distribuce skákání k použití může být obtížné, protože různé jednotlivé dimenze se chovají velmi odlišnými způsoby a šířka skoku (viz výše) musí být „správná“ pro všechny dimenze najednou, aby vyhněte se příliš pomalému míchání. Alternativní přístup, který v takových situacích často funguje lépe, známý jako Gibbsovo vzorkování , zahrnuje výběr nového vzorku pro každou dimenzi odděleně od ostatních, nikoli výběr vzorku pro všechny dimenze najednou. Tímto způsobem se problém vzorkování z potenciálně vysoce dimenzionálního prostoru zredukuje na soubor problémů ke vzorkování z malé dimenzionality. To je zvláště použitelné, když je vícerozměrná distribuce složena ze sady jednotlivých náhodných proměnných, ve kterých je každá proměnná podmíněna pouze malým počtem dalších proměnných, jak je tomu ve většině typických hierarchických modelů . Jednotlivé proměnné jsou poté vzorkovány po jedné, přičemž každá proměnná je podmíněna nejnovějšími hodnotami všech ostatních. K výběru těchto jednotlivých vzorků lze použít různé algoritmy v závislosti na přesné formě vícerozměrné distribuce: některými možnostmi jsou metody vzorkování s adaptivním odmítnutím, algoritmus vzorkování s adaptivním odmítnutím, jednoduchý jednorozměrný krok Metropolis – Hastings nebo vzorkování řezů .

Formální odvození

Účelem algoritmu Metropolis – Hastings je generovat kolekci stavů podle požadovaného rozdělení . K dosažení tohoto cíle, algoritmus používá Markov proces , který dosahuje asymptoticky jedinečná pevná distribuce taková, že .

Markovův proces je jednoznačně definován jeho pravděpodobnostmi přechodu , pravděpodobností přechodu z jakéhokoli daného stavu do jakéhokoli jiného daného stavu . Má jedinečné stacionární rozdělení, pokud jsou splněny následující dvě podmínky:

  1. Existence stacionární distribuce : musí existovat stacionární distribuce . Dostatečný ale není nutnou podmínkou je podrobně rovnováhy , což znamená, že každý přechod je reverzibilní: pro každou dvojici stavů , je pravděpodobnost, že ve stavu, a přechází do stavu se musí rovnat pravděpodobnosti, že ve stavu, a přechází do stavu , .
  2. Jedinečnost stacionární distribuce : Stacionární distribuce musí být jedinečná. To je zaručeno ergodicitou Markovova procesu, který vyžaduje, aby každý stav musel (1) být neperiodický - systém se nevrací do stejného stavu v pevných intervalech; a (2) být kladně se opakující - očekávaný počet kroků pro návrat do stejného stavu je konečný.

Algoritmus Metropolis – Hastings zahrnuje navrhování Markovova procesu (konstruováním pravděpodobností přechodu), který splňuje dvě výše uvedené podmínky, takže je zvoleno jeho stacionární rozdělení . Odvození algoritmu začíná podmínkou podrobného zůstatku :

který je přepsán jako

Přístup je oddělit přechod ve dvou dílčích krocích; návrh a přijetí-zamítnutí. Distribuce návrhu je podmíněná pravděpodobnost navržení daného stavu a distribuce přijetí je pravděpodobnost přijetí navrhovaného stavu . Pravděpodobnost přechodu lze zapsat jako jejich součin:

Vložením tohoto vztahu do předchozí rovnice máme

Dalším krokem při odvozování je zvolit poměr přijetí, který splňuje výše uvedenou podmínku. Jednou z běžných možností je volba Metropolis:

U tohoto poměru přijatelnosti Metropolis je podmínka splněna buď, nebo, a tak.

Algoritmus Metropolis – Hastings tedy sestává z následujícího:

  1. Inicializovat
    1. Vyberte počáteční stav .
    2. Nastavit .
  2. Opakovat
    1. Generujte náhodný kandidátský stav podle .
    2. Vypočítejte pravděpodobnost přijetí .
    3. Přijmout nebo odmítnout :
      1. vygenerovat jednotné náhodné číslo ;
      2. pokud , pak přijměte nový stav a nastavte ;
      3. pokud , pak odmítněte nový stav a zkopírujte starý stav dopředu .
    4. Přírůstek : set .

Za předpokladu splnění stanovených podmínek se přiblíží empirická distribuce uložených stavů . Počet iterací ( ) potřebných k efektivnímu odhadu závisí na počtu faktorů, včetně vztahu mezi a distribucí návrhu a požadované přesnosti odhadu. Pro distribuci na diskrétních stavových prostorech musí být v řádu času autokorelace Markovova procesu.

Je důležité si všimnout, že v obecném problému není jasné, jakou distribuci je třeba použít, ani počet iterací nezbytných pro správný odhad; oba jsou volnými parametry metody, které musí být přizpůsobeny konkrétnímu problému v ruce.

Použití v numerické integraci

Běžným použitím algoritmu Metropolis – Hastings je výpočet integrálu. Konkrétně v úvahu prostor a rozdělení pravděpodobnosti nad , . Metropolis – Hastings dokáže odhadnout integrál formy

kde je (měřitelná) funkce zájmu.

Zvažte například statistiku a její rozdělení pravděpodobnosti , což je okrajové rozdělení . Předpokládejme, že cílem je odhadnout dobu na ocase . Formálně lze zapsat jako

a odhadování lze tedy provést odhadem očekávané hodnoty funkce indikátoru , která je 1 kdy a nula jinak. Protože je na chvostu , je pravděpodobnost vykreslení stavu pomocí na ocasu úměrná , což je podle definice malé. Zde lze použít algoritmus Metropolis – Hastings k vzorkování (vzácnějších) stavů s větší pravděpodobností a tím ke zvýšení počtu vzorků použitých k odhadu na ocasech. To lze provést např. Pomocí distribuce vzorkování, která zvýhodňuje tyto stavy (např. S ).

Pokyny krok za krokem

Předpokládejme, že nejnovější vzorkovaná hodnota je . Abychom se řídili algoritmem Metropolis – Hastings, nakreslíme nový stav návrhu s hustotou pravděpodobnosti a vypočítáme hodnotu

kde

je poměr pravděpodobnosti (např. Bayesovský zadní) mezi navrhovaným vzorkem a předchozím vzorkem a

je poměr hustoty návrhu ve dvou směrech (od do a naopak). Pokud je hustota návrhu symetrická, rovná se 1. Poté se nový stav zvolí podle následujících pravidel.

Li
jiný:

Markovův řetězec je spuštěn z libovolné počáteční hodnoty a algoritmus je spuštěn pro mnoho iterací, dokud není tento počáteční stav „zapomenut“. Tyto vzorky, které jsou vyřazeny, jsou známé jako vypálení . Zbývající sada přijatých hodnot představuje vzorek z distribuce .

Algoritmus funguje nejlépe, pokud se hustota návrhu shoduje s tvarem distribuce cíle , z níž je obtížné přímé vzorkování . Pokud je použita Gaussova hustota návrhu , musí být parametr rozptylu naladěn během doby zážehu. To se obvykle provádí výpočtem míry přijatelnosti , což je zlomek navržených vzorků, který je přijat v okně posledních vzorků. Požadovaná míra přijetí závisí na cílové distribuci, nicméně teoreticky bylo ukázáno, že ideální míra přijetí pro jednorozměrné Gaussovo rozdělení je přibližně 50%, přičemž klesá pro přibližně -23% pro rozměrovou Gaussovu cílovou distribuci.

Pokud je příliš malý, řetěz se bude pomalu míchat (tj. Míra přijetí bude vysoká, ale po sobě jdoucí vzorky se budou pomalu pohybovat po prostoru a řetěz bude konvergovat jen pomalu k ). Na druhou stranu, pokud je příliš velký, míra přijetí bude velmi nízká, protože návrhy pravděpodobně přistanou v oblastech s mnohem nižší hustotou pravděpodobnosti, takže budou velmi malé a řetězec se opět bude sbíhat velmi pomalu. Distribuci návrhu obvykle vyladíte tak, aby algoritmy přijímaly řádově 30% všech vzorků - v souladu s teoretickými odhady uvedenými v předchozím odstavci.

Výsledek tří Markovových řetězců běžících na funkci 3D Rosenbrock pomocí algoritmu Metropolis – Hastings. Algoritmus vzorkuje z oblastí, kde je pozdější pravděpodobnost vysoká, a řetězce se v těchto oblastech začínají míchat. Byla osvětlena přibližná poloha maxima. Červené body zůstávají po procesu vypalování. Ty dřívější byly vyřazeny.

Viz také

Reference

Poznámky

Další čtení