V dnešní době je již zcela běžné slyšet, že se o moderních systémech strojového učení mluví jako o „černých skříňkách“. Jako příklad uveďme nedávný díl podcastu Sama Harrise, v němž vedl rozhovor s průkopníkem umělé inteligence Stuartem Russellem. Harris se ptá:

„Takže, pokud se nemýlím, většina, ne-li všechny tyto přístupy hlubokého učení nebo dokonce obecněji přístupy strojového učení jsou v podstatě černé skříňky, u kterých nemůžete pořádně zkontrolovat, jak algoritmus dosahuje toho, čeho dosahuje.“

Ačkoli je tato metafora vhodná pro některé konkrétní situace, ve skutečnosti je obecně dost zavádějící a může způsobovat značný zmatek. Jak uvidíme, systém hlubokého učení není černou skříňkou; dokonce ani vývoj takového systému nemusí být černou skříňkou. Skutečným problémem však je, že obě tyto věci jsou složité a ne vždy dobře pochopené. Zde bych se chtěl pokusit objasnit některé z těchto myšlenek a zároveň se zamyslet nad tím, co máme na mysli pod pojmem vysvětlení.

Jak vysvětlím níže, domnívám se, že zmatek vzniká přinejmenším zčásti z mylných představ, které mají lidé o fungování těchto systémů. Když lidé sahají po metafoře černé skříňky, zřejmě tím vyjadřují skutečnost, že je obtížné pochopit smysl jednotlivých komponent modelu strojového učení. Ačkoli je to skutečně obtížné, chci tvrdit, že je to také nerealistické očekávání. Cestou se pokusím vysvětlit rozdíl mezi modely a způsobem jejich trénování, proberu scénáře, v nichž je metafora černé skříňky vhodná, a naznačím, že v mnoha ohledech jsou skutečnými černými skříňkami lidé, alespoň pokud jde o strojové učení.

Vysvětlení

Na úvod je užitečné zamyslet se nad tím, co mají lidé na mysli, když mluví o vysvětleních. V žádném případě nejde o triviální otázku, ale zdá se, že existují přinejmenším dva obzvláště relevantní způsoby, jak o tom uvažovat.

Když se někoho ptáme na vysvětlení, proč něco udělal („Proč jste udělal X?“), operujeme s určitým souborem výchozích předpokladů. V případě pečlivě učiněného rozhodnutí obvykle předpokládáme, že dotyčný měl nějaký dobrý důvod k tomu, aby jednal tak, jak jednal, a v podstatě se ptáme na proces uvažování, který k rozhodnutí použil. Například můžeme očekávat, že zvážili všechna pro a proti a zvolili určitý postup na základě očekávání, že povede k určitému konkrétnímu výsledku.

Pokud se ptáme na to, proč se něco nepovedlo, ptáme se naopak na jakési post-hoc vysvětlení selhání. Například po autonehodě můžeme chtít vysvětlení toho, co nehodu způsobilo. Byl řidič nepozorný? Způsobilo jeho odbočení jiné auto? Spíše než na proces uvažování se víceméně ptáme na kritický podnět, který způsobil určitou reakci vymykající se normálnímu chování.

Když lidé uvažují o umělé inteligenci, mají zřejmě obvykle na mysli první druh vysvětlení. Očekávají, že systém provedl úvahu a zvolil postup na základě očekávaného výsledku. Ačkoli existují případy, kdy je to možné, stále častěji jsme svědky posunu směrem k systémům, které se více podobají druhému případu; to znamená, že přijímají podněty a pak prostě reagují.

Jsou pro to velmi dobré důvody (v neposlední řadě proto, že svět je složitý), ale znamená to, že je těžší pochopit důvody, proč bylo učiněno určité rozhodnutí nebo proč jsme skončili u jednoho modelu na rozdíl od jiného. S ohledem na to se podívejme na to, co máme na mysli pod pojmem model, a na metaforu černé skříňky.

Skříňky a modely

Metafora černé skříňky pochází z počátků kybernetiky a behaviorismu a obvykle označuje systém, u kterého můžeme pozorovat pouze vstupy a výstupy, ale ne vnitřní fungování. B. F. Skinner takto skutečně pojímal mysl obecně. Přestože úspěšně prokázal, jak lze určité naučené chování vysvětlit pomocí posilovacího signálu, který spojuje určité vstupy s určitými výstupy, dopustil se pak slavné chyby, když se domníval, že tato teorie může snadno vysvětlit veškeré lidské chování, včetně jazyka.

Jako jednodušší příklad černé skříňky uveďme myšlenkový experiment od Skinnera: Dostanete skříňku se sadou vstupů (spínače a tlačítka) a sadou výstupů (světla, která buď svítí, nebo nesvítí). Manipulací se vstupy jste schopni pozorovat odpovídající výstupy, ale nemůžete nahlédnout dovnitř a zjistit, jak krabička funguje. V nejjednodušším případě, jako je vypínač světla v místnosti, je snadné s velkou jistotou určit, že vypínač ovládá úroveň osvětlení. U dostatečně složitého systému však může být fakticky nemožné určit, jak krabice funguje, pouhým zkoušením různých kombinací.

Představte si nyní, že vám je dovoleno otevřít krabici a podívat se dovnitř. Dokonce dostanete úplné schéma zapojení, které ukazuje, jaké jsou všechny komponenty a jak jsou zapojeny. Navíc žádná ze součástek není sama o sobě složitá; vše je sestaveno z jednoduchých součástek, jako jsou rezistory a kondenzátory, z nichž každá má chování, které je izolovaně dobře pochopitelné. Nyní máte nejen přístup k úplné specifikaci všech součástek v systému, ale můžete dokonce provádět experimenty, abyste zjistili, jak jednotlivé součástky reagují na konkrétní vstupy.

Mohlo by vás napadnout, že se všemi těmito informacemi v ruce budete nyní schopni dobře vysvětlit, jak krabička funguje. Koneckonců, každá jednotlivá součástka je srozumitelná a nejsou v ní žádné skryté informace. Bohužel složitost vzniká vzájemným působením mnoha jednoduchých komponent. U dostatečně složitého systému je nepravděpodobné, že byste byli schopni předpovědět, jaký bude výstup krabičky pro daný vstup, aniž byste provedli experiment, který by to zjistil. Jediné vysvětlení, proč krabice dělá to, co dělá, je, že všechny komponenty se řídí pravidly, která upravují jejich individuální chování, a celkové chování vyplývá z jejich interakcí.

Ještě důležitější je, že kromě toho, jak systém funguje, byste pravděpodobně nedokázali vysvětlit, proč byla každá komponenta umístěna tam, kde je, i kdybyste znali celkový účel systému. Vzhledem k tomu, že krabice byla navržena k nějakému účelu, předpokládáme, že každá komponenta byla přidána z nějakého důvodu. U obzvláště chytrého systému však může každá složka nakonec zastávat více rolí, jako v případě DNA. To sice může vést k velmi efektivnímu systému, ale zároveň je velmi obtížné vůbec uvažovat o shrnutí účelu jednotlivých složek. Jinými slovy, jak systém funguje, je zcela transparentní, ale proč je potenciálně nevyzpytatelné.

To je, jak se ukazuje, dokonalá metafora pro hluboké učení. Obecně je celý systém otevřený kontrole. Navíc se celý skládá z jednoduchých komponent, které jsou izolovaně snadno pochopitelné. I když však známe účel celého systému, nemusíme nutně nabídnout jednoduché vysvětlení toho, jak systém funguje, kromě toho, že každá jednotlivá komponenta pracuje podle svých vlastních pravidel v reakci na vstup. To je totiž skutečné vysvětlení toho, jak systém funguje, a je zcela transparentní. Složitější otázkou samozřejmě je, proč každá složka přijala roli, kterou má. Abychom to pochopili hlouběji, bude užitečné oddělit myšlenku modelu od algoritmu použitého k jeho trénování.

Modely a algoritmy

Abychom se skutečně dostali do detailů, musíme si trochu upřesnit, o čem mluvíme. Harris mluví o tom, „jak algoritmus dosahuje toho, čeho dosahuje“, ale ve skutečnosti zde máme dvě části: model – například systém hlubokého učení – a učící algoritmus – který používáme k přizpůsobení modelu datům. Když Harris mluví o „algoritmu“, má pravděpodobně na mysli model, nikoli nutně to, jak byl natrénován.

Co přesně máme na mysli pod pojmem model? I když je možná poněkud vágní, statistický model v podstatě zachycuje předpoklady, které jsme učinili o tom, jak věci ve světě fungují, přičemž podrobnosti je třeba zjistit z dat. Model zejména specifikuje, jaké jsou vstupy, jaké jsou výstupy, a obvykle i to, jak si myslíme, že by vstupy mohly vzájemně interagovat při generování výstupu.

Klasickým příkladem modelu jsou rovnice, kterými se řídí Newtonova gravitace. Model říká, že výstup (gravitační síla mezi dvěma objekty) je určen třemi vstupními hodnotami: hmotností prvního objektu, hmotností druhého objektu a vzdáleností mezi nimi. Přesněji řečeno, uvádí, že gravitace bude úměrná součinu dvou hmotností dělených čtvercem vzdálenosti. Kriticky však nevysvětluje, proč by právě tyto faktory měly ovlivňovat gravitaci; pouze se snaží poskytnout úsporné vysvětlení, které nám umožní předpovědět gravitaci pro jakoukoli situaci.

I kdyby to bylo zcela správné, potřebujeme samozřejmě k tomu, abychom mohli předpovídat, znát také příslušný škálovací faktor G. V zásadě by však mělo být možné tuto hodnotu zjistit pozorováním. Pokud jsme předpokládali správný (nebo téměř správný) model fungování věcí ve skutečnosti, máme dobrou šanci, že budeme schopni se z dat dozvědět příslušné podrobnosti.

V případě gravitace samozřejmě Einstein nakonec ukázal, že Newtonův model je jen přibližně správný a že v extrémních podmínkách selhává. Pro většinu okolností je však Newtonův model dostatečně dobrý, a proto se lidé dokázali naučit konstantu G= 6,674×10^(-11) N – (m/kg)² a použít ji k předpovědím.

Einsteinův model je mnohem složitější, s více detaily, které je třeba se naučit pozorováním. Za většiny okolností dává přibližně stejné předpovědi, jako by dával Newtonův model, ale za extrémních okolností je přesnější a samozřejmě měl zásadní význam při vývoji technologií, jako je GPS. Ještě působivější je, že sekundární předpovědi teorie relativity byly ohromující a úspěšně předpověděly například existenci černých děr dříve, než jsme vůbec mohli doufat v testování jejich existence. A přesto víme, že ani Einsteinův model není zcela správný, protože se neshoduje s modely kvantové mechaniky za ještě extrémnějších podmínek.

Gravitace je samozřejmě deterministická (pokud víme). Naproti tomu ve strojovém učení a statistice máme obvykle co do činění s modely, které zahrnují neurčitost nebo náhodnost. Například jednoduchý model toho, jak dlouho budete žít, by spočíval pouze v předpovědi průměru populace pro zemi, ve které žijete. Lepší model by mohl brát v úvahu relevantní faktory, jako je váš současný zdravotní stav, vaše geny, kolik cvičíte, zda kouříte cigarety atd. V podstatě v každém případě však bude existovat určitá nejistota ohledně předpovědi, protože neznáme všechny relevantní faktory. (To se samozřejmě liší od zjevné skutečné náhodnosti, která se vyskytuje na subatomární úrovni, ale tímto rozdílem se zde nebudeme zabývat).

Kromě toho, že se jedná o neuvěřitelně úspěšné přejmenování neuronových sítí a strojového učení (samo o sobě pravděpodobně poměrně úspěšné přejmenování statistiky), termín hluboké učení označuje určitý typ modelu, u kterého jsou výstupy výsledkem řady mnoha jednoduchých transformací aplikovaných na vstupy (podobně jako naše schéma zapojení z výše). Ačkoli jsou modely hlubokého učení jistě složité, nejsou to černé skříňky. Ve skutečnosti by bylo přesnější mluvit o nich jako o skleněných krabicích, protože se můžeme doslova podívat dovnitř a vidět, co dělají jednotlivé komponenty.

Problémem ovšem je, že tyto systémy jsou také složité. Pokud vám dám jednoduchý soubor pravidel, kterými se máte řídit, abyste mohli předpovídat, pokud jich není příliš mnoho a pravidla samotná jsou jednoduchá, mohli byste v mysli celkem snadno přijít na celou sadu mapování vstupů a výstupů. To platí také, i když v menší míře, pro třídu modelů známých jako lineární modely, kde lze účinek změny kteréhokoli vstupu interpretovat bez znalosti hodnot ostatních vstupů.

Modely hlubokého učení naopak obvykle zahrnují nelinearity a interakce mezi vstupy, což znamená, že nejenže neexistuje jednoduché mapování ze vstupu na výstupy, ale účinek změny jednoho vstupu může kriticky záviset na hodnotách ostatních vstupů. Díky tomu je velmi obtížné mentálně zjistit, co se děje, ale detaily jsou přesto transparentní a zcela otevřené kontrole.

Samotný výpočet prováděný těmito modely při vytváření předpovědi je obvykle poměrně jednoduchý; kde se věci stávají obtížnými, je vlastní učení parametrů modelu z dat. Jak bylo popsáno výše, jakmile předpokládáme určitou podobu modelu (v tomto případě pružné neuronové sítě); pak se musíme pokusit zjistit dobré hodnoty parametrů z dat.

V příkladu gravitace, jakmile jsme předpokládali „dostatečně dobrý“ model (úměrný hmotnosti a nepřímo úměrný čtverci vzdálenosti), stačí vyřešit hodnotu jednoho parametru (G), a to fitováním modelu na pozorování. Naproti tomu u moderních systémů hlubokého učení mohou být takových parametrů, které je třeba naučit, snadno miliony.

V praxi se téměř všechny tyto modely hlubokého učení trénují pomocí některé varianty algoritmu zvaného stochastický sestup po gradientu (SGD), který bere náhodné vzorky z trénovacích dat a postupně upravuje všechny parametry tak, aby se předpovídaný výstup více podobal tomu, co chceme. Proč přesně funguje tak dobře, jak funguje, není dosud dobře známo, ale hlavní věc, kterou je třeba mít na paměti, je, že i on je transparentní.

Protože je obvykle inicializován s náhodnými hodnotami všech parametrů, může SGD vést k jiným parametrům pokaždé, když jej spustíme. Samotný algoritmus je však deterministický, a pokud bychom použili stejnou inicializaci a stejná data, výsledek by byl stejný. Jinými slovy, ani model, ani algoritmus nejsou černé skříňky.

Ačkoli je to poněkud neuspokojivé, úplná odpověď na otázku, proč systém strojového učení něco udělal, nakonec spočívá v kombinaci předpokladů, které jsme při návrhu modelu učinili, dat, na kterých byl vycvičen, a různých rozhodnutí o způsobu učení parametrů, včetně náhodnosti v inicializaci.

Zpět k černým skříňkám

Proč je to všechno důležité? No, existují přinejmenším dva způsoby, jak je koncept černých skříněk vysoce relevantní pro strojové učení.

První je, že existuje spousta algoritmů a softwarových systémů (a nejen těch založených na strojovém učení), které jsou černými skříňkami, pokud jde o uživatele. Snad nejčastěji se tak děje u proprietárního softwaru, kde uživatel nemá přístup k vnitřnímu fungování a jediné, co vidíme, jsou vstupy a výstupy. Právě o takovém systému informovala ProPublica ve své reportáži o algoritmech pro vynášení soudních rozsudků (konkrétně o systému COMPAS od společnosti Northpointe). V tomto případě známe vstupy a jako výstup vidíme riziková skóre, která byla lidem přidělena. Nemáme však přístup k algoritmu, který společnost použila, ani k údajům, na nichž byl vycvičen. Nicméně můžeme s jistotou říci, že někdo má přístup k podrobnostem – pravděpodobně zaměstnanci společnosti – a je pro ně velmi pravděpodobně zcela transparentní.

Druhý způsob, jakým je metafora černých skříněk relevantní, je s ohledem na ně systémy, které se snažíme naučit, například lidský zrak. Lidské chování je v některých ohledech neobyčejně transparentní v tom smyslu, že se můžeme lidí skutečně zeptat, proč něco udělali, a získat vysvětlení. Existují však dobré důvody domnívat se, že ne vždy známe skutečné důvody věcí, které děláme. Zdaleka nejsme transparentní sami pro sebe, k mnoha vnitřním procesům, které řídí naše chování, prostě nemáme vědomý přístup. Pokud jsme požádáni, abychom vysvětlili, proč jsme něco udělali, můžeme být schopni poskytnout vyprávění, které alespoň zprostředkuje, jak na nás rozhodovací proces působil. Pokud jsme naopak požádáni, abychom vysvětlili, jak jsme schopni rozpoznávat objekty, můžeme si myslet, že jsme schopni poskytnout nějaké vysvětlení (něco zahrnující hrany a barvy), ale ve skutečnosti tento proces funguje hluboko pod úrovní vědomí.

Přestože existují zvláštní okolnosti, kdy můžeme skutečně prozkoumat vnitřní fungování lidských nebo jiných savčích systémů, jako jsou například neurovědecké experimenty, obecně se snažíme pomocí strojového učení napodobit lidské chování pouze pomocí vstupů a výstupů. Jinými slovy, z pohledu systému strojového učení je člověk černou skříňkou.

Závěr

Na závěr je užitečné zamyslet se nad tím, co lidé chtějí, když uvažují o systémech, které nejsou černými skříňkami. Lidé si obvykle představují něco jako scénář, ve kterém samořiditelné auto sjelo ze silnice a my chceme vědět proč. V lidové představivosti se zřejmě očekává, že auto muselo vyhodnotit možné výsledky, přiřadit jim pravděpodobnosti a vybrat ten, který má největší šanci maximalizovat nějaký lepší výsledek, přičemž lepší se určuje podle nějaké morálky, která do něj byla naprogramována.

V realitě je velmi nepravděpodobné, že by to takto fungovalo. Pokud se auta zeptáme, proč udělalo to, co udělalo, odpověď bude spíše znít, že použilo transparentní a deterministický výpočet pomocí hodnot svých parametrů vzhledem k aktuálním vstupním údajům, a to určilo jeho jednání. Pokud se zeptáme, proč mělo právě tyto parametry, odpověď bude znít, že jsou výsledkem zvoleného modelu, dat, na kterých byl vycvičen, a detailů použitého učebního algoritmu.

To se zdá být frustrující a neužitečné a je snadné pochopit, proč lidé sahají po metafoře černé skříňky. Uvažte však, že u systémů, které se snažíme napodobit, takový přístup ve skutečnosti nemáme. Pokud se zeptáme lidského řidiče, proč sjel ze silnice, bude pravděpodobně schopen odpovědět jazykem a podat o sobě nějakou zprávu – že byl opilý nebo roztržitý, nebo musel odbočit, nebo ho oslepilo počasí – a přesto kromě poskytnutí jakési dějové návaznosti nevíme, proč to udělal, a neví to ani on. Díky strojovému učení můžeme alespoň znovu vytvořit stejné prostředí a prozkoumat vnitřní stav. Možná je to složité na pochopení, ale není to černá skříňka.