těch _e
to těch věcí
o které jsem chtěl povídat napřed _e s _e rozpoznávání opakování dete dvojvé a pak
se vrhneme do takové pěkné grafické prezentace _e skrytých markovových modelů kterou dělám lukáš budu
bit burget mi vážený kolega
a _e příště si to dám eště jednou _e se všemi možnými rovnicemi ale dneska
to bude takové populárnější abyste si zatím dokázal něco představit tak _e poďme ještě jednou
_e rozpoznávání řeči
rozpoznávání řeči když to vezmu úplně jednoduchou se tak máte k dispozici dvě babky
_e u té jedné řekneme že trénovací
a o té druhé řekneme že testovací
a máte říct _e jestli to testovací vacka odpovídáte trénovacího to znamená tady třeba ste
ve trénování řekli slovo ano
a _e testování je také slovo ano akorát že vyřčené nějakým _e třeba jiným člověkem
a má to jiný časování a ten člověk může
mluvit přes nějaký jiný mikrofon a vy máte říct _e jestli
_e tady tahleta stovka odpovídáte trénovací nebo neodpovídá
tak první věc kterou vtom _e rozpoznávání vždycky uděláme je že si udělal může si
každou babičku rozdělíme na rámce
probíhalo tady diskuze vo tom jak mají být dram se dlouhé a jak se mají
překrývat tak takový typický rámcování je po _e dvaceti až dvaceti pěti milisekundách
se překryvem ptát
aby nám _e aby nám vyšla kladen se
těch rámců každých deset milisekund takže teďka podle položíme složitou otázku
když budou rámce když bude nový rámec každých deset milisekund kolik bude za sekundu
to
ahoj jako jo takže počítáme s tím že máme
_e každou promluvu reprezentovanou maticí parametrů
a
teďka
každý vektor tam máme
po deseti
_e minim po deseti milisekunda
teďka mě zkuste říct co tak těch vektorek asi mohlo být
jo tady ten žebříček který chceme teďka _e vybarvil
tak to je vektor koeficientů zkuste mě říct jako kolibřík tak mohlo být a jaké
asi jaké jsou takové prostě typické
koeficienty
který se používají rozpoznávání řeči
tak
mělo by nějak zachycovat spektrum toho daného rámce
takže to bude asi něco postaveného na fourierově transformaci neměli by zajisté obsahovat žádný informace
o fázi protože nechceme aby nám dělalo problémy když ten rámeček bude o jednu nebo
dvě milisekundy posunutý a
dyž prostě _e tu danou úvazku nakous nebo s tady nebo tady to jako nechceme
aby se lišilo
takže tam bude muset být _e nějaký _e brání absolutní hodnoty a nebo a nebo
v absolutní hodnotě na druhou a ještě budeme možná C T aby to _m bral
of úvahu nějaké poznatky o lidském slyšení
eště budeme chtít spár dalších věcí kterým se dostane
to co jsem teďka říkalo tak slyšeli nebo nějakých parametrech který by to je toho
měli
to znamená postaveny na frekvenční analýze
brát v úvahu jenom _e
jenom _e
amplitudy a nebo výkony tedy amplitudy na druhou
a ještě nějak integrovat to jak naše ouška slyší
kepstrum by bylo asi docela dobrým funding kandidátem a těch různých variant kepstra to bude
asi to mel frekvenční kepstrum
co Š jsou vlastně opravdu
notoricky znamená stále používané koeficienty rozpoznávání řeči jo takže maso co C
jsou mel frekvenční cepstrální koeficienty
jenom _e pro připomenutí vstupuje do nich _e
rámec řeči pak se z něho vezme fourierova transformace s té fourierovy transformace se udělá
_e absolutní hodnota na druhou potom to prochází nějakou je nelineární bankou filtrů takovými pro
hraničky
_e
zase budu vám tam psat typické hodnoty jo takže fourierova transformace typicky na dvě stě
padesáti šesti bodech
samozřejmě je symetrická takže měření zajímá jenom jedna polovina
takže sto dvacet osum bodu tady to má pořád ještě sto dvacet osum bodů těch
trojúhelníkových filtrů tam typicky bývá _e dvacet tři takže tady prostě dostanete _e na konci
dvacet tři hodnot každá hodnota je posbírána jedním tím trojúhelníkovým filtrem
když si _e tady ty hodnoty na výstupu filtrů vyplo tneme tak to ještě pořád
vypadá jako spektrum akorát takové hodně hrubé
_e nižší frekvencích je _e reprezentativnější ve vyšších frekvencích je to prostě horší ze selektivitou
protože se tam ty filtry ty trojúhelníky postupně do zřeďují
potom se to nacpe do logaritmu
_e tady tohle ze pořád ještě dvacet tři koeficientu a pak se aplikuje _e vlastně
inverzní fourierova transformace
která se protože to jednodušší implementuje pomocí tak zvané diskrétní kosinové transformace
a výsledkem je tři na
mel frekvenčních cepstrálních koeficientů
teď si _e vám položím takovou otázku za pekli tou proč je tam ta inverzní
fourierova transformace respektive deset _e
proč už nejsem happy _e
s tím s tím výstupem na výstupu
na výstupu logaritmu zory když to vlastně splňuje všechno co sem řekl že by to
mělo splňovat takže
fourierka tam je fázi sme zahodili poznatky o lidském slyšení sem nějak využil protože tam
ještě ta poslední transformace aby se s tím byly opravovat studenti nebo
_e dobře míň hodnot tak proč třeba jako ne zkrouhnout těch třiadvacet a nevezmu z
nich prvních třeba
S T se to je blbá votázka máte pravdu je to tam jednak abych neumí
hodnot ale eště tam ta inverzní fourierova transformacema jednu docela důležitou úlohu
_e
dozvíme se později skrytých markovových modelů
že jim se hrozně líbí když _e tady těch třináct hodnot
navzájem
je nekorelovaných
co to znamená
jako _e lidským jazykem že ty hodnoty jsou nekorelované
čtrnáct tak na vás takhle blafne nějaký matematik
_e že bych chtěl aby tady těch třináct hodnot bylo nekorelovaných co tím kteří
je jedna by neměla záviset na druhého když se když se podíváte tady na tuhle
tak pokud sou nekorelované tak nemáte ani ponětí vo tom jaká bude
jaká bude
ta stavu dva _e odvaž opičky vedle
no a když si představíte to logaritmické spektrum které pořád ještě vypadá jako normální spektrum
takže nějak
nějak takhle a tam se kouknete na dvě nebo tři hodnoty vedle sebe tak jsou
tam korelované nebo nekorelované
docela těžce korelované jo protože sedí vedle sebe ve spektru to znamená velice _e říká
se setkáte s tím že by ty hodnoty lítali nějak úplně nezávisle na sobě
jo takže ta _e poslední transformace
a inverzní fourierka neboli
diskrétní kosinova
je tam _e jednak proto abych šel dimenzionalita u dolů ale taky pro to aby
se ty jednotlivý
aby se ty jednotlivý koeficienty _e de korelovaly
doby to _e by se tím chtěl zabývat trošku
hlouběji
tak _e tak řekněte já vám _e pošlu třeba nějakou tabulku nebo grafiky s bázemi
tady té diskrétní kosinové transformace
vidíte že to není žádná strašná věda protože vlastně to třiadvaceti bodový spektrum se napřed
pro mít a
tady do takovédle báze
co to je
takovejhle signálových nakreslím nebo takle
stejnosměrná složka přesně tak potom
i tam byla nějaká takováhle _m
co to je
_e pozor základní frekvence ne protože teďka sem ve spektru mám třiadvacet bodu ve spektru
a snažím se je promítat do nějakej
do nějakejch útvaru tajnou pak tvaru
tady todleto jestli mě s zrak neklame tak je půlka periody kosinusovky
jo proto se ta transformace taky jmenuje diskrétní
kosinova další _e další ten signál vypadá takhle to vlastně celá perioda kosinusovky pak mám
pocit že sou tam na
_e že tam jeden a půl a takhle to postupně roste a roste a vlastně
přidáváte _e se kosinusovce na frekvenci
_e
když se vezme na ty jednotlivý báze podíváte
tak _e
tak dejme tomu u té u té první a druhé
co byste voni dokázali říct jako z matematicky jo
z hlediska
prošli stejného ortogonality je
já vím že po ortogonalitou si člověk představí doma když jako se nalepí nějakou políčku
a teďka vona jako
D ze zdí pod pravým úhlem tak to je ta z dobrá lidská hordu ortogonalita
to znamená ortogonalita _e matematicky
_e podobnost ne právě že vůbec ne
kolmost no jasně
pro opravu vlasta jak byste tu pravou los třeba _e třeba počítali u dvou vektorů
byste měli takhle jeden vektor a takhle druhej vektor ten bude mít souřadnice X jedna
Y jedna tady ten nebude mít X dva Y dva
skalární součin super a teďka sem vám tady nenamaloval _e vektory ale dvě funkce
že to že na nich ještě pořád pude udělat skalární součin
bude v pohodě
každým bodě takhlek
takhle bysme to asi dokázali numericky a dokonce my sme to dokázali aera a její
analyticky takže vlastně si ty funkce pronásobíme s každičkým bodě a pak to zintegrujeme taky
to bude skalární součin
a když si představíte skalární součin tady těhletěch dvou funkcí tak tady tahleta je furt
say na tahle tede s kladné části záporné části
takže jejich _e skalární součin bude nula a kdybyste si podobný myšlenkový cvičení nebo když
by nestačil mozek tak si to můžete udělat matlabu vyzkoušeli pro jakékoliv další pár _e
baví tak zjistíte že sou vždycky _e vždycky na sebe kolmý přes ortogonální
jo a pokud člověk něco promítne do ortogonálních bází
tak má docela velkou šanci že _e ten výsledek bude mění korelovanej nečteš to do
co do toho budete strkat
takže to jenom to bylo jenom pár slov výběru tady těch parametrů a proč je
tam za poslední krabička
všechny navzájem
když mimochodem když si vyzkoušejte totéž fourierovu transformaci
se kteroukoliv variantou radost do B S T
F Ř do sopel jakýkoli se to
tak _e vám ta ortogonalita vždycky
vždycky vyjde čtyři to vyzkoušet prostě vopravdu matlabu nebo na papíře
zkoušet jo vy vychází tady s těma komplexníma exponenciálama
tak
takže tím sem zdlouhavě chtěl říct
že v těchto vektorech mám nějakou sadu čísel
kterými budu každých deset milisekund reprezentovat svůj vlastní takže
zkusím tady ten zmatek po mazat
_e
tady budeme mít jednu maticí parametrů
tady budu mít druhou maticí parametrů zase abychom si udělali představu vo nějakejch reálných číslech
tak _e počet těch koeficientů
základní přiblížení je třináct tak se mám teďka maloval
s tom krásným muset co schemátku
hodně často řekněme ještě přibírají tak zvaný _e delta parametry a delta parametry to myslíte
že to bude
čím
čím each co se značí deltou takhle jako
jo
_e chyba nebo nebudeš něco jinýho rozdíl jsem tady zaslechl
jo dokonce jako se s _e se _e s tím potkáte v reálným světě
když budete dělat na nějakým projektu
tak _e váš blíž S
máme na schůzce týdnu té řekne tak jaká je delta moc týdne od minulýho týdne
ale teďka jako musíte nastoupit potáhnou si to kravatu jako říct tak jako udělal jsem
to toto jo takže delta se používá jako _e synonymum rozdílu nebo
_e dobře a _e rozdíl děleny časem
je co
když sedím autě
a v čase T sem tady
a za vteřinu sem tady
tak rozdíl těchdle dvou drah
je rozdíl drah a děleno časem je takovéto co
takže to rychlost jo takže prosím vás těm delta parametrům
se taky někdy říká rychlostní
a pak sou delta parametry
a tím se říká jak
akcelerační jasně víte výztuž to umíte
tak
jo angle anglicky vytékalo bylo asi bylo si ty
_e tady toho vektoru jsem to si piš úplně stejně skoro taktika mně ještě řekněte
když máme _e takovýhle
takovýhle vektor tam je třináct koeficientů
jak byste k tomu ty rychlostní parametry spočítali
jo vlastně otázka je
jaká je rychlost změny
každýho jednotlivýho parametrů dobře podle to zjednodušit nebudovat i ochromovat vektorem třinácti parametrů
ale každej deset milisekund něpřijde jedno čísílko jeden parametr
a aby chtěl vědět
jaká je rychlost jeho změny
jak byste to dali dohromady
je sebe co
třeba změnou hodnotou že jo tak byste si vzal minulou hodnotu
a ty dvě byste navzájem odečetli
a buď se to může podělit nějakou hodnotou časovou nebo nemusí vone to úplně jedno
a dostanete pojem o rychlosti a rozpoznávání řeči se dělá úplně to samý akorát se
těch hodnot bere _e bere trošičku víc
většinou se bere okno který má _e kterýma
pět hodnot
to znamená pro ten pro ten současnej pro tu současnou hodnotu kterou bysme označili té
tak _e se tam bere nějaká funkce která má tuším tady koeficient nulu
tady má jeden a půl tady má jedna tady má mínus jeden a půl
tady mám mínus jedna a vlastně takovýmhle okýnkem se ty _e jednotlivý _e jednotlivý hodnoty
pro násobí
pak se to všecko sečte
a dostanete pojem o rychlosti
tak teďka se vás nebudu ptát
dál
_e kdybyste si tady tohleto představili jako číslicový filtr
jo protože to je skutečně číslicový filtr který má takovouhle
_e takovouhle impulsní odezvu
jo
tak _e co by to bylo za filtr jako by měl kmitočtovou charakteristiku
tak jako takhle se občas nakláněla nějaká fáze jo na přednáškách něco se na fázi
zapomeňte tady tohle
tohle sou hodnoty _e
hodnoty koeficientů toho filtru
a nebo si vezměte ten váš minulej ten sobě no moc ode odečítal dvě sousední
hodnoty od sebe ten by měl jako kmitočtovou charakteristiku
jak a
no proto
ano horní proč horní
protože zesiluje změny a kilo je jakýkoliv pomalý
pomalý pohyby stejnosměrnou složku věc spolehlivě kilo jo když byste měli vedle sebe dvě stejný
hodnoty tak stejná mínus stejná je nula prostě tam nezbyde nic když to změny bude
_e změny bude posilovat
ano prosím vás se pokusím světla řada jedna
a
a tady toto sou zeslabit protože
usuš je to dobrý dyž usušen atomy vidět no změnilo se vůbec něco
aha
rešerše taky žaluzie dolů a nahoru se jan indexu
no nic tak
to snad s na to půjde
tak _e dobře takže víme jak udělat _e jim jak udělat rychlostní koeficienty tím že
každou každý vlastně časový průběh koeficientu pro filtru takovýmhle jednoduchým _e filtříčky mac bysme to
udělali ty akcelerační
těch rychlostní to udělám ještě jednou že jo a je to
jo takže prosím vás jenom vás chci _e na vést k tomu že taková typická
velikost vektoru
kterým reprezentuju jeden rámec řeči
by byla třicet devět
ten magický číslo pro rozpoznávání řeči
třináct kepstrálních koeficientů třináct délce
a tři na vojtech del
takže třicet devět
float u
velikost jednoho vektoru
teďka mě řekněte když mám třeba vteřinovou promluvu
jednadvacet nebo létající prase nebo něco takového inteligentního kolik těch vektoru bude
do to ještě nezapomněl
to
jo tak
uvědomte si že pracuju prostě
zhruba cestovkou vektor nebo ne zhruba přesně cestovkou vektoru za sekundu
tak
a teď se konečně dostávám k tomu _e rozpoznávání
kdy vlastně tady mám takovouhle krásou matici s parametry tady mám taky takovou krásnou matici
s parametry vám tady tyhle dvě navzájem srovnat
tak zkuste měří s C pokud byste tady tohle
srovnali dejme tomu zmenšováním řetězců jo máte řetězec _e znaků metající prase
a pak máte druhý řetězec znaků
a chcete zjistit jestli bylo řečeno létající pro se nebo ne
a teďka tady máme takový matice _e řečových rámců tak mě zkuste popovídat taky tam
budou rozdíly
no pro první rozdíl bude ten že dva _e dvě písmenka můžete match note přesně
nebo ne prostě lo
jo a není to nic jinýho jo
jedno do
dva řečové rámce nemůžete match know přesně protože ani ten samej člověk ani přesně stejných
podmínkách to nikdy nedá tak aby těch devětatřicet čísel těch float u bylo uplně přesnej
že budeme muset _e se uchýlit
buď k měření nějakej vzdálenosti a to ste viděli _e
s budete véčka zaliju a ještě to tady _e ještě to problém jednou a nebo
se budeme muset uchýlit k nějakýmu modelování statistickým u
když si třeba řekneme uděláme model teďka vlastně pots ten modelu vložím jaksi ty _e
ty naměřené parametry a podívám se jak moc ten model bude pálit jo a tady
toto pro mě bude míra _e míra podobnosti
takže
tohle bude jeden problém jo modelování nějakejch rozložení nebo měření vzdálenosti
druhej problém bude
co
ne to může být česku jinak dlouhý jo prostě _e napsané slovo ahoj má pořád
čtyři písmenka a když je to jinak tak to je špatně
_e řečené slovo ahoj může mít čtvrt vteřiny
když to říká
ostrava takové ahoj
tak to bude mít šestnáctinu vteřiny a když to ve říkat želva tak to bude
z dlouhé dvě vteřiny a pořád to bude to samé slovo to znamená že se
rozpoznávání řeči se nevyhneme nějakému časovému srovnání časové normalizaci
jo a teďka ještě aby to bylo složitější
tak _e
souhlásky
který _e dvou natáhnout
a souhlásky který nejdou natáhnout _e když budete po někom chtít
aby _e kdy řeklo slovo prase _e
dlouze tak že si řekne práce
jo a no můžete si vyzkoušet klidně _e tetě si jistě všimnete že _e na
_e na samohláska toto natažení dokázali udělat
ale třeba na plus vývě to
prostě žádný natažení nebude
jo to znamená pokud by někdo měl výborný nápad ten
že mezi těmito dvěma sekvencemi udělá lineární srovnání časové to znamená že
_e si řekne tady tohleto je délka nul
a tady tohle je délka měl
a teďka si udělám nějaký přepočítala tý koeficient který bude funěl lomeno L
a změnám sobě na _e tato tady jako pojedu nějakým indexem ten indexy vynásobím kontaktu
měl lomeno D a pak to zaokrouhlíme dolů na celý rámce abych mohl indexovat tady
tak je to předem odsouzeno
neúspěchu jo protože to _e protože to takhle funguje
takže budeme potřebovat nějaký nějakou techniku
která
si vlastně to indexování dvou sekvencí bude řídit úplně sama
a bude sama vyhledávat ty místa který spolu co nejlépe sedí jo
no a teďka už se dostáváme postupně _e kde se dvojí véčku
_e zase budu muset podívat do nějaké přednášky abych
abych _e měl správnou
správnou notaci
_e jo délka
délka referenční promluvě R vilka testovací promluvě to
změny zase musel vědět
jo takže tady tohle by bylo reference a tam a R frameu
a ten test má
to frameu
a teď těch _e si udělám to že já si _e zařídím
dvě
_e neřekl bych nezávislý ale dvě indexovací funkce
první se budeme nula jmenovat erko
a druhá se bude jmenovat řekl
a rok to vlastně bude poloha indexu ste referenční sekvenci takže semka někde bude ukazovat
řekl
a sem to bude ukazovat řekl
a budu si muset ty dvě indexovací sekvence řídit tak aby byly vždycky nejlepší
_e
asi jehož tušíte
že budeme muset
mít
nějakým způsobem zajištěný když _e tady bude mít prostě na indexoval i
v referenci jeden vektor
zrovna tady tenhleten
a testu budu mít na indexovány taky nějaké vektor
tak my musíme mít nějakou možnost S rovnat co byste doporučovali na srovnání dvou dlouhej
devět a třiceti prvkových vektorů
dobrý tak vidím že to je složitá otázka
když máme dvě čísla Á a B
tak byste je srovnali jestli sou podobný nebo nejsou
si
rozdíl bezva
rozdíl může být kladné nebo záporné kde se mně nelíbí a nechci aby šlapanic do
brna byla záporná vzdálenost
tak nemohli takhle třeba ne
a vy se to dobře počítali bysme to mohli dat jako na druhou ne
a řekněte mě tady tohleto
počítá
tam se můžu zbavit že jo to je _e
ne moment lomeno nekecám
prostě absolutní
hodnota no já bych
nedokázal spočítat jako taky druhou odmocninu
N
a mínus B na druhou
tak proč myslíte jsem to dělat takhle hrozně složitě
ne
ale jo
tak _e teďka budu mít dvouprvkový vektory budou mít _e vektor Á jedna dvě
který mě bude určovat _e
zetové souřadnice jedna souřadnice dvě tohleto je
vektor Á jedna a dvě
_e budu mít _e vektor E B jedna B dvě
a já budu chtít vědět jak tady vzdáleno
jak na to
perfektní tak toto tady uši nadefinuju nějakej pojem jako de tlustý _e jako že vektor
tlustý B jako že vektor
_e bude druhá odmocnina
_e
B dva mínus B ježíš maria
B dva mínus a dva
na druhou
plus
B jedna mínus A jedna na druhou
super tak takhle bychom to asi dokázali jo na když budeme mít teďka devětatřicet ti
nebo obecně nějaký P rozměrný vektory takto budeme dělat úplně stejně to znamená de
a
tlustý bude zase druhá odmocnina a teďka to tam budu asi muset uzavřít do nějaké
sumy protože bych psal
zase mimochodem jednou viděl v nějaké písemce
_e sem dal nějaký prostě jako
výpočet který vedl na
_e na geometrickou sekvenci a očekávám takhle kratičký jako vzorec a
budete tam rozepsal a když popsal tři řádky tak tam napsal a to už bych
se psal
tak ale mně to dobře dostupný počet bodů
_e takže bychom měli _e dimenze těch vektorů beka mínus tak a
a káčko bylo vod jedničky do P kde P je velikost vektoru a tady tohle
by bylo
na druhou jo takže euklidova vzdálenost prosím vás se počítá úplně stejně ve dvourozměrným jako
v deviza třiceti rozměrným prostoru akorát že to byly do třiceti rozměrným se to dá
trošku hůř _e
Ú S
_e pochopit a představit
tak
_e dobře
co sem tím chtěl říci
chtěl jsem ti říci to
že
když si ten referenční
vektor
nebo referenční sekvenci
referenční promluvu
teďka se zase musím pardon podívat i jestli u maluju vodorovně nebo
jo referenci jsem maloval svisle tak dobrý
tak
zase si že tady tohleto je referenční promluva
jo K každej ten vektor obsahuje devětatřicet čísel
tohleto je testovací promlouval
a teď _e si budu schopný spočítat takovouhle matici
která se bude jmenovat matice lokálních vzdáleností a to nebude nic jinýho než prostě
vzdálenost
šest vektoru každý s každým jo prostě tady když vezmete ten vektor druhé vektor tady
na tomhle puntíků matici najedete vzdálenost _e nebo ne najdete spočítáte si pomocí vobyčejná _e
euklidovy vzdálenosti vzdálenost tady těhletěch dvou vektor
jo takže máme dej dejme tomu li tady tato promluva _e jednu sekundu a tady
tato _e promlouvám Á nula celá sedmdesát pět
sekund tak mám sedmdesát pět krát to
_e takovýhle lokálních vzdálenosti to je hrozně hezký ale bych potřeboval jenom jednu jedinou která
mě bude kvantifikovat jak moc je ta testovací promluva blízko referenční
a eště sem říkal by bylo dobrý _e kdyby ta _e kdyby tam vzdálenost nějak
zohledňovala optimální na skládání těch _e referenčních a testovacích vektorů na sebe
tak
teďka bych od vás chtěl
nějaký rady protože my _e tu jednu vzdálenost
asi nebude ochotně počítá jako třeba sumu tady těch čísel toto byl nesmysl že jo
co by bylo potřeba udělat
teďka je _e téhleté velké tabulce si nadefinovat nějakou srovnávací cestu
jo
tak
která bude říkat který vektory se spolu budou _e srovnávat
a po téhleté cestě se bude počítat a finální vzdálenost takto se vám tam nelíbí
a testy
ta smyčka že jo
_e
dobrý ten ani blbě proč to tam proč jako zrovna ne
_e _m můžou _e
ale _e dal srovnávací cesta by měla respektovat to že řeč plyne
prostě jako v odleva nebo od minulosti
do budoucnosti a nemůže se mění jo to znamená zase stavím _e obou těch směrech
měla být
tak to řekne matematicky
_e
no funkce může být celkem cokoliv ale ne class neklesající menu
pole může být může být konstantní
jo
ta funkce může být konstantní proč protože _e právě jedna _e jedna promlouvání kratší druhá
je delší a vy můžete chtít aby se jednomu _e testovacímu frameu na rovnalo tady
třeba deset jo deset frameu _e referenčních pokud
se to vašemu algoritmu vedle líbí jo takže jako konstanty tam být mohou
ale nemělo by to rozhodně klesat nemělo by sto dvacet
to byste ještě u té cesty
_e očekávali takový
inteligentní
_e
to vlastnosti který by to cesta měla mít
říká se budov tato úplně plně houpej oleg dobyta cesta měla začínat
na začátku že by měla končit
na konci jo takže jako bylo by fajn kdyby ta cesta začínala tady
a končila tady
_e to by eště bylo fajn
kdy bylo to kdyby ta cestám byla
_e nějakým způsobem regulovaná co se týče si ho maximálního _e maximálního skoku
nebo kroku
jo a ten krok si většinou řídíme takže tato _e velice konzervativně takže ta cesta
prostě může udělat
_e jeden posunu s testu
a žádnej v referenci
nebo může udělat jeden posun v referenci a žádnej testu
a nebo může udělat _e jeden krok v referenci I testu tímhle zajištěny se nám
to press cesta taky vez buben vezme všecky vektory a nebude _e že nějak nesmyslně
nebude nějak nesmyslně přeskakovat
jo a pokud už jednou máme takovouhle testu cestu _e nadefinovanou
tak _e my si můžeme nějak označit se a teďka nevím jak jsem to měl
přednášce
_e tady sme co
protože tadle zase to sem nebudu jmenovat co
a teď si můžeme definovat podle tady této cesty dvě _e ta cesta bude popsaná
nějakým
svým krokem
jakým prostě počítadle _m počitadlem K normální hodnota která valí vod jedničky až do až
do délky té _e cesty
a _e budeme mít dvě indexovací sekvence první bude rok _e
a ta bude indexovat referenci a druhá bude to K
a to bude indexovat _e test a obě dvě tady tyhlety funkce závislý na _e
nezávislým parametru K budou dávat dohromady cestu jo
tak _e teďka mě zkuste říct _e
pokud teda mám takovýhle _e takovýhle omezení pohybu té cesty to znamená
kdybysme to napsali tak budič
_e buď červ K
_e
plus jedna
rovná se
rok _e
plus jedna a
_e
a to K plus jedna
rovná se to K
nebo
jo tímhle vlastně zapisuju teďka podmínky nebo rok N plus jedna
a toto napíšu jednoduše jo se nehýbe
a _e
a to je to plus jedna rovná se
tak _e plus jedna
nebo
nebo obojí
tady to je teda matematicky zápis jako blázen ale na ten přesnej se podíváte do
slajdů
takže pokud mám ty podmínky takto definovány tak mně řekněte jaká může být maximální délka
cesty
přesně tak jo tady když _e
to reference má délku R a test má délku velký T tak maximální délka cesty
bude _e bude R plus to
tak
R růstu
jo protože nejhorším za _e možná alternativa že tam dostanu takhle
a nebo takhle
a všechny vostatní sou kratší
tak _e
tetě _e
bychom si mohli jiří
jak
bude
_e jak se bude počítat _e váha nebo vhodnost
každé té cesty
koncovým co byste mě poradili jak rozlišit jestli nějaká cesta dobrá nebo špatná
dobrý a teďka jako by to asi chtělo nějakou formu ku jak to spočítat
takže dobro cesty
_e
to budeme značit asi D kordisté řekl nějaká vzdálenost
bude vlastně
počítat prokl se rovná jedna
_e
teďka nemám žádný písmenko na _e na počet
roku té cesty
tak dejme tomu velký K jako C
a tam bude ta lokální vzdálenost a teďka čeho
dvou vektorů
v referenci na ten vektor ukazuje
tady tahleta indexovací sekvence
a s testu a ty vektory ukazuje tady tahleta sekvence a teďka nevím zase jak
se _e značili ty jednotlivý vektory aha testovací s označil o a referenční R a
protože sou to vektory tak musí být tlustý
takže o
tak jo
a R
jako
_e
tak a teďka _e prosím vás
mě tam ještě něco
chybí
na určení dobu dosti každé cesty
_e vzdálenosti nebo čím přesně
R podporu poďme postupně
když _e vlastně udělám takovýhle
_e když udělám takhle počítání té jedné
to je jedné _e lokální vzdálenosti dvou vektorků
tak _e já musím nějak zohlednit jak jsem se tady do téhle tvoje dvojice vektorku
dostal to buď může být vlastně tady
nebo může být tady no můžu by tady
a teďka přichází na řadu nějaká penalizace
jo nebo _e
znevýhodnění té které cesty
a já to udělám fikaně a řeknu tak když jsem se pohnul jenom v jednom
směru
tak bude váha tady téhleté _e lokální vzdálenosti jedna
jsem se pohnul tady
jiným směru ale zase jenom v jednom tak bude váha dvě a teďka pozor tak
to bylo jako za komunistů jo to znamená jako ten kdo pracoval mosazí base rychleji
tak jako ještě
ještě si ho podali tak
to je úplně dete ve je úplně stejný to znamená pokud se pohnou příliš rychle
obou směrech
tak _e to povolím
ale dám tomu váhu dvě
to znamená tady toto vlastně bude zatíženo takovýdle pohyb větší vahou jo takže tady přidáme
nějaký _e nějaký koeficient
který bude
_e který bude záležet na mým pohybu cestě a pravé sme si řekli jakou váhu
že když se pohnu takhle tak to bude jednička když takhle tak jednička
když takhle na šikmo tak
tak dvojka
_e
který udělám jakou velkou čáru
a
tuto spočítanou mu na kumulovanou vzdálenost budu něčím potom chtít podělit po normovat
čím byste asi ten řekli
prosím
bacha délkou cesty ne pozor a dycky když máte nějaký vzoreček
tam je suma nějakých hodnot které jsou násobený určitými vahami
jo protože ty dvojice krásová
a pak vám řeknu bude se normovat tak a jsou tam vlády
bacha maximální délka temene vzorečku jsou váhy _e
sumovat přesně tak jo vždycky když nic neuvidíte něco takovýho a je tam dole normalizace
tak je tam prostě suma vach
jo
takže tady bude suma všech dva
tak
kolika suma vach asi tak je
to zkuste popřemýšlet kolik ta smlouva asi tak bude klidně si nakreslete na čtverečkované papír
nějakých pár obrázku
stanic kolik to asi to bude
no ste R plus T vlastně byl kate referenční promluvy
plus délka testovací promluvil
tady tenhleten setup nebo _e tohleto nastavení vás má tu výhodu
že opravdu ten normalizační faktor
pokaždý bude úplně stejnej
bude to R mluvte
cože hrozně fajn
protože _e nám to velice zjednoduší věci
výborně
mám krásný velký vzoreček
pro _e výpočet srovnávací
_e nebo pro výpočet vzdálenosti těch dvou sekvencí po jedné cestě
takže teďka _e nic nebrání tomu abych si tam na tahal všechny možný cesty
že jo
pro každou spočítal tady tuto hodnotu
a pak si vybral jenom jednu jedinou která bude reprezentovat srovnání tady těch mých dvou
_e promluv která to bude
jak a
nejmenší před přesně tak nejmenší vahou protože tam si vlastně budu jistej že se k
sobě narovnali vektory kterých _e nejlíp sedí který každá dvojice budou mít nebo ne každá
bude mít minimální vzdálenost ale sumě
dosáhnu minimální vzdálenosti
jo takže ještě jednou mohl bych
pro zkoušet teďka všechny možný cesty
ukažte vyhodnotit tady tu do C
pasivních vybrat co nejmenší asi jo P mám jednu hodnotu dete ve vzdálenost
a tahle bude _e výsledek
mýho srovnání
akorát že by to asi dalo trochu práce že jo
tak _e poďme zkusit zapřemýšlet
jestli _e
jestli by se to nedalo nějak
obejít
zjednodušit
tak _e
já vám ukážu takovej
takový obrázek
_e a tom obrázku C definujeme _e druhou matici to bude tak zvaná matice částečných
kumulovaných vzdáleností
asi si ho budu chtít namalovat tady
vedle této to tady trošku promarnil
tak
tady toto byla matice lokálních vzdáleností prostě každý s každým
a tady toto bude
matice
částečných
kumulovaných
vzdáleností
a na matice částečně kumulovaných vzdáleností
každičkým svým bodě
obsahuje _e nejlepší _e
obsahuje
nenormalizovanou
_e vzdálenost
jo to znamená beztoho to faktorů
po nejlepší cestě
která vede zpočátku tady do tohodle
no tohohle bodu jo
to jak tam zajistíme tu nejlepší vo tom si právě teďka budeme povídat jo to
znamená ta _e vzdálenost vedou
my budeme značit
zase musím
_e jo G
_e
tady je prostě nějakej bot
E G
G P je
tak ta obsahuje
vlastně pro tento vzoreček
který vychází počátku ale končí právě ne nejde a že až do konce promluv a
dokončit tady tomhle bodě
tak a teďka prosím vás _e bych
chtěl
abyste si představili tady tuto _e
toto záležitost jako tabulku
drama jaký sloupce nějaký řádky
_e já tu tabulku
plním vodspoda nahoru
tady můžu mám
tady můžu mám všude vyplněnou
jo to když to je dobrý tady to taky dobrý
a proto tady na tomhle bodě
si vyrobit tady tento bot B je
odkud jsem se do tohodle bodu tak si mohu dostat
zespoda zleva a nebo zespoda zleva jo
tak nebo tak
a je docela dobrý že tady v těchto bodech účty vzdálenosti mám hotový tam to
může mám spočítaný
jo tady máme nějaký _e de
_e já teďka nevím co je pro mě vodorovná to svislá nasekané prostě tipnuté Í
mínus jedna je
tady mám
hobby houby pardon tady to sou všecko géčka jo
tady mám G T mínus jedna je
tady mám víte co
to je to byl hroznej matek _e mám udělám zoom tady na toto
tak
chci počítat tenhleten chlíveček
kde hodnota k D R jo
a tam jsem se mohl dostat tohodle bodu kde mám G E mínus jedna L
a nebo s tohodle bodu kde mám K V
mínus
_e
G E B mínus jedna je mínus jedna
a nebo tady vodsaď
kde mám dvě D
je mínus jedna
odněkud inu jsem se tam dostanem o
a sem si jistej _e nebo vím že tady tyto hodnoty mám spočítaný abych teď
chtěl abyste měli mě dali předpis pro výpočet tady této hodnoty kterou neznám
a pozor budeme konstruovat vlastně jako lokálně optimální cestu tady někde počátku které je tady
někde pryč
do tohoto
do tohoto bodu
s tím že už mám hotový cesty sem
sem a sem
tak mně řekněte prosím
_e kterou těch se mám do tohoto bodu G P je protáhnout
no
asi tu která mi tady tomto bodě dá nejlepší tedy minimální výsledek že jo
a _e ně vlastně stačí
udělat to mně stačí vzít si lokální vzdálenost těch dvou vektorů kterou si vyberu tady
se
_e tady k té levé tabulky jo to je to tady tu modrou vzdálenost troufám
přepočítanou samozřejmě to D je
a já ji zkusím připočíst
tady k tomuto bodu
s koeficientem jedna
zkusím ji připočíst tady k tomuhle vodu
bacha koeficientem dva protože penalize jo ten hodně rychlý pohyb po úhlopříčce
dva krát D je
a zkusím ji vzít _e připočíst _e tady to mohl bodu jedna krát D je
a s těmi co udělal s těmi třemi hodnotami
vyberou by bylo nejmenší jo tak mě třeba jako nejmenší v jinde tady tato
tak to je výborné protože já a naplním ten bod běží je tady touto hodnotou
tím pádem dostanu čísílko a eště by mohlo udělat to
co když budeme někdy chtít _e když budeme někdy chtít zjistit jak to optimální cesta
vypadá
co by jste doporučovali
bylo by dobrý si zapamatovat
odkud sem tady do tohodle vodu přišel znamená mít _e mít nějakou _e paměti
jeden integer nebo pointer nebo cokoli tam si uložím že sem do tohodle bodů přišel
tady zespoda
tak a teď tě _e si zkusme _e
teď si zkusme jako trošku
zkusme zapřemýšlet
pokud tady ta cesta
potom s tohoto bodu půjde
nějakým jiným směrem kamkoli cache až do konce
tak může tady tenhleten zbytek ještě ovlivnit
tento výběr můj který jsem právě udělal
jo kdy když potom na té cestě budu mít ještě dalších deset hodnota budu se
rozhodovat deset doprava nebo doleva
tak _e má některý tady s těchto jako budoucích
puntíku šanci ovlivnit nebo nějak změnit tady tenhleten o můj výběr
nemá
jo tohleto je prosím vás hrozně důležitý C u algoritmu dete dvojvé
že vlastně já můžu udělat lokálně
nejlepší rozhodnutí
a tady to lokálně nejlepší rozhodnutí už potom nebude dál dalšíma výpočtem a změněno
toto to je prosím vás jako hrozná _e rovná bomba a prakticky základ celýho dete
dvojice
a v mírné varianty potom i skrytých markovových modelů jo protože já vlastně
postupuju v té tabulce
_e normálně zleva doprava zespodu nahoru
prvními s každým bodě si udělám prostě nějaký rozhodnutí a to rozhodnutí potom bude platit
tak _e teďka mě prosím vás řekněte dvě věci jak tady ten _e jak tady
ten algoritmus ukončit co když
tedy dojde do tady do toho posledního chlívku
dobře pokud to potřebuju pokud mně stačí jenom numerická hodnota srovnání těch dvou sekvencí
tak se na nějaký vykresování můžu celkem _e
celkem vykašlat a prostě si vezmu tu hodnotu udělám jednu operaci pozor jakou
musím to znormalizovat jo protože tady ta tabulka mě s udává nenormalizované kumulované vzdálenosti
a prostě mám srovnání těch dvou sekvencí končím šmitec
jo
když budu chtít _e samozřejmě zjistit jak vypadali průběhy těch dvou sekvencí _e teka a
R K znamená jak vypadala cesta
tak si tady v tom poslední bodě řeknu odkud sem tam přišel o co
odkud sem přišel sem a odsud odkud jsem přišel sem _e osum roků jsem slyšel
jsem a tak dále a může se takhle době které jsou what cache
action a počátek a zjistit jak to optimální cesta skutečně vypadá
tak ještě sme si nefunguje pověděli _e jak to bude tady s tím prvním
jak to bude s tím prvním řádkem a s tím prvním sloupcem prosím
jo tam to není tak úplně jasný jak ten algoritmus nahodíme vlastně jako inicializujeme
co byste tady
co byste tady doporučili
jo vyplnění prvního řádku a prvního sloupce
_e musíš more to ne
jo prosím vás tak dostanu čísílka
sem
a sem
nebo
jak vlastně dostanu čísílko sem
no úplně prvního chlívků který má index jedna
prosím
jenom
bacha já vlastně ten algoritmus nahrazuju
a tím nahození udělám takhle šikmý pohyb
takže ano je to tam déčka ale vahou dvě
bacha jo to je to je jako taková nepříjemná věc
že tady tento chlíveček je spočítaný vlastně jako de jedna
krát dvě
že tam je penalizace
a jak potom vyplním ty další chlívky
no je tam jenom jediná možnost jo prostě jako jedu takovým způsobem
že vždycky té předcházející hodnotě přidávám patřičnou hodnotu těch ste matice _e lokální vzdálenosti
kdybyste to prosím vás chtěli vyjádřit matematicky jako jak tam teda zkonstruovat tu podmínku tak
můžete říct tady tohleto je vlastně úplně klasicky dete véčko
akorát _e tady udělám
tu záležitost že hodnot že se tam přidám nějaký extra řádek a přidám si tam
extra sloupec
a tím extra řádku extra sloupcům dám hodnoty nekonečno
jo takže kdybyste se tam teda jako chtěli pohnout vodněkud minut
tak to pude ale hodnota to je
tyčky bude nekonečno plus jeden krát lokální vzdálenost takže hrozně velký tak si ji stěrači
vyberte tu druhou
no a tady toto je
toto je princip _e nette dvojvé
možná že bysme si ještě na to rezervuje ve mohli tak nějaký
nějaký rychlo příklad
ale příklady uvidíme ještě na poslední přednášce mám na numerickém cvičení
takže jenom _e tady to zdlouhavější opakování uzavřu tím
jak pomocí determu jde udělat a rozpoznávač prosím vás
jo zatím sme se tady bavili o srovnání dvou sekvencí vektoru referenční testovat
teďka chci aby to je to rozpoznával aby se tím třeba dali říká že telefonní
čísla nebo volit jestli chcete šunkovou nebo sýrovou nebo obou pizzu
a nebo mimochodem moh zavěšení mobilu máte rozpoznávač zaměřené na dete véčku tak máčknete tlačítko
ke smete do toho kočička chcete aby to dalo
telefonní číslo vaší mile
přitom tam máte té konkrétní milé máte tam vložených deset telefonních čísel různých milých a
jak to teda teďka uděláme prosím vás jo zatím sme se bavili o srovnání dvou
sekvencí tečky rozpoznávat
tak
to bude docela
straight forever že jo budu mít nějaký slovník
k tomu slovníku
budu mít různý
referenční sekvence vektorů
jo tady toho bude třeba nějaká
R jedna
_e toho bude na ta kratší dobude dejme tomu R dvě
a to D
proč nějaké R
R
měl
každá ta sekvence vektorů prosím vás má M S C tečkama tam prostě pěkně vyskládané
každých deset milisekund
pak příde test testovací nějaká promluva
velký tlustý o
tak _e co uděláme
si rozpoznat která si referenčních sekvenci
to byla
a tam máte nějak něco pěknýho tak tady třeba
toto je _e
čunkova
nic
sírová
_e
a Y
tak jak rozpoznáte kterou ten člověk chtěl pizzu
máme dete ve máme mocný nástroj který dnes teďka právě vyrobili
no tak jacka spočítáme dete ve vzdálenosti
vstupní sekvence
ze všema reference _m a
jo
pro každou referenční musíme spočítat
maticí lokální vzdálenosti potom tam poštvat ten _e ten algoritmus
na stavění matice částečně kumulovaných vzdálenosti a dostaneme sadu
do té vzdálenosti
R jedničkou
de o
R dvojkou měněna až de
slov tvýho
S R
měl
co s nima
vyberu nejmenší a je to
minima vyberu minimum
a je to třeba tady tahle takže chci pizzu a Y
jo uvědomte si prosím vás že _e právě pro výběr
může možná že nám nebylo jasný
když sme tady došli nakonec se _e na konec té matice tady jako semka
proč tam ještě bylo potřeba nějaká normalizace jo protože já sem říkal že tady si
vlastně vememe poslední hodnotu
_e to byla _e to bylo vlastně ta částečná kumulovaná vzdálenost dvě C R
a teďka ju eště musím znormalizovat
_e
těmi dvěma
_e těmi dvěma délkami
tak tady toto nám nebylo jasný proč jsme to dělali
jo _e
uvědomte si že pokud máme ve slovníku
_e když máme ve slovníku
dvanáct vypit
jedna
jeden názvy třeba nic
a druhá je sírová artyčoky a
ostrým dresink M
a jedno slovo má _e dejme tomu a nevím sto milisekund a druhým a čtyři
sekundy
tak ty dvě hodnoty _e
částečných kumulovaných vzdálenosti budou mít úplně jinou dynamiku
jo to znamená kdybyste _e kdybyste tady tyto dvě hodnoty
srovnávali
tak klidně můžete říct slovo blaf
a pak můžete říct _e slovo _e
jo sem teďka zapomněl
kruhová syrová s výborným dresink M já můžete to říct úplně přesně a to slovo
blaf i když bude když naprosto nebude odpovídat co voni
tak bez normalizace i když tam budete mít totálně štilácký _e lokální vzdálenosti tady bude
tak málo
že prostě sumě vám dají lepší hodnotu než když budete rozpoznávat nějaké dlouhatánský heslo
jo pokud budeme normalizovat C
_e délka s testovací sekvence plus délka referenční sekvence tak máme šanci že ty hodnoty
budou numericky
srovnatelné
jo tak to bylo jenom poznámka ho
o normalizaci a proč
kdy tam budem potřebovat
no a tady takhle si můžete klidně vyrobit _e rozpoznávač izolovaných slov nějakým malým slovníkem
a já si teďka neuvědomuju jedna z labiny jedete dvojvé nebo ne nebo není
jedna z laboratoří
našeho předmětu
no
je tam
jo tak už o tom nebudu povídat protože do uvidíte v laboratořích a jako s
těch z těch aktuálních nebo s těch _e umí to sou
aktuální výborně
tak _e dobrý
takže toto bylo devíti dublinu
teďka se poďme podívat o kousek dál
a jsou skryté markovovy modely kde vlastně
vidíme velmi podobné věci
aha
tak a teďka teda _m chviličku technická pauza protože
_e
tohle vám budu muset ukazovat ze svýho notebooku
možná malovat na tabuli
lukáš totiž používá nějaké krásného takové udělátko kterým se do power pointu dají psát
rovnice macechu
akorát že to
potřebuje nějakých pár fontů
které se samozřejmě nedají nainstalovat na školní
mašiny
ho
modrá obrazovka sem nebral
no tak zmizneš než nabootujeme
tak to jim mám protože na těch prvních několika s rovnice zrovna nejsou
tak _e
_e
extrakci
příznaku sme tady povídali
jo to znamená
každý kde sedmi sekund dostaneme nějakou _e nějakou hodnotu
a teď prosím vás lukáš to tady má ukázané na _e jednorozměrné příkladu
a takový kulkách do plotu kdy vlastně řekneme že každý řečový rámec máme k dispozici
pouze jednu jedinou hodnotu _e nějakýho parametr
jo a teď prosím vás _e rozdíl od toho jak to vypadalo
jak to vypadalo před chvilkou
před chvilkou _e sme to měli takže existovala ve slovníku
rozpoznávače
konci měli systém restartnout
vidíme to zkusím ještě jednou bude další modrá obrazovka
tak _e měli sme ve slovníku rozpoznávače
_e nějakou jinou
promluvu
která měla taktéž své hodnoty
a tady tyto hodnoty
sme spolu navzájem srovnávali napřed sme si udělali nějakou tu velkou matici lokálních záloh ty
pro tam hledali nějaké cestičky
a tak a tak dál
a teď to bude trochu jinak
my ve slovníku rozpoznávače nebudu mít nebudeme mít žádnou jako _e referenční promluvu
ale budeme tam mít nějaký model
a ten model
bude
jako kdyby
generovat je tyto hodnoty
a u každé té hodnoty
budeme schopni říct
jaká je pravděpodobnost toho že by ten model zrovna tady tuto hodnotu vygenerovat
já _e říká se ten mohanem kam generativní modely a to je to ne _e
ten pojem _e vobčas jako nemá moc krát protože on je ve skutečnosti nic ne
generujou
prostě my potřebujeme jenom ty pravděpodobnosti jednotlivých hodnot tady v tomhle případě
skaláru normálním ne zase modrá obrazovka sorry
normálním případě vektoru
_e takže já mám _e já někdy říkáme že budeme počítat pravděpodobnosti s jakými ty
vektore ty modely jednotlivé vektory žerou
takže prostě moje modely budou spíš hrát nějaké hodnoty
tak zapomeňte naše společenství pracovat
to je to pouze stává se vám něco podobného sedum N když set připojíte na
tom jedu row _m na bezdrátovu síť a poslední odpojíte
a _e
nebo chcete znovu
máte počítačové spací módu předtím struny připojení na sedum a pak přijdete do nějaké místnosti
kde drum není tak stala se vám že vám
padá počítač na ústa
docela zajímavá věc
toto líbezná mohli vyřešit protože to bylo docela pravidelně
modré obrazovky jsou
su modré
obvykle s tím že já tady ty fonty nemám
jo je to tam na prase já jsem směna výborně
tak poďme na to
takže
nebo fischl jak sme si něco říkali minule o tom že budeme modelovat _e taky
poďme se podívat na úplně nejjednodušší příklad _e
kdybychom chtěli vzít jeden rámec řeči
a chtěli bychom říct jestli je tady zahráme C tři patří do jedné nebo do
druhé třídy jo tady
_e je takový jednoduchý přiblížení
že toto je dejme tomu spočítaná krátkodobá energie
ale bysme chtěli říct _e jestli je ten zvuk _e znělý
a nebo neznělý jo takže když bude zněly nebude mít prostě velkou energii a když
bude neznělý tak bude mít malou energii
_e texture
na ose X
jsou naznačeny vlastně nějaké funkce přesně by se řeklo funkce hustoty rozdělení pravděpodobnosti ale teďka
prostě si dvě představte jenom jako nějaké kopečky
a po tyhle kopečky budou posílat jednotlivé hodnoty
a ten kopeček který pro danou hodnotu bude víš tak to vyhraje
jo takhle jednoduchoučký to je takže představte si že tady budu mít jednu hodnotu kterou
budu chtít vo klasifikovat
note pošlu sem
zjistím že modrý kopeček _e svítí tolik a červený kopeček svítí hrozně málo tak _e
řeknu že tady toto hodnota prostě bulva byla _e byla nezněl a protože měl a
malou energií
tak
_e
když _e bychom to chtěli zapsat matematicky
tak _e tady budou mít dvě nějaké hodnoty
dračím nebudeme říkat pravděpodobnosti ale budeme jim říkat prostě třeba skóre nebo
nebo věrohodnosti nebo
my tomu říkáme likelihoody I česky protože likelihoody česky věrohodnost ale jako T takový
to je takový podivný slovo
a za tou je za tou čárkou
je vždycky to co známe
a před tou svislou čárkou je to co chceme určit
jo takže likelihoody
když známe vstupní hodnotou X
té _e té _e
_m té třídy unvoiced
právě jsme změřili že bude takováhle likelihood s té třídy _e pardon
co
ne nezměřím že likelihoodu T třídy a nebo jestli bude tady toto
likelihoodu T třídy ano vole bude
tahleta takže když se zeptáme tady tuto otázku zdali vo jestli většina šanuje sem tak
si řekneme prostě že ne
a _e a určíme
že ta hodnota patřila tady toto ruce modré cizího takže tady klasifikační úloha prostě dvě
třídy
jedna vstupní hodnota dvě funkce hustoty rozdělení pravděpodobnosti který mě vyplivnou dvě čísla já si
položím tady tuhletu otázku a _e a hnedka na ní
zkamení zjistím odpověď
_e
co
je trošku problém
je ten že já vlastně tady s toho _e těch grafiku
nedostáváme _e nebo toto co bych chtěl
tak jsou pravděpodobnosti prostě když přijde hodnota i jaká je pravděpodobnost
znělé třídy
a jaká je pravděpodobnost neznělé třídy
době _e na těchto funkcích vlastně to že _e já dostávám hodnotu opačnou jo to
modrá mě _e určuje
když by tady tato hodnota byla přída unvoiced kolik by to bylo a když by
tady tato hodnota byla třída voiced
kolik by to byl to pro vás cvika není žádný velký rozdíl
ale matematicky to celkem lstivé a naštěstí existuje chytrý vzoreček
tak zvaný based u
který nám to _e který nám to umožňuje
možně přepsat viděli jste někdy B jsou
nejsou vzoreček
jo ten vlastně _e
ten vlastně říká _e tady ještě pořád něco kam se data
tam se dá psát
no
jejda no
nám říká že _e pokud je
pokud je nějaká pravděpodobnost
jeho
_e
podle dám pravděpodobnost jevu B podmíněného
jeden a
tak _e to můžu zjistit jako
pravděpodobnost
inu _e
podmíněného
jeden B
a teďka abych to totálně nedo vrtal
_e
měl bych to
normovat pravděpodobností i u _e a tady bych měl
_e dát takzvanou apriorní pravděpodobnost
je vůbe jo a tady tohleto _e
tohleto a vlastně ten vstupní hodnota nebo tady toto jsou pro nás data
tak _e
pro sem řekl
že ta hodnota té B je apriorní pravděpodobnost
co to znamená apriorní
to znamená když
někomu řeknete něco apriori víte
jako
tímhletím vzorečkem vlastně vy říkáte
že _e
máte nějaké jevy byl
třeba že _e přijde váš _e
spolubydlící nemůže přijde vaše přítelkyně ze kterou ste se rozešli
a _e ta data sou ta
že vidíte prostě nějaký obličej ve dveřích jo
že to je B jako apriorní pravděpodobnost tak ještě vůbec nikdo nemusel sít že žádných
si ve dveřích nevidíte
a přitom už můžete nějak kvantifikovat jaká je pravděpodobnost tady těhletěch dvou B či
jo spolubydlící za váma chodí každou chvilkou že si musíme pučit kytaru nebo já nevím
cokoliv dalšího
a přítelkyně ste se rozešli takže zhruba tak jedno procentní aby že apriorní pravděpodobnost
že přijde zpátky jo to znamená tady se ještě neviděli data ale už máte o
tom výsledku
nějaké ponětí
_e tohleto
je
pravděpodobnost
toho že ví když vidíte nějakej obličej
že
je to buď že
spolubydlící
no přítelkyně
samozřejmě vy tady tu pravděpodobnost poznáte jak byste to _e k byste to udělali nějakým
_e strojově tak byste určili tady tuhletu pro pravděpodobnost nebo spíš likelihoodu
je to spolubydlící no přítelkyně
asi byste si museli udělat nějaký model že jo jako udělali byste si model přítelkyně
podle fotky
model spolubydlícího taky podle fotky potom prostě by ten příští k se objevil a vy
byste spočítali likelihood že to buď ten a nebo ten tak jak je to tady
s tím jak je to tady s tím spodky jak je to _e jaká je
vlastně
pravděpodobnost přístup
todle _e todle jako těžší oříšek
protože
jen tak jako _e jen takto určit nejde říci prostě pravděpodobnost to psychiku je tolik
a tolik
tak byste to mohli udělat se tím že bysme vlastně zjistili _e jaký sou všechny
možný hodnoty čitatele
to znamená _e
_e daly bysme tady sumu
_e P
_e
přes _e
přes všechny možný hodnoty véčka jo
a prostě možné jako prostudovali tady tyhlety možnosti že to je _e že když je
to přítel
ta která tady tuhletu hodnotu a jeho apriorní pravděpodobnost byla taková že když je to
přítelkyně tak jsou to zase nějaký hodnoty ale naštěstí prosím vás je tady tohleto pro
nás nutný pro rozpoznávání když jsou jenom říct která si při to byla
ten jmenovatel
naštěstí to nutný není protože pořád stejnej jo to znamená většina těch našich rozpoznávat X
algoritmu
se tady dnes tohoto docela dobře obejde a pracuje jenom _e pracuje jenom S
_e čitatele
teďka já sem vám tady říkal jakou jako _e
takové srandovní přiblížení jako přítelkyně _e a _e spolubydlící
kdybyste nevěděli nic moc vo tom jak sou ty _e jak sou ty třídy apriorně
rozložené to znamená kterou máte očekávat
co byste asi co zbylo asi dobrý tady ta zatopte B
apriorní pravděpodobnost nějaké tří
úloh
a když byste tam dali půlky
a ty třídy měli dvě takž tady na toto můžete zapomenout úplně že jo takže
že v tom vlastně nejednodušším pojetí
my budeme pracovat jenom s likelihood jenom tady s těmito hodnotami
a podle nich budeme rozhodovat
jestli to byla jedna třída nebo druhá jo ale někde zpaměti byste měli mít
_e povědomí o tom že existují také nějaké apriorní pravděpodobnosti
a že nedejbože existují i ty jmenovatele který občas můžeme _e který občas můžeme potřebovat
tak
_e
teď těch _e
když budeme zkoušet _e
_e když budeme zkoušet _e klasifikaci
do více tříd
jo když ty třídy nebudou jenom dvě
ale bude jich víc
tak _e se nám tady tahleta do té rovnice která tam byla před chvilkou
_e změní nebudeme se jenom ptát prostě větší než menší než ale budu hledat maximum
jo takže maximum
_e
toho nebo maximálně pravděpodobný když nějaký data jsou dané třídy
bude tehdy když _e součin
likelihoodu
třída když sem viděl data krát _e apriorní pravděpodobnost té dané třídy pro danou třídu
omega když prostě bude _e bude největší
tak
a
jak _e jak to teďka ale dát dohromady
protože tady ty křivky
pro jednotlivý třídy nám samozřejmě nikdo nedá _e služby nenajdete matematickofyzikální
tabulka
takže _e zkuste mi říct
jak bychom tady tyhle
tyhle čáry ty funkce dali dohromady
kde de víc aby to začalo klasifikovat rozpoznal
tak zkuste si vzpomenout _e před chvilkou sem tady povídalo dete dvojí ve
jo kde sme kde sme vzali ty slova
který
který se budou rozpoznávat
nějaká databáze že jo někde musel nahrát a někdo k ní musím dát nějaký zdroj
byly jako že tohleto je slovo jedná todleto je slovo a Y todleto je slovo
nic a tak dál
dyž budu dělat _e takovýhle _e teď třídění jenom vobyčejnej vektoru
a budu sítí natrénovat tady ty
křivky tak to musí být úplně stejně budu musí mít data
a budu muset mít nějaké _e nějaké značky dejme tomu určený
tady je _e to je prostě wavka
a wavka se převede
na
sekvenci
vektoru
hodnota má
a já budu mít časový značky který mě řeknou tady je to vo list
jedno třeba značka hláska a tady bude unvoiced
a tady bude sádlem s tady bude prostě
tady bude ticho
jo budete mít spoustu takovejhle vektoru
takhle
označen A
a _e
na těch vektory
tady si to můžeme představit protože sme v tom v jednoduchým _e skalárním případu tak
prostě budeme mít takovýhle
tyčky naměřený který budou s jednotlivým značkama
a na těch tečka prostě vybuduju
tyto funk
tak _e když samozřejmě budu mít těch _e bodu
určitý
množství
tak ty funkce nebudou moci bit
o složitý
uprostřed budu muset pracovat s jednoduchým a funkce má taková dobrá
funkce která reprezentuje data v reálným světě taky gaussovka
zkuste měří taková gaussovka
jaký má parametry že taková letech na jednorozměrné
zkuste český čest česky
normálně vona má nějakej prostředek že jo ten prostředek sem najat
řekni hodnota super a pak je nějak pak jinak plus ta a to je
to je určený buď rozptylem anebo směrodatnou odchylkou
jedna na druhou se dá vpohodě přepočítat protože rozptyl je směrodatná odchylka na druhou jo
takže todle je prostě jedna _e by čínská gaussovka
_e
tetě když _e budu počítat
parametry takovýhle gaussovek
tak mi to někdy půjde jednoduše
a někdy to půjde trošku hůř _e v případě že mám tadyhle zelený data
a zelenejch dat budu chtít _e spočítat parametry zelené gaussovky tak víte že existují jednoduchý
analytický vzorečky
střední hodnota to toastu štosy viděli že jo když prostě _e
zelený data bych označíme jako by byl
tak _e střední hodnota zelena bude prostě _e suma
zadaří a tady v
to bude
jednu jedna N prostě _e
jejich počet
kdyby chtěl směrodatnou odchylku
zelenou tak to bude asi něco jako jedna lomeno N
odmocnina _e ze sumy
_e z vedení
mínus tu spočítat není Z
a druhou jo takže prostě
střední hodnotu směrodatnou odchylku všici dokážeme spočítat
je to hrozně jednoduchý
_e když budu mít nějaký složitější určování parametru
tak už to takhle jednoduchý být nemusí
a _e
budu na to muset jít
pomocí
_e nebo budu si muset napsat
co vlastně chci _e co vlastně o tom algoritmu chci takhle když sem určoval tady
ty parametry střední hodnotu a senátu chvilku
jak si myslíte vlastně com co mě o co mě šlo tady u té gaussovky
jak se mi chtěl posadit
na ty data
co myslíte že byla jako funkce kterou sem chtěl
maximalizovat
tak jednu můj cíl
zkusím
musím přepnu zase
král
pardon asi udělám tak to je tak ohromnou změnu
_e
z toho důvodu že tady se tady srazí malovat
no
K
tak _e můj cíl vlastně ten
aby ta gaussovka
dával co největší hodnoty
pro
pro _e ty body
který má reprezentovat jo když udělám sumu
hodnot tady těchto bodů
tak já jsem snažím tady tuto sumu
nastavit na maximum a pokusí uděláte _e takovýhle výpočet
_e tak vopravdu na několika řádcích dokážete
odvodit
výpočet parametru
gaussovky or dokonce sem se to jednou zkusil skutečně to D forma jako člověk dobrej
pocit
že si maximalizací tady téhleté hodnoty dokázal odvodit vzorečky pro _e pro výpočet parametrů gaussovky
tomuhle procesu
se říká
při
tomuhle procesu
prosím vás
se říká _e a musí maximum likelihoodů
neboli maxima sem maximalizace
věrohodnosti
a de vlastně o to že když mám nějaký data
a teďka mám parametry si ho modelu
tak já mám
_e likelihoody který mně ten model
vysypává
pro všechny data který mám k dispozici tak tady tyhlety likelihoody vynásobím
a snažím se nastaví parametry toho modelu tak aby tady tahleta hodnota nanejvýš nejvyšší
a tady tomuto u tomuto se říká _e tomu se říká maximalizace
věrohodnosti nebo maximum likelihoodu T stihneš
a některých případech to de pohodě
analyticky odvodíte si vzoreček a rovnou to spočítáte a v některých případech to nejde analyticky
a musíme prostě
_e procházet starat a iterativně to uvidíme právě případě těch skrytých _e markovových modelů
tak _e
uvidíme tady toto
v případě jednoduché gaussovky případě modelu se směsí gaussových rozložení a potom případě toho C
svítilna com
_e tetě _e budeme řešit tři věci
budeme _e chtít vědět jak tady tuhletu likelihood vůbec spočítat
potom jak tady tyhlety
parametry
natrénovat
a pak taky v některých případech uvidíme že tam jsou vlastně nějaké skryté parametry toho
modelu
takže _e
typicky vlastně když bysme chtěli tady tu hodnotu tak bysme je měli vyzkoušet pro všechny
možné hodnoty skrytých parametru
což je nesmysl stejně jako budete véčku jestli si pamatujete sem říkal že nesmysl procházet
všechny možné _e srovnávací cesty takže budeme chtít znát nějaký rychlý algoritmy kterýma se těma
skrytým _e
parametrama rychle prokouše ne aby jsme dokázali vlastně dostat jedno jediný číslo
kdy jedním modelem budeme chtít ohodnotit nějakou vstupní _e stupni sekvenci vektorů
tak
_e jak je to _e jak je to gaussovka má
jednorozměrná gaussovka vypadá takhle prostě ten datový bots mínus střední hodnota
tady je dvakrát směrodatná odchylka na druhou že jo to směrodatná odchylka se objevuje E
V ve jmenovateli
a když budeme _e dělat _e maximum likelihood odhad
těhletěch parametru tak
přijdeme na ty dva
známy vzorečky
a když euro zeptat po nějakých skrytých proměnných tak je to v pohodě protože tam
žádný nejsou jo prostě jedna zásuvka nasypu do toho data vybod
kdy byla sme to na mě jednu hodnotu
nic _e nic tam není neznámýho nebo skrytých
tak
_e když půjdu trošku složitěji
tak _e několikarozměrná gaussovka
_e bude mít zase dva parametry ale tentokrát to bude vektor a bude to nějaká
matice jo když mám zásuvku několika rozměrným prostoru
tak ta střední hodnota je vektorová
to znamená tady by mě ukazovala
do bodu asi jedna
jedna
a to jak je ta gaussovka roztažena v různých směrech
to mě udává tak zvaná kovarianční matice
_e
přemýšlím jestli se tady dostávat se do _e
nějakých detailů jak ta kovarianční matice
a nebo nemá vypadat ale na že bysme mohli
_e
viděli jste někdy několika rozměrný o stovky v nějakým předmětu
matice no ne
nevadí
musíme udělat základní nalejvárnu
je
dvourozměrný prostor
tady je parametry X jedna tady je parametry dva
přední hodnota má jenom dva prvky určený vlastně střez kdy bude ten můj
kopeček
a teďka tavnou slůvko
můžete si ho představit jako klobou tedy
který vypadá nějak takhle
no a _e tady vy ste
kovarianční matice
teda
_e základním přiblížení
má prvky jenom na diagonále sme tadyma nulu nemá nulu
a tady má směrodatnou odchylku prvním směru na druhou a tady má směrodatnou odchylku ve
druhým směru na druhou
jo takže když budete
prosím vás _e zvětšovat
tady
tady tenhleten bot
_e které tady tuto hodnotu tak ta nouzovka bude
co bude takhle to byl jakostní stěhovat
a vtom druhým směru bude pořád stejná
a když budete šahat se na tuto hodnotu tak se ta gaussovka bude smršťovat
nebo ztenčování tady v tomto směru podle toho jak to nastavíte prostě bude tadle tlustá
nebo tenká jo
ústně reguluje té šířku toho kopečku v jednom a ve druhém směru
tak a teďka mě zkuste říct
_e jí když bysme se na to dvoustovku podívali takhle svrchu
jo
tady ste roviny
a nakreslili si tam souřadnice
X dva X jedna
taky jaký gaussovky jaký kopečky jsme schopni s tou diagonální _e kovarianční maticí namodelovat
jak budou vypadat při pohledu svrchu
kdybyste si představili mapu jo kde ten kopec na kreslenej jak ten kopec bude vypadat
jo eště jinak řečeno jak bude orientovany
tak já vám napovím když je ta kovarianční matice diagonální
tak gaussovka může vypadat jako kopeček jako vzít jo které kulatej
nebo může vypadat
takže půjde
nápadu na východ
jo nebo že bude klidně jako jinak plus ta západu na východ
nebo že půjde ze severu nají
nebo že bude eště jinde silnej a s každým případě bude vlastně orientovaná nebo _e
bude dycky symetrická kolem nějaké _e kromě jaké osy
jo takhle se schopní _e
vyrobit dvourozměrnou gaussovku diagonální kovarianční maticí
eště mě zkuste říct _e
jak by se tady ta dvourozměrná gaussovka která vypadala takhle
dala taky namodelovat
na vypočítat
jestli jako vám přijde tam ta
rovnice složitá tak
a s váma souhlasím nebo taky nemám hrát
počítání nějaké inverze determinantu nic pěkný
vy byste udělali takovouhle dvourozměrnou zase
jste to chtěli udělat jednodušší
tak já mám nápad
dělejte mohli bysme udělat
v jednom směru
jednorozměrnou gaussovku
ve druhým směru tak jednorozměrnou za stovku
jo
a teďka s každým bodě roviny tady tyhlety dvě spolu vynásobit
a dokážete takhle dostat
kopeček který je moc kulatý nebo obrácený severojižní anebo nebo vichr západně jo
opravdu _e gaussovka Z diagonální kovarianční maticí
D reprezentovat a taky jako
to hrozně moc využíváme
jako součin dvou jednorozměrné gaussovek
tak a teďka pozor
když _e
tady ty nuly zrušíte když tam dáte nějaký hodnoty
tak
dokážete udělat takovýhle gaussovky šikmý
jo prostě různých směrech
ale ty už nedokážete udělat jako součiny jednorozměrných gaussovek jo tady už vopravdu potřebujete
tuto složitou rovnici abyste _e takovouhle gaussovku
dokázali vyrobit
pozor prosím vás takovýmto stovkám s plnou kovarianční maticí my se budeme vyhýbat jako čert
kříži zaprvé to složitý
a za druhé to ne trošku proti _e proti tomu co jsme očekávali o vstupních
dat
jo teďka zkuste udělat rychly myšlenkový skok na začátek téhle přednášky
když sem vám tady vykládal vo M S T tečka co sem říkal že bysme
chtěli o stupni koeficientu do rozpoznávání
aby jednotliví
jejich prvky
nebyly navzájem
korelovaný žejo aby _m navzájem nezávislými
no a teďka když si představíte něco když uděláte takovouhle šikmou gaussovku
no tak to zachycuje právě korelaci
jo protože když mám takovoudle šikmou gaussovku tak já řeknu
já vím no a ne
ne
ne
u A
kdy to medvídek půjčky
tak _e
vy víte že když se v těch datech posunete v jednom koeficientu takovýmhle směrem
tak se prostě sem druhým koeficientu posunete druhým směrem jo znamená _e
taková našich menádou stovka
naší že data sou korelovaný
to nechcem a ještě zase mít jednodušší takže my prostě tady budeme vnutit tvrdě nuly
a budeme buď buďto zařídíme a nebo aspoň budeme doufat že naše data sumy korelovaná
a budeme pracovat pouze generálním kovarianční matice
poslední věc prosím látek může _e taky _e tahleta funkce vypadat
může vypadat jako směs gaussovek
jo máme _e několik různejch
gaussovek
tedy jsou označeny nějakým index víčkem chce každá má svoji střední hodnotu pravda má svoji
_e směrodatnou odchylku tady teda bych spíš řekl že by měla být jako sou že
ho její kovarianční matice
a máte nějaké váhy pece
a bylo by dobrý jako jak u slušných lidí je zvykem aby se ty váhy
sumu valy _e sumu valit do jedničky
a takový mohl _e modelu se říká vlož mixture máru
nebo taky G M
a toto sou prosím vás velmi zásadní modely pro rozpoznávání řeči
protože uvidíte úplně všude tady si budeme hrát rozpoznáváním řeči ale dělá se s tím
taky rozpoznávání
řečníka dete chceš klíčových slov rozpoznávání jazyka
já nevím ještě co
_e co dalšího
tak
a více o tom _e plošných se modelu o tom jak se potom dá generalizovat
na arménka
tři povíme příště tak děkuju za pozornost notes