Jiří Hýbek
AI notes #2: Architektura umělé mysli

AI notes #2: Architektura umělé mysli

Teoretický popis AGI modelu inspirovaného lidskou myslí.

V rámci vývoje AGI přemýšlím nad různými teoriemi a modely. Poslední měsíc rozvíjím architekturu inspirovanou lidským mozkem - nebo spíše tím, jak funguje naše vlastní mysl. Architekturu rozděluji na 3 základní části, které popisuji níže.

#1. vrstva - pozorování, asociace, predikce, myšlenkové proudy

První vrstva je velmi důležitá. Jejím cílem je “pochopení” toho, jak funguje prostředí, ve kterém AI entita existuje. Prostředí je pozorováno formou vstupů - senzorických a stavových dat (např. obraz, zvuk, textový vstup, data). Reálnou funkcí této vrstvy je predikce, tedy schopnost předpokládat. Kdybychom my nedokázali předpokládat, co se stane, když něco pozorujeme, nebo co se stane, pokud se nějak rozhodneme, nemohli bychom v našem světě fungovat.

Učení této vrstvy probíhá formou vytváření asociací - pokud minule byl na vstupu stav A a nyní máme stav B, pak je pravděpodobné, že stav A povede ke stavu B. Tedy pokud se příště na vstupu objeví stav A, budeme predikovat, že v příštím kroku nastane stav B. Aby to ovšem nebylo tak jednoduché, musíme počítat s časovým kontextem, tedy predikce není založena jen na předchozím stavu, ale na sérii mnoha předchozích stavů ve specifickém pořadí.


#Vsuvka - úvaha o vědomí

Osobně se přikláním k úvaze, že naše vědomí není nic jiného, než nekonečný sled asociací - myšlenek. Jedna myšlenka vede k druhé, ta ke třetí atd. Zkuste to někdy sami pozorovat - zamyslet se nad tím, proč zrovna přemýšlíte o nějaké věci, co vás k tomu vedlo. Je to mnohdy přirozený vývoj rozhovoru - někdo vám vypráví o tom, jak si pořídil nové auto a vy si hned vzpomenete na to, že jste zrovna včera byli u automechanika - jasná asociace. Naše myšlenky jsou také ovlivňovány smyslovými vjemy - na něco se soustředíte a najednou uslyšíte ránu. V tu chvíli vám tento smyslový vjem spustí asociaci různých možností, co mohlo být příčinou této události. Stejné je to s řešením různých úloh - postup práce jsou také jen asociace jdoucí za sebou. Zkuste si jen tak v hlavě vizualizovat přípravu vašeho oblíbeného pokrmu. Jeden krok vás povede k dalšímu.


Dle mé teorie je asociace vlastních myšlenek velmi důležitá. Z tohoto důvodu má první vrstva krom smyslových vstupů také rekurentní vstupy z vlastního výstupu. Znamená to, že predikce ze stavu A jde v dalším kroku též do vstupu, a může tedy ovlivnit výstup. Pokud bychom například “zavřeli oči” - tedy bychom vypnuli všechny smyslové vstupy, předchozí výstup může vyvolat asociaci / predikci, která může vyvolat další asociaci. A tím se dostáváme k tomu, že nám vzniká myšlenkový proud - jedná asociace vedé k druhé, ke třetí apod. A naše AI začíná svévolně přemýšlet nad různými věcmi a “zážitky”.

Rekurentní vstupy neslouží jen k vytvoření myšlenkových proudů, ale také jako krátkodobá paměť - pokud dostaneme nějaký úkol, stále někde při jeho plnění přemýšlíme nad zadáním.

#2. vrstva - rozhodování

Druhá vrstva má za úkol rozhodování. Tedy určuje to, co entita ve svém prostředí vykoná za akci. Proč je rozhodování odděleno do další vrstvy? Protože to, že nad něčím přemýšlíme ještě neznamená, že tak učiníme. Můžeme přemýšlet nad tím, že si půjdeme dát něco dobrého, to ale automaticky neznamená, že tak budeme konat.

Vstupem této vrstvy je vstup senzorický (stejně jako u 1. vrstvy) a dále také výstup z 1. vrstvy. Entita se tedy rozhoduje na základě aktuálního vjemu a stavu mysli. Aktuální vjem je důležitý pro “pudové” rozhodování. Pokud si sáhnete na rozpálenou plotnu a budete přemýšlet nad tím, proč vás ten prst pálí, dojdete k většímu zranění, než kdybyste reflexivně ucukli.

K učení této vrstvy dochází na základě zpětné vazby ze 3. vrstvy.

#3. vrstva - zpětná vazba, sebereflexe, vnitřní učitel

Třetí vrstva má za úkol posoudit, jak vhodné bylo rozhodnutí entity a na základě posudku upravit budoucí chování. Odborně řečeno: 3. vrstva definuje chybu výstupu pro 2. vrstvu. Vstupem je též aktuální senzorický vstup, výstup 3. vrstvy a výstup 2. vrstvy. Tedy všechny dostupné informace (zřejmě ještě přehodnotím).

Proč chybu nedefinujeme přímo, jako je tomu zvykem u ostatních modelů neuronových sítí? Protože každý z nás disponuje sebereflexí. Samozřejmě máme i vrozené reflexy - jako ucuknout když se spálíme. Ale u více abstraktních problémů musíme sami posoudit, zda naše rozhodnutí bylo správné nebo špatné. A to nesoudíme jen podle kritických vjemů - např. bolest, ale i podle chování okolí - slovní pochvala, kritika.

Třetí vrstva se tedy učí, jak se učit. A to si myslím, že je zásadní rozdíl oproti jiným modelům AI, kdy je proces učení předem daný.

Samozřejmě tato vrstva se musí nejdříve někde naučit, jak se učit. Zde již využijeme běžné metody q-learningu. Tedy z počátku musíme entitu vychovat pomocí dávání jí “přes zadek” (udělala chybu) a dávání jí “bombonů” (pochvala). Časem můžeme před trestem / odměnou přidat výhružky a pochvaly na vstup a první předikční vrstva zajistí to, že entita bude předpokládat případný trest / odměnu a 3. vrstva zareaguje včas, dokud se 2. vrstva nezačně rozhodovat správně.

#Aktuální vývoj

Momentálně pracuji na vývoji a testování několika výpočetních modelů 1. vrstvy. Modely testuji na obrazovém vstupu a snažím se sledovat obrazové predikce a asociace. Experimentuji s použitím feedforward NN a spiking NN. Aktuálně algoritmus jeví schopnost základní predikce a občas je i schopen asociace dalšího obrazu. Ovšem “paměť” je velmi omezená, a proto je potřeba tento model ještě značně zdokonalit. Jakmile budou k dispozici lepší výsledky, napíši článek s detailnějším popisem řešení.

#Závěr

Osobně si myslím, že tato architektura by mohla být velice funkční - skládá se ze všech podstatných částí naší mysli: predikce a myšlenky, rozhodování a sebereflexe. Technická realizace už je ovšem jiný a dosti zapeklitý problém. Další podstatnou vlastností, která by z toho modelu měla vyplynout, je neuroplasticita. Tedy schopnost přizpůsobit se. To znamená, že pokud entitě odebereme hmat, měla by být schopná ho částečně nahradit např. zrakem. Nebo naopak pokud na vstup přidáme nový senzor, entita by měla být schopna snadno se jej naučit využívat ve svůj prospěch. To stejné platí i pro výstupy 2. rozhodovací vrstvy.