Umělá inteligence pro každého

2. Úlohy umělé inteligence

Vývoj a výzkum umělé inteligence zahrnuje celou řadu vědních oborů, mezi které patří například informatika, matematika, filozofie, psychologie, neurověda nebo lingvistika. My se budeme zabývat především umělou inteligencí z pohledu informatiky a na nejdůležitější úlohy umělé inteligence se podíváme podrobněji.

Obrázek 1: Nejdůležitější úlohy umělé inteligence.

Strojové učení

Strojové učení je v současnosti nejpopulárnější a z pohledu praktických dopadů i nejvýznamnější oblastí umělé inteligence. Byly to právě pokroky ve strojovém učení, a především v jeho podoblasti nazývané hluboké učení (anglicky deep learning), které způsobily extrémní zájem o umělou inteligenci v poslední dekádě. Většina aplikací umělé inteligence je dnes alespoň částečně postavena na strojovém učení a mnohdy se pojmy umělá inteligence a strojové učení zaměňují.

Cílem strojového učení je na základě příkladů vstupů a výstupů nalézt funkci f, která pro libovolný nový vstup určí odpovídající výstup. Několik ukázek takových funkcí je zachyceno na obrázku 2. Příklady dvojic vstupů a výstupů pro jeden problém nazýváme trénovací data. Ta jsou pro strojové učení naprosto klíčová a budeme se jim věnovat v samostatné kapitole.

Obrázek 2: Příklady úloh strojového učení.

Důležitým principem strojového učení je schopnost zobecnění. Cílem strojového učení není pouze zapamatovat si trénovací příklady, nýbrž nalézt obecné vztahy, které budou platit i pro nová data, která se v trénovacích příkladech nevyskytla a u kterých správné výstupní hodnoty neznáme. Za strojové učení tedy nelze považovat funkci f, která si pouze zapamatuje trénovací příklady, ale není schopna nalézt výstupní hodnotu pro nový vstup.

Prohledávání prostoru

Prohledáváním prostoru nejčastěji rozumíme prohledávání stavového prostoru nějakého problému a řadíme sem různé algoritmy z teorie her a teorie grafů. Příkladem takového stavového prostoru mohou být všechna možná umístění figurek na šachovnici a problémem prohledávání potom nalezení takového dalšího tahu, který je přípustný a zároveň s největší pravděpodobností povede k výhře. Nejznámějším zástupcem herních algoritmů je zřejmě algoritmus Minimax a jeho rozšíření.

Do problematiky prohledávání prostoru dále patří různé grafové algoritmy pro hledání minimální kostry grafu (např. Kruskalův algoritmus), hledání nejkratší cesty v grafu (např. Dijkstrův algoritmus) a další. Jednou z populárních aplikací těchto algoritmů je hledání nejkratší cesty mezi dvěma místy na mapě. Dalších významných aplikací ale existuje nepřeberné množství.

Plánování

Plánováním rozumíme strategie pro nalezení optimálního uspořádání událostí nebo úloh při současném splnění nějaké množiny omezujících podmínek. Příkladem může být plánování procesů v operačním systému počítače, kde je cílem při daných paralelních výpočetních prostředcích odbavit co nejvíce úloh za co nejkratší dobu. Do hry zde navíc vstupují priority, požadavek na maximální spravedlnost a další omezující podmínky. Jiným příkladem může být sestavování složitých školních rozvrhů (například na vysokých školách), kde je velké množství individuálních studijních programů a je třeba zajistit, aby se studentům ani vyučujícím jejich předměty nepřekrývaly.

Optimalizace

Cílem optimalizace je nalezení takových vstupů, které minimalizují nebo maximalizují předem danou výstupní účelovou funkci. Jako příklad můžeme uvést problém rozmístění součástek v počítačových čipech tak, aby zabíraly co nejmenší prostor, jejich spojení byla co nejkratší a zároveň nedocházelo k nežádoucímu vzájemnému ovlivňování. Podstatou problému je, že prostor kombinací vstupních hodnot je typicky příliš velký a daná úloha se nedá řešit analyticky ani systematickým prohledáváním prostoru všech kombinací. K přibližnému nalezení nejlepšího řešení se používá například simulované žíhání, různé varianty evolučních algoritmů nebo algoritmy inspirované inteligencí hejna.

Zpracování přirozeného jazyka

Do této kategorie spadají všechny úlohy, které nějakým způsobem pracují s přirozenými jazyky jako jsou čeština, angličtina, čínština apod. Přirozené jazyky jsou až na výjimky takové, které vznikly přirozeným vývojem a používají se pro běžnou komunikaci mezi lidmi v hlasové nebo psané podobě. Oproti formálním jazykům, jako jsou třeba programovací jazyky, mají přirozené jazyky obrovskou míru nejednoznačnosti a složitosti, která jejich strojové zpracování komplikuje. Dříve se pro zpracování přirozených jazyků používaly různé lingvistické nástroje, dnes však u praktických aplikací převažuje použití strojového učení. Z aplikací můžeme jmenovat například: detekci e-mailového spamu, internetové vyhledávače, opravu překlepů, strojový překlad, chat boty apod.

Strojové vnímání

Hlavními dvěma zástupci této oblasti jsou strojové zpracování obrazu nebo videa a strojové zpracování akustických signálů. Obě oblasti jsou dnes již téměř výhradně řešeny využitím strojového učení a budeme se jim věnovat později. Mezi typické aplikace patří strojové vidění v robotice, klasifikace obrázků a videa, segmentace obrazu, převod řeči na text nebo třeba identifikace řečníka podle hlasu.