takle raz dva tři
poďme se ztratit protože začínáme
poslední přednášku a poslední přednášející igor szoke který se
tady z zdena zbytku věnuje automatickému zpracování řeči a také
a vedení polomech má také zkušenosti se start lety a jeho dnešní přednáška by měla
být povzbuzení může nejenom to co vidí zákazníky důležité ale
že
skryté a inteligentní jádro je další služby má může dát o čem se říká another
eden speech a to se konkurence a to se konkurenci bez nepodaří zkopírovat takže víte
jiné igora
tak dámy a pánové děkuji za sebe uvítání a
začněme Š na začátek otázečku kolik svatby zvládlo okopírovat tuhletu stránku jak leží běží prostě
skupin
zase nahoru kdo to zvládne
jo to nezvládne
proč nezvládnete
já nechcu kopírovat
formulář tak
toto vidíte
ale já se tam ženy a žena říkala že to zkopíruje taky a to počítač
moc nerozumí
tak kolik vás hlavně okopírovat o to tak jak to leží běží
dobré a kolik vazbami okopírovat toto tím ale že by to mělo fungovat tak že
když tam napíšete takle něco rozumného
tak vám to vrátí
nějaké rozumné výsledky
vy
dobrý všechny
můžete konkurovat budu
nebo kolem a doby dotazu ve odpovědi
tak
bylo na začátek
tím že
vlastně sme tobě I ty době digitálních technologií
tak vy pokud děláte nějakou webovou službu
to co vidívali zákazník tak je nějaká kra krásná webová aplikace máte tam pěkné obrázky
portován krásné texty odkopli Y true
a dáváte vlastně zákazníkovi krásný stránek vo tom si dobře a nakupuje vaše služby
máte jeden problém
jak jsem říkal vlastně je to ustanou a jedniček a nuly a jedničky se velmi
často
a velmi dobře kopírují takže pokuď vaše služba je postavena pouze na té krásné stránce
tak vám to kopíruje kdokoliv kdykoliv
na toto téma mě vždycky když o tom přemýšlím napadne vlastně
tracks webových serverů kdy tady byl první se pomát během já nevím roku dvou tady
máme typicky možnost na stovky stavových serveru
a troufám si tvrdit
pro čistě tady tolika proč je taková konkurence je protože to složitost zatím krásný webem
odpovídá si tak složitosti hřebíku
na tom prostě nic není
a to je ten problém potom vám to kdokoliv okopíruje
takže
to proč tady mám toto přednášku je abych vám jakým způsobem
nastínil
jak zařídit aby místo toho hřebíku tam bylo něco složitějšího něco to už vaše konkurence
bude kopírovat news
a to je právě vaše konferencích
co bych té fabrice která se špatně kopíruje mohlo být
ideálně nějaká černá krabička
která by mohla zpracovávat nějaká data nebo něco
co právě
vlastně ta krabička která tady špatně zkopírovat
představte si že máte službu
tato služba
vystavuje fotky
jo máte prostě nějakou službu nebo nějaká videa pomáháte uživatelům je takový výstup rajče nebo
pikasova máte spoustu uživatelských dat
tato dat vlastně proudí vaší službou
a uživatele tím ještě třeba něco dávají jo doba fotky a uživatel napíšou a tady
je počká tady člověka tady není počkat opět se to a máte prostě kvanta těchto
dat
a
co byste by mohli využít nešiď jenom krásnou webu a kluk teda v dokazovat fotky
tak byste mohli těm uživatelům pomocí třeba taková typu
to už je právě nějaká výhoda něco co je nic to ne každý dokáže okopírovat
nějaký automaticky takže
tato přednáška se bude věnovat
neuronovým CC měl inteligenci protože ono vlastně celkově ta umělá inteligence nebo mi šílených je
strašně široký pojem a bysme tady byly až do rána takže já se soustředím pouze
na neuronové sítě zase to celkem jednoduše pochopit takže bysme to měli zase třičtvrtěhodinko a
takže si představte že teďka v té krabičce máte nějakou nebo C
a vy ji začnete ukazovat
potkyna kterých je kočka
a potkyna který člověk fotky na který se té sata sice to nějak učí
a potom
se jí zeptáte
ukaž nějak vypadá teďka nebo ukaž nějak vypadá člověk
já nevím jestli je to vidět co to je výstup toho pánové budu dělali nějaký
experiment strávím čili neuronovou síť klasifikovat obrazu očku a vedle člověk já nevím jestli to
vidíte že tam vidět N paterně si není tak trošku sem přitlačil na
na kontrast
že tam pořád vidět tak
sem tomu ještě pomohl
jo takže toto je třeba příklad jak vlastně nějaká nebo
se dokáže na základě jenom hromady obrázku a nějaké informace tady počká tady člověk binární
informace naučit jak vypadá kočka jakási vypadat čili
myslím že to je celkem dobrá
dobrá umělá inteligence
tak pojďme na to
co je
umělá neuronová síť
já to budu tady značit zkratkou no jako nebo network
slaby slajdy mám angličtině už ani nevím prosím za často ručně ale
prostě musíte smířit
tak neuronová síť vlastně je to jakýsi matematický model který je inspirován by logickým neuronem
se člověku má každý tady hlavě
tak se jiří podívejme ty parametry biologický neuron vezmeme si nějak jo tak dlátka udělejme
mu frontální obvod umíš změny mikroskop
a to sou vidíme uvnitř tak je spousta takových to buněk
a ty buňky jsou mezi sebou propojeny tady takovými chapadly v tom smyslu říkat sony
a vlastně z těch ostatních neuronů vede ten a co na tady tomu se říká
synapse ten a spojení vlastně na ty jednotlivé buňky
jeden modelů takový celkem jednoduchý popisující jak to funguje mozku je že ta buňka dělá
něco čemu by se dalo říkat integritním fajn to znamená
tady chodí nějaké elektrické impulzy které sou realizované nějakým nějakou chemickou reakcí přídou toto neuronu
až ten neuron a integruje nebo na sumuje nějaký množství nějaký těchto impulzu tak se
rozhodně se rozhodne že vystřelí a pošle vlastně ten impulzy dál se po těch jejich
sumec do dalších neuronů takle to tam běhá a nějak to funguje a vidíme slyšíme
a máme radost vlastně
tak matematický model
matematický model je podobný
je to
jakási kulička do které vede
jeden a více vstupu a má to jeden výstup sme
počítačích to znamená je to všechno číslicové jo nástupy dáte nějaký čísílka a na výstupu
vám to se kde čísílko takže si to představíte opravdu jako nějaký čti jakou číslicovou
jedničku
tak uvnitř toho neuronu
je
to není oko se sčítačka to je nějaká to integrate nějaká suma
do které vedou ty jednotlivé vlastně vstupy
de o problém může být v tom že každý ten vstup může mít jinou váhu
ne množství informace takže dobrej něčím vynásobit vynásobíme nějakým váhami
sečteme a teče důležité zařídit to file a to zařizujeme takže máme uvnitř něco čemu
říkáme aktivační funkce
těch funkcí je mnoho jedna z nich kterou vy klemy používáme se menuje sigmoida
a vy vemete ten výstup
té sčítačky strčíte to prosím o jdu a ona vám vrátí nějaké číslo to pošlete
na výstup proč
sigmoida vypadá takto
vlastně od nuly do jedničky a tady nějaký přechod
je ještě potřeba tu simoně jak naladit protože tam se může stát že vám na
základě vstupu tady ta suma bude vracet hodnoty pořád třeba tady někde z mínus desítce
potom by vám to neuron někdy nevystřelil takže se to neuronů ještě strčí speciální
parametr kterému říkáme bias nebo nějaký posun který vám prosím o jdu jenom takle posune
a naladí na tu optimální vlastně na tu optimální část sole si aby toto přes
to
tak to byl jeden neuron teďka to je vlastně neuronová síť neuronová síť nějaké zřetězení
neuron toto je tam nejtriviálnější kterou si dokážete představit jeden vstup jeden výstup je to
celkem k ničemu
zajímavější to začne B když tam máme výstupu ani místu
nebo můžeme dat víc výstupu
a můžeme to takhle pěkně
řetězit
a ještě zajímá když to začne být když tam hezky přidáme další vrstvy
takže potom dostáváme nějakou takovou strukturu tomu se mimochodem říká nebo on to každej tomu
říkal nějaké nějak my tomu říkáme třívrstvá síť tady máme vstupní vrstvu nějakou skrytou vrstvu
této zelená a pak máme nějakou výstupním
výborně
měli bysme vědět co je to neuronová síť se to neuron teď se podíváme jak
na trénujeme jeden neuron
velice triviální
máme jeden neuron
a připravme si nějaká data připravme si nějakou množinu
se
a množinu nulu
X k a reprezentují méně jako v jedničkou na výstupu a
nuly nebo očka reprezentujeme nulu takže potom to můžeme namalovat
nějak takto
osa i
Y
a my chceme poté síti to aby když tam strčíme
jaký ten parametr X to znamená třeba tady máme hnedka to první iksko může být
třeba jednička tak když tady bude jednička tak na výstupu chceme dostat jedničku
a tak dále a tak dále a když tady bude třeba devítka tak na výstupu
chceme dostat nulu protože očko odpovídá pole
takže chceme nějaký jednoduchý triviální klasifikátoru tříd
to co musíme udělat pro trénování je že
vezmeme vstupní data proženeme je tou síti
pak počítáme nějakou chybu opravíme parametry ste síti a
tak dále a tak dále pokuď nám to leze do nějakého do nějakého tým
jak začít
začínáme tak že to síť většinou zastavíme ty parametry na nějaké náhodné hodnoty a ono
se to prostě začne většinou to doleze vždycky do nějakého stejného zima
takže vememe vstupní data proženeme síti dostaneme výstupy
spočítáme chyby
a chyby
pro pak budeme zpátky
matematicky vevnitř seděj něco čemu říkáme gradient descent já o tom tady nebudu mluvit protože
tam spousta nějaký diferenciálu a myslím si zbytečné tady na barcampu
důležité je že ten gradient nám říká vpodstatě
jak ten parametr který jak který ten parametr máme posunout aby se nám vlastně zasít
něco naučil
jo vypadáte takovéto je podstatě nějaká ta kreditní funkce chyby a říká nám to find
to ve jedna musíme zmenší jo takže když to bylo původně nula celá pět tak
hledáme nula celá
máme první teda si
to
jak sme přeurčený parametry dostaneme
novou síť dostaneme nový výstup nové si zase upravíme gradient
a tak dál
dopravačka někam vede
co se týká učení je to celkem důležité pokud byste si s tím chtěli někdy
hrát tak jsou tam takové
sítové některé
za prvé to co vy můžete dělat je že vy můžete vzít a to po
datu a po každém vlastně tom jednom taktu můžete tu síť přeučit updatovat váhy na
to ten problém že vy podstatě budete brat iksko povídku tu si budete pořád učí
na to aby dobře klasickou lánská pak přeskočit nenauč K bude they dobře trénovat
na ty očka ona vám mezitím zapomenete X K takle po to bude lítat ze
strany na stranu ani se neučí
a
tak
takže můžete udělat to
že zvednete všechny data na jednu hromadu
uděláte formátu síti všech těch dat a je uděláte aby po všech datech to má
zase tu nevýhodu že ta gradientní funkce vždycky stejná takže nemusíte dolízt můžete zůstat nějakém
suboptimálním
minimu a nemusí provést úplně na ten nejlepší na ten nejlepší výsledek takže
praktická věc
vstupní data zaprvé
je dobré promíchat
K kvůli tomu nymfu
úplně náhodně a za druhé rozsekat na nějaké menší části a vždycky trénovat o těch
menších častech a zapisovat
ona potom tak radisty funkce je taková jakási skákavá ale máte větší šanci že touste
nějakého
nějaké opravdu jako
globálního optima
za druhé
ten gradient sám o sobě to ostrý to znamená on se vždycky násobí nějakou konstantou
říká se tomu learning kterej a nějakým způsobem ten learning rate nahradit naladit je taky
taková trošku magie
a
pokuď byste o nenaladili tak zase vám ta si přitom trénování bude prostě takle skákat
tom gradientu a budete trénovat potom nikam jako ne
takže vždycky se tam
ty ten gradient vlastně ten s něco posunu těch parametrů násobí nějakou konstantou
třeba nula celá jedna pak
to dopadne tak že pokud se vám pokud opře střelíte a ten learning kryty moc
malý tak zase budete trénovat strašně dlouho protože vám to pole se pomaličku K
takže
musíte si s tím trošku pohrát
jo ale pokud si stáhnete nějaký funkci nebo něco takovýho většinou je čase to používá
tak nula celá jedna jo nějaká nějaký tady ten nějaký tady ten učící
účesy parametr
co dělá neuronová síť
dva stopy jeden výstup
je
v podstatě
binární klasifikátor který vám prostoru je schopen lineárně oddělit dvě nějaké třídy
pokud na trénujete takovouto síť
je to dostanete něco co vám takle oddělí křížky of koleč
abyste si představili to vtom vlastně dělaj ty parametry ve jedna B dva ten bias
tak
ta sigmoida která tím neuronů vtom vede prostoru se tváří jako
zraněnej plech
jo představte si že máte plech který je rovině rovně toho plátna tady v téhleté
líný vám vystupuje jako by na stopla to taková
jo to je vlastně ta Y hodnota
která leze na tom výstupu počet nula nebo jedna podle design
ten zde jedna B dva vám rotuje
to přímku
takže to vám umístit tu přímku že mezi ty X K očka
a ten bias vám jenom posunuje tu přímku vlastně po normále
to toho dělá
jeden neuron
celkem triviální
to se mi řekne
no a o tom jak to začnete řetězy tak samozřejmě to komplikované se tam někdo
nevyzná jo natrénujte síť a prostě tomu musíte věřit
protože máte tam máte tam nevím sto tisíc neuronů a těžko říct co kteří dělat
přes
očí problém máme zase dvoudimenzionální prostor můžeme mít tři výstupy máme tři třídy
pokuď to natrhneme takto tak každý výstup nám v podstatě říká je to ta třída
nebo to není ta třída takže vždycky máme binární otázku
jo Y dva nám odděluje kolečka zbytku Y při čtverečky bit
pokuď tam trčíme takovou speciální transformaci nakonec které říkáme softmax
koš je
triviální vzoreček který vám říká jenom že
každý ten listu musí být od nuly do jedničky osum a všechny vstupu musí být
jedna takže to tak můžete reprezentovat jako pravděpodobnost
tak dostanete toto
ta síť vám potom klasifikuje tu do tří tříd podle toho té vlastně jednička tak
říká která tisíc tříd
teď máme už zapeklitější problém máme miliardy posici kovatelný pro
problém takže máme sluch nějaký koleček a pole hromada křížku
a my to nějakou přímkou my dokážeme sdělit
jak na to
na tohle už nám obyčejná taková dvouvrstvá síť nestačí
musíme přidat vrstvu
a ta vrstva navíc ta skryta dělá jakousi nelineární transformací těžko se to s tomletom
jako představuje ale v podstatě tam lineární transformace vám ten dvě D X i X
jedna X dva prostor nějakým způsobem celej zhorší vobrátí naruby tak že pak vy budete
schopni ty příště polička oddělit nějakou lineární vlastně nějakou přímkou
asi to nedokážu představit ale nejsou prostě ta si to takle dělat
jo takže pak
ona zvládne vám říct
tady jsou kolečka
tak podíváme se jak se dá trénovat
v praxi neuronová síť
připravil sem si takový krátký jenom by nikoho
máme asi dva tisíce přisa budu máme dvě třídy modrou červená jednička a modrá dva
a máme dvě neuronové sítě obě dvě jsou třívrstvé protože tady je vidíte máme nelineární
klasifikaci ta horní má jen tři neurony ve skryté vrstvě ta spodních má třicet jenom
abyste viděli ten rozdíl jako by se velikostí T C
ve sítě adam
tak
s tím ne
teďka to co tady vidíte tak to ty jednotlivé skoky je vždycky update jak je
výstup té sítě po
tom když pracujeme prvních nebo nějakých sto bodu celkem ste množiny dva tisíce tři sta
to znáte nějakej ten řeč jak sem říkal je dobré ta vstupní data si ram
tonizovat rozsekat na malé kousky jako těch malý kouskách trénovat
jo tak ten jeden skoky jako by ten jeden řeč teďka se to zastavilo to
znamená se pak konec jakoby epochy takže celé iterace a pouští se to
celkem máme asi dvacet
dvacet iterací pak
skončí
dobře se podívejte na toto méně houstičku která má tři neurony to co tady vidíte
tady tyto unk i tak to sou jakoby projeví těch jednotlivých si moji
protože tam máme tři neurony vevnitř tak celá ta celá ta síť vlastně celá ta
funkce je po je spojením součtem třísek můj
tady už je to mnohem horší protože tam mám sice neuronu takže to slepý třiceti
takže tam se to špatně vidí a tady to krásný vidět
co se tam vlastně se tam děje
tady na tomto na tomto obrázku vidíte to bílé je jako by
oblast kde ta neuronová síť říká jedničku takže říká že to je ta třída těch
červených
červených prvků jak vidíte se to krásně takže sloučilo tady se to naučil eště nic
protože soma větší sílu ta síť ale
je tam jedna nevýhoda
tak takhle to dopadne to
dvaceti epochách
a vidíme zde
jeden problém který neuronové sítě mají na který si musíte ta pozor pokud budete používat
a neuronová síť se vám nepereme na datech který dáte na trénovacích datech a pokuď
Í potom necháte klasifikovat data která jsou totálně mimo někde tady
tak asi dva vrátím jako odpověď A úplně buřt že ty data životě neviděl
a pokuď se přitom trénování stane něco takového že tady máte takový jakýsi vím jako
by jste jedné si možný tak ona vám tady řekne jo to červenej prvek v
pohodě
ta červená
jo ale ona by spíš jako by bylo dobré říct jako ne já jsem si
to tak životě neviděla pozor na to
jo většina modelu s tím nemá problém já jsem nebo vomastil obzvlášť snadnou fotky
ty už na to nejsou tak
tak
poďme se podívat na nějaké praktické nasazení co se s tím dá se zdát neuronovým
a s těma vykouzlit
první příklad
predikce burzy
toto je výsledek diplomky jednom jo studenta a naším cílem tažení bylo z i
časový vlastně data z burzy nějakého aktivován tím že to byl nějakej akciovej index tohle
a na statoru neuronové sítě tu síť naučit aby nám do budoucna predikovala kudy bude
strach
a tudíž nejsme schopni na základě se predikce říct fajn teďka vstupujeme do trhu a
budeme vydělávat peníze
fungovalo to takže
dycky pro nějaký konkrétní časový okamžik horizont
se síti předložila nějaká historie a na základě nějakých X budu do budoucnosti třeba desetinnému
se spočítá průměr a ten průměr se zdálo na výstup a ten se měl naučit
takže potom když si dávala nějaká nová data tak ona vždycky řekla já si myslím
že to bude nahoru třeba o deset sme bodů padesát
přesněji se tam dělo něco takového takže tam týden vzal vlastně nějaké dvě
historie a nějaké tedy indikátory myslím R esíčko nějaký mě řadič a tak dále ale
celé to vlastně slepil do jednoho dlouhého vektoru to šest vstup
a výstup ta síť měla jenom jeden neuron
pak v praxi to fungovalo takže
sítí se předhodil data to síti řekla fajn
tento bude tady bude někde ten průměr řekněme
měli jsme
dva nějaké prahy a řekli sme
fajn pokuď ten průměry jedna prahem tak stupujeme dlouhé pozice znamená spekuluje menu cestu pokud
ten průměry apod
tím spodním prahem tak den pro krátké pozice takže se to veme na pokles
to bylo se to trhu a zase nechala se síť pracovat a pokuď
tady pak už byl jedinej vlastní jiné prahy na výstup té pozice a zase probíhá
podobné rozhodování pokuď nám vyskočil ten průměr nadtyp prahy a ten takže oproti nám tak
se řeklo fajn skončíme výstupem S pozic
výsledek dopadu nějak takto to znamená zase že to síť svedla
vedla celkem dobře
mimochodem kdyby jestli je tady někdo si to mě byl tohle zájem tak bych to
chtěl letos zkusit nebo příští semestr zkusit rozšroubovat v rámci nějaké diplomky do obchodního systém
jak to bude fungovat silná reálných
prší neprší
ten tam student
dělal jako bakalářskou práci předpověď nedorazil
opět
za si neuronovou síť
předhodili vpodstatě
obrázky odezvy sme to radaru chtěl po ní vědět
jestli bude třeba za tři cenu šest nebo za hodinu pršet
teoreticky možná nějaká služba kde si řeknete fajn chci být informován hodin dopředu jestli přijde
nějaký slejvák
fungovalo to tak že pro nějaký konkrétní bylo třeba pro brno
sme si vzali okolí
ty body tak jak tady leží v tom čtverečku sme narovnali zase do nějakého vektoru
přidali jsme několik historii to znamená mínus deset mínus dvacet třeba mínus čtyřicet
minut
a sme tu síť jestli prší neprší budoucnosti třeba plus mínus
třeba do budoucnosti půl hodiny
tak jak to dopadlo
se stane při pustit
tady máte skutečnost a odpovídá to jako by měli byste tam ideální ve všech těch
trčka vidět to samé jak je to skutečnost jo s tím že se samozřejmě jednou
predikce
tak
myslím že to nevypadáš tak až tak zle
na to jak už
byl takový nástřel v rámci bakalářské práce
použití neuronových sítí řeči
je můj obor
tady bych chtěl spíš
ukázat
jednu
možnosti a to je teďka ne jako by klasifikátor ale
něco
čemu říkáme
příznaky potomek i
podstatě o co de vito nelnou si nemusíte trénovat zřejmě třeba by výstup byly nějaké
třídy ale vy můžete nechat zakomprimovat nějaký širší prostor že ten třeba nějaký vstupní obrázek
nebo jaké jakákoliv data nevím máte nějakou webovou službu lezu vám tam nějaký ty cokoli
chcete slově extrahovat třeba nějaký rozumný vektor čísel který potom budete chtít zpracovat nějakým klasifikátor
k tomu právě slouží
honem potomek to znamená když si uděláte síť nějakou velkou tady můžete mít klidně třeba
tisíc skrytých neuronů a uvnitř té sítě můžete udělat úzké hrdlo které bude mít třeba
třicet neuron nebo deset neuronů nebo nějaký malý malé množství
a pokud se vám to podaří natrénovat best nějaké zásadní ztráty přesnosti takový potom dostáváte
věcičku která vám sestupu což může být taky třeba vektor tisíc nějakých čísel
za komprimuje tyto čísla z nějakého malého vektoru malého prostoru
a
to se potom a může hodit někdy dál jo to znamená vy víte že se
redukovaly zásadně se redukovaly dimenzi to prostoru a přitom mám tam zůstala veškerá von
pak
ten zbytek se zatím potomek neseknete bere ten výstupy číslo sedum
plus výhoda ještě jedna toho potomek u je že ten výstup je gaussovský si vám
jestli vám to něco říká to znamená
mají koráby jiné modely
činu
rozpoznávání řeči mimochodem teďka za nějak a konference celkem známá světová
a google brutálním způsobem už asi rok dva roky tlačí právě neuronové sítě on tomu
říká typ learning jsou to neuronové sítě které má třeba osum skrytých vrstev
a tlačítko kde může uštvaná nasazuje to vlastně i ve všech řečových rozpoznávače pokud máte
android a máte tam vše jakýchsi časy
tak vtom by pravděpodobně už měli běžet rozpoznávače postavené na neuronových sítích oni vyhazují nějaké
ty standardní dosovské modely které tam byly předtím protože to prostě funguje lída sto natrénovat
známým datech a
co s tím celkem spokojený
takže
takže i řek jako že právě tady tenhleten výslednici nulový sítě minimálně v nějakém kontextu
pěti deseti let mají velkou
velkou šanci
zpátky řeči
tady je problém ten že pokuď chcete vzít nějaké nahrávky z mikrofonu a přepsat je
to písmenek tak pokud byste se snažili
pracovat přímo takovýmto hrubym signálem
tak máte problém ten klasifikátor někdy pořádně na trénujete protože
stačí aby vám okolo korelu auto já jsem takle toho hlavou někam jinam ten projekt
ten signál se vlastně úplně změní a
na tohleto na takle barevný signál na trvat nějaký klasifikátory v když
takže jak to udělat jenom zase pro představu
potřebujete dělat nějakou transformaci to vstupů mi používáme nějaké spektrum toho spektra potom řežeme takovéto
pro nějaký konkrétní část
jo pokud tady znělo třeba písmenko a tak pro to áčko tadyhle vyřežeme nudličky toho
spektra
ty nudličky narovnáme na vstup neuronové sítě a jako výstup o tom trénujeme binární nějaké
jedničky nuly jednotlivým písmenku takže pokud máme abecedu ale padesát písmenek nebo padesát nějaký fonému
tak tady padesát výstupu a když to bylo áčko tak jedničku nastavíme volačka všude jinde
nuly a začneme to trénovat musíme mít hromady dat
a na trénujeme potom nějaký rozpoznávač pokud do toho pustíme
ten
nějaký neznámý nějakou řeč
na nahrávku tak nám na výstupu vypadnout nějaká takováto pěkná matice a to
kde ta síť jako
vypálí řekne sem výstup jedničku tak to znamená že si myslím že tam je to
tam je písmenko ten daný foném a pak stačí udělat triviální algoritmus který vám projde
tuhletu matici a najde tu nejlepší cestu a pokud přečtete písmenka po té cestě tak
vala máte přepis řeči máte něco co vám řeči udělá
poslední příklad je
modelování jazyka zná textu
tady zase bych chtěl demonstrovat
jinou jiný druh sítě a tomu se říká rekurentní neuronová síť nebo nemusí se zpětnou
vazbu
je to taky věc která se vám může
třeba někdy hodit
ty dosavadní měli tu vlastnost že
kdy dopředné to znamená zase do toho tady nějaká data na vstupu a dostali ste
nějaký výstup
zatímco tahleta rekurentní síť na sobě zpětnou vazbu
čímž pádem o nám najednou má jakousi paměť kdo to dáte nějaký takto
to data tím proleze ale tím že tam máte zpětnou vazbu tak ona si pamatovala
to takto když tam na ty další tak on už tam bude reagovat na základě
toho co bylo třetí
jak se to praxi děla nebo jak to děláme aspoň me je tak že
máme tu
a zkopírujeme při vlastně pro cestování toho vstupu zkopírujeme hodnoty C se skryté vrstvě a
dáme jako další vstupní vektor a tím pádem se tady neustálému ta nějaká hromada čísel
a ty slouží jako paměť
tuto síť
vlastně ten s tím letí modelem přišel od nás jedem jeden kuš
hotový doktora který je momentálně toto okolnosti taky budu
a učí je tam jak dělat
dělat
jak to jak dělat jazykové modely pomoci neuronových sítí
u těch jazykových modeluje tipuji modely něco co vám říká jak třeba vypadá texte vypadá
česká věta když si vemete novinový články a bude sám je ta dneska sem se
měl dobře
tak
vám řekne když máme slovo dneska jsem se měl tak jaké slovo zatím asi následuje
dobře špatně ale nebude tam si auto nebo autobus
a
pak to funguje tak že ty vstupy jednotlivé
tady už nejsou nějaké hromady čísel ale spíše nominální zase nějaké parametry které vám říkají
jaké sou slovo je jo takže když by bylo slovo ahoj jako první tak když
ve větě ahoj tak se tady bude svítit jednička všude budou nuly a na výstupu
zase je nějaký vektor který vám jenom binární říká to ukazuje do nějakého slovníku které
slovo by měl následovat
tak mám pro vás takový
si se tomu říká turingův test
budou následovat tři slajdy S větami
a jedná se o anglické věci které pochází telefonních konverzaci
takže to nejsou takové ty krásné články knižní řeč ale to trošku jako by reálná
konverzační promluva a moje otázka zní byste pak
průběhu hlasovali co si myslíte že pochází člověka to si myslíte že pocházím počítač
přečtěte
pro ku nahoru kdo si myslíte že toto řekl člověk
při
pořád ještě no já bych měl představu o si to množství
jo
tak další
tak ruku nahoru kdo si myslíte že toto řekl
dobře děkuji
řekl bych to
milá smí
ta
třetí
tak teď prosím roku nahoru kdo si myslíte že toto řekl člověk
i
toto neřekl člověk
toto řekla rekurentní neuronová síť
byla přepnuta do modu generativní ho takže jo negenerovala věci
toto řekl
N grammovy jazykový model
cože standardní věc která víceméně se určí pravděpodobnosti projít slov nebo dvojic
takže ona podstatě zná je sou pravděpodobné jednotlivé trojce slova když to předmět generování tak
ono vám naseká prostě ty trojice tak nějak jak sítový
a toto je člověk a toto sou originální nahrávky jako nebo předpisy na kterých to
bylo trénuj
je to jádro to tak fifty možná
možná tady vás bylo o chlup míň ale
celkem se také se vám líbil
tak finišuje
kdybyste si měli něco
zapamatovat k neuronových sítí tak
je to věc která je dobrá zase nějaký klasifikátor nějaký model umělá inteligence která je
dobrá pro učení s učitelem
musíte mít data
abyste tuletu věc naučili musíte mít data která mají nějaké leží musíte znát tu musíte
znát místo
jinak máte smůlu
co se týká dat musíte mít data musíte mít hodně dat
musíte mít kdej ta
sem tady zaregistroval že to check dorazila vrazila mathworld kdy ta za tři roky všichni
budu dělat kdy ta tak můžete si používat tady toto
jo opravdu ono se to hodí musíte mít hodně dát pokud budete mít jako třicet
vektoru tak s tím že musíme natrénujte musíte mít opravdu kvanta čili zda s tím
let
je to dobrá věcička pro klasifikaci nebo predikci nebo extrakci nějakých příznaků které potom dál
budete s nima nějak pracovat
prosím asi
neuronová síť vám dokáže mapovat tu na výstup
dokáže vlastně najít
libovolnou funkci která cestovní
za předpokladu že ta funkce existuje to znamená pokud máte data a ty data opravdu
se dají svátek nějakou funkci ta neuronová sítích dokáže najít naučit
pozor na
je to taková čem na krabička
a
je taková lehce magická lehce náladová
prostě budete trénovat bezvýrazně jakýma parametr má bude vám to fungovat tak něco změní ten
bude vám to fungovat
a se to trošku zkušenosti něco takového natrénovat nicméně pokuď máte nějaká taková data chcete
zkusit si s tím pohrát access tím zkuste hrát já si myslím že určitě nic
špatného neuděláte
o vzorek sem říkal na nějaký outliers to znamená data která tasit životě neuvidí
ona vám zcela bezelstně dál nějaký výstup a že byste si to
musí existovat mapovací funkce
musíte mít
jak jsem říkal dostatek
a poslední věc k trénování
ta vstupní data jak sem říkal musíte je randomizovaného
a co je ještě podstatné musíte rozdělit na trénovací a jakousi cross validační část
na které bude se jenom testovat to může být klidně pouze desetina dat
problém je vtom že pokud byste trénovali pouze vlastně na všech datech tedy budete vesele
trénovat asi třeba bude vesele učí ale ona se vám na ty data při učí
a potom když tomu dáte nějaká neviděla data tak únava podstatě fungovat nebude
takže proto
přitom trénování vždycky používejte jakoby na validaci té sítě nějaká mi viděná data a nic
na tom ověšte jakási dobře funguje a momentě
přitom trénování by se vám to zlomí a na těch neviděných datech ona se začne
zhoršovat tak se zastavte a vy a víte že se vtom optimu té které se
sítě dokážete
tam domyslíte data
na té řeči třeba bylo vidět že ne vždycky je vhodné do té sítě nahrnou
vstupní data tak jak leží běží občas je potřeba trošku přemýšlet a něco s nima
udělat
a elementární nějakým způsobem třeba redukovat ten prostor
tak aby ta si se měla čeho učitelovi to pak bude
learning kterej
obvykle standardní strategie změny toho učícího koeficientu je taková většinou to z nějakých testech bývá
zašrouboval ano
že během učení je konstantní a v nějaké vhodné momentě když už se to blíží
k tomu optimu se ten faktor začne půlit ono díky tomu to dojít toto vede
ještě dál ale to je taková věc navíc jenom kdybyste si potom chtěli účtů
nějaké detaily
pokud budete mít bitrate a tak budete muset řešit paralelizaci mimochodem gt ručka sou hodně
dobrá natrénování neuronových sítí protože sou to s principu brutálně paralelní procesory takže se to
tam se potom dá pěkně
zpracovávat mě a na normální si trošku to co natrénujte třeba za měsíc tak že
se účku zase záporný
a poslední věc
počet parametrů vlastně té sítě to jsou všechny ty konstanty nějaký tiba jestli active jedna
B dva
ku
počtu skrytých vrstev ku vlastně počtu dat
měli byste mít alespoň deset nějakých příznaku nějakých dat na jeden ten parametr ste sítích
že budete mít síť která bude mít dohromady nějakých třeba deset tisíc parametru musíte místo
tisíc nějakých trénovací vzorů a které musí naučit pokud tomu dáte šmída tak to sice
vám potom bude špatně učit
to jenom reference aby mě někdo ne na to že tady
ukradl nějaké cizí věci
a dávám prostor pro
otázky
no nebo já to fakt
jak velká má být síť
čím řeknu takhle čím větší tím lepší jo takže ono to víceméně plyne kolik máte
dat
jo pokud budete mít milión example u tak si klidně můžete dovolit udělat síť která
bude mít suma sumárum třeba sto tisíc nebo deseti si
deset tisíc parametrů když máte hodně dát uděláte malou C tak tím chybu neuděláte
když budete mít málo dat uděláte velkou C tak chybu dělat
kde mi na to když ji chci na něco naučí vím jako je k jaké
mám ty vstupy naslyčenou či
jak je to takový mám udělat aby nebyla schopna si to zapamatovat všechno
eště to řeknu takhle
měla by být alespoň třívrstvá to znamená měla by tam být právě ta jedna skrytá
vrstva aby ona byla schopna udělat nelineární jako klasifikaci
může tam být klidně čtyři vrstvy nebo víc ale
závisí to na tom tyto ten výsledný potom to co máte mobil osum roste
to už se souše zase problém to naučit protože ten error propagovat cesty všechny vrstvy
není úplně triviální takže používejte normálně třívrstvou síť
nebo čtyřvrstvou ale ta třívrstvá vám stačí
tam to máte velice jednoduchý tu máte jasný protože máte vaše data výstup máte jasný
protože máte vaše data tak budete jenom nafukovat o skrytou vrstvu
mimochodem nějaké chytré hlavy dokázali že jakákoli
tří a vícevrstvá síť se dá převíst nebo k ní by měl teoreticky existovat ekvivalent
třívrstvé sítě
jo samozřejmě praxi čili sprosté tím víc
ale
jo klidně začněte třívrstvou nebo čtyřvrstvou chybu neuděláte u těch dalších tam už to je
trošku věda
proč jsou geekovo minimum umělé inteligence zrovna neuronové sítě
proč ne
ne to jako
přišlo mně to jako věc která se dá celkem
snad pochopit
těch modelu té umělé inteligence můžete mít hromadu
ale nechtěl jsem tady popisovat jako dva nějakej staré algoritmy a říkat tom umělá inteligence
je to věc která si myslím že má budoucnost zcela určitě
a není to úplně složité tohleto
jakým způsobem si nějak jako doma postavit nějakou takovou ty
takovýto klasifikátor
no a máme tři čtvrtě hodiny
nevím jestli ste pokoje odpovědí
já jsem se chtěl zeptat jestli ty příklady které ste tady uváděl že se to
pouze ve fázi nějaký studentských projektu nemesis to vznikly nějaké produkty třeba komerční případně jestli
víte o nějakém tak ten produktu
na kterých se ten neuronové sítě jako opravdu pěkně hodí pěkně popisují ten problém je
to pro ten pro to typicky příkladem nasadit
produt neuronové sítě produktu je bych řek
dnešní době možná
ne většina letos věci co dělat byl i výčapy tyhlety věci prostě úměrná opravdu tlačí
a hodně
a co se týká těch příkladu tak dash skončilo jako by jako diplomka taky jsme
si říkali že bysme mohli na tím postavit nějakou službu ale více méně skončilo to
bodě natrhneme síť ukázalo se že to funguje
burza to samé a létám sem celkem rád bych jako to zkusil potlačit dál a
minimálně rozšroubovat o nějaké platformy opět tak to není problém není problém tohle potlačit
co se týká řeči tak mám evuš deset let tady skupinu lázně že sme
mezi světovou špičkou
takže tam to funguje praxi a ty jazykové modely opět
funguje to praxi
jo takže jsou to opravdu praktické věci
minimální ty dva posledního
jo děkuji
tím říká zeptáte jaký software můžeme použít pro simulaci i predikce neuronových sítí
to je velmi dobrá otázka nejdřív sem říkal že bych tady něco o tu řekl
ale
takle ano
nejsem si nebo nevím o tom že by byl nějaký dobrý univerzální jednoduše pochopitelný toolkit
určitě něco takového je v matlabu eventuelně oktávky si vám to něco říkala
jinak vona ta neuronová síť ve své podstatě když to trénujete tak je to jakási
hromada maticových operací
jo na tom není nic
složitého to prostě jenom nějaké si vzorečky
sou nějaké tu ty týmy třeba používáme týnec nebo kauzy nebo něco takového
ale oni jsou zaměřeny na řeč to znamená vy pokud byste do toho chtěli dávat
data třeba nějaký strhu nebo něco takového
tak
ty naše toolkity baští na vstupu nějaká speciální binární formát a chtěj nějaký speciální textový
formát na výstupu a provazy to byla komplikace proto jsem to tady ne uváděl protože
vy byste zbytečně byly matení s toho jak to máte použít jo ale
ne není problém když tam je napište klidně mail a já vám řeknu já mám
posuvů broučka jako kde si můžete s tím pohrát natrénovat titulky ty jsou pohodě izáček
pustíte dáte tomu dotázat premise síť
já bych se rád zeptal když ste ukazoval to si čtou pamětí tak
i data jako by kterého kterýma se to učí tak
jakým způsobem je pro vás hat přitom testová nějak správně zvolit to jejich pořadí aby
se ta C jako by lépe učila popřípadě
čím se odhalí že mám správné nebo nemám správné pořadí těch
těch dat strana otázka v té rekurentní sítě randomize teda to
a to na to zapomněl říct u té rekurentní sítě data ne randomize se protože
ten důvod byste si přeházeli slova ste větě
jo takže tam vezmete celou větu a učit se to normálně na celých na celých
že ta jo pokud potřebujete zachovat ten historický kontext vlastně té zpětné smyčce pokud nemáte
zpětnou smyčku naopak randomize jo musíte to zamíchat aby
při každým to má bejt u těch jednotlivých parametrů nasycené přerušovala pořád jako by z
je z jedné třídy na druhou a potom sem tam
díky
eště byla nějaká ta vlastně i dotaz eště
že někdo bych to řekl
tak jestli to je všecko tak vám čem mockrát děkuji
děkuji vzorový hrozná s tím