Obecný úvod do umělé inteligence — kapitola 6

Jak se umělá inteligence učí?

Obrázek v hlavičce byl vygenerován programem Midjourney. Prompt: An iceberg made of neurons floating on the sea

Strojové učení je jeden z nejpoužívanějších přístupů v oblasti umělé inteligence. Cílem jeho metod je odhalit vzory vyskytující se v datech. Místo toho, abychom stroji přesně popisovali nějaký postup, ukážeme mu velké množství příkladů, ze kterého se sám naučí, jak vykonávat konkrétní úlohu.

Co vlastně strojové učení znamená?

Stejně jako se člověk umí učit ze zkušeností, jsou toho schopny i člověkem vytvořené stroje. Rozdíl je v tom, že metody strojového učení nemají přehled o okolním světě a dokážou se zatím učit jen z dat, která jim byla předložena.

Lidé se občas ztrácejí v pojmech strojové učení a umělá inteligence. Řada systémů umělé inteligence je postavena právě pomocí strojového učení, ale nejedná se o jediný způsob. Vztah mezi těmito pojmy ilustruje následující obrázek.

Výhodou strojového učení je schopnost moderních počítačů zpracovat velké množství informací za krátkou dobu. Proto se strojové učení používá pro automatizaci stávajících procesů, tímto způsobem se šetří čas a odhady modelů vytvořených pomocí strojového učení jsou často stejně dobré nebo i lepší, než je tomu u lidí.

Model je v současné době ve většině případů pouze jednoúčelový a nedokáže řešit jiné typy úloh, než na které byl naučen.

Model strojového učení

Produktem strojového učení je model. Model je sada naučených pravidel, která určují, jakým způsobem lze ze vstupních hodnot (například výška a váha určitého pacienta) odvozovat výstupní hodnoty (například diagnóza obezity). Dosazením konkrétních vstupů je pak model schopen predikovat výstup u daného vzorku (např. pacienta).

Jak strojové učení funguje

Každý model strojového učení je třeba naučit daný problém řešit, což se nazývá trénovací fází.

Během trénování jsou modelu ukazována vstupní data, která máme k dispozici, společně s informací o požadovaném výstupu. Říká se tomu anotovaná data. Model se tak naučí, které vstupy patří ke kterým výstupům. Po natrénování díky tomu dokáže reagovat na vstupy, které nikdy předtím neviděl, na základě jejich podobností.

Jako příklad můžeme použít model, který má za úkol určit, zda je na obrázku holub, nebo orel. Během trénovací fáze ukážeme modelu obrázky holubů a orlů a rozdělíme je do kategorií (holub, orel). Po natrénování modelu prezentujeme obrázek orla, který nikdy neviděl, a model dokáže na základě podobnosti vůči obrázkům, které viděl během trénovací fáze, rozhodnout, že se jedná o orla.

Co je zapotřebí k vytvoření modelu

K naučení modelu vždy potřebujeme data. Pod pojmem data si můžete představit například tabulku, složku obrázků, složku textů. Ve většině případů obsahují data člověkem přiřazenou výstupní hodnotu (anotaci), jako v předchozím případě, kde byla výstupní hodnota druh ptáka. Můžeme mít různě velké množství dat, zpravidla ale platí, že s větším množstvím (kvalitních) dat roste kvalita predikcí modelu.

Daty se snažíme pokrýt všechny možné scénáře, s kterými se model později ve svém životním cyklu může setkat. To pomáhá modelu k takzvané generalizaci, tzn. schopnosti modelu predikovat data dříve nespatřená.

Pro jednoduché modely nám stačí několik desítek datových vzorků. Složitější modely, například neuronové sítě, jsou běžně trénovány i na tabulkách s miliony řádků. Během trénování modelu předkládáme dostupná data společně s očekávanou výstupní hodnotou, načež model reaguje úpravou svých parametrů tak, aby minimalizoval rozdíl (takzvanou chybu) mezi anotovanými příklady a jeho odhadem.

Po natrénování je model vyhodnocen na sadě dat, která během trénovací fáze neviděl, což slouží jako odhad, jak bude model výkonný v reálném světě. Není snadné poznat, zda model funguje (generalizuje) správně. V některých oblastech již modely dosahují výsledků srovnatelných s tím, jak by danou úlohu řešil člověk. Takzvaná evaluace (vyhodnocení) modelů je úzce svázána s jejich trénováním a s přípravou dat.

Příklady strojového učení v praxi

Už dnes se s aplikovanými metodami strojového učení setkáváme dennodenně. Například mezi každým dotazem a odpovědí na Google vyhledávači stojí model, který porovnává sémantický význam vašeho dotazu a textů na existujících webových stránkách (zdroj). Dále se můžeme setkat se strojovým učením například v online obchodech, kde umělá inteligence doporučuje zákazníkovi produkty, o které by mohl mít zájem (zdroj), nebo na YouTube, který se snaží udržet vaši pozornost doporučováním videí, která by pro vás mohla být zajímavá (zdroj).

Takzvané supervizované učení, nejčastější metoda ve strojovém učení, se používá pro řešení problémů, u kterých máme dostupné výstupní hodnoty (anotace) dat. Tyto problémy jsou pak dělitelné do dalších dvou podskupin podle požadovaného výstupu:
  • V případě regrese se model snaží odhadnout konkrétní hodnotu výstupu. Může tím být například odhad věku osoby na základě fotografie (protože věk může teoreticky být takřka jakékoli pozitivní číslo) nebo odhad konkrétní ceny akcie v následujícím dni na základě historického vývoje ceny (opět konkrétní číslo).
  • Naopak při klasifikaci má model za úkol rozřadit vstupní data do předem definovaných skupin. Jako příklad můžeme použít výše zmíněný model, který rozděloval obrázky ptáků do skupiny holubů, nebo orlů, nebo pak navázat na předchozí příklad regrese, kde bychom mohli model upravit tak, aby na základě fotografie určoval, zda má daná osoba více než 40 let, anebo méně než 40 let (pak místo konkrétního věku model rozřazuje čistě do skupin „ano“ a „ne“) nebo zda cena akcie bude v následujícím dnu klesat či stoupat (kde opět máme čistě možnosti „stoupat“ a „klesat“ místo konkrétní ceny akcie).
Nesupervizované učení řeší problémy, kdy nejsou informace o výstupních hodnotách dostupné (data nelze rozdělit do „kategorií“ jako u učení s učitelem).
  • Shlukování je jedním z nejčastějších přístupů učení bez učitele, kdy se model snaží roztřídit vstupní data do skupin, které ale (oproti klasifikačním modelům) nejsou předem definované. Představme si například, že máme obrázky lidí a psů, ale nemáme označené (anotované), které obrázky jsou co. Můžeme pak vytvořit shlukovací model, který v obrázcích rozpozná vzory, které odlišují lidi od psů, a sloučí nám obrázky psů do jedné skupiny a obrázky lidí do skupiny druhé.
  • Redukce dimenzionality se pak aplikuje převážně v případech, kdy chceme trénovat model strojového učení, ale máme mnoho vstupních proměnných (což může modelu ztížit trénování, neb mu trvá, než zjistí, které proměnné jsou relevantní a které ne). Navažme na výše zmíněný příklad s rozdělováním obrázků do skupin psů nebo lidí a představme si, že společně s obrázkem daného člověka či psa modelu dáváme také informaci o pohlaví a jeho jméno. Model si pak sám bude muset vyvodit, že jméno a pohlaví nejsou relevantní, ale pokud prvně použijeme jeden z algoritmů pro redukci dimenzionality, zjistíme, že tyto dvě proměnné výsledek neovlivní, a tudíž je modelu vůbec nemusíme předkládat.
(nebo také zpětnovazebné učení) je metoda strojového učení, u které model opakovaně interaguje s prostředím a na základě odezvy upravuje své chování (je „odměňován“ za svá rozhodnutí). Skvělým příkladem je program Alpha Zero, kterému vývojáři ukázali pravidla šachu, nechali ho opakovaně hrát proti sobě samému a na základě odezev (za výhru dostal Alpha Zero pozitivní odezvu, za prohru naopak negativní) si vybudoval strategie, díky kterým porazil šachové velmistry.

Autor textu: Roman Dušek, Vojtěch Jindra
Editor: Herbert Ullrich
Odborní garanti: Pavel Kordík, Jiří Materna, Antonín Král
Datum poslední revize: 09/22

Máte dotaz nebo hledáte podporu? Zeptejte se komunity či správců v naší FB skupině.

Pilotní vzdělávací program Umělá inteligence do základních škol 2022/23 realizuje Pražský inovační institut
v rámci projektu iKAP II — Inovace ve vzdělávání. Registrační číslo: CZ.02.3.68/0.0/0.0/19_078/0021106.

AI dětem © 2022. Využíváme cookies pro měření návštěvnosti webu.
Všechny vznikající metodiky podléhají licenci Creative Commons 4.0 Mezinárodní Licence.

Licence Creative Commons