Strojové učení
Začalo 21. století. Očekává se, že to bude století informačních technologií, informační a znalostní společnosti. Poznání se ve všech oblastech lidské činnosti stále intenzivněji prohlubuje. Vytvářejí se a upřesňují teorie, při jejich popisu se uplatňuje matematika. Teorie pak umožňují tyto oblasti algoritmizovat, převést teoretické znalosti do znalostního systému. Mají ale omezený rozsah platnosti. Proto je třeba je spojovat, řešit rozsáhlejší systémy, které pokryjí více oblastí najednou. Také je třeba využívat je zároveň s předchozími zkušenostmi s jejich aplikací. Znalosti zkušeností už nebývají tak přesné jako znalosti teoretické, mohou mít heuristický charakter, ale přesto bývají velmi užitečné. Hrají – a budou hrát čím dál víc – integrační roli. Ve znalostních systémech se tedy uplatní jak znalosti teoretické, tak heuristické.
Znalostní počítačové systémy
Do systémů se znalosti vkládají převážně „ručně“ (pomocí technologie nazývané znalostní inženýrství), což však je velmi pracné. Když se začátkem osmdesátých let se znalostními systémy začínalo, šlo o systémy s desítkami znalostí (obecných tvrzení). I ty daly dost práce. Dnes ale je např. v systému CYC (jednom z největších, na němž rozsáhlý tým pracuje už 17 let) zhruba 106 „ručně“ nashromážděných znalostí. Střídavě je zatracován i oslavován, protože se jeví jednou jako beznadějné, pak zase jako velmi nadějné úsilí. Pracnost je ale třeba omezit a tvorbu znalostí automatizovat. Na využití znalostí je zaměřena umělá inteligence, na jejich automatizované vytváření strojové učení, které je jádrem umělé inteligence. Je téměř shodné s moderní (až módní) disciplínou nazývanou těžení z dat (viz Vesmír 79, 683, 2000/12). Když uvažuji o strojovém učení, mám na mysli obě tyto disciplíny.Úspěchy a paradoxy
Strojové učení dosahuje úspěchů, jeho aplikace (v prestižních společnostech, jako jsou Master Card, American Express nebo DaimlerChrysler) jsou právem oslavovány. Lze se s nimi setkat v marketingu či v předvídání cen akcií, při odhalování peněžních podvodů, v lékařské i technické diagnostice a také např. v robotí kopané (viz Vesmír 78, 687, 1999/12). Mohlo by vás překvapit, jestliže uvidíte roboty dostávající se do obtížně řešitelných nebo neřešitelných situací, a přitom víte, že mohou používat ty tak úspěšné technologie strojového učení. Nebo čtete o experimentu, který vyřeší matematický problém nalezení všech rozkladů množiny na podmnožiny s 90% přesností, zatímco matematik nebo program, který si pro to uděláme, ho řeší s přesností 100%. Nebo můžete na internetu sledovat diskusi, kde se referuje o neuronové síti zvyšující přesnost rozpoznání parity 1) s počtem skrytých neuronů – při 10 neuronech až někam k přesnosti 99,3 %. Přitom ale víte, že existují další přístupy strojového učení, které problém řeší přímo se 100% přesností. Tyto paradoxy ilustrují kritiku, jíž chci strojové učení podrobit. Jaké je tedy strojové učení? Shrnu své závěry:- Strojovému učení (a umělé inteligenci) se věnuje velká pozornost.
- Přesto je ve strojovém učení patrná určitá stagnace. Spočívá v tom, že se uvedené a podobné další paradoxy neřeší, i když by se řešit měly a mohly.
- Jsou však patrné i náznaky nazrávání (možná i velkých) změn.
- V České republice se strojovému učení a umělé inteligenci věnuje poměrně malá pozornost.
„Učení“ není učení
Podle dnes snad nejuznávanější učebnice strojového učení (T. M. Mitchell, 1997) se systém učí, jestliže se jeho výkonnost na dané třídě úloh zlepšuje se získáváním zkušeností. 2) Tato definice zobecňuje a shrnuje současné nejdůležitější filozoficko-biologicko-psychologicko-informatické představy o učení. Je hodně obecná, založená na obecných pojmech zkušenost, třída úloh a výkonnost. Proto ji Mitchell nahradil konkrétnější definicí, která říká, že je užitečné dívat se na učení jako na vytváření nějaké funkce. Popis takové funkce pak můžeme považovat za znalost. Znalostí může být třeba pravidlo určující, zda a jak má robot-fotbalista přihrát, odpovídající funkcí je schopnost přihrát. Ta může záviset na mnoha proměnných, jako jsou pozice přihrávajícího, spoluhráčů či protihráčů nebo rychlost vystřeleného míče, rychlost hráčů apod. Taková funkce se vytváří na základě konkrétních zkušeností, např. zkušeností se situací vedoucí k úspěšné, nebo naopak neúspěšné přihrávce. Návrháři robota, jenž se stal v roce 1999 vítězem celosvětového turnaje v robotí kopané, např. použili 5000 situací popsaných 174 proměnnými, aby naučili roboty přihrávat. V učení jde o takové zobecnění zkušeností, které tyto zkušenosti úsporným způsobem popíše.Užitečnost konkrétnější definice je pochopitelná. Je to „z nouze ctnost“. Většina současných přístupů k strojovému učení totiž odpovídá této konkrétnější definici. A v tom je problém. Jaký? Srovnejme obě definice. Hlavní rozdíl vidím v tom, že zatímco konkrétnější definice se zabývá samotným aktem vytvoření nějaké datové struktury, pomocí níž je funkce-znalost v systému popsána, obecná definice zasazuje učení do kontextu širšího systému. Jestliže v tomto systému nebude řešení úloh nebo realizace výsledku tohoto řešení, jestliže systém nebude mít možnost použít své zkušenosti a jestliže nebude možno vyhodnotit jeho výkonnost, pak o učení nelze mluvit. Učení je zde pevně spjato s dalšími kognitivními funkcemi. Problém je v tom, že většina současných přístupů k strojovému učení toto nutné spojení nerespektuje, tj. neodpovídá uvedené definici. A to je základní příčinou paradoxů i příčinou stagnace. To jsou jistě opovážlivá tvrzení, ale dále je doložím.
- Příčiny paradoxů. Příčin je zřejmě řada a jsou navzájem propleteny. První z nich je nedorozumění nebo neporozumění strojovému učení. Někteří výzkumníci přímo řeší strojové učení v souladu s výše popsanou konkrétnější definicí. To se projeví, když chceme strojové učení použít. Aplikaci strojového učení je pak třeba doplnit o další rozšiřující stavy-kroky. V souladu s P. Langleyem a H. A. Simonem to mohou být: 1) formulace problému, tj. určení toho, co se bude učit, jaká funkce se bude vytvářet, jaká závislá proměnná se bude sledovat, 2) určení toho, jaké nezávislé proměnné se budou při vytváření funkce používat, 3) shromažďování zkušeností, 4) vyhodnocení naučené znalosti a 5) zpoužitelnění znalosti (zajištění uživatelského prostředí, vysvětlování znalostí či zasazení do existujícího znalostního systému).
Například návrháři robotího vítěze určili, že budou roboty učit přihrávat, vybrali pro to 174 proměnných a použili 5000 situací zmiňovaných výše. Zejména první dva kroky téměř nejsou zautomatizovány. To se projeví nepružným přístupem k strojovému učení, jehož důsledkem je paradox bezradných robotů. Návrhář robota určí pevnou množinu proměnných, z jejichž hodnot vznikne znalost. Např. kráčející robot při robotí kopané je schopen rozpoznat právě jen pět typů objektů: míč, spoluhráče, protihráče, branky, a lampionky v rozích i středech delších hranic hřiště. Není schopen naučit se rozpoznávat objekt nový (např. mantinel hřiště) nebo svou neschopnost mantinel přelézt. To by mu příště pomohlo bezradnost překonat.
- Prostředí a příležitost. K nedorozumění možná přispívá i to, že se strojové učení ve svých pravděpodobnostních přístupech překrývá a vzájemně ovlivňuje s problematikou řešenou matematickou statistikou, popřípadě s dalšími disciplínami, které mají své cíle definované jinak. Neporozuměním je i neodpovídající pohled na roli, jakou v strojovém učení hraje prostředí. Neporozuměním je též přístup k strojovému učení jako k řešení problémů. Učení je totiž založeno spíše na příležitosti, ve smyslu „náhoda přeje připraveným“. Má-li štěstí, že mu prostředí ukáže něco zajímavého, tj. nového, co dosud nezažil, čemu dosud nerozuměl, ale k čemu již doplněním svých znalostí dozrál, pak může dospět k pochopení a touženému AHA efektu. Důležitost prostředí např. pochopili ti badatelé v umělé inteligenci, kteří se zabývají roboty a agenty. Někdy to až přehánějí, říkají, že v prostředí se dá najít všechno. Prosazují umělou inteligenci bez dedukce, bez znalostí o něm. Prostředí je však jak zdrojem informací, tak zkušeností pro strojové učení. Proto je mu třeba věnovat náležitou pozornost.
- Přehnané přizpůsobení. Na jednom mezinárodním semináři o učení si jeden účastník povzdechl: „Dá to strašnou práci!“ (míněno: přimět počítač, aby se něčemu užitečnému naučil). Myslím, že to plyne z uvedené situace i z dalších omezení strojového učení, o kterých dnes víme: Algoritmy strojového učení jsou většinou výpočetně velmi náročné, vytvořená znalost může mít charakter lokálního optima a vyvolá přizpůsobení přehnané, tj. přílišné ovlivnění výsledné znalosti konkrétními zkušenostmi. Za této situace je oprávněná snaha řešit složitý problém podle heuristiky od jednoduššího k složitějšímu, tedy „zdola nahoru“. Navrhují se a zkoušejí jednotlivé dílčí algoritmy strojového učení, vytvářejí se jednoduché, nestrukturované dílčí znalosti. To vede k roztříštěnosti strojového učení. Jsou propracovány hlavně následující poměrně samostatné, ale trochu se i překrývající oblasti, které se rozlišují dle reprezentace znalostí nebo přístupu: učení rozhodovacím stromům, pravidlům, případové studie, pravděpodobnostní přístupy, neuronové sítě, bayesovské sítě, genetické algoritmy.
- Zdola nahoru. Na některých mezinárodních konferencích a pracovních setkáních se navrhují další výzkumné cíle. Např. na Automated Learning Discovery r. 1998 jsem takových cílů napočítal 29. Šlo o cíle jako strojové učení ve velmi velkých databázích s mnohodimenzionálními prostory vlastností, strojové učení robotů, strojové učení pro víceúlohové zpracování, pro extrakci informací z textů apod. Podíváme-li se na jeden cíl podrobnějí, co uvidíme? Při čerpání informací z textů se vezmou známé metody zpracování, jako je syntaktická analýza, a využije se známá jazyková báze znalostí WordNet. S jejich pomocí se odvodí informace o zpracovávaných textech, a potom se standardními technikami strojového učení (např. neuronovými sítěmi, viz Vesmír 79, 683, 2000/12) indukuje nějaká schopnost, třeba rozpoznávání vlastních jmen. Z hlediska pracnosti je v tom řádově 70 % zpracování přirozeného jazyka a 30 % strojového učení. Jde o čistou aplikaci strojového učení.
- Paradox nepřesného nalezení rozkladů množiny plyne z jednoduchého – nestrukturálního – přístupu k strojovému učení. Podíváte-li se na to, jak nalezení rozkladů řeší program, který jsem si pro to udělal, zjistíte, že k tomu používá relativně hodně poměrně složitě propojených pojmů. Odhaduji kolem 30 běžných matematických a programovacích pojmů – relací. Nemůžeme se pak divit, že se jedinou aproximací jedné funkce nedosáhne stejných výsledků. Nejjednodušší je vysvětlení posledního paradoxu: nebyla respektována skutečnost, že různé reprezentace znalostí nebo přístupy jsou vhodné v různých podmínkách. V případě parity nejsou vhodné neuronové sítě, zato je vhodné užít induktivní logické programování.
- Přístupy a příklady. Přístup „od jednoduššího k složitějšímu“ je možný, ale byl by racionálnější, vyváženější, kdyby se používal spolu s přístupem „shora dolu“, kdyby se zároveň vytvářel celkový obraz strojového učení. Dnes pro to neexistuje žádná jednotící teorie a M. Minsky dokonce hledání takové teorie zpochybňuje. Na několika nedávných pracovních setkáních, kde se o strojovém učení diskutovalo, však bylo řečeno, že by taková teorie byla velice potřebná. Nemusela by hned mít podobu přesných matematických axiomů a teorémů. Proč by se nemohl postupně upřesňovat soubor znalostí, na nichž se jakž takž shodneme?
Ve strojovém učení se požadují přesvědčivé příklady aplikací. To je jistě správné, pokud se to nepřehání. Jenže ono se to přehání (jak dokládá zastoupení technických prací účastníků konference ICML 2000): 54 % experimentálních, 11 % formálních a 35 % aplikačních. Žádná z prací nebyla zobecňující. Tuto nezdravou nevyváženost sice nevyvolal požadavek aplikací sám, ale přispěl k ní.
- Kdo má lepší výkonnost? Téměř povinnou součástí každé experimentálně zaměřené práce o strojovém učení je hodnocení navržené metody – systému. To by bylo v pořádku, kdyby se hodnocení přisuzovalo odpovídající místo. Něco jako „ano, naše hodnocení je jistě velice přibližné, lépe to však neumíme“. Dělá se to ale jinak. Často se používá kvalitativní hodnocení. To, že má systém vůbec nějakou vlastnost, např. dedukci nebo učení, celkem o ničem nevypovídá, protože vlastnosti je třeba posuzovat v kontextu s vlastnostmi dalšími. Problematické je i kvantitativní hodnocení. Neviděl jsem takové, které by říkalo, že navržená metoda je ve všech ohledech horší (či lepší) než metody jiné. Většina metod je v některých vlastnostech lepší, ale v jiných horší. Tento přístup je dost neobjektivní. Záleží na subjektivním výběru hodnocených vlastností a na tom, s čím se výběr srovnává. Neobjektivní hodnocení může brzdit vývoj celé disciplíny. Proto dávám přednost způsobům hodnocení, které se uplatňují při turnajích v robotí kopané. Ač jde o různé systémy, lze srovnávat jejich celkovou výkonnost. Lepší výkonnost má ten, kdo vyhrává. Jsou-li si systémy výkonnostně blízké, může být výsledek hodnocení náhodný, v opačném případě se pravda brzy ukáže.
To vše připomíná situaci v biologii před Darwinem. Tenkrát se jednotlivé biologické druhy podrobně a ve velkém rozsahu zkoumaly bez znalosti jejich podstatných vlastností daných evolucí. Ve strojovém učení se dnes zkoumají jednotlivé algoritmy bez důkladnější znalosti vztahů mezi nimi.
Integrace, integrace a integrace
Zmínil jsem se o neporozumění kontextu strojového učení, roli prostředí, přílišné konkrétnosti, roztříštěnosti, zdůrazňování dílčích hledisek. Vlastně jde o zvláštní případy nedostatečné integrace strojového učení do celého znalostního systému. V podobném duchu je možné kritizovat i malou integraci v rámci celé umělé inteligence. Každá integrace ale musí být založena na analýze toho, co je potřeba integrovat. V umělé inteligenci například nejsou jasně rozpoznány základní kognitivní funkce, které by bylo možno použít pro řešení dalších funkcí. Stává se, že se např. v rámci strojového učení řeší problémy identifikace nebo plánování. Ty by se ale měly řešit samostatně, důkladněji a s ohledem na vícenásobné použití. Souvisí to také s přístupem k standardizaci. V komerční informatice softwarové inženýrství postupně prosazuje standardizovaný jazyk modelování, v umělé inteligenci je jeho užití zatím bílou vránou. To vede jednak k plýtvání duševním potenciálem, jednak to zhoršuje možnosti řešení složitých systémů.Mám také pocit, že umělá inteligence podléhá módním trendům a dá se ovlivnit prohlášeními silných osobností. Na Minského se svádí, že zavinil zpoždění rozvoje neuronových sítí. Příkladem módních vlivů může být vztah k stochastičnosti. Dnes je „vše“ stochastické, před 20 lety bylo naopak „vše“ deterministické (přitom prostředí je stále stejné). Strojové učení možná výrazně ovlivnilo tvrzení D. Lenata (tvůrce systému CYC), že pokrok ve strojovém učení je závislý na pokroku ve zpracování přirozeného jazyka – a naopak pokrok ve zpracování přirozeného jazyka je závislý na pokroku ve strojovém učení. Proto také Lenat ve svém systému zpočátku ani jednu z těchto technologií nepoužíval. Sice tak elegantně „vyřešil“ problém „slepice a vejce“, ale strojovému učení tím nepomohl. Podobně sem může patřit i závěr P. Langeleyho a H. Simona, že strojové učení nemusí být plně automatizovatelné (ekvivalent k tomu, že se třeba nepodaří zkonstruovat plnou umělou inteligenci). Takto opatrně formulovaná prohlášení jsou nenapadnutelná. Otázkou je, zda stojí za to riskovat, že někdo tu opatrnost přehlédne.
Nepochopení, potíže, stagnace, to vše v tomto oboru existuje (kde ne?), ale zároveň lze slyšet myšlenky přinášející obecnější, obsáhlejší a perspektivnější pohledy – zárodky naděje. Za nejdůležitější považuji snahy o integraci. Jejich součástí byl i návrh uvážit znovu koncepci obecného řešitele problémů. Příkladem takové integrace jsou aplikace v reálném prostředí, které mají minimálně tři části: první zpracovává informace o prostředí, druhá je přenáší do plánů a třetí naplánované řídící zásahy uplatňuje v prostředí. Takovou aplikací jsou již zmiňovaní roboti hrající kopanou (Vesmír 78, 687, 1999/12) a další (viz rámeček).
A jak u nás doma?
K optimistickému pohledu na strojové učení přispívá pozornost, která je této disciplíně věnována ve světě. Je přirozené, že v informační společnosti má informatika zelenou. Pro srovnání uvedu několik čísel, na kterých ilustruji situaci u nás: Česká společnost pro kybernetiku a informatiku má asi 250 členů, z toho se jich asi 100 zabývá umělou inteligencí. Německá Gessellschaft für Informatik má 20 000 členů, v umělé inteligenci 3000. V České republice věnovala Grantová agentura AV ČR v roce 2000 na informatiku 1,2 % svého rozpočtu, v Evropě Pátý rámcový program v letech 1999–2002 vyčlenil 30,5 % rozpočtu. Celosvětového utkání v robotí kopané se loni zúčastnilo 150 týmů, z toho 18 bylo německých. Od nás se nezúčastnil žádný tým. Přesto jiskérky naděje poletují i v Čechách. Koncem minulého roku uspořádala některá česká pracoviště seminář Dobývání znalostí z databází 2000 a letos již proběhla konference Znalosti 2001, která zahrnovala i problematiku strojového učení.Poznámky
ROBOTICKÉ PROJEKTY A INTEGRACE
- Švédská nepilotovaná helikoptéra a americké nepilotované vesmírné letadlo. Tyto projekty jsou zajímavé nejen jako příklady úspěšnosti a nezbytnosti integrace mnoha kognitivních funkcí, ale i svým odlišným vztahem k strojovému učení. Švédský projekt s jednoduchým strojovým učením počítá, americký ne. NASA je tak opatrná, že „nechce ztratit stoprocentní kontrolu nad zařízením“.
- Spojení strojového učení s ontologií (sítí pojmů, které jsou pospojovány různými relacemi, např. relacemi zobecnění). Na konferenci ECML 2000 byl jeden ze seminářů zaměřen na problematiku zpracování přirozeného jazyka. Zatím se prezentované algoritmy omezují na vytváření pouze určitých částí ontologie – některých typů relací nebo některých pojmů. Bývají často motivovány potřebou získávat znalosti z internetu. Založeny jsou na zpracování textu, jeho syntaktické analýze, použití existující ontologie (např. báze WordNet popisující sémantiku nejběžnějších anglických slov). Výsledkem strojového učení je obohacení ontologie o nové pojmy, relace, vzory struktur pro zpracování textů.
- Podpora pokročilejších částí strojového učení. Mluví se o uplatnění strojového učení v dalších kognitivních funkcích, v plánování, při zpracování přirozeného jazyka či vizuálních informací, v robotice, při vědeckém objevování. Jde také o integraci – ovšem teprve začínající. Zatím jde převážně o propojení strojového učení s jedinou další kognitivní funkcí. Krom toho integrace dosud není zdůrazňována přímo z hlediska strojového učení. Až to vše uzraje a propojí se vše se vším, může (ale nemusí) se zásadním způsobem změnit kvalita umělé inteligence.
Ke stažení
- Článek ve formátu PDF [235,12 kB]