Umělá inteligence

Motto: "Přirozená inteligence bude umělou brzy překonána. Přirozenou blbost však umělá nemůže nahradit nikdy." Jára da Cimrman

Pojem "umělá inteligence" je chápán jako (a) inteligence projevovaná stroji, (b) obor informatiky zabývající se tvorbou takových strojů. Není shoda na tom, jakými měřítky hodnotit úroveň strojové inteligence; experti v oboru navrhli řadu testů schopností, jež by inteligentní stroj měl mít, od konverzačních až po praktické zahrnující vnímání, rozhodování, učení a fyzické akce. Obor umělé inteligence proto používá mnoho rozdílných přístupů a technik. V posledních letech vývoj akceleruje a byla představena řada průlomových výsledků a aplikací, zejména v oblasti strojového učení.

Výzkum umělé inteligence prošel za posledních 70 let řadů fází a více či méně úspěšných přístupů, často se střídala období entusiasmu a investic s obdobím skepse a útlumu. Nyní jsme v období dosud nejsilnější konjunktury UI v historii.

Agentem je každé individuum, která vnímá okolní prostředí pomocí senzorů a zasahuje do něj pomocí aktuátorů. Prostředí může být reálné anebo virtuální (simulované počítačem). Inteligentní agent dokáže v prostředí jednat tak, aby dosáhl (hůře či lépe) svých cílů. Reaktivní agenty jsou nejjednodušší typ autonomních agentů s jednoduchým propojením senzorů a aktuátorů. Složitější typy agentů si mohou vytvářet vnitřní model prostředí, mohou mít paměť, komplikované cíle, schopnost plánovat akce a učit se. Složitost agenta však nemusí být vždy výhodou.

V úlohách umělé inteligence je praktické vymezit množinu možných stavů prostředí, v němž řešení probíhá, a množinu přípustných operací v tomto prostředí - přechodů mezi stavy. Výsledek se nazývá stavový prostor a obyčejně se reprezentuje orientovaným grafem. Vrcholy grafu představují možné stavy prostředí (včetně agenta, jenž je jeho součástí), hrany jsou pak přechody mezi těmito stavy způsobené akcemi agenta (jedna hrana = jedna akce). U těchto úloh zpravidla předpokládáme plně pozorovatelné, statické prostředí, jenž se nemění "samo od sebe", a nepočítáme s více agenty. Řešení úlohy pak spočívá v co nejefektivnějším prohledávání stavového prostoru od počátečního k cílovému stavu. Základním problémem je velikost stavového prostoru, jenž se typicky zvětšuje exponenciálně s velikostí prostředí.

Lokální a online prohledávání

Omezující podmínky poskytují dodatečné informace pro prohledávání stavového prostoru. V úlohách popsaných v předchozích kapitolách byla "hodnota" každého stavu během prohledávání určena heuristickou funkcí závisející na konkrétním problému. Nyní popíšeme každý stav množinou proměnných, kterým postupně přiřazujeme hodnoty, přičemž cílový stav musí splňovat určitou sadu podmínek nad těmito proměnnými. Taková formulace prohledávání stavového prostoru umožňuje vytvořit obecné prohledávací heuristiky nezávislé na konkrétním typu úlohy. Hlavní myšlenkou je co nejrychleji odstranit z prohledávaného prostoru stavy, jejichž kombinace proměnných nesplňuje podmínky.

Hry představují multiagentní úlohy umělé inteligence, kde cíle jednotlivých agentů bývají často v konfliktu, a akce soupeřících agentů jsou obecně nepředvídatelné. I když se omezíme jen na jednoduché hry dvou hráčů s úplnou informací o situaci a s tzv. nulovým součtem (co jeden hráč získá, to druhý ztrácí), jedná se často o obtížné úlohy s obrovským stavovým prostorem. Proto se teprve nedlouho daří vytvořit nástroje UI, které např. šachy (1997) nebo Go (2016) zvládají lépe než lidé. Prohledávání velkých stavových prostorů her vyžaduje speciální techniky. V této kapitole probereme klasické přístupy UI k zvládání her, poslední dobou se však v této oblasti čím dál více prosazuje strojové učení.

Strojové učení je schopnost stroje (agenta) zlepšovat své schopnosti na základě zkušeností s řešením předchozích úloh a pozorování světa. Zatímco živé organismy se učí většinou "za pochodu", agenty v umělé inteligenci častěji učíme/trénujeme předtím, než je nasadíme na řešení reálných úloh. I potom se však mohou průběžně učit a zlepšovat, jako to dnes už většina z nich činí. Prakticky všechny dosud zmíněné techniky UI lze vylepšovat učením. Mnohé z nich lze strojovým učením úspěšně nahradit, i když často za cenu zvýšených nároků na výkon. Strojové učení je v posledních 10 letech dominující technologií UI s výsledky překonávajícími lidské výkony v oblastech jako počítačové vidění, rozpoznávání a generování přirozeného jazyka, strategické hry a rozhodování a řada dalších, viz https://en.wikipedia.org/wiki/Deep_learning#Applications. Do strojového učení masivně investují největší IT hráči na trhu jako Google, Amazon, Apple nebo Microsoft.

Support Vector Machines (SVM) představují techniku strojového učení s učitelem pro úlohy klasifikace a regrese, která byla populární v dekádách 1990-2010. I dnes jsou velmi dobře použitelné na jednodušší úlohy strojového učení, ale ve složitějších úlohách jsou obyčejně nahrazovány technikami hlubokého učení. SVM jsou neparametrickou metodou klasifikace. To znamená, že se nesnaží popsat jednotlivé třídy pomocí (číselných) parametrů, ale k jejich charakterizaci používají přímo jejich vybrané členy - prvky tréninkové množiny. Na rozdíl od jiných neparametrických metod, které hledají typické reprezentanty každé třídy, u SVM reprezentujeme třídu hraničními prvky, které vymezují hranice s jinými třídami - tzv. podpůrné vektory (support vectors). Například chceme-li klasifikovat 60 odstínů šedi do dvou tříd "světlá" a "tmavá", ve třídě "světlá" bude podpůrným vektorem nejtmavší odstín, který ještě řadíme do třída "světlá", a naopak ve třídě "tmavá" to bude nejsvětlejší odstín z těch, které řadíme mezi tmavé.

Hluboké učení využívá principu (odkoukaného z mozku) učit se tak, že vstupní data projdou sérií jednoduchých transformací, z nichž každá navazuje na výsledky předchozí, a získá z jejích dat o něco abstraktnější informace. Těmto transformacím se říká "vrstvy" a většinou využívají tzv. umělé neuronové sítě. Příkladem může být například rozpoznávání obličejů na obrázcích: první vrstva pracuje s reprezentací "bitmapa", druhá vrstva extrahuje hrany, křivky apod., třetí vrstva jednoduché tvary (obdélníky, ovály...), čtvrtá vrstva obličejové rysy (oči, uši, nos...) atd., poslední vrstva pak přiřazuje obličeje k identitám lidí.

...pokud se o umělou inteligenci seriózně zajímáte? Téměř každé z probraných témat představuje jen úvod, který je dobré si dále rozšířit. Několik základních témat, která stojí v základech velmi úspěšných technologií UI, se do přednášky nevešlo. Například jsme se téměř nedotkli problematiky zpracování neurčité informace v UI, která by vydala na samostatný semestr. Expertním a znalostním systémům je věnován samostatný předmět. A díky raketovému pokroku v UI přibývají stále nová témata.

Předchozí