LAIPR - inteligentní systém

1. 4. 2005
Doba čtení: 6 minut

Sdílet

Chcete-li vědět, jak daleko jsou systémy umělé inteligence v současné době, nahlédněte pod pokličku a zkuste systém LAIPR (Linux Artificial Intelligence PRoject).

Úvod

Již na samém počátku výpočetní techniky lze dohledat snahy a vytvoření inteligentního stroje. Tyto snahy byly příčinou vzniku vědní specializace ležící na hranici mezi kybernetikou, informatikou, matematikou a dalšími vědami. Ano, hádáte správně, jde o umělou inteligenci. Pokud si myslíte, že UI od dob svého vzniku na přelomu 50. a 60. let 20. století příliš nepokročila, mýlíte se.

Prohledávání stavového prostoru

V 50. letech minulého století se začaly objevovat první úvahy extrapolující rychlost rozvoje výpočetní techniky v horizontu příštích desetiletí. Tyto úvahy předpovídaly velkou budoucnost tzv. umělé inteligenci (artificial intelligence). V té době existovaly již první vlaštovky v podobě algoritmů na prohledávání stavového prostoru úloh. Tyto algoritmy se v dnešní době běžně řadí mezi algoritmy umělé inteligence.

Podstatou těchto algoritmů je formalizace úlohy pomocí prostoru stavů a operací pro přechod mezi těmito stavy. Při řešení se vychází z počátečního stavu, jež reprezentuje počáteční stav úlohy daný zadáním. Pomocí aplikací jednotlivých operací se jednotlivé stavy expandují a vznikají stavy nové. Expanze uzlů probíhají, dokud není nalezen koncový stav. Poté se cesta od počátečního stavu do koncového stavu vyjádřená posloupností operací prohlásí za řešeníúlohy.

Jednotlivé typy těchto algoritmů se odlišují způsobem ohodnocení jednotlivých stavů a tím i pořadím expanze těchto stavů. Jde například o prohledávání do šířky či prohledávání do hloubky.

Řešení úloh pomocí prohledávání stavového prostoru ovšem naráží na mnohé problémy. V první řadě jde o samotný problém formalizace úlohy pomocí stavů a operací nad nimi. Dále jde o problém velké výpočetní náročnosti prohledávání. Předpovědi z konce 50. let počítaly s enormním nárůstem výkonu a kapacity počítačů v příštích letech. I přes značné zlepšení situace stále postrádáme počítače schopné kompletně prohledat stavový prostor obrovského množství úloh.

Jednou z cest, jak se vyhnout kompletnímu prohledávání stavového prostoru, je použití různých heuristik a prořezávání prohledávacího grafu. Další cesta napodobuje lidské myšlení. Člověk při řešení úloh používá prohledávání stavového prostoru velice zřídka. Má-li vyřešit rovnici, nelze slepě zkoušet různé hodnoty proměnné, nýbrž je vhodné použít dalších znalostí o úloze.

Proto začaly vznikat další systémy napodobující chování člověka. V první řadě jde o expertní systémy umožňující reprezentovat znalosti o dané úloze pomocí pravidel. Další kategorii systémů reprezentují systémy napodobující schopnost lidského mozku „učit se“. Jmenujme například (umělé) neuronové sítě původně vzniklé jako model biologických neuronových sítí.

Modelování vs. napodobení

První úvahy věnující se umělé inteligenci počítaly s modelováním funkce lidského mozku, čímž by se získal systém schopný učit se, chápat, porozumět, komunikovat. Tento přístup ale naráží na řadu problémů, ať už jde o nalezení vhodného modelu a jeho parametrů, nebo o výpočetní náročnost experimentů prováděných na takovém modelu. Proto se začaly používat různé postupy umožňující zjednodušení systémů umělé inteligence. Prioritou se stala schopnost funkčně napodobit a zastoupit člověka.

LAIPR

Na mě jakožto člověka se zájmem o umělou inteligenci velice zapůsobily cíle projektu LAIPR (Linux Artificial Intelligence PRoject), jež má být demonstrací možností současné umělé inteligence. Jeho autoři John Clange a Arthur Edvin působili dlouhá léta na MIT a v současné době s ním velmi úzce spolupracují.

Zajímavá je celá filosofie projektu. Mnoho programů vyvíjených mimo univerzitní pracoviště (a mnohdy i na nich) není uvolněno pod otevřenou licencí, případně otevřený je běhový systém, ale data a systém pro jejich získání jsou neveřejná. V případě systému LAIPR jsou otevřená i data jednotlivých subsystémů získaná tréningem z dat, čímž uživatel získává netušené možnosti při využití tohoto systému. Pouze systém pro natrénování jednotlivých částí je soukromým majetkem autorů.

Na webových stránkách naleznete dotazník, po jehož vyplnění se vám zpřístupní rozhraní konfiguračního skriptu. Pomocí tohoto rozhraní si vyberete jednotlivé části, které má obsahovat vaše distribuce, a kliknete na tlačítko download, čímž získáte různě velký skript jazyka Python reprezentující celý systém a jeho data. Pro používání v zemích koruny české doporučuji použít balíček, který jsem vytvořil upravením originální distribuce pro české prostředí. Tento balíček je zkonfigurován pro obrazový vstup a textový výstup.

Možnosti

Tím se pomalu dostáváme k poslání tohoto projektu. Jednoduše ho vystihuje následující tvrzení: „Program zpracovává svůj vstup a snaží se z něj inteligentně získat adekvátní výstup.“ Jde o poněkud vágní formulaci, ovšem program naprosto vystihuje. V závislosti na konfiguraci distribuce systému je možné volit mezi obrazovým, textovým a zvukovým vstupem a textovým a zvukovým výstupem.

Jak to funguje

Program se snaží ve svém vstupu lokalizovat zadání nějaké úlohy. To dělá pomocí vyhledávání slov, tvarů či příkazů, které nějakým způsobem reprezentují požadavek cosi vyřešit. V češtině jde například o slova „Najdi“, „Vyřeš“, „Vypočítej“ apod. Rovněž každá otázka může mít svou odpověď a v pojetí systému LAIPR představuje úlohu.

Pokud uživatel má systém zkonfigurovaný pro obrazový vstup, zapojí se metody zpracování digitalizovaného obrazu a OCR postupy. Pro rozpoznávání úloh ve zvukovém vstupu se použije ASR (Automatic Speech Recognition). Poté se výsledný text obohacený o metadata zpracuje pomocí metod NLP. Výsledek jde do modulu Solver, jenž se pokusí úlohy vyřešit. Výstup je jednoduše zobrazen, případně pomocí syntetizátoru přednesen uživateli ve formě textu.

Použití

Pro ilustraci si nyní předvedeme několik možností použití. Budeme předpokládat lokalizovanou verzi z výše uvedeného balíčku, která je nakonfigurována pro obrazový vstup a textový výstup. Program je díky použití jazyka Python připraven okamžite k použití, stačí mít nainstalován balíček PIL pro práci s obrázky.

První příklad demonstruje OCR schopnosti systému. Ten totiž v případě, že nenajde žádnou interpretovatelnou otázku, pouze zpracuje vstup na text a ten následně zobrazí. Spustíme příkaz

[honza@ix:~] ./laipr.py examples/ocr/ocr.png
- Organizace paměti
- Čítače a časovače
- Přerušovací systém
- Sériový kanál
- Vstupně/výstupní porty
- Přístup do vnější paměti
LAIPR

Vstupem systému je obrázek ocr.png, ne nějž zareaguje výstupem, který představuje rozpoznaný text nacházející se uvnitř tohoto obrázku.

Další a mnohem zajímavější použití představuje řešení problémů z oblasti matematiky, v níž je systém nanejvýš spolehlivý. Jednoduchá a vše vysvětlující ukázka představuje rozpoznání matematického zápisu a jeho vyřešení pomocí symbolických operacích podpořených modulem Math:

[honza@ix:~] ./laipr.py examples/integral/integral.png
F(x) = -x cos x + sin x + c
integral = F(1) - F(0) = approx. = 0.301
LAIPR

Jak vidíme, jde o spočítání určitého integrálu. Systém si tedy nejprve symbolicky vyjádří primitivní funkci k funkci integrované a následně spočítá hodnotu určitého integrálu jako rozdíl hodnot primitivní funkce v bodě 1 a v bodě 0, čímž získá přibližný výsledek 0.301.

Poslední ukázkou je rozpoznávání předmětů. Systém má naučeno mnoho typických předmětů, které může potkat většina amerických dětí ve věku do deseti let. Jedním z příkladů převzatých z originálního distribučního balíčku je rozpoznání obrazu planety Saturn. Program v tomto obrázku nalezne těleso s prstenci, jehož popis si ztotožní s uloženým vzorem Saturn:

[honza@ix:~] ./laipr.py examples/saturn/saturn.png
Planeta Saturn
LAIPR

Další cíle

Kromě výše uvedených příkladů můžete program vyzkoušet i na mnoha ukázkových obrázcích dodaných rovnou s programem, případně na vlastních zadáních.

bitcoin_skoleni

Program někdy nepracuje přesně podle vašich představ, neboť dokonale „nepochopí“ zadání, případně způsob řešení, který se po něm chce. V budoucích verzích programu se však plánuje vylepšení systému porozumění přirozené řeči. Stejně tak se uvažuje o zpracování pohyblivého obrazu (tj. rozpoznávání gest, situací apod.) spolu se schopností práce v reálném čase, a tím pádem i vytvoření jakéhosi asistenta schopného vyřešit nejednu úlohu z mnoha oblastí běžné lidské činnosti.

Závěrem

Oblast umělé inteligence je nepochybně nesmírně zajímavou a důležitou částí vědy a jakýkoli další pokrok v této oblasti reprezentovaný například programem LAIPR je velmi významný. Každému, kdo chce zabít nejedno odpoledne „zkoušením“ svého počítače, mohu s klidným svědomím doporučit vyzkoušení výše uvedeného programu. Mnohdy nebudete věřit vlastním očím a důvtip programu vás mile překvapí.

Autor článku