Hluboké učení Aleš Horák E-mail: hales@fi.muni.cz http://nlp.fi.muni.cz/uui/ Obsah: Hluboké učení Aplikace hlubokého učení Techniky hlubokého učení Úvod do umělé inteligence 11/12 1 / 27 Hluboké učení Motivace Motivace vyjadřovací síla klasických neuronových sítí: s jednou skrytou vrstvou – všechny spojité funkce se dvěma skrytými vrstvami – všechny funkce Úvod do umělé inteligence 11/12 2 / 27 Hluboké učení Motivace Motivace vyjadřovací síla klasických neuronových sítí: s jednou skrytou vrstvou – všechny spojité funkce se dvěma skrytými vrstvami – všechny funkce Proč tedy pracovat s hlubšími architekturami? Úvod do umělé inteligence 11/12 2 / 27 Hluboké učení Motivace Motivace vyjadřovací síla klasických neuronových sítí: s jednou skrytou vrstvou – všechny spojité funkce se dvěma skrytými vrstvami – všechny funkce Proč tedy pracovat s hlubšími architekturami? (příklad Waldrop, 2019) Úvod do umělé inteligence 11/12 2 / 27 Hluboké učení Motivace Motivace vyjadřovací síla klasických neuronových sítí: s jednou skrytou vrstvou – všechny spojité funkce se dvěma skrytými vrstvami – všechny funkce Proč tedy pracovat s hlubšími architekturami? Úvod do umělé inteligence 11/12 2 / 27 Hluboké učení Motivace Motivace Hluboké učení (Deep Learning, Deep Neural Networks) komplexní vstup se lépe modeluje pomocí užší a hlubší sítě SliDo (příklad Goodfellow, 2017) Úvod do umělé inteligence 11/12 4 / 27 Aplikace hlubokého učení Aplikace hlubokého učení hlavní aplikační oblasti počítačové vidění analýza a generování textu, analýza signálu, analýza časové řady zpětnovazební učení Úvod do umělé inteligence 11/12 5 / 27 Aplikace hlubokého učení Počítačové vidění Počítačové vidění soutěž ImageNet – 1.2 mil. obrázků v 1000 kategoriích (Ye, 2018) Úvod do umělé inteligence 11/12 6 / 27 Aplikace hlubokého učení Počítačové vidění Počítačové vidění soutěž ImageNet – 1.2 mil. obrázků v 1000 kategoriích 2012, síť AlexNet (5 konv.vrstev) – chyba 15%, ostatní > 25%, člověk 5% (Krizhevsky et al, 2012) Úvod do umělé inteligence 11/12 6 / 27 Aplikace hlubokého učení Počítačové vidění Počítačové vidění soutěž ImageNet – 1.2 mil. obrázků v 1000 kategoriích 2021 – chyba 1%, člověk 5% např. Inception V4 (Shankar et al, 2020) Úvod do umělé inteligence 11/12 6 / 27 Aplikace hlubokého učení Počítačové vidění Konvoluční sítě požadavky na zpracování obrazu: vztah sousednosti bodů barva – RGB kanály, ×3 (pod)objekty a rysy – kdekoliv v obrázku – prostorová invariance Úvod do umělé inteligence 11/12 7 / 27 Aplikace hlubokého učení Počítačové vidění Konvoluční sítě požadavky na zpracování obrazu: vztah sousednosti bodů barva – RGB kanály, ×3 (pod)objekty a rysy – kdekoliv v obrázku – prostorová invariance Konvoluční sítě (CNN): učí se malou kernelovou matici vah (filtr) aplikovat na body obrazu, aplikace = konvoluce kernelové matice sdílí váhy matice se posouvá o krok (stride) výstupem je mapa rysů (feature map) (Ganesh, 2019) Úvod do umělé inteligence 11/12 7 / 27 Aplikace hlubokého učení Počítačové vidění Parametry konvoluční vrstvy rozměry kernelu – 1D (ℓ), 2D (ℓ × r), 3D ... počet kernelů k učení ×d krok s, s ≥ 2 redukuje dimenzi Úvod do umělé inteligence 11/12 8 / 27 Aplikace hlubokého učení Počítačové vidění Vícevrstvé konvoluční sítě další konvoluční vrstvy zpracovávají výstup předchozích vrstev simulují vyšší úroveň abstrakce mají širší recepční pole (receptive field) Úvod do umělé inteligence 11/12 9 / 27 Aplikace hlubokého učení Počítačové vidění Redukce dimenze – sdružování/pooling Pooling vrstva (sdružování): používá se pro zhuštění informace – redukci dimenze snižuje nároky v dalších vrstvách podporuje generalizaci varianty: • max-pooling – vybírá maximum vstupu, značí výskyt rysu kdekoliv v recepčním poli • average-pooling – klasická redukce (Yani et al, 2019) Úvod do umělé inteligence 11/12 10 / 27 Aplikace hlubokého učení Počítačové vidění Klasifikace výstupu – softmax klasifikace do c kategorií – softmax vrstva softmax(⃗in) = eink c j=1 einj k reprezentuje pravděpodobnosti (součet je 1), akcentuje rozdíly někdy doplněná o 1–2 předcházející plně propojené vrstvy logistická regrese (sigmoid) – speciální případ pro 2 kategorie (pozitivní a negativní) (Kumar, 2020) Úvod do umělé inteligence 11/12 11 / 27 Aplikace hlubokého učení Analýza textu Obsah 1 Hluboké učení Motivace 2 Aplikace hlubokého učení Počítačové vidění Analýza textu Zpětnovazební učení 3 Techniky hlubokého učení Hledání architektury Soupeřící učení – GANs Schopnosti hlubokých sítí Úvod do umělé inteligence 11/12 12 / 27 Aplikace hlubokého učení Analýza textu Analýza textu neuronová síť pracuje pouze s čísly – jak zadat text? Úvod do umělé inteligence 11/12 13 / 27 Aplikace hlubokého učení Analýza textu Analýza textu neuronová síť pracuje pouze s čísly – jak zadat text? slova jako slovní vektory (word embeddings): stanovení pevné dimenze předpočítání/předtrénování na velmi velkých neanotovaných textech ⇒ neurální jazykové modely zachycení sémantiky – podobná slova síť zpracuje podobně univerzálnější – vektory částí slov (subword/character embeddings) jen výměnou modelu můžeme zpřesnit výsledky SliDo (Mikolov, 2013) Úvod do umělé inteligence 11/12 13 / 27 Aplikace hlubokého učení Analýza textu Predikce textu vstup: začátek textu jako řetězec slov W = w1w2w3 . . . wi−1 výstup: pravděpodobnostní distribuce dalšího slova P(wi |w1w2 . . . wi−1) Úvod do umělé inteligence 11/12 14 / 27 Aplikace hlubokého učení Analýza textu Predikce textu vstup: začátek textu jako řetězec slov W = w1w2w3 . . . wi−1 výstup: pravděpodobnostní distribuce dalšího slova P(wi |w1w2 . . . wi−1) základní neurální jazykový model s pevným kontextem (fixed-window) výstupní distribuce ⃗y = softmax(Uh + b2) ∈ R|V | skrytá vrstva h = f (We + b1) řetězené vektory slov e = [e1; e2; e3; e4] slova na vstupu w1w2w3w4 w1 w2 w3 w4 (Manning, 2021) Úvod do umělé inteligence 11/12 14 / 27 Aplikace hlubokého učení Analýza textu Predikce textu vstup: začátek textu jako řetězec slov W = w1w2w3 . . . wi−1 výstup: pravděpodobnostní distribuce dalšího slova P(wi |w1w2 . . . wi−1) základní neurální jazykový model s pevným kontextem (fixed-window) výstupní distribuce ⃗y = softmax(Uh + b2) ∈ R|V | skrytá vrstva h = f (We + b1) řetězené vektory slov e = [e1; e2; e3; e4] slova na vstupu w1w2w3w4 w1 w2 w3 w4 (Manning, 2021) nevýhoda – pevná velikost vstupu Úvod do umělé inteligence 11/12 14 / 27 Aplikace hlubokého učení Analýza textu Rekurentní jazykový model skryté stavy h(t) = σ(Whh(t−1) + Weet + b1) váhy Wh a We se aplikují opakovaně jednotlivé vektory slov e1, e2, e3, e4, . . . slova na vstupu w1w2w3w4 Úvod do umělé inteligence 11/12 15 / 27 Aplikace hlubokého učení Analýza textu Rekurentní jazykový model výstupní distribuce ⃗y(t) = softmax(Uh(t) + b2) ∈ R|V | skryté stavy h(t) = σ(Whh(t−1) + Weet + b1) váhy Wh a We se aplikují opakovaně jednotlivé vektory slov e1, e2, e3, e4, . . . slova na vstupu w1w2w3w4 w1 w2 w3 w4 Úvod do umělé inteligence 11/12 15 / 27 Aplikace hlubokého učení Analýza textu Využití rekurentních sítí – seq2seq častá varianta – model sequence-to-sequence (seq2seq) dvě navazující rekurentní sítě – enkodér a dekodér Úvod do umělé inteligence 11/12 16 / 27 Aplikace hlubokého učení Analýza textu Analýza textu problém trénování velkých RNN – mizející gradient (násobení malých čísel → 0) Úvod do umělé inteligence 11/12 17 / 27 Aplikace hlubokého učení Analýza textu Analýza textu problém trénování velkých RNN – mizející gradient (násobení malých čísel → 0) řešení – architektura Long Short-Term Memory, LSTM: buňka (cell) ct – pomocná paměť 3 brány: vstupní, výstupní a zapomínací (forget) – regulace info do a z buňky Úvod do umělé inteligence 11/12 17 / 27 Aplikace hlubokého učení Analýza textu Analýza textu problém trénování velkých RNN – mizející gradient (násobení malých čísel → 0) řešení – architektura Long Short-Term Memory, LSTM: buňka (cell) ct – pomocná paměť 3 brány: vstupní, výstupní a zapomínací (forget) – regulace info do a z buňky buňka buňka zapomínací vstupní výstupní skrytý stav Úvod do umělé inteligence 11/12 17 / 27 Aplikace hlubokého učení Analýza textu Mechanizmus attention u rekurentních sítí – celá věta reprezentována jako jeden vektor mechanizmus attention (“pozornost”) – detailní provázání informací Úvod do umělé inteligence 11/12 18 / 27 Aplikace hlubokého učení Analýza textu Architektura Transformer “Attention is All You Need” (Vaswani et al, 2017) architektura transformer: vektory pozice self-attention více hlav (multi-head attention) reziduální spojení, normalizace a škálování aktuálně nejlepší výsledky v mnoha úlohách zpracování textu beta.openai.com/examples Úvod do umělé inteligence 11/12 19 / 27 Aplikace hlubokého učení Zpětnovazební učení Obsah 1 Hluboké učení Motivace 2 Aplikace hlubokého učení Počítačové vidění Analýza textu Zpětnovazební učení 3 Techniky hlubokého učení Hledání architektury Soupeřící učení – GANs Schopnosti hlubokých sítí Úvod do umělé inteligence 11/12 20 / 27 Aplikace hlubokého učení Zpětnovazební učení Zpětnovazební učení Hluboké zpětnovazební učení (deep reinforcement learning, DRL) rozhodování agenta – ze sekvence odměn cíl – zvyšovat budoucí odměny možná řešení – učení ohodnocovací funkce (AlphaGo), funkce akce Q (Q-learning), nebo politiky π DRL zatím aplikačně obtížnější než ostatní techniky hlubokého učení Úvod do umělé inteligence 11/12 21 / 27 Aplikace hlubokého učení Zpětnovazební učení Zpětnovazební učení Hluboké zpětnovazební učení (deep reinforcement learning, DRL) rozhodování agenta – ze sekvence odměn cíl – zvyšovat budoucí odměny možná řešení – učení ohodnocovací funkce (AlphaGo), funkce akce Q (Q-learning), nebo politiky π DRL zatím aplikačně obtížnější než ostatní techniky hlubokého učení Deep Q-Networks – Atari hry (2013): učení funkce Q přímo z obrázků, využívá konvoluční vrstvy odměna – herní skóre pozdější varianta lepší než člověk v 57 Atari hrách (Mnih et al, 2013) Úvod do umělé inteligence 11/12 21 / 27 Aplikace hlubokého učení Zpětnovazební učení AlphaGo AlphaGo (2016): učení funkce politiky p a ohodnocovací funkce v Monte Carlo Tree Search politika p dává distribuci pravděpodobností možných tahů ohodnocovací funkce v predikuje zisk navrhovaných nových konfigurací s′ každá síť má 13 konvolučních vrstev (Silver et al, 2016) Úvod do umělé inteligence 11/12 22 / 27 Techniky hlubokého učení Hledání architektury Obsah 1 Hluboké učení Motivace 2 Aplikace hlubokého učení Počítačové vidění Analýza textu Zpětnovazební učení 3 Techniky hlubokého učení Hledání architektury Soupeřící učení – GANs Schopnosti hlubokých sítí Úvod do umělé inteligence 11/12 23 / 27 Techniky hlubokého učení Hledání architektury Hledání architektury Hledání správné architektury převážně experimentálně Auto ML (automated machine learning) základní prvky: • konvoluční vrstvy – pro hledání vzorů (patterns) kdekoliv ve vstupu (1D – text, 2D – obraz, ...) a b c d a a d c b c d c c a b d • rekurentní vrstvy – hledání závislostí mezi prvky vstupu (text, signál, časová řada, ...) (Adulapuram, 2020) Úvod do umělé inteligence 11/12 24 / 27 Techniky hlubokého učení Soupeřící učení – GANs Soupeřící učení – GANs Generative Adversarial Network (GAN) generující soupeřící síť 2 části – generátor a diskriminátor trénované současně bez dohledu generátor – vytváří simulované vstupy podle zadání, snaží se zmást diskriminátor diskriminátor – učí se rozpoznávat skutečné vstupy od podvržených (Missinato, 2020) Úvod do umělé inteligence 11/12 25 / 27 Techniky hlubokého učení Soupeřící učení – GANs Soupeřící učení – GANs Aplikace GAN: obraz: • StyleGAN – od Nvidia, generované snímky lidí podle atributů (držení těla, brýle, pohlaví, vlasy, ...) • superrezoluce – generovaný obraz ve větším rozlišení • Brain2Pix – generování obrazu toho, co vidí mozek, podle mozkové aktivity • Ganilla – generování uměleckého obrazu podle fotky • DeepFake – přenesení vlastností z jednoho obrazu/videa do druhého text: SliDo • DALL-E (OpenAI) – vytváří obrázky podle textového zadání • SentiGAN – generuje text se zadaným sentimentem zvuk: • CereVoice Me – vytvoří hlas podle nahrávek • DeepComposer – vytváří orchestrální skladbu podle jednoduché melodie Úvod do umělé inteligence 11/12 26 / 27 Techniky hlubokého učení Schopnosti hlubokých sítí Schopnosti hlubokých sítí co hluboké sítě umí výborně hledat vzory a vztahy v komplexních datech generovat nová komplexní data podle podmínek detekovat, že komplexní data byla vygenerovaná Úvod do umělé inteligence 11/12 27 / 27 Techniky hlubokého učení Schopnosti hlubokých sítí Schopnosti hlubokých sítí co hluboké sítě umí výborně hledat vzory a vztahy v komplexních datech generovat nová komplexní data podle podmínek detekovat, že komplexní data byla vygenerovaná co hluboké sítě moc neumí kvantifikovat pracovat s hierarchickými strukturami (taxonomie) pracovat s pravidly Úvod do umělé inteligence 11/12 27 / 27 Techniky hlubokého učení Schopnosti hlubokých sítí Schopnosti hlubokých sítí co hluboké sítě umí výborně hledat vzory a vztahy v komplexních datech generovat nová komplexní data podle podmínek detekovat, že komplexní data byla vygenerovaná co hluboké sítě moc neumí kvantifikovat pracovat s hierarchickými strukturami (taxonomie) pracovat s pravidly kdy je vhodné hluboké sítě použít máme velká data složité vzory nevadí chybí zdůvodnění možná zaujatost “nelogické” chyby 97 % papoušek speciální šum 99 % knihovna Úvod do umělé inteligence 11/12 27 / 27