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 / 26 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 / 26 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ě (příklad Goodfellow, 2017) Úvod do umělé inteligence 11/12 4 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 (Mikolov, 2013) Úvod do umělé inteligence 11/12 13 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 / 26 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 23 / 26 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 24 / 26 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: • 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 25 / 26 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 26 / 26