Neurnov siete pre potaov videnie k r 2020






























































































































- Slides: 126
Neurónové siete pre počítačové videnie šk. r. 2020 -21 Úvod do neurónových sietí Doc. RNDr. Milan Ftáčnik, CSc. RNDr. Zuzana Černeková, Ph. D.
Štruktúra dnešnej prednášky �Neurónové siete (bez biologickej inšpirácie) �Aktivačné funkcie �Dopredný chod siete �Biologická inšpirácia a model neurónu �Počítanie gradientov v neurónovej sieti �Spätné šírenie – backpropagation (príklady, vzory a fungovanie) �Spätné šírenie pre vektory a matice Neurónové siete pre počítačové videnie 2020 -21 2
Opakovanie � Neurónové siete pre počítačové videnie 2020 -21 3
Opakovanie 2 �Výpočet najlepšieho W – optimalizácia cez zostup gradientu Neurónové siete pre počítačové videnie 2020 -21 4
Opakovanie 3 �Zostup gradientu �Numerický gradient: pomalý , približný , ľahko sa napíše �Analytický gradient: rýchly , presný , náchylný k chybám �V praxi: odvodíme analytický gradient a implementáciu otestujeme numerickým gradientom Neurónové siete pre počítačové videnie 2020 -21 5
Opakovanie 4 �Lineárne klasifikátory nie sú veľmi silné Vizuálny pohľad Geometrický pohľad Lineárne klasifikátory sa Lineárne klasifikátory vedia naučia jeden vzor (jednu vytvoriť iba oddeľujúce maticu váh) pre triedu nadroviny Neurónové siete pre počítačové videnie 2020 -21 6
Opakovanie 5 � Neurónové siete pre počítačové videnie 2020 -21 7
Opakovanie 6 �Príznaky vs. konvolučné neurónové siete Neurónové siete pre počítačové videnie 2020 -21 8
Neurónové siete �Bez biologickej inšpirácie �Doteraz: Lineárna fcia skóre Neurónové siete pre počítačové videnie 2020 -21 9
Neurónové siete �Bez biologickej inšpirácie �Doteraz: Lineárna fcia skóre �Teraz: 2 -vrstvová NS (V praxi obvykle pridávame na každú vrstvu prahovú hodnotu b nastaviteľnú učením) Neurónové siete pre počítačové videnie 2020 -21 10
Neurónové siete �Bez biologickej inšpirácie �Doteraz: Lineárna fcia skóre �Teraz: 2 -vrstvová NS Neurónové siete sú veľmi široký pojem; začíname so sieťami, ktoré sa nazývajú „plne prepojené NS“ alebo niekedy viacvrstvové perceptróny (MLP) (V praxi obvykle pridávame na každú vrstvu prahovú hodnotu b nastaviteľnú učením) Neurónové siete pre počítačové videnie 2020 -21 11
Neurónové siete �Bez biologickej inšpirácie �Doteraz: Lineárna fcia skóre �Teraz: 2 -vrstvová NS 3 -vrstvová NS (V praxi obvykle pridávame na každú vrstvu prahovú hodnotu b nastaviteľnú učením) Neurónové siete pre počítačové videnie 2020 -21 12
Neurónové siete �Bez biologickej inšpirácie �Doteraz: Lineárna fcia skóre �Teraz: 2 -vrstvová NS Neurónové siete pre počítačové videnie 2020 -21 13
Neurónové siete �Bez biologickej inšpirácie �Doteraz: Lineárna fcia skóre �Teraz: 2 -vrstvová NS Neurónové siete pre počítačové videnie 2020 -21 14
Neurónové siete � Neurónové siete pre počítačové videnie 2020 -21 15
Neurónové siete � Neurónové siete pre počítačové videnie 2020 -21 16
Aktivačné funkcie Neurónové siete pre počítačové videnie 2020 -21 17
Aktivačné funkcie RELU je dobrá východisková voľba pre väčšinu problémov Neurónové siete pre počítačové videnie 2020 -21 18
Architektúry NS �Plne prepojené vrstvy 2 -vrstvová NS NS s 1 skrytou vrstvou 3 -vrstvová NS NS s 2 skrytými vrstvami Neurónové siete pre počítačové videnie 2020 -21 19
Príklad dopredného výpočtu NS Neurónové siete pre počítačové videnie 2020 -21 20
Implementácia trénovania NS Pri 2 -vrstvovej sieti potrebujeme cca 20 riadkov Neurónové siete pre počítačové videnie 2020 -21 21
Nastavenie parametrov NS �Nastavenie počtu vrstiev a ich veľkosti 3 skryté vrstvy 6 skrytých vrstiev 20 skrytých vrstiev Viac neurónov = viac kapacity Neurónové siete pre počítačové videnie 2020 -21 22
Nastavenie parametrov NS II � Neurónové siete pre počítačové videnie 2020 -21 23
Biologická inšpirácia Neurónové siete pre počítačové videnie 2020 -21 24
Neurón a jeho model Neurónové siete pre počítačové videnie 2020 -21 25
Neurón a jeho model Neurónové siete pre počítačové videnie 2020 -21 26
Neurón a jeho model Sigmoidálna aktivačná funkcia Neurónové siete pre počítačové videnie 2020 -21 27
Neurón a jeho model Neurónové siete pre počítačové videnie 2020 -21 28
Biologická inšpirácia a NS Biologické neuróny sieti Komplexné vzory prepojení Neuróny v neurónovej Organizované v pravidelných vrstvách kvôli efektívnosti výpočtov Neurónové siete pre počítačové videnie 2020 -21 29
Biologická inšpirácia a NS II Biologické neuróny prepoje. Komplexné vzory prepojení Ale NS s náhodnými niami fungujú tiež!!! Neurónové siete pre počítačové videnie 2020 -21 30
Opatrne s analógiami k mozgu �Biologické neuróny: �Mnoho rozličných typov �Dendrity môžu vykonávať zložité nelineárne výpočty �Synapsy nie sú jednoduché váhy, ale zložité nelineárne dynamické systémy �Kód na popis nemusí byť adekvátny Neurónové siete pre počítačové videnie 2020 -21 31
Problém: ako počítať gradienty? � Neurónové siete pre počítačové videnie 2020 -21 32
(Zlý) nápad: počítať na papieri �Problém: Je to veľmi náročné, treba veľa maticových výpočtov a veľa papiera �Problém: Pri zmene stratovej funkcie (napr. softmax namiesto SVM), treba všetko prepočítať od začiatku �Problém: To nie je realistické pre veľké modely Neurónové siete pre počítačové videnie 2020 -21 33
(Lepší) nápad: backpropagation �Výpočtové grafy a spätné šírenie chyby Neurónové siete pre počítačové videnie 2020 -21 34
Konvolučná NS (Alex. Net) Neurónové siete pre počítačové videnie 2020 -21 35
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 36
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 37
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 38
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 39
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 40
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 41
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 42
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 43
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 44
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 45
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 46
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 47
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 48
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 49
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 50
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 51
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 52
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 53
Spätné šírenie – jednoduchý príklad Neurónové siete pre počítačové videnie 2020 -21 54
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 55
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 56
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 57
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 58
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 59
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 60
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 61
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 62
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 63
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 64
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 65
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 66
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 67
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 68
Spätné šírenie – ďalší príklad Neurónové siete pre počítačové videnie 2020 -21 69
Spätné šírenie – ďalší príklad Výpočtový graf nemusí byť jedinečný. Zvoľte si taký, pre ktorý sa ľahko počítajú lokálne gradienty pre každý vrchol. Neurónové siete pre počítačové videnie 2020 -21 70
Spätné šírenie – ďalší príklad Lokálny gradient sigmoidu Neurónové siete pre počítačové videnie 2020 -21 71
Spätné šírenie – ďalší príklad Lokálny gradient sigmoidu Neurónové siete pre počítačové videnie 2020 -21 72
Vzory v šírení gradientu Vrchol sčítaj: distribútor gradientu Neurónové siete pre počítačové videnie 2020 -21 73
Vzory v šírení gradientu Vrchol sčítaj: distribútor gradientu Vrchol násob: „vymenené násobenie“ Neurónové siete pre počítačové videnie 2020 -21 74
Vzory v šírení gradientu Vrchol sčítaj: distribútor gradientu Vrchol násob: „vymenené násobenie“ Vrchol kopíruj: pridáva gradient Neurónové siete pre počítačové videnie 2020 -21 75
Vzory v šírení gradientu Vrchol sčítaj: distribútor gradientu Vrchol násob: „vymenené násobenie“ Vrchol kopíruj: pridáva gradient Vrchol max: Router gradientu Neurónové siete pre počítačové videnie 2020 -21 76
Jednoduchý kód spätného šírenia Neurónové siete pre počítačové videnie 2020 -21 77
Jednoduchý kód spätného šírenia Neurónové siete pre počítačové videnie 2020 -21 78
Jednoduchý kód spätného šírenia Neurónové siete pre počítačové videnie 2020 -21 79
Jednoduchý kód spätného šírenia Neurónové siete pre počítačové videnie 2020 -21 80
Jednoduchý kód spätného šírenia Neurónové siete pre počítačové videnie 2020 -21 81
Jednoduchý kód spätného šírenia Neurónové siete pre počítačové videnie 2020 -21 82
Jednoduchý kód spätného šírenia Neurónové siete pre počítačové videnie 2020 -21 83
Rekapitulácia Doteraz sme riešili spätné šírenie pre skaláry Čo s funkciami, ktoré sú definované na vektoroch? Neurónové siete pre počítačové videnie 2020 -21 84
Rekapitulácia: derivácie vektorov � Neurónové siete pre počítačové videnie 2020 -21 85
Rekapitulácia: derivácie vektorov � Neurónové siete pre počítačové videnie 2020 -21 86
Rekapitulácia: derivácie vektorov � Neurónové siete pre počítačové videnie 2020 -21 87
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 88
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 89
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 90
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 91
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 92
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 93
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 94
Spätné šírenie s vektormi Neurónové siete pre počítačové videnie 2020 -21 95
Spätné šírenie s vektormi Jakobián je riedky: všetky nediagonálne prvky sú vždy nulové. Nikdy netvorte explicitný Jakobián, použite implicitné násobenie Neurónové siete pre počítačové videnie 2020 -21 96
Spätné šírenie s vektormi Jakobián je riedky: všetky nediagonálne prvky sú vždy nulové. Nikdy netvorte explicitný Jakobián, použite implicitné násobenie Neurónové siete pre počítačové videnie 2020 -21 97
Spätné šírenie s maticami (tenzormi) Neurónové siete pre počítačové videnie 2020 -21 98
Spätné šírenie s maticami (tenzormi) Neurónové siete pre počítačové videnie 2020 -21 99
Spätné šírenie s maticami Neurónové siete pre počítačové videnie 2020 -21 100
Spätné šírenie s maticami � Neurónové siete pre počítačové videnie 2020 -21 101
Spätné šírenie s maticami Ot: Ktoré časti y sú ovplyvnené jedným prvkom x? Neurónové siete pre počítačové videnie 2020 -21 102
Spätné šírenie s maticami � Neurónové siete pre počítačové videnie 2020 -21 103
Spätné šírenie s maticami � Neurónové siete pre počítačové videnie 2020 -21 104
Spätné šírenie s maticami � Neurónové siete pre počítačové videnie 2020 -21 105
Spätné šírenie s maticami � Neurónové siete pre počítačové videnie 2020 -21 106
Spätné šírenie s maticami Podobnou logikou: cestou Tieto formuly sa ľahko pamätajú: sú jedinou cestou k tomu, aby sedeli rozmery! Neurónové siete pre počítačové videnie 2020 -21 107
Zhrnutie �(Plne prepojené) NS sú skladačka lineárnych funkcií a nelineárnych aktivačných funkcií a majú omnoho väčšiu reprezentačnú silu ako lineárne klasifikátory �Spätné šírenie (backpropagation) je rekurzívna aplikácia reťazového pravidla pozdĺž výpočtového grafu na výpočet gradientov všetkých vstupov/parametrov/medziparametrov Neurónové siete pre počítačové videnie 2020 -21 108
Zhrnutie II �Implementácie udržiavajú grafovú štruktúru, v ktorej vrcholy implementujú dopredný chod() a spätný chod() API �dopredný chod – počíta výsledok operácie od vstupov k výstupu a uchováva všetky medziparametre potrebné k výpočtu gradientu v pamäti �spätný chod – aplikuje reťazové pravidlo na výpočet gradientov stratovej funkcie vo vzťahu k vstupom Neurónové siete pre počítačové videnie 2020 -21 109
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 110
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 111
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 112
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 113
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 114
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 115
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 116
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 117
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 118
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 119
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 120
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 121
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 122
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 123
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 124
Vektorizovaný príklad Neurónové siete pre počítačové videnie 2020 -21 125
Na diskusiu: maticový príklad Neurónové siete pre počítačové videnie 2020 -21 126