Inteligentní agenti
Inteligentní agenti
Termostat je agent. Vnímá teplotu, ovlivňuje kotel a má míru výkonu - udržet dvacet jedna stupňů. Podle definice, kterou používá celý obor, se od robota liší jen složitostí, ne kategorií.
To zní jako slovíčkaření, ale je to ta nejužitečnější věc na celém tématu. Agentové pojetí totiž nutí říct u každého systému čtyři věci předem: co měří úspěch, v jakém prostředí to běží, čím to jedná a čím to vnímá. Většina špatně navržených systémů selhává právě proto, že se to neřeklo.
Tahle stránka zavádí pojem agenta, definuje racionalitu (a rozliší ji od vševědoucnosti), popisuje šest os, podle kterých se klasifikuje prostředí, a probere šest struktur agentů od nejhloupější po učící se. Předpokládá to stavový prostor a je dobré mít přečtené prohledávání, protože agent s cílem je přímý uživatel plánování.
Definice
Agent je cokoliv, co vnímá okolní prostředí prostřednictvím senzorů a ovlivňuje ho prostřednictvím akčních členů.
| Agent | Senzory | Akční členy |
|---|---|---|
| Člověk | oči, uši, nos | ruce, nohy, ústa |
| Robot | kamera, IR detektor | paže, kola |
| Software | klávesnice, pakety ze sítě | obrazovka, pakety do sítě |
Ta definice je záměrně tak široká, že do ní spadne skoro všechno. To je záměr - užitečné není zařazení, ale to, co po zařazení musíš doplnit.
Agentová funkce versus agentový program
Chování agenta je plně určeno posloupností všech dosavadních vjemů. Formálně se každý agent dá popsat agentovou funkcí:
V* → A
kde V je množina vjemů a A množina akcí. Hvězdička znamená „libovolně dlouhá posloupnost".
Tohle je abstraktní matematický popis, ne implementace. Agentová funkce je tabulka, která pro každou možnou historii vjemů udává akci. Uvnitř je agent definován programem, který tu funkci realizuje - a ten je typicky nesrovnatelně menší.
Vysavač
Kanonický příklad celého tématu.
- Vjemy: místo
{A, B}, obsah{čisto, špína}. - Akce: vysaj, doleva, doprava, nic.
Agentův program:
if obsah = spina then vysaj
else if misto = A then doprava
else if misto = B then doleva
Tři řádky. Odpovídající agentová funkce má pro posloupnosti délky n řádů 4^n řádků. Rozdíl mezi funkcí a programem je rozdíl mezi popisem chování a jeho realizací, a je to důvod, proč se tabulkový agent níž nedá použít.
Racionalita
Racionální agent je agent, který pro každou možnou posloupnost vjemů zvolí akci maximalizující očekávanou míru výkonu na základě údajů z posloupnosti vjemů a vnitřních znalostí.
V té větě jsou čtyři slova, která se nesmí přeskočit:
„Očekávanou". Ne skutečnou. Tohle je nejdůležitější rozlišení na celé stránce.
Racionalita není vševědoucnost. Racionální agent maximalizuje očekávanou míru výkonu, zatímco vševědoucí agent by maximalizoval skutečnou. Když přejdeš na zelenou a spadne ti na hlavu květináč z osmého patra, tvoje rozhodnutí bylo racionální. Špatně dopadlo, ale racionální bylo. Agenta soudíme podle toho, co v tu chvíli mohl vědět.
„Míru výkonu". Musí být definovaná zvenku a musí měřit to, co doopravdy chceš. Vysavač odměňovaný za množství nasáté špíny se naučí špínu vysypávat a znovu sát. Tohle není teoretická obava - je to nejběžnější způsob, jak se v praxi pokazí posilované učení.
Racionální agent by měl být autonomní. Neměl by se spoléhat jen na znalosti tvůrce, ale měl by se učit. Agent, který umí přesně to, co do něj někdo vložil, selže ve chvíli, kdy se prostředí změní.
PEAS: jak se úloha zadá
Pro popis úlohy se používá zkratka PEAS: Performance, Environment, Actuators, Sensors.
| Agent | Výkon | Prostředí | Akční členy | Senzory |
|---|---|---|---|---|
| řidič taxi | bezpečnost, rychlost, legálnost, pohodlí, zisk | silnice, doprava, chodci, zákazník | brzda, volant, plyn, směrovka, houkačka | kamera, sonar, rychloměr, GPS |
Podívej se na sloupec výkonu. Pět kritérií, která si částečně odporují. Rychlost jde proti bezpečnosti, zisk proti pohodlí. Právě to je důvod, proč u takového agenta nestačí cíl a je potřeba utilita.
PEAS napiš dřív, než napíšeš první řádek kódu. Když neumíš vyplnit sloupec výkonu, nemáš zadání a nemáš podle čeho poznat, že jsi hotov.
Šest os, kterými se popisuje prostředí
Plná versus částečná pozorovatelnost. Vidí agent celý stav světa, nebo jen kus? Částečná pozorovatelnost je důvod, proč potřebuješ vnitřní stav.
Deterministické versus stochastické. Určuje aktuální stav a akce následující stav jednoznačně? Zvláštní případ je strategické prostředí, kde je vše deterministické až na to, že stav mění další agenti.
Episodické versus sekvenční. Je každé rozhodnutí nezávislé, nebo ovlivňuje ta další? Klasifikace obrázků je episodická, řízení auta sekvenční.
Statické versus dynamické. Mění se svět, zatímco agent přemýšlí? Semi-dynamické je prostředí, které se nemění, ale míra výkonu ano - typicky šachy s hodinami.
Diskrétní versus spojité. Konečný počet stavů a akcí, nebo spojité veličiny?
Jeden agent versus multi-agentní. A pokud víc, jsou kompetitivní, nebo kooperativní?
Tabulka pro čtyři úlohy:
| Prostředí | Pozorovat. | Determin. | Episod. | Statika | Diskr. | Agenti |
|---|---|---|---|---|---|---|
| Křížovka | úplná | deterministické | sekvenční | statické | diskrétní | jeden |
| Šachy s hodinami | úplná | strategické | sekvenční | semi | diskrétní | multi |
| Taxi | částečná | stochastické | sekvenční | dynamické | spojité | multi |
| Analýza obrazu | úplná | deterministické | episodické | semi | spojité | jeden |
Řádek s taxi má na každé ose tu horší možnost. Proto je autonomní řízení tak těžké a proto to není jedna úloha, ale sada úloh, které se řeší odděleně.
Řádek s analýzou obrazu má naopak skoro všude tu snazší. Proto je počítačové vidění oblast, kde se pokročilo nejdál, a proto na něj stačí dopředná síť bez jakékoliv paměti.
Struktury agentů
Agent = architektura + program, kde architektura je výpočetní zařízení (hardware plus senzory a akční členy) a program implementuje agentovu funkci.
Struktur je šest a jdou od nejhloupější k nejchytřejší. Každá další přidává jednu věc.
Tabulkový agent
Udržuje seznam vjemů a používá ho jako index do tabulky akcí. Přímá implementace agentové funkce.
Problémy:
- tabulka je neúměrně velká, i pro omezenou dobu běhu,
- tvůrce nemá čas ji vyplnit,
- agent se ji neumí sám naučit,
- tvůrce často ani neví, jak ji vyplnit.
Takhle to nepůjde. Tenhle agent se uvádí právě proto, aby bylo vidět, že přímá cesta je slepá a že všechno ostatní je snaha tabulku nahradit něčím menším.
Agent s reflexy
Simple Reflex Agent vybírá akci pouze na základě současného vjemu, implementováno pravidly podmínka-akce: if obsah = špína then vysaj.
Funguje plně jen pro plně pozorovatelné prostředí. Jinak může cyklit - když nevidíš celý stav a rozhoduješ se jen podle toho, co máš pod nosem, snadno se dostaneš do smyčky. Řeší se to randomizací výběru, což je hrubé, ale u vysavače to stačí.
Agent s modelem
V částečně pozorovatelném světě se udržuje vnitřní stav. Sledují se dva typy informací:
- jak se svět vyvíjí nezávisle na agentovi,
- jak agentovy akce ovlivňují svět.
Tahle kombinace tvoří model světa. Je to nejdůležitější krok v celé hierarchii, protože z reaktivního systému dělá systém s pamětí.
Agent s cílem
Cíl říká, jaké situace jsou žádoucí. Agent uvažuje o budoucnosti a hledá delší posloupnost akcí - to je úkol plánování a je to přímé použití prohledávání.
Řízení cílem je méně efektivní, ale flexibilnější než reflex. Reflexní agent má reakce zadrátované a při změně prostředí je celé přepíšeš. Agent s cílem změní cíl a chování se přizpůsobí samo.
Agent s žádostmi (utility-based)
Cíle nestačí, když je potřeba měřit míru splnění nebo vybírat mezi konfliktními cíli. Stavy (nebo jejich posloupnosti) se mapují na reálná čísla - utilitu.
Vrať se k tabulce PEAS pro taxi. Cíl „dojeď do cíle" je splněn i tak, že se tam dostaneš za tři hodiny s promáčknutým blatníkem. Utilita ty rozměry sloučí do jednoho čísla, které se dá maximalizovat.
Učící se agent
Rozšiřuje libovolnou předchozí strukturu o čtyři komponenty:
- Výkonný prvek - původní agent, který volí akce.
- Učící se prvek - vylepšuje program výkonného prvku.
- Kritika - dává zpětnou vazbu, jak dobře se agent chová.
- Generátor problémů - navrhuje experimentální akce, které můžou vést k nové zkušenosti.
Kritika je ta komponenta, kterou lidi přeskočí, a je nejdůležitější. Samotné senzory nestačí - senzor ti řekne, že jsi v křižovatce, ne že jsi měl zabrzdit. Kritika převádí vjemy na hodnocení podle míry výkonu, a bez ní se agent nemá z čeho učit.
Generátor problémů je důvod, proč se učící se agent chová občas hloupě záměrně. Kdyby vždycky dělal to, co považuje za nejlepší, nikdy by nezjistil, že existuje něco lepšího. Tomuhle kompromisu se říká exploration versus exploitation a je to jádro posilovaného učení.
Co se na tom nejčastěji rozbije
| Příznak | Kde je problém |
|---|---|
| Agent cyklí mezi dvěma akcemi | reflexní agent v částečně pozorovatelném prostředí - chybí vnitřní stav |
| Optimalizuje něco jiného, než jsi chtěl | špatně definovaná míra výkonu, ne špatný algoritmus |
| Funguje v simulaci, selže v realitě | prostředí je stochastické a model předpokládá determinismus |
| Nezvládá konflikt cílů | potřebuje utilitu, ne cíl |
| Neučí se, i když má učící prvek | chybí kritika, nebo dává příliš řídkou zpětnou vazbu |
| Uvázne na první dobré strategii | chybí generátor problémů, agent nezkouší nic nového |
Praktická pravidla
Napiš PEAS dřív než kód. Když neumíš vyplnit sloupec výkonu, nemáš zadání.
Zařaď prostředí podle všech šesti os. Z toho ti vypadne, jakou strukturu agenta potřebuješ, a ušetří ti to přepisování.
Vnitřní stav zaveď hned, jak je prostředí částečně pozorovatelné. Reflexní agent tam nikdy nebude fungovat spolehlivě, jen občas - a to je nejhorší možný výsledek.
Míru výkonu měř na výsledku, ne na chování. Odměna za nasátou špínu vede k vysypávání špíny.
Racionální neznamená úspěšný. Agenta soudíš podle rozhodnutí za dostupných informací, ne podle toho, jak to dopadlo.
Co si odnést
Agent = senzory + akční členy + program. Termostat i robot spadají do stejné kategorie.
Agentová funkce je tabulka, agentový program je kód. Tabulka je nepoužitelně velká, proto všechny ostatní struktury.
Racionalita je maximalizace očekávané, ne skutečné míry výkonu.
PEAS a šest os prostředí určí, jakého agenta potřebuješ.
Šest struktur, každá přidává jednu věc: tabulka, reflexy, model, cíl, utilita, učení.
Kritika je součást učícího se agenta, kterou nesmíš vynechat. Senzory samy o sobě nestačí.
Kam dál
- Informované prohledávání - plánování, které agent s cílem používá
- Hry a herní strom - multi-agentní kompetitivní prostředí v čisté podobě
- Co je umělá inteligence - kam se agentové pojetí v oboru řadí
- MLP a backpropagation - jak se učící se prvek dnes nejčastěji realizuje