IV130 Přínosy a rizika inteligentních systémů 28. dubna 2023 Strojové učení Učící se aktéři • Aktér se učí, pokud zlepšuje svou činnost v důsledku pozorování světa (prostředí) • U aktérů, kterými jsou počítače, hovoříme o strojovém učení: počítač pozoruje data, vytváří si model založený na těchto datech a následně tento model používá pro hypotézu o stavu světa i jako kód v počítači, který řeší problémy • Proč chceme, aby se stroje učily (namísto toho, abychom je rovnou lépe naprogramovali)? Ø Nelze dost dobře předvídat všechnu budoucí situace (např. navigace v bludišti po seznámení se s plánem bludiště, předpovídání vývoje akcií po zvládnutí, jak přizpůsobit chování při změnách trendu, atd.) Ø Autoři systému nemusí sami vědět, jak zvládání problému naprogramovat (např. rozeznávání tváří lidí z rodiny, atd.) Formy učení • Zlepšovat učením lze kteroukoli část aktéra, odtud volby • Jakou část aktéra zlepšovat? – Zobrazení podmínek aktuálního stavu na akce – Způsob odvozování vlastností světa z posloupnosti vstupů – Informace o tom, jak se svět vyvíjí a jaké akce může aktér používat – Informace o užitku indikující to, jaké stavy světa jsou preferovány – Informace o hodnotě akcí indikující žádoucí stavy – Cíle, které popisují nejvíce preferované stavy – Generátor problémů, kritik i prvek umožňující systému zlepšovat se • Jakou předchozí znalost aktér má, a tedy i jaké modely aktér může vytvářet, jakou reprezentaci znalostí a svých vlastních zlepšovaných komponent využívá? • Příklad: Aktér pracující jako samořiditelné auto se může učit pozorováním toho, jak řidič pracuje s brzdou, a vypracovat si pravidla pro brzdění. Sledováním kamerového vstupu a řidičovy informace o obsahu scény se může naučit rozeznávat autobusy. Zkoušením brzdění na mokré vozovce se může učit účinkům akcí na různém stavu povrchu vozovky. Atd. Specifické podoby učení • Učení je formou induktivní operace (z nějakých konkrétních situací se usuzuje na obecné pravidlo) • Na rozdíl od operací deduktivních není garantována korektnost závěrů • Obecným principem je zpravidla výběr nejjednodušší podoby zobecnění • Technologie strojového učení se dnes užívají rutinně v prakticky jakýchkoli druzích softwaru a jsou použitelné pro libovolný model struktury aktérů • Odezva (zpětná vazba), kterou učící se aktér potřebuje, vede ke třem základním typům učení: Ø Učení (se) s učitelem, v němž aktér pozoruje dvojice vstup-výstup a učí se funkci, která tomu odpovídá (klasifikace na základě označení vstupů, regrese nebo informace pocházející ze senzorů např. pro učení se, jak brzdit) Ø Učení bez učitele, kdy se aktér učí rozpoznávat vzory bez nejké explicitní zpětné vazby (např. hledání vzorů pomocí klastrování) Ø Zpětnovazební učení probíhající na základě zpětné vazby odpovídající odměnám a trestům (např. vyhraná nebo prohraná partie šachu nebo go) Učení se s učitelem • Pro výcvikovou (tréninkovou) množinu dvojic (x1,y1), (x2,y2), …, (xN,yN) generovaných funkcí y=f(x) hledáme funkci h, která aproximuje skutečnou funkci f. • Funkce h je modelem těchto dat, funkce sama je vybírána z nějaké třídy modelů funkcí, které uvažujeme • Funkci h označujeme jako konzistentní (s daty), pokud h(xi)=yi, pro všechny dvojice z výcvikových dat. • Regrese hodnot ilustrující příklady různých funkcí konzistentních s výukovými daty; jedna z polynomiálních funkcí je zjevně přeučená • Srovnej též tzv. Ockhamovu břitvu Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Modelový příklad: Čekání v restauraci • Problém rozhodování, zda čekat na volné místo v restauraci • Výstupem je Booleovská proměnná WillWait nabývající hodnotu True, pokud na stůl počkáme • Vstupem je vektor deseti hodnot atributů: 1. Alternate: zda je poblíž vhodná alternativní restaurace 2. Bar: zda je v restauraci příjemný bar, kde se dá počkat 3. Fri/Sat: hodnota true v pátek a v sobotu 4. Hungry: zda jsme zrovna hladoví 5. Patrons: kolik lidí je v restauraci, možné hodnoty jsou None, Some a Full 6. Price: cenová úroveň restaurace ($, $$, $$$) 7. Raining: zda venku prší 8. Reservation: zda máme rezervaci 9. Type: druh restaurace (French, Italian, Thai nebo burger) 10. WaitEstimate: odhad doby čekání: 0–10, 10–30, 30–60, or >60 minut Modelový příklad: Čekání v restauraci 1. Alternate: zda je poblíž vhodná alternativní restaurace 2. Bar: zda je v restauraci příjemný bar, kde se dá počkat 3. Fri/Sat: hodnota true v pátek a v sobotu 4. Hungry: zda jsme zrovna hladoví 5. Patrons: kolik lidí je v restauraci, možné hodnoty jsou None, Some a Full 6. Price: cenová úroveň restaurace ($, $$, $$$) 7. Raining: zda venku prší 8. Reservation: zda máme rezervaci 9. Type: druh restaurace (French, Italian, Thai nebo burger) 10. WaitEstimate: odhad doby čekání: 0–10, 10–30, 30–60, or >60 minut 👉 Existuje zde 26 × 32 × 42 = 9216 možných kombinací pro vstupní hodnoty, ve výukovém souboru je jen 12 z nich. Podstata procesu indukce: potřebujeme nejlepší odhad 9204 výstupních hodnot na základě toho, že máme dán podklad v podobě pouhých 12 příkladů. Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Učení rozhodovacích stromů • Rozhodovací strom je reprezentací funkce, která zobrazuje vektor atributů na jeden výsledek – rozhodnutí • Realizuje se v něm posloupnost testů, která začíná v kořeni, a pokračuje se až do listu ohodnoceného příslušným rozhodnutím 1. Alternate: zda je poblíž vhodná alternativní restaurace 2. Bar: zda je v restauraci příjemný bar, kde se dá počkat 3. Fri/Sat: hodnota true v pátek a v sobotu 4. Hungry: zda jsme zrovna hladoví 5. Patrons: kolik lidí je v restauraci, možné hodnoty jsou None, Some a Full 6. Price: cenová úroveň restaurace ($, $$, $$$) 7. Raining: zda venku prší 8. Reservation: zda máme rezervaci 9. Type: druh restaurace (French, Italian, Thai nebo burger) 10. WaitEstimate: odhad doby čekání: 0–10, 10–30, 30–60, or >60 minut Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Učení rozhodovacího stromu • Do kořene vybíráme atribut, který dává největší rozdělení („nejvíce informativní atribut“) • Jsou-li zbylé příklady všechny stejné, je to list s odpovědí Yes nebo No. • Pokud jsou v uzlu smíchaně pozitivní a negativní příklady, vezmeme nejlepší atribut a dál podle něj rozdělíme možnosti • Pokud již žádné příklady nezbývají, vrátíme jako hodnotu nejčastější výstup z příkladů, které byly užity v konstrukci rodičovského uzlu • Pokud již nezbývají žádné atributy, mají příklady stejný popis, ale různý výstup – jde o šum v datech nebo je doména nedeterministická a atributy nestačí k popsání výsledku Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Učení rozhodovacího stromu • Pro příklad s restauracemi je finální podoba rozhodovacího stromu následující • Získaný strom je konzistentní s dvanácti příklady a podstatně jednodušší než strom přímo z nich vytvořený • Testy na vstupy Raining a Reservation v něm nejsou použity, protože pro klasifikaci příkladů nejsou potřeba • Zajímavá drobnost je ochota čekat na thajskou restauraci v pátek a v sobotu • Malý počet příkladů nepokrývá uspokojivě situaci, kdy je sice reastaurace plná, ale doba čekání je 0-10 Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Oblasti zájmu v souvislosti s učením rozhodovacích stromů • Výběr atributu pro test lze exaktněji popsat jako výběr atributu podle entropie s ním spojené (míry neurčitosti) • Informační zisk spojený s výběrem atributu odpovídá očekávanému snížení entropie provedením testu podle tohoto atributu (u příkladu s restauracemi nevede volba atributu Type k žádné redukci entropie) • Rozhodovací stromy lze zjednodušovat prořezáváním částí založeným na statistickém testu významnosti jednotlivých atributů • Lze tak redukovat přeučení: pokud je atribut na konci nějaké cesty irelevantní, lze ho vyřadit, protože odpovídá přeučení (popisuje jen šum v datech) • Rozhodovací stromy lze dále upravovat na zahrnutí chybějících dat nebo zahrnutí atributů se spojitými hodnotami • Existují komerční nástroje umožňující s učením rozhodovacím stromům rutinně pracovat; nevýhodou je obecně nestabilita: přidání dat může změnit test v kořeni a tím i celý strom Lineární regrese a klasifikace • Lineární funkce jsou dobře zkoumanou oblastí pro prokládání hodnotami • Pokud lze prostor možných hypotéz omezit na lineární funkce, je zde možnost užití metod lineární regrese • Hledáme funkce ve tvaru y=w1x+w0 v podobě hypotézy odpovídající nejlépe datům (hledáme váhy w1 a w0). • Chyba vzhledem ke trénovacím datům se nejčastěji měří jako kvadratická odchylka a hledáme funkci, která ji minimalizuje Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Lineární regrese a klasifikace • Lineární funkce lze též užít pro klasifikaci: oddělení dvou množin případů • Hledáme lineární separátor jako separátor oddělující dvě skupiny případů vyjádřený jako lineární funkce Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Metoda nejbližších sousedů • Klasifikaci lze konstruovat z k nejbližších vyučovacích příkladů a odpovědí skládaných z jejich výstupů • Funguje dobře pro velké počty příkladů s malým počtem atributů (ve vícedimenzionálním prostoru jsou nejbližší sousedé příliš daleko) Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Support Vector Machines (SVM) • Od roku 2000 patrně nejpopulárnější používaná metoda pro učení s učitelem, která je použitelná jako nástroj pro oblasti, kde nemusí být další specifické znalosti o doméně • Metoda hledá lineární separátor s maximálním okrajem (vzdáleností od příkladů) • Pokud se příklady nedaří lineárně separovat, transformují se do prostoru vyšší dimenze, kde separovat jdou (tzv. „kernel trick“) • Užívá se neparametrický přístup, tj. oddělující nadrovina je určena množinou bodů z příkladů, nikoli parametry nadplochy, stačí ale jen body nejblíže separátoru (tzv. support vectors) • Kernel funkce dokáže transformací do vyšší dimenze, kde jsou separovatelné: Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Učení s využíváním předchozí znalosti • V řadě případů lze využít předchozích znalostí o problémové doméně, není třeba ji konstruovat (učit se) celou jen z příkladů • Předchozí znalost je zpravidla vyjádřena v jazyce logiky (predikátové lgiky prvního řádu) • Metody učení založené na logickém aparátu a již získaných znalostí o světě (background knowledge) se převádí na práci s logickými hypotézami (příklady i hypotézy jsou logickými formulemi) • Prostor hypotéz je množina všech hypotéz • Učící se algoritmus „metoda nejlepší hypotézy) předpokládá, že nějaká hypotéza je správná a hypotézy s ní nekozistentní eliminuje, resp. u falešně negativních hypotéz (hypotéza tvrdí, že příklad je negativní, ale ve skutečnosti je pozitivní) hypotézu zobecní, u falešně pozitivních (hypotéza tvrdí, že příklad je pozitivní, je ale ve skutečnosti negativní) ji specializuje Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Učení s využíváním předchozí znalosti • Používání předchozí znalosti umožňuje postup s využitím kumulativního učení: aktéři vylepšují i své schopnosti učit se s tím, jak získávají větší množství znalostí • Učení založené na vysvětlování extrahuje obecná pravidla z jednotlivých příkladů prostřednictvím vysvětlování příkladů a generalizace vysvětlení; • Učení založené na relevanci používá předchozí znalost prop identifikaci relevantních atributů a omezení stavového prostoru v zájmu zrychlení učení • Induktivní učení založené na znalostní bázi hledá induktivní hypotézy, které příklady vysvětlují s použitím předchozích znalostí • Induktivní logické programování kombinuje učicí metody s logickými programy poskytujícími logickou reprezentaci – v podobě shora dolů zejňováním obecných pravidel, nebo zdola nahoru v obrácení deduktivního postupu (inverzní rezoluce) Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Bayesovské učení • V reálných aplikacích je významná role neurčitosti, pro jejií zpracování jsou ústřední technikou bayesovské sítě • Bayesovské učení: • Na základě dat se spočte pravděpodobnost každé hypotézy • Ze získané pravděpodobnosti a všech hypotéz se vytvoří předpověď • Učení se převádí na pravděpodobnostní inferenci (odvozování aktualizující apriorní distribuce) • Pro složité prostory hypotéz se metoda může stát nezvládnutelnou, je ale možné užívat některé aproximace • Maximální aposteriorní učení vybírá jednu nejpravděpodobnější hypotézu odpovídající datům • Učení s maximální pravděpodobností vybírá hypotézu, ktzerá maximalizuje pravděpodobnost dat (zvládnutelné pro lineární regresi a plně viditelné prostředí), naivní Bayesovo učení, které netestuje některé podmínky, je rovněž efektivní technika • Varianty se používají pro prostředí, kde jsou některé proměnné skryté (maximalizace očekávání) • V současnosti zřejmě nejaktivnější oblast probíhajícího výzkumu Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 Hluboké učení • Hluboké učení (také neuronové sítě) obsahují vrstvy jednoduchých výpočetních prvků, které agregují vstupy a uplatňují na ně nelineární aktivační/prahové funkce • Konvoluční neuronové sítě obsahují prostorově lokální spoje v počátečních vrstvách, jejichž rozložení vah se opakuje v dalších vrstvách (jádra zpracovávající pixelovou informaci v obrazech) • V současné době nejpoužívanější technika pro rozpoznávání vizuálních objektů, strojový překlad, rozpoznávání řeči a syntézu řeči i obrazu Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021 • Zpracování dat z velké části spočívá na vektorových a maticových operacích • Efektivně implementovatelné na grafických procesorech (GPU) nebo v tenzorových výpočetních jednotkách (TPU) • Extrémní implementace zahrnují i Summit, nejvýkonnější americký superpočítač (https://techxplore.com/news/2022- 04-deep-techniques-materials-imaging-breakthrough.html) Hluboké učení, generativní model • Generativní model založený na hlubokém učení dovoluje i relativně abstraktní operace s obsahem obrazů: např. parametry tváří „muž s brýlemi“, od něhož odečteme parametry obrazů „muž“ a přičteme parametr „žena“: Obrázky a schémata z RussellNorwig: AI A Modern Approach, 4th ed., 2021, zde z Radford et al., 2015, https://arxiv.org/abs/1511.06434v2 Zpětnovazebné učení • Aktér se ocitá v prostředí, kde se musí naučit úspěšně chovat • V případů jediná možnost, jak problém zvládnout (např. šachy: relativně málo příkladů k dispozici pro učení, cca 108, ve srovnání s celkovým počtem pozic, cca 1040) • Aktér se žádostmi (utility-based learning) se učí užitkovou funkci pro stavy • Aktér s Q-učením se učí akce na základě očekávaného užitku • Reflexní aktér se učí strategii, jakou akci použít na daný stav • Při aktivním učení se aktér učí, co dělat a zahrnuje to i jistou formu prohledávání prostředí; při pasivním učení se učí užitek stavů nebo akcí a pracuje s pevnou strategií • Motivováno metodami učení u zvířat (např. Pavlov, jako nobelista z roku 1911) • Alan Turing tento způsob navrhoval v letech 1948 a 50: „Používání trestů a odměn může být výborná součást učícího procesu [pro počítače]“ • Rozsáhlé užívání s přesahy do neurověd nebo psychologie • DeepMind poskytuje několik platforem s otevřeným zdrojovým kódem • Facebook s platformami AI Habitat a Horizon umožňuje užití zpětnovazebního učení v produkčních systémech velkého rozsahu • Dobrý přehled viz např. https://www.nature.com/articles/nature14540 Transformery a GPT • Transformery poprvé užity společností Google Brain v roce 2017 – kombinace hlubokého učení a mechanismu pozornosti (self-attention) přiřazující váhy různým částem vstupu • Vhodné pro paralelizaci a zpracování velkých textových informací • Převod vstupu do reprezentace tokeny s poziční informací, plus technika kódování a dekódování • Zhruba od roku 2020 se podařilo vyřešit problém konvergence vah a v kombinaci se zpětnovazebním samostatným učením znamenají významnou architekturu učících sae systémů pro aplikace v přirozeném jazyce a predikce textů nebo i třeba aplikace typu analýzy struktury proteinů z DNA • Dnes populární v implementaci GPT (Generativní (před)trénovaný transformer) společnosti OpenAI • Trénované na masivních datech (volně dostupné texty z internetu plus licencované zdroje textových informací) • GPT-1 publikován v roce 2018 v článku OpenAI “Improving Language Understanding by Generative Pre-Training”, založeno na architektuře transformátorů a tréninku na velkém vzorku knih • 2019: GPT-2 schopný generovat soudržné texty • 2020: GPT-3 se zhruba 100násobným zvětšením počtu parametrů • Konec 2022: vylepšení do GPT-3.5 posloužilo jako základ pro vytvoření chatbota ChatGPT a zpřístupnění pro experimenty a zpětnou vazbu široké veřejnosti • Jaro 2023: GPT-4 s dalším zvýšením počtu parametrů i spolehlivosti, s možností zpracování grafické informace (interní systém, o jehož vlastnostech OpenAI referuje, ale není k dispozici jeho kód) 👉 Rozhovor se šéfem OpenAI Samem Altmanem na podcastu Lexe Fridmana: #367 OpenAI CEO on GPT-4, ChatGPT, and the Future of AI Malá ilustrace konverzace s ChatGPT-4