Nebudeme řešit, jak rozpozná houby od ostatních objektů, to je mimochodem také dobrý úkol pro strojové učení. Předpokládejme situaci, kdy se vozidlo přiblíží k houbě, přezkoumá ji svým senzorovým systémem a má se rozhodnout, zda ji jako jedlou vezme, tehdy ji i označí, aby se dala identifikovat a spárovat s údaji ze senzorů, případně jako nejedlou, zda jedovatou nechá nepovšimnutou na místě. Senzory zjišťují tolik parametrů, kolik se jen dá, většinu z nich na základě rozpoznávání obrazu. U hub to budou barva, tvar a povrch klobouku, velikost, tvar a barva žebrování, tvar a barva nohy, tvar prstýnku, pokud jej houba má, zápach, zda se houba vyskytuje jednotlivě, nebo ve shlucích, a prostředí, ve kterém houba roste.
Vyhodnocování tolika parametrů trvá dost dlouho, ale nedá se nic dělat, alespoň zpočátku ne. Předpokládejme teoretickou situaci, že řídicí systém na tento úkol není explicitně naprogramován – přesně jako v definici strojového učení. Proto při první sklizni vozidlo přinese na základnu všechny houby, na které natrefilo. Na základně znalec houby vytřídí a sdělí řídicímu systému vozidla, které houby byly jedlé.
Takových výletů, kdy vozidlo přinese všechny houby, bude ještě několik, avšak od určitého okamžiku, kdy učící algoritmus usoudí, že je k dispozici dostatek případů na vytvoření rozhodovacího modelu, začne robot sbírat pouze houby, o kterých si myslí, že jsou jedlé. Samozřejmě zpočátku bude dělat chyby a nosit na základnu i jiné houby jako jedlé, ale jejich počet bude při dalších pokusech postupně klesat. S postupujícím časem učení bude růst nejen úspěšnost rozhodování, ale i rychlost celého procesu.
Výsledkem vytvořeného modelu je totiž i určení relevance jednotlivých atributů. V našem případě je nejdůležitějším kritériem pro určení palatibility houby zápach. Jedlé houby jsou bez zápachu, nebo takové, jež jsou cítit po anýzu či po mandlích. A naopak houby, které mají hnilobný zápach, se s největší pravděpodobností dají sníst pouze jednou. Následují barva žebrování, tvar prstýnku...
Některé atributy mají naproti tomu na rozhodování nepatrný až žádný vliv, takže se je nevyplatí měřit, a proces rozpoznávání se zrychlí. Takto se po jednotlivých iteracích predikční model zpřesňuje a často i zjednodušuje fáze sběru dat ze senzorů.
Námět příkladu z předchozí statě byl úmyslně zvolen tak, aby vysvětloval i souvislost internetu věcí, sběru a analýzy dat v cloudu a strojového učení. Tušíte správně, základna, kde robotické vozidlo vozí houby na analýzu znalci, je analogií cloudové služby na sběr a analýzu. Proces strojového učení sestává z iterací a každá iterace má několik fází. První fáze se týká získání požadovaných údajů ve vhodné formě. K tomu je zapotřebí výběr relevantní množiny dat, jejich předzpracování a transformace. Následují dolování dat (datamining) a tvorba modelů pro rozhodování.
Důležitou fází pro úspěšnost celého procesu je vyhodnocení získaných vztahů a jejich validace. Postupně v průběhu jednotlivých iterací se dělá kontrola a upřesnění natrénovaná systémem a zvýšení váhy relevantních atributů. Pokud se úspěšnost systému dostane nad určitou úroveň, systém sám začne předvídat navazující akce. To je v naší analogii případ, kdy robotické vozidlo už nepřiveze na základnu všechny houby, ale pouze ty, o kterých si myslí, že jsou jedlé.
Algoritmy
Algoritmy strojového učení je možné rozdělit na inkrementální a neinkrementální. Inkrementální algoritmy strojového učení jsou schopny zpracovávat údaje, které přicházejí postupně. Po příchodu nového případu se modifikují dosud známé znalosti. Neinkrementální algoritmy zpracovávají všechny trénovací příklady najednou. Analytické modely využívají statistické metody, hlavně korelaci, lineární a logistickou regresi, diskriminanty, analýzu a další. Složitější postupy jsou někdy realizovány pomocí neuronových sítí a genetických algoritmů.
Například takzvaný horolezecký princip je založen na hledání extrému v lokálním okolí aktuálního bodu. V každé iteraci je prozkoumáno okolí aktuálního neboli nejlepšího dosud nalezeného řešení. Nevýhodou tohoto algoritmu je, že sice dokáže najít lokální extrém rychle, ale často v něm uvízne, když se v okolí nenachází lepší řešení. Neuronové sítě určitým způsobem simulují strukturu lidského mozku, který se od dětství postupně učí, získává poznatky z množiny podnětů z okolního světa.
Podobně i neuronové sítě získávají poznatky z množiny vstupů a na jejich základě dolaďují své parametry modelu vzhledem k novým znalostem. Zpracování pomocí neuronových sítí tedy nevychází ze žádného statistického rozdělení, ale pracuje podobně jako lidský mozek na principu rozpoznávání vzorů a minimalizace chyb. Tento proces si můžete představit jako přijímání informací a poučení se z každé zkušenosti, tak aby byla nalezena v údajích určitá schémata.
Současná umělá inteligence dokáže řešit pouze problémy, pro které byla vytvořena. Některé problémy se na první pohled zdají být složité, ale ve skutečnosti složité nejsou. I učení „bez učitele“ je v konečném důsledku pouze algoritmus provádějící postupy naprogramované člověkem. Naproti tomu člověk je schopen vidět okolní svět v souvislostech a být kreativní, a to i co se týče použití algoritmů.
Po vytvoření algoritmu schopného generovat básně určitě tvůrce algoritmu napadne myšlenka, že by se modifikovaný algoritmus dal použít i pro generování notového zápisu hudby. Stroje na současné úrovni tuto souvislost nevidí, a situace v této oblasti se zřejmě tak brzy nezmění.
Autor je redaktorem PC Revue.