Hierarchická časová paměť

Hierarchická časová paměť (HTM) je model strojového učení vyvinutý Jeffem Hawkinsem a Dileepem Georgem ze společnosti Numenta, Inc., který modeluje některé strukturální a algoritmické vlastnosti neokortexu. HTM je biomimetický model založený na paměťově-předpovědní teorii fungování mozku, kterou Jeff Hawkins popsal ve své knize On Intelligence. HTM je metoda pro objevování a odvozování vysokoúrovňových příčin pozorovaných vstupních vzorců a sekvencí, čímž se vytváří stále komplexnější model světa.

Jeff Hawkins uvádí, že HTM nepředstavuje žádnou novou myšlenku nebo teorii, ale kombinuje stávající myšlenky, aby napodobil neokortex s jednoduchým designem, který poskytuje širokou škálu schopností. HTM kombinuje a rozšiřuje přístupy používané v bayesovských sítích, algoritmech prostorového a časového shlukování a zároveň využívá hierarchii uzlů ve tvaru stromu, která je běžná v neuronových sítích.

Struktura a algoritmy HTM

Příklad hierarchie HTM pro rozpoznávání obrazu

Typická síť HTM je hierarchie úrovní ve tvaru stromu, která se skládá z menších prvků nazývaných uzly nebo sloupce. Jednotlivá úroveň v hierarchii se také nazývá region. Vyšší úrovně hierarchie mají často méně uzlů, a tudíž menší prostorovou rozlišitelnost. Vyšší úrovně hierarchie mohou opakovaně používat vzory naučené na nižších úrovních tím, že je kombinují, aby si zapamatovaly složitější vzory.

Každý uzel HTM má stejné základní funkce. V režimech učení a odvozování přicházejí smyslová data do uzlů nejnižší úrovně. V režimu generování vycházejí uzly spodní úrovně z vygenerovaného vzoru dané kategorie. Horní úroveň má obvykle jeden uzel, který uchovává nejobecnější kategorie (pojmy), které určují nebo jsou určovány menšími pojmy v nižších úrovních, které jsou časově a prostorově omezenější. V režimu odvozování interpretuje uzel v každé úrovni informace přicházející z jeho podřízených uzlů v nižší úrovni jako pravděpodobnosti kategorií, které má v paměti.

Každá oblast HTM se učí identifikací a zapamatováním prostorových vzorů – kombinací vstupních bitů, které se často vyskytují ve stejnou dobu. Poté identifikuje časové posloupnosti prostorových vzorů, které se pravděpodobně vyskytují jeden po druhém.

Zeta 1: první generace uzlových algoritmů

Při odvozování (rozpoznávání) uzel vypočítá množinu pravděpodobností, že vzor patří ke každé známé koincidenci. Poté vypočítá pravděpodobnosti, že vstup představuje každou časovou skupinu. Soubor pravděpodobností přiřazených skupinám se nazývá „přesvědčení“ uzlu o vstupním vzoru. (Ve zjednodušené implementaci se přesvědčení uzlu skládá pouze z jedné vítězné skupiny). Toto přesvědčení je výsledkem inference, která je předána jednomu nebo více „nadřazeným“ uzlům na další vyšší úrovni hierarchie.

„Neočekávané“ vzory k uzlu nemají dominantní pravděpodobnost příslušnosti k jedné časové skupině, ale mají téměř stejnou pravděpodobnost příslušnosti k několika skupinám. Pokud jsou posloupnosti vzorů podobné tréninkovým posloupnostem, pak se přiřazené pravděpodobnosti ke skupinám nebudou měnit tak často, jak budou vzory přijímány. Výstup uzlu se nebude tolik měnit a ztrácí se časové rozlišení.

Doporučujeme:  Stahování rozhodnutí

V obecnějším schématu může být přesvědčení uzlu posláno na vstup libovolného uzlu (uzlů) v libovolné úrovni (úrovních), ale spojení mezi uzly jsou stále pevně daná. Uzel vyšší úrovně kombinuje tento výstup s výstupem z ostatních podřízených uzlů, čímž vytváří svůj vlastní vstupní vzor.

Vzhledem k tomu, že se v každém uzlu ztrácí prostorové a časové rozlišení, jak je popsáno výše, představují přesvědčení tvořená uzly vyšší úrovně ještě větší rozsah prostoru a času. To má odrážet uspořádání fyzického světa, jak jej vnímá lidský mozek. Větší pojmy (např. příčiny, děje a objekty) jsou vnímány tak, že se mění pomaleji, a skládají se z menších pojmů, které se mění rychleji. Jeff Hawkins postuluje, že mozek vyvinul tento typ hierarchie, aby odpovídal organizaci vnějšího světa, předvídal ji a ovlivňoval.

Další podrobnosti o fungování Zeta 1 HTM naleznete ve staré dokumentaci společnosti Numenta.

Algoritmy kortikálního učení

Nová generace algoritmů pro učení HTM se opírá o distribuované reprezentace s pevnou rozptylovou hustotou. Modeluje korové sloupce, které mají tendenci inhibovat sousední sloupce v neokortexu, čímž vytvářejí řídkou aktivaci sloupců. Oblast vytváří řídkou reprezentaci ze svého vstupu, takže v každém okamžiku je aktivní pevně stanovené procento sloupců.

Prostorové sdružování: Recepční pole každého sloupce představuje pevný počet vstupů, které jsou náhodně vybrány z mnohem většího počtu vstupů uzlu. Na základě vstupního vzorce obdrží některé sloupce více aktivních vstupních hodnot. Prostorové sdružování vybírá relativně konstantní počet nejaktivnějších sloupců a deaktivuje (inhibuje) ostatní sloupce v blízkosti těch aktivních. Podobné vstupní vzory mají tendenci aktivovat stabilní sadu sloupců. Množství paměti využívané jednotlivými oblastmi lze zvýšit pro učení složitějších prostorových vzorů nebo snížit pro učení jednodušších vzorů.

Reprezentace vstupu v kontextu předchozích vstupů: Pokud je jedna nebo více buněk v aktivním sloupci v prediktivním stavu (viz níže), budou to jediné buňky, které se v aktuálním časovém kroku stanou aktivními. Pokud žádná z buněk v aktivním sloupci není v prediktivním stavu (během počátečního časového kroku nebo když aktivace tohoto sloupce nebyla očekávána), stanou se aktivními všechny buňky.

Předvídání budoucích vstupů a časové sdružování: Když se buňka stane aktivní, postupně vytváří spojení s okolními buňkami, které byly aktivní v několika předchozích časových krocích. Buňka se tak učí rozpoznávat známou sekvenci tím, že kontroluje, zda jsou připojené buňky aktivní. Pokud je aktivní velký počet připojených buněk, přepne se tato buňka do prediktivního stavu v očekávání jednoho z několika příštích vstupů sekvence. Výstup oblasti zahrnuje sloupce v aktivním i prediktivním stavu. Sloupce jsou tedy aktivní po delší časové období, což vede k větší časové stabilitě, kterou nadřazený region pozoruje.

Algoritmy kortikálního učení jsou schopny učit se průběžně z každého nového vstupního vzoru, proto není nutný žádný samostatný režim odvozování. Během inference se HTM snaží přiřadit proud vstupů k fragmentům dříve naučených sekvencí. Díky tomu každá oblast HTM neustále předpovídá pravděpodobné pokračování rozpoznaných sekvencí. Index předpovězené sekvence je výstupem regionu. Protože předpovědi mají tendenci měnit se méně často než vstupní vzory, vede to ke zvyšování časové stability výstupu na vyšších úrovních hierarchie. Predikce také pomáhá doplnit chybějící vzory v sekvenci a interpretovat nejednoznačná data tím, že systém zkresluje to, co předpověděl.

Doporučujeme:  Dopady domácího násilí na děti

Algoritmy kortikálního učení jsou v současné době nabízeny jako služba v neveřejné beta verzi pod názvem Grok společnosti Numenta.

V souvislosti s algoritmy kortikálního učení byla Jeffu Hawkinsovi v září 2011 položena následující otázka: „Jak poznáte, zda jsou změny, které v modelu provádíte, dobré nebo ne?“. Na to Jeff odpověděl: „Odpověď lze hledat ve dvou kategoriích: jednou z nich je pohled do neurověd a druhou jsou metody strojové inteligence. V oblasti neurověd existuje mnoho předpovědí, které můžeme učinit, a ty lze testovat. Pokud naše teorie vysvětlují obrovské množství neurovědeckých pozorování, pak nám to říká, že jsme na správné cestě. Ve světě strojového učení se o to nestarají, pouze o to, jak dobře to funguje na praktických problémech. V našem případě se to teprve ukáže. Do té míry, do jaké dokážete vyřešit problém, který předtím nikdo nedokázal vyřešit, si toho lidé všimnou.“

Srovnání HTM a neokortexu

Nejvhodnější je porovnávat vysokoúrovňové struktury a funkce neokortexu s HTM. HTM se pokouší realizovat funkčnost, která je charakteristická pro hierarchicky příbuznou skupinu korových oblastí v neokortexu. Oblast neokortexu odpovídá jedné nebo více úrovním v hierarchii HTM, zatímco hipokampus je vzdáleně podobný nejvyšší úrovni HTM. Jeden uzel HTM může představovat skupinu korových sloupců v rámci určité oblasti.

Přestože se jedná především o funkční model, bylo učiněno několik pokusů o propojení algoritmů HTM se strukturou neuronálních spojení ve vrstvách neokortexu. Neokortex je uspořádán do vertikálních sloupců 6 horizontálních vrstev. Šest vrstev buněk v neokortexu by nemělo být zaměňováno s úrovněmi v hierarchii HTM.

Uzly HTM se snaží modelovat část korových sloupců (80 až 100 neuronů) s přibližně 20 „buňkami“ HTM na sloupec. HTM modelují pouze vrstvy 3 a 4 pro detekci prostorových a časových vlastností vstupu s 1 buňkou na sloupec ve vrstvě 4 pro prostorové „sdružování“ a 1 až 2 tucty na sloupec ve vrstvě 3 pro časové sdružování. Klíčem k HTM a kůře mozkové je jejich schopnost vypořádat se s šumem a variabilitou vstupu, což je důsledek použití „řídké distributivní reprezentace“, kdy jsou v daném okamžiku aktivní pouze asi 2 % sloupců.

Podobnost s jinými modely

HTM je přirovnávána k bayesovské síti a skládá se ze souboru uzlů, které jsou uspořádány do hierarchie ve tvaru stromu. Každý uzel v hierarchii objevuje řadu příčin ve vstupních vzorcích a časových posloupnostech, které dostává. K šíření zpětnovazebních a zpětnovazebních přesvědčení z podřízených uzlů do nadřízených a naopak se používá bayesovský algoritmus revize přesvědčení. Analogie s bayesovskými sítěmi je však omezená, protože HTM mohou být samoučitelné (tak, že každý uzel má jednoznačný příbuzenský vztah), vyrovnávají se s časově citlivými daty a poskytují mechanismy pro skrytou pozornost.

Doporučujeme:  Bílá betzová stupnice A B

Teorii hierarchického kortikálního výpočtu založenou na bayesovském šíření přesvědčení navrhli již dříve Tai Sing Lee a David Mumford. HTM je s těmito myšlenkami většinou konzistentní, přidává však podrobnosti o zacházení s invariantními reprezentacemi ve zrakové kůře.

Stejně jako každý systém, který modeluje detaily neokortexu, lze i HTM považovat za umělou neuronovou síť. Hierarchie ve tvaru stromu, která se běžně používá v HTM, se podobá obvyklé topologii tradičních neuronových sítí. HTM se snaží modelovat kortikální sloupce (80 až 100 neuronů) a jejich interakce s menším počtem „neuronů“ HTM. Cílem současných HTM je zachytit co nejvíce funkcí neuronů a sítě (tak, jak jsou v současnosti chápány) v rámci možností typických počítačů a v oblastech, které mohou být snadno využitelné, jako je zpracování obrazu. Například se nepokouší o zpětnou vazbu z vyšších úrovní a řízení motoriky, protože zatím není jasné, jak je začlenit, a místo variabilních synapsí se používají binární, protože bylo zjištěno, že v rámci současných možností HTM jsou dostatečné.

LAMINART a podobné neuronové sítě, které zkoumal Stephen Grossberg, se snaží modelovat infrastrukturu mozkové kůry i chování neuronů v časovém rámci, aby vysvětlily neurofyziologická a psychofyzikální data. Tyto sítě jsou však v současné době příliš složité pro reálné použití.

HTM také souvisí s prací Tomasa Poggia, včetně přístupu k modelování ventrálního proudu zrakové kůry známého jako HMAX. Podobnosti HTM s různými myšlenkami umělé inteligence jsou popsány v prosincovém čísle časopisu Artificial Intelligence z roku 2005.

Nejnovější konekcionistické modely takzvaného „hlubokého učení“ jsou velmi podobné HTM a podobně byly spojeny s vývojovými teoriemi lidského neokortexu, které neurologové vyvinuli na počátku 90. let.

Platforma NuPIC a vývojové nástroje

(Odkazy na starší obsah Numenty jsou nefunkční, pro přístup k nim použijte toto a toto.)

Model HTM byl implementován ve výzkumné verzi softwarového rozhraní API nazvaného „Numenta Platform for Intelligent Computing“ (NuPIC). V současné době je tento software k dispozici ke stažení zdarma a lze jej licencovat pro obecný nebo akademický výzkum i pro vývoj komerčních aplikací. NuPIC je napsán v jazycích C++ a Python.

Pomocí NuPIC byla implementována řada nástrojů pro vývoj softwaru HTM:

Pomocí NuPIC byly vyvinuty následující komerční aplikace: