_e pánové
značně prořídly tady venku jsou to bylo takže díky všem kteří se nezastavili do dobré
nějaká organizace _e tento týden teďka nevím jestli se má mnoho čtvrtek no pátek v
noci je odevzdání projektů jedničky
_e příští týden se bijou
děvčata takže přednáška není
za dva týdny mám poslední přednášku proteosyntéze pokusil jsem se dost sem dostat _e tetra
horáka troše syntezačních budu český ale bohužel má nějakou akci kde musí být
takže _e to zvládneme vlastními silami a buď starýho syntéze bude vykládat igor szoke
který se docela syntéze omočil
a nebo _e nebo já
_m prosím vás poté poslední přednášce
bude následovat cirka hodinového dvouhodinové numerické cvičení které plánované programu tady tohodle kurzu ahoj zdeňku
takže nevím jestli _e tady tuším probíhá nějaká matematika možná že se budu muset přesunout
vedle
ale počítejte s tím že pouze poslední přednášce budeme mít jakou noční se vším
jo že se ještě uděláme nějaké příkládky na L P C
zde do to byl
arménka
pokusím se to dostatek o do doby kratší než dvě hodiny ale vono je tam
toho zase hodně a ty příkládky chci abys vám prošli rukama takže prosím příprava je
tady se do sebe papír tužku a možná kalkulačku a tečna hodnot počítat hlavy
tak _e
toto bylo
organizaci vaše k těm velikonoc i mě napadlo že pokud máte v týmu nějaké lidi
v zahraničí a vzletem vysvětlovat že příští týden vidí lidi jak na ulici dvě holky
a vodpoledne sou všichni strašně vožraný tak máme vlastně v našem týmu teďka jednoho
lukáš který je svírá nula druhých tries indie možná že tady nebo jako potkáváte po
fakultě tak těmi upřímně zděšení text nemuseli dlouho vysvětlovat li budete příští pondělí
tak _e
poďme _e zpátky prosím vás gamem kam
minule jsme si _e říkali že se pokusíme natrénovat nějaké parametry modelu
a že vlastně _e taková základní záležitost k natrénování parametrů modelu
bude jakási pravděpodobnost
že jsme
vod začátku času čas probíhá takhle
stavy modelu sou prostě nějaké a že sme od začátku modelu někde
to znamená že si to cesta může probíhat celkem kde chce
_e
čase ste se nacházím ve stavu je toho modelu
a potom sem zase někde jinde
kdekoli
jo a řekli sme si že _e vlastně budeme chtít vypočítat pravděpodobnost
že se s _e které
jsou tady někde
teďka ovšem probíhají v tomto čase tady tímhle tím stavem a pak se nám zase
rozběhne a pak sem _e pak sem někde jinde já nebudeme chtít vypočítat tady tuhletu
pravděpodobnost která bude děsně důležitá
protože tady touto pravděpodobností potom budeme váhou what
ten vstupní vektor který se nachází v tomto čase a bude vlastně váhovací jeho příspěvek
ke trénování jednotlivým stavům jo to že prostě máme nějakou hodnotu
a teďka zkusit finta nula celá devadesát devět i rozhodíme tomuhle stavu a nula celá
nula jedna tomu druhýmu stavu a tím ostatní dostanu ale s každým případě to prostě
bude vektor váhovací _e srovnávací sme si ty
tak _e minule jsme tak jako naťukej jak tady tuhletu pravděpodobnost _e budeme počítat
bude to vlastně _e
suma
věrohodností nebo likelihoodů všech cest který nám to hádanku může vydat C pro všechny cesty
který jsou tady někde který probíhají tady tímto stavem v tomto čase a tady vlastně
zase se nám to rozběhne a bude to suma všech se který jsou někde jinde
_e abychom S kázali dostat nějakou pěknou numerickou hodnotu která by tady toto ohodnotil a
ale neměli bysme naprosto zaručený že tady toto hodnota bude slušná
pravděpodobná
aby to slušná pravděpodobnost byla tak už víte že když máte hodnotu tady a eště
tady access toho udělat _e slušný pravděpodobnosti tak _e
se dá udělat jednoduchá věc
a to že vezmete ty hnusný hodnoty s každým stavu
všechny je po sčítáte a pak tady těmito hodnotami vlastně ty jednotlivý hnusný hodnoty podělíte
a najednou dostáváte krásné hodnoty které budou sumovat do jedničky a který se potom dají
použít jako ty váhovací _e váhovací kreslit
tak a taky jsme si říkali že vlastně když se nad tím člověk zamyslí a
_e uvědomit si co jako právě řek že teda jako to může _e že udělá
sumu všech cest který vlastně probíhají primátorym a tudyma eště tudyma
tak už je to prakticky suma uplně všech se
tedy tím alarmem cam probíhají
a tu sumu úplně všech cest nebo všech stavových sekvencí jsme nazvali baumwelchovu v a
_e likelihoody
a mám takovej pocit že sme vyznačili jako _e jako velký té
o který je prostě vygenerovaný modelem takže poďme se teďka trochu detailně _e říci
jak _e který k těm hodnotám
dojdeme a jak tady ty magický pravděpodobnosti který hrozně potřebuju jinak prosím vás eště notaci
já to mám jedné sadě svojich slajdu nadšený jako L jet E
a někdy jindy tomu taky říkám jako gama
jako gama je C
pokaždý je to stejný ale to učení řečeno posteriorní pravděpodobnost _e
_e vyslání tohohle T o rámce je tým stavem
jo takže _e poďme se podívat jak bysme na to asi tak mělí
tady vlastně jinými slovy řečeno procesor vám _e říkal to znamená že můžu vzít tady
tenhleten likelihood a po normovat to sumu všech likelihoodu will tomto čase a přes všechny
stavy
a že teda se to dá přepsat takže je to vlastně _e celkový baumwelchův tady
klidu
vyslání téhleté sekvence vektorů celým naši máme unk
tak
a poďme _e poďme naše _e začít rýpat
detailně
do toho jsou vlastně umí dělat tady je čas
tady
soustavy raménka to johannem přítomen označíme jako
jako nějakej jednoduchej modýlek
a teďka _e
víte že musím určitě začínat tady v tomhle stavu ale dál se mi to
rozvoji a tady se mi to
zase rozvoji
a ten limity sty _e nebo ty stavové sekvence můžou _e můžou přeskakovat
a my se tady někde uprostřed
ocitáme
_e
hledaném nebo v čase to je
ale stavu je
a chtěli bychom prostě jako _e hrozně pro něj spočítat
_e ten likelihoodu jako všech cest který budou tady všude před tím
a tady někde všude potom
a v tomto stavu
budeme nebo v tomto čase budu přesně tomletom stavu
tak my si to rozdělíme na dvě _e na dvě _e
a dvě na dva komponenty
co vám říkal že komponentová vrat mužského rodu a ne vždycky
tak první záležitost bude
_e tak zvaná částečná dopředná likelihoodu
že jsem začal na začátku modelu
tedy
někde tady
a že sem se až do tohodle času
dostal
_e dostal semka jo to znamená suma ševče všech cest
který nastartoval i na začátku modelu a do tohodle času dolezli do tohodle stavu
tak a zase jako
budeme postupovat nějak iterativně teďka si představte že sme tady v tomto
_e vo tom postavu
a tomletom čase
a chci teda tuto likelihood vypočítat
zkuste měli taky do toho budou vstupy
bude tam zase jako nějaká jednoduchá rovněč k a
a ukončuje nemáte to dobře
tak mně řekněte _e poté co sme si prošli D C dvojtečka matroš třeba jako
něco víte o grafech možná z nějakého jinýho kurzu
jak tady ten černej puntík budu moci spočítá
a možná jako pro osvěžení paměti
_e
s každým černým puntíku nebo s každým puntíku na tom grafu mohou spočítat ňákou takzvanou
výstupní likelihood tím že vezmu akustický vektor
a narvu ho do příslušnýho
rozdělení pravděpodobnosti toho daného stavu to mně dá nějakou hodnotu
_e když cestuju
po červené čáře tak _e tam budu mít přechodovou pravděpodobnost s toho minulýho stavu do
toho současnýho stavu
jo takže push
bychom mohli ten černej puntík zkusit postavit
sim
zkusíme
musíme budeme na
zkusíme zabít především
tak
_e likelihood černým puntíku
což bude nějaká _e
alfa je to je
bude na jako
suma přede všechny stavy kde sem mohl být
před tady tím nastavím jo a tady vidíme že to je že jako se nemám
tolik na výběr že sou dva a pod mzda napsat obecně tady tohle budou možných
sta vidí
teďka já tam musím vzít v úvahu ty částečný _e pravděpodobnosti
tomto stavový a teďka mě řekněte sama na sebe závorky
jo tady toto je časté
teďka pracuju s těmadle červí mamutí tom
T mínus jedna jo předcházejícím čase
takže to je mínus jedna
a když se budu chtít rejpnout
poté helete _e čáře nebo po téhleté čáře do toho velkýho černýho puntíku kde teďka
zrovna počítám tak tam ještě musím dopsat co
tak vždycky když se vybuzeno stavu do jinýho stavu tak do po přechodové pravděpodobnosti jo
to znamená bude tam muset být hodnota a je
ale když do toho velkýho černýho puntíku dovezu
tak tam bude muset být ještě co
ten je T stav musí se hrát
T vektor a musí říct jak i u jakou pro něj
produkuje výstupní hodnotu funkce hustoty rozdělení pravděpodobnosti jo takže ještě budu muset napsat
že sem vlastně věcným stavu
a vysílám ten _e
vysílám ten T vektor strašném mám pocit na čili
na čili nějak takhle jo jako
se
jo a teďka jako
víte že to docela z jednoduchý protože na začátku to samozřejmě musím nějak _e nainicializovat
musím říct že tady _e že tady u toho
_e že u tohoto prvního stavu
vlastně
M
sem tam musel vlez nějakou úvodní
přechodovou pravděpodobností
N času které ještě neexistoval jo tam tady nemám žádnej
tady nemám žádnej vektor
vektor ne
jo takže jenom _e počítám vlastně přechodovou pravděpodobnost
toho počátečního stavu sem
a teďka musím vyslat _e sem prosím vás tady uzavřete rolničky jo a teďka musím
vyslat _e ten první _e první vektor které je k dispozici jo takže takhle se
ten algoritmus nahodí
potom vlastně v běžných iteracích _e vo můžu klidně nechat probíhat takhle to znamená každý
stát
krávo v baru modře jo kde kdesi počítat tak si prostě žere
_e svoje vstupy a přidává com příslušné přechodové pravděpodobnosti a tu svoji vysílací
a když půjdu dál tak zase třeba tady tenhle stav tak si
uděláte toto a toto a tak dále a takhle vlastně jako propaguju a postupně rozšiřují
ty _e částečné dopředné likelihood i
no a pak budu muset ten algoritmus nějak uzavřít že jo když dojdou do úplně
posledního času
kdy bude
konec promluvy velké T
tak tady _e
tady _e vlastně _m musím
říci
teďka sem úplně na konci
a
pak vlastně existuje většinou ještě nějaká výstupní pravděpodobnost
prosperity jo markovova modelu
kterou budu muset _e kterou budu muset vynásobit hodnotu kterou budu mít a budu hotový
na konci
co si myslíte že na tom konci tady dostanu co tady bude za hodnotu
uvědomte si co jsme dělali s každým
každé kombinaci času a stavu
no vlastně vzali v úvahu všecky cesty
předcházející možný
udělali jsme tam sumu
a teďka prostě jako jedem až do konce
a teď sem najednou skončil
co si myslíte že bude k dispozici tady
my bysme si to měli označit formálně
tak by se to menovalo
alfa
_e nějaký N jako poslední stav a
to je plus jedna jako že už všecko skončilo že dnes toho modelu vylezli
myslíte že tam bude
no perfektní A Z tom dáme tomu nějaký jméno po nějakejch dvou plánech třeba
třeba baumwelch že jo takže tady toto je hrozně důležitý protože já když si udělám
tento algoritmus tak na konci
to hodnot z toho vypadne hodnota té o M vlastně celkový ohodnocení té sekvence vektorů
celý modelem
a už neberu nějakou jednotlivou _e stavovou sekvenci ale sou vtom načítány úplně všechny
a toto je
suma přes _e všechny možný cesty jo
bezvadný takže _e tady to máme nějak formálně
opsaný
takový krásný obrázek
_e kdybychom _e
kdybychom se to chtěli napsat rovnicí no tak to bude vypadat asi
si nějak takhle to sem tam před chvilkou měli
a uzavření algoritmu
je to psáno prostě všechno obecně ale vopravdu je lepší si namalovat graf abyste viděli
_e co se děje a ta poslední likelihoody taký žena baumwelch
bezvadný takže máme _e částečnou likelihood X začátku dostat až do stavu je
v čase T
co myslíte že budem dělat teďka
jo pořád zkuste držet hlavě jako jaký máme _e jaký máme vlastně problém se sem
vyřešit
my chcem vyřešit T pravděpodobnost
že budeme B
čase je
čase to je ve stavu je
to šíje
chomáč nějakejch cest na začátku teďka přesně tenleten stav tomletom čase a chomáč nějakých cest
na konci
taktika nevyřešili těma hodnota má alfa chomáče těch cest na začátku a to že sou
teďka tady
co nám ještě zbývá vyřešení
tak vodsaď nakonec že jo prostě všechen jako _m všechny nesmyslným cesty vodsaď až nakonec
tak _e jak myslíte že to je to nebudem řešit
eště než tam nám příslušné vobrázek
pudem
vodsaď nakonec nebo
od konce
sem
správně jo takže budeme definovat něco co se menuje _e částečný zpětný likelihoody
který začal jsem na konci modelu a v čase T sem vystavuje a zase si
pojďme udělat _e rovnou malůvku
jak to _e jak to bude vypadat
tak já si možná do té malůvky vezmu _e tu další
rovnici
ne
tedy tady toto
já mám tady zase
u
u
tak _e to je takový pěkný graf Í
_e
tady se mi
rozbíhají ty
různé
cesty a tak dále bla
teďka _e
sem tady
vlastně
na konci
B
B
E stavu
čase
té
tady je poslední posledních stav modelu
tady mám prostě jako kdyby neexistující čas T plus jedna
a přechodovou pravděpodobnost _e
předposledního stavu modelu
do posledního
tak a _e teďka sem prostě tady někde
uprostřed toho chumlu
vedou myslím cesty _e z času a stavu který jsou potom
a já budu chtít se spočítat _e
_e zpět částečnou zpětnou likelihoody
že sem tam stavu B je
čase _e
v čase T
tak poďme si zase říct co tam tak asi se mi tam tak asi mohlo
bejt
tak je tam asi
následující
částečná zpětná lekli může následujícím ne podle toho jak to počítám ale
následující vše se omlouvám se protože _e takhle čase od konce na jo
takže bude tam _e suma přes všechny napojený stavy
_e kde dám
částečnou zpětnou likelihood a teďka to bude co za čas
když počítám čase to je tak tam musí být
to je plus jedna super
_e co tam bude
eště asi
jsou tady modrý puntíky taky ještě je potřeba nějakým způsobem kvantifikovat i ty čáry bude
co
to budou přechodových pravděpodobností jasně a Í je
a teďka bacha
ty či _e tam asi budeme muset nějak zamixovala
vysílací likelihoody že jo vyslání _e vektoru nějakejma zprávama
ale teďka přesně jak nám tam zkusím něco napsat
zkusím vám tam napsat B
_e je
B je o té
a co myslíte bude tady todle dobře nebo C
prosím
jedna mínus B je
proč
_m ne
vono mi to takhle mohlo fungovat ale uvědomte si že já sem vlastně _e při
výpočtu alfy jo když jsem počítal si tak sem balil takhle prostě jako začátku
a v tom daným stavu
a v tom daným čase
sem tam _e
prásknul hodnotu B je
B hote takže a už vlastně spočítal
teďka jedu
betty které jdou od konce a
hlavě pořád jako musím držet že mě de vo to celkovou pravděpodobnost a že ty
alfy aby ty budu muset nějakým způsobem kombinovat
a teďka najednou kdyby tam bylo to co mám tady nahoře v rovnici tak tam
bit a vysílací i tady klihu daného stavu daným čase byla prostě dvakrát
jo tomto B je o té by tam bylo dvakrát
koš
kdyby nebylo zde bylo moc dobrý to znamená vono to takhle nebude prosím vás
ale v tomto případě
se to B je teďko
bude počítat s každým stavu
se kterýho vlastně jsem se do toho
následujícího nebo s čase předcházejícího mohl dostat tady bude tam B C
o
T plus jedna
jo aby to bylo úplně jasný tak se ještě cely tady tenhleten nesmysl můžem dat
do hranatých závorek aby bylo jasný že prostě sumujeme
celý tento _e celý
celý tento výraz
jo a takhle _e je vypočítaný _e prodlevě vypočítaná částečná zpětná like lidu
a _e teď prosím
se ještě poďme jako říct jak ten algoritmus nahodíme
a jak ho _e jako kill hneme
když ho budeme nahazovat
tak _e
se musíme
podívat někde tadyhle
_e na začátek to znamená posledním
čase
a ve všech možnejch stavech ze kterýho _e ve který můžou být posledním čase většinou
tady toto bývá jenom ten
jenom jediný že většinou a toto je nebývá žádný R
ale
musí to být stav N mínus jedna takto na inicializuji pomocí té poslední nejposlednější
přechodové
pravděpodobnosti
pomocí tady tenhle o které kterou se s toho a nevím se dostanu ven tady
toto je vona
potom si udělám ten svojí iterativní algoritmus
a když budu chtít uzavřít
tak _e musím posbírat
to co sem měl ve všech _e ve všech _e
tu první stavech
toho modelu po násobit to ještě _e vysláním prvního vektoru nemáme vstupního to má
a eště _e eště vlastně jejich _e
jejich částečně na zpětným a likelihoodem a většinou ten vstupní stav je sem samozřejmě jenom
jeden jo prosím vás
A mám prostě
stup
toto
_e s toho prvního vstupního stavu všecko je a mám hotovo mám vlastně _e
částečný zpětnej likelihood
no
čase kterej ještě před začátkem mojí promluvy
a nějakým pomocným stavu který je vlastně ještě před obyčejným a stavem a jenom a
mýho nevím cache teďka mi zase řekněte čemu bude odpovídat tady tahleta
poslední spočítaná
a vlastně prvních čase
pět na tady klid co to bude
jo a zase si uvědomte že postupně jak sem jako balil takhle nazpět čase
tak jsem zase brát v úvahu úplně všechny cesty který se sto modelu
nebo vtom srovnání časovým _e vektoru nastaví modelu mohli vyskytnout
jo poctivě sem nesmlouval
co myslíte že to bude
tak
žádný velký překvapení nebude bude to zase baumwelchovu likelihoody
vyslání téhleté sekvence vektorů modelem po všech možnejch cestách jo vzpomeňte si když sem stavěl
částečných dopředných pravděpodobnosti tak jsem to postupně stavělo začátku do konce
teď sem to postupně počítal úvod konce do začátku ale když sem to dělal dobře
tak by mě měli být úplně stejný hodnoty a zase tady tahleta _e první
jo poslední spočítaná beta bude
celková vám welchova likelihoodu
vyslání téhleté sekvence vektorů tímhletím od a
tak
to je docela mimochodem dobrý že to máme spočítány schválně kde tady to celkovou likelihoodem
potřebovat
do to ještě nezapomněl
normalizaci přesně tak jo takže mám jako super hodnotu
arrow budu schopny _e s každým čase normalizovat _e ty spočítaný
spočítaný hodnoty tak a jak ty hodnoty spočítám no to už je docela v pohodě
protože
já zase opakuju že mě zajímá tady tenhleten čas
tenleten stav
alfy mě
počítají tady tenhleten maglajz
betty mě počítají tady tento maglajz
a já když si spočítat tu svoji
_e
svoji state occuppation probability nebo tady tu _e řekněme měkkou pravděpodobnost bytí s tomletom stavu
tomletom čase tak je prostě vynásobím jsou co
tak to po normu you know celkovou baumwelchovu X mínus
a hotovo nový dělá
takže _e je to zajímavý že jako kvůli jedné hodnotě
nějak která se tady máme L je té sme tady strávili půl hodiny ale toto
je vopravdu naprosto nejdůležitějších hodnota při trénování _e ne mac
tak _e odteď _e
se vás zeptám
kostní teda jako budem dělat
takhle si lety hodnoty třeba při trénování nějakýho jednoduchýho motýlku
můžou vopravdu vypadat
no tohle je dejme tomu
_e ta L
_e
ta funkce zalijete
prvního visí prvního vysílacího stavu
to je ta zelená bude druhýho
to je ta červená bude třetího mám pocit že sem to opravdu jako vygeneroval neskutečnýho
alarmem k a
všimněte se prosím vás
že když si uděláte takhle z S v libovolném čase
tak skutečně suma přes všechny je teďka
jo každým čase těch hodnot nelžete určitě
rovná se jedna to znamená budou to dobrý koeficienty na to aby jsme použili jako
vážený jako vážený průměr i
tak _e
takže teďka zasednu
nebudu vám ukazovat
co dál té přednášce
a zkusíme si napsat nějaký
nějaký rovnice
jak při odhadnout parametry
ale mém k a když jsem zřej s jeho starým a parametrama spočítal takovýhle pěkný
hodnoty L je se
tak
jo mám tady nějaký _m
_e teďka
dejme tomu že tady toto je stav
_e prostě index stavu bude je
tak tady mám velkou
plus tou maticí parametrů o která má první vektor cache
to je tady vektor
a teďka sem si horko těžko pomocí starých hodnot toho _e a
_e spočítal
od M spočítal funkce relied _e
který vlastně zbavujou příspěvek tady těchdle těch vektoru trénování každýho stavu anka tak a chci
spočítat novou hodnotu
střední hodnoty
yettiho stavu a vy mě řeknete jak
tak _e pojem na to jednoduše jo jak by se ta střední hodnota počítala
kdybych tam neměl žádný jako žádnou spočítanou funkci a rijece a kdyby měl prostě k
dispozici jenom tady tuhletu
jenom todleto matici
vstupní vektoru
průměr přesně tak jo tak podpojmy se tam vopravdu napsat průměr
_e téčko valí vod jedničky do té a
_e dám tam
hodnotu o té a podělím to jedna lomeno T a je to pro mě to
umíme všichni že jo
takle bych adam pojďme udělat trochu složitější průměr
přesně tak takže _e budem bude mazat a uděláme to násobení tím zalijete k který
jsem před chvilkou horko těžko vypočítal
a bude tady tohle dobrej průměrnému nebude
ne jak to
tak bacha jo my sme si řekli že ty L je tečka
ty měkký hodnoty
že budou jako hodný s každým s každým čase jo že s každým čase se
nám budou sumovat
L jedna T L dva to je a při té že se nám bude sumovat
do jedničky touto bude super
ale uši sem vám ne zaručil že tady ta suma se do jedničky bude probíhat
i přes všechny časy to bych jako byl docela zázrak kdyby _e kdyby se
čase sumu valy
do jedničky jo to znamená že my budeme muset udělat co
no tak podělit že jo když máte nějaký koeficienty vo kterejch nic moc nevíte a
zapíchl eseje dopočítání vážený o průměru to sme tady nemám mimochodem měli už minule jo
ale a to budu omílat pořád dokola vy vám to neřekla v dostal
takže
po sumujeme pěkně
_e hodnotou
nebo sumou těch koeficientů a tohle už bude dobrý toto už bude krásna _e krásna
průměrná hodnota
tak bezvadný
_e teď prosím
bych chtěl vědět C _e když budeme počítat nějakou třeba _e směrodatnou odchylku
a _e to tady dám nějaký nějaké index třeba K tou směrodatnou odchylku
X
půjdeme na toto
jo to znamená větším stavu řekli sme si že _e by člověk měl řešit jako
kovarianční matice ale v hrozně složitý takže budeme _e budeme řešit _e směrodatnou odchylku
teda toho simku na druhou a ten rozptyl
_e kátýho prvku
toho
yettiho stavu
tak asi tam zase bude nějakej průměr že jo který pojede přes všechny časy
tak si ho tam plněna čára ste se rovná jedna do té co myslíte že
bude tom průměru
dobrý
tak asi ten váhovací koeficient želatině dneska víme
tak a pak tam bude _e
ústředně na hodnot _e toho patřičnýho koeficientu a když počítáme střed _e rozptyl tak to
bude muset mít na druhou jo to znamená bude tam něco jako o
se K to znamená K tedy element T ho vektoru mínus me
je
k a všimněte si že to teďka nepíšu prostě protože to sou skaláry
tady todleto na druhou a mu
no to tak push spokojeni nebo nespokojeni
ne za máme dělat
normalizaci správně děkuji krát
to je se rovná jedna
_e
jednáte L je to je
dobrý tak teďka sme jako byly
_e celkem
celkem rychle hotový se středníma hodnota má _e se směrodatný moc žilkama a teďka začne
jít do druhýho protože já bych potřeboval taky pře odhadnout prosím přechodové pravděpodobnosti
a je
a
to bude
docela zajímavý a musím říct že jako to tohleto z hlavy neumím
pojďme spojme to zkusit
sme si říct _e D jak by to asi tak mohlo být
a potom to s konfrontujeme s realitou
a u těch přechodových pravděpodobností
prosím uvědomíme že jak sme měli takový ty grafiky tady bylo časté
tady prostě byl namalovanej ten
ten model
takže teďka najednou budou řešit nějakou hodnotu která mě bude říkat jak je pravděpodobný že
přelezu ze stavu Í
dostavuje
no a _e
my sme měli v tom grafu takové prostě ty
_e
_e v ošklivé hodnoty své všude spočítané
_e každy
vlastně každý _e každý stav
a každý čas
měl svoji alfu
svojí metu
a _e my s nima si budeme muset něco vyrobit abychom
zjistili jaké teda pravděpodobný
že
přeskočíme ze stavu Í
dojička
tak zkuste radit
jo teď teďka k množinami vostrý
_e Í je
rovná
tak asi zase budeme muset prozkoumat všechny časy že jo protože ty _e ty přeskoky
se mohli objevit ve všech možnejch časech takže asi
_m se nedá nic dělat
dáme tomto je se rovná jedna
načte
tak co dál
mějte si že tam teďka budu moct použít se tu _e posteriorní pravděpodobnost bytí
ve stavu jo čase toto zalijete
to je takový
to je jako s otazníkem že jo protože to mě udává _e pravděpodobnost bytí v
jednom stavu vtom daným času
a teďka jako to mám dělat já to mám ty stavy dva a potřebuju zjistit
jak je pravděpodobný že sem z jednoho přelezu do toho druhýho tak poďme zkusím vymyslet
něco jiného
tak _e
to kdybysme
vložení pánové
zkusili takovou fintu
a to všechny se pravděpodobnost všech možnejch se které jsou tady před tím
před
jo
teďka
přeskok
a pravděpodobnost všech cest který jsou tady po
a tady tu činku nebo spermií nebo jak to vypadá takto musíme ale prosím vás
přes sumovat
přes všechny možný časy
jo takže poďme zkusit _e budeme tam zkusím naplácat nějaký hodnoty tak
navrhujete
částečná dopředná pravděpodobnost čeho
_e bych řekl že toho prvního stavů ne
a času té alfa víte
co tam dáme dál
a to pak neumim nazpaměť lidového taktika to
vymýšlím s mám jako trošku více zkušeností mezi
podpořte město si poradit další
tak teďka _e budu řešit tady tenhleten obláček jako jo po
tak _e
porážce poradce
asi nějakou betu že jo a čeho
jestli ho stavu čase teplu jedna dobrý
teďka že tam něco lechtivý
abych potřebovat tady tyhlety dva stavy nějak propojit
co tam ještě musím namíchat
tu původní pravděpodobnost a je jo to co mám jako teďka potom rozhodně musím dat
a teďka bacha teďka _e sem se dostal do
problému který nevím jestli úplně přesně vidíte
protože
v tomto
_e to si člověk musí uvědomit jak vypadají vzorečky
do výpočty alpha a bad
já sem
tady
určitě namíchal vtom vzorečku pro alfa Í
_e vysílací
v likelihood B Í
B C o té jo
ale když jsem řešil _e ty _e když jsem vyřešil tibet i
tak jsem řekl že tady v tomto bodě tam ten vysílací likelihood nemůžu zamíchat protože
by to bylo špatně a mám tam jenom vysílací likelihoody tady prostě v těch dalších
stavech
a dalších časy
takže mě tady
vysílací likelihoodu chybí a já si ho tam pánové musím dodat takže to bude zde
ve je
R sorry
B je T plus jedna
jo a tím pádem budu mít tu sadu hotovou prostě byl jsem
kdekoli před tím včetně vysílacího likelihoodu teďka tam mám to spojnici
tak tam vysílací lekli both vtom černým tlustým puntíku pak to mám všecko za
a _e tím bych mohl být hotový takže tady ještě doplním B je
to je plus jedna
co bude po tou s čarou zlomkovou
já se přiznám že nevím ale mám pocit že tam je ta celková likelihoody jo
proč by tam neměla být že jo jako i ty i ty přechody by se
mně vydatně jako mohl po normovat
to znamená
_e tady bych si tak tipl
že
bude
to je
o M
ale vůbec si nejsem jistej
jo _e tak se poďme podívat se jak to má být správně
přechodový pravděpodobnosti
_e ta tak tomto mám blbě pardon
takže _e ten _e začátek sme dali dohromady dobře jo vidíte to částečnou dopřednou trade
do stavu Í
částečnou zpětnou která vyráží dál ze stavu je
potom to jejich spojnici reprezentovanou přechodů pravděpodobností potom ještě to se nám tam chybělo tedy
vysílací likelihood sestavuje toho jeho vektoru
a dole sem se sekl je to _e
je to vlastně suma
všech _e
_e všechno věc je teček takže tady tohle teda
to sem
to sem uzeného
s prknem předělám
tak větev
suma přes všechny časy
jo je
tak _e mám to
nebo celkem hotový
tak a teďka prosím vás bych _e bych chtěl vědět
když tady tohleto _e když tady tohleto počítání budete _e budete programovat
nebo u teho programovaly
jak byste to dělali
jaký budou kroky
vaše krok
tak
jo mám
mám prostě nějakou
_e
promluvu
no
on promluvu o je jo
nejsou vektory vod jedničky do péčka
a mám nějaký původní hodnoty _e který sem prostě nějak _e na inicializoval
a poďme teďka se bavit jenom vo těch střední hodnota nebo směrodatných odchylka že
ní je
a _e
_e
firma
je k a
na druhou
tak
rokem prvním bude to že musím pustit _e
_e trénovací algoritmus
nechat ho vlastně jako bublat přes všechny
čili všechny časy
se ve všechny je léčka
a vyhodnotit si maticí všech a of
jo alfa je se
toto prostě vyhodnotím pro všechny časy pro všechny stavy
potom si pustím zpětnej algoritmus
jo takže půjdu kdo takle a zase přes všechny časy se ze všechny stavy
si vyhodnotím matic i zpětnejch
částečný likelihoodu beta jet
vzpomenu si
že
této matici zde a této maticí zde získávám velmi cennou hodnotu
a to je celkovým baumwelchův likelihood P
pro o M
a pak tady ty dva _e pak tedy ty dvě matice vynásobím _e dostanu tu
_e nejcennějšího hodnotu po které sem
no já sem se rovnalo
a to sou to sou ty elka jo to sou prosím vás vlastně konstanty
že
který udávají L je
té jo zase tady je čas
a tady je _e tady stav _e
tady je index stavu je
tak a teďka prosím _e když se podíváme tady na tyhle rovnice
tak _e
si uvědomíme že vlastně já musím _e počítat pro všechny možný stavy
který má to moje vrahy _e miminko
ale že _e tady tyto rovnice sou docela jednoduchý _e ze existuju existují tam hodnoty
C kterým se říká statistiky nultý ho prvního a druhýho řádu
tak a zkuste mě teďka získat i statistiky
se vlastně počítají _e
pro každou promluvu pro celou tu matici velký tlustý o
ale mě zkuste říct co ty statistiky nutilo prvního a rozdělují ho řádu asi budou
se podívat se tady do těhletěch rovni czech
co sou ty statistik
každej stav _e mém k a když se trénuje tak má svoje
patristiky
co to asi bude zas
dávám vám trochu poradím
_e
disky tam budou hrát roli nějaký váhovací koeficienty zalijete
a _e toho co vedle nich sedí když to bude první mocnině
tak to bude prvního řádu když to ve druhé mocnině že teda nějakým už na
ústředně nejde to bude
to bude
druhýho řádu
a když to tam nebude vůbec
tak to bude nultý ho řádu
tak ste my říct _e
ten jiří ze vstupu
horní tak podívejte
_e
předpokládáme že máme
_m že máme
hodnoty
rozjetej stav jo
tohleto
je takzvaná statistika nutnýho řádu znamená
_e nikde tam nevidím žádnou hodnotu
hodnota vektoru není tam
jo
takže ta hodnota vektoru je tam na nultou
není tam vůbec protože statistika nultý pořád
tak teďka sem vám pomoh tak mně řekněte se ta ctatystyka prvního řádu
ten této je ten čitatele že jo to je vlastně ta _e ta _e hodnota
kterou dostanu když _e když budu
M a pravděpodobnostma normálně násobit vobyčejný hodnoty vektoru
zkuste měřítek bude ta statistika nultý ho řádu vypadat
co to bude to skalár vektor
košíček s ovocem
prosím
jak to
A todleto je vektor
todleto je takovymle pěknej vektor
když ho vynásobíte koeficientem
tak do pořád vektor
jo takže bacha
ne já sem říkal nultého tak se líbáme mně se mně se občas jako plete
prosejvala pardon tak se omlouvám takže nultého řádu bude skalár
prvního řádu
bude vektor děkuju
tak a teďka jak to bude se má statistika má druhého řádu tady
_e
tady určitě matice
dyž sem řekl že budou
_e že žádný kovarianční matice nebudou
a že _e budeme pracovat jednotlivým _e element a má že
jako já sem mohl between _e tomu sem tam nadefinovat maticí přijímá jo
ale nejsem hodnej neudělal jsem to
takže si statistiky druhýho řádu v tomhle případě bude budou co
ve
to je trochu otázka já si teďka dívám že vlastně na to abych vám dal
pořádnou odpověď
tak by měl ještě trochu zapracovat na této rovnici ano
a _e přepsat i tak
aby se _e tahleta rovnice dallas vyhodnocovat
eště předtím než budu mít vlastně k dispozici _e než budu mít k dispozici střední
hodnotu
protože
protože tady u této rovnice by to chtělo abychom že jako střední hodnotu spočítanou
no
tak _e
prosím vás pomožte neříkal matematikou
když se počítá _e směrodatná odchylka něčeho
jo sigma
sigma na druhou
tak to může spočítat jako _e jako
jedna lomeno T
suma X
mínus mi
na druhou že jo
a nebo
si to můžu
přepsat
jako jedna lomeno T
suma
X na druhou
mínus
určitě
jo za X mi
vám právě postižené
mínus nějak do v tady možná dokázali odvoditelná nám právě pocit že když je že
když tam máte tu hodnotu mínus dva X mi
tak _e
tak si
tady sme krát E
jo
no to je mínus jedna pokud teda jako děláme nevychýlený odhad a pokud děláme takovej
ten vobyčejný
tak děleno se takhle
dobrý tak jo no tak _e já už radši snižuje si to nechám to si
odvozování protože to dycky dopadá špatně
ale chtěl jsem říct že tady toto _e rovnici vlastně můžeme přepsat
tak to
samozřejmě si do ní zapojíme své váhovací koeficienty jo to znamená
_e tady by to bylo očko že jo a tady bych někde daleko L je
_e kryjete
a _e
tady bych dal
taky L je to jenomže by vlastně mohl dat až na konci a sumu toho
L je T
a chtěl jsem říct že vlastně nám _e bude _e stačit
když budu
ve statistice nultého řádu prostě počítat
průběhu času
přičítat hodnoty nalejete jo udělám si akumulátor ten začátku dám na nulu a při každým
_e při každým _e čase tam budou přiřazovat hodnotu L je to je
jo
pak si udělám druhej akumulátor které bude vektorové A
a s každým čase tam budu přivazovat hodnotu _e relied _e toho váhovací o koeficientu
krát
současnej
vektor právě čase T
jo a tady toto budu pořád prostě dokola spát do akumulátoru
při každým novým čase to tam přičtu
a na konci až doběhne čas dokonce tak budu mít nebudu mít tady tohle jo
a konečně při počítání _e těch směrodatných odchylek
tak si budu muset udělat ještě jeden akumulátor
tedy když teda nepočítáme
splněny kovariančními maticemi tak bude vypadat nějak takhle _e tam budu akumulovat
hodnoty L je T krát _e
a teďka
abych se do toho nezasekl tak vám za napíšu jenom pro tu jednu konkrétní skalární
hodnotu tady
že tam bude _e
je
bude tam
krát _e hodnota
Z
T ho vektoru
a to bude
prosím
na druhou jo takže toto bude můj akumulátor toto budou moje statistiky druhýho řádu
až mě doběhne čas
tak pomocí tady této slavné rovnice kterou sem tady nestačil dodělat
tak dokážeme prostě udělat odhady střední hodnoty odhady
_e směrodatných odchylek
tak
_e dobrý máme vlastně
nějaké více či méně složité rovnice pro odhad parametrů modelu
_e na jedné jediné promluvě
jo teďka prosím vás opakuju
to co sem říkal minule že to trénování probíhá tak že vlastně si napřed inicializují
nějaké hodnoty modelu nějak prostě tu promluvu rozdělím
_e spočí spočítám si původní střední hodnoty původní _e směrodatný odchylky nebo kovarianční matici
a pustím přetrénování první fázi přetrénováním něco dá tady ty nějaké hodnoty L je to
je vlastně ty rozhodovací koeficienty
těma odhadnu nový hodnoty a takhle to potom podstrčím pořád dokolečka až na nějaké kriteriální
funkci což většinou bývá lekli uteklo celé _e z celé promluvy až to prostě přestane
let tak prohlásíme se model do trénovala že jo to
takhle toto brož velmi školní příklad když sem trénoval na jedné promluvě takhle to nikdy
není si promluv mám k dispozici třeba milion
a chci natrénovat jeden model
tak rovině teďka zkuste
povědět
jak
se vyrovnám
s milionem promluv
jo tady ta suma
té se rovná vod jedničky do tečka
to platí tady pro tuto konkrétní
promluvu jednu
já jseš nemám jednu ale milion a přesto chci natrénovat
můj model který má nějaký střední hodnoty nějaký teda ty odchylky nějaký přechodový pravděpodobnost
tak račte co mám dělat
tak
podívejte se kdyby zadali trošku
nebo tady tu pastelkou světelnou a pěkně tady ke každé sumě
eště přidělali jednu
a tam dám třeba
_m to tam mám dat Č rusky
a šel
bude index promluvy
jo všechny pro všechny sumy předělám tak
že pojedou přes všechny promluvy
a v rámci každé promluvit pojedou eště přes všechny časy
jo
jednoduchý prostě
tady budou mít _e
na váhovaný
vektory tentokrát nevím nepromluvili úplně ze všech
dole spočítám jako normalizační koeficienty
taky ze všech a tak dál
jo
takže tady byste si ke všem těm _e ty černým sou mám připsali včel
tady by to asi chtělo
_e eště nějak oindexovat že jo takže by to bylo tady osvč _e
_e by bylo relied Č
_e no taky zvětšil
_e každá bude mít jinou délku takže bysme tosče doplnili like céčku
ale prostě dokázali byste si představit co se děje jo
eště jednou ten algoritmus by _e probíhal tak
že bych dycky vzal promluvu
proto konkrétní promluvu abych spočítal
a osy
dopředným průběhem zpětným průběhem bych počítal betty
abych je
smil dohromady získal bych pro tuhle promluvu
_e ty moje krásný váhovací koeficienty zalijete
a teďka bych prostě
_e za pích no
tyto koeficienty do příslušné neodhadovat tři rovnice a počítal
a teď prosím vás se asi začnete příkladu na to prosím vás tady obtěžoval s
těmi statistikami a s těmi akumulátory že jo
když _e bych totiž měl
jednou promluvu
tak _e by bylo celkem jedno jako jakým pořadí bych tady udělal tu sumu jestli
bych šel napřed přesvědč k a
jo no _e nebo přesčasy
jestli bych si tady tohleto vyhodnotil nejdřív ten vršek vyhodnotil nevyrobit o jedno ale teďka
si představte že máme opravu několik miliard trénovacích vektorů
a každý průchod přes data něco stojí
to znamená já opravdu _e teď
pokud vám těch trénovacích promluv tolik
tak pro ně využil toho že jsem si nadefinoval tady tyhlety pěkný statistiky akumulátorem a
a vlastně na každé promluvě
budu dohořívat
do toho příslušnýho
akumulátoru
do toho nulu toho řádový ho
prvního řádový ho
a ji tady druhou řádový ho
projedu ne pro jednu promluvu ale projede úplně všechny
a teprve až to všechno skončí
tak si udělám nový odhady _e příslušných parametrů jo to znamená když to všechno
_e dokončím
tak tom prvního řádovým akumulátoru budu mít čitatele
no to řádovým akumulátoru budu mít jmenovatele _e prostě podělím a budu mít nový mean
tady té druhé rovnici to budu mít trochu složitější protože jsem to ještě nebylo ale
_e zase ze všech
hodnot který budou mít k dispozici
vypočítám příslušných teda ty howling jo a můžu valit další iteraci přes všechny data
tak
co to bylo asi _e šest co sem chtěl říci
k _e
trénování modelů
kde se teďka na chvilku
podívat S je na rozpoznávání
no tak zvanej viterbiho algoritmu
no jasně
prosím
_e nevím sestavte sme
teďka poslední minutu představte musím
no je
historický
ano sem číslo voznámit přednášky
tak nějak
items
no a o tom _e mít von jako trošku
lukáš není
no ukážeme státech
ví a neví kde to je
_e
volal mi neví jestli to máme dneska nebo jaké
prosím jo
tak dva tři
nouzovým dost dobře možné se měl být na dvou místech stejný čas zahozen
tak _e
poďme prosím vás na rozpoznávání
tak _e to rozpoznávání možná uděláme jako úplně _e úplně na papíře
a
a to následovně
_e vzpomeňte si na výpočet a of
jo a osy probíhaly tak
že sme měli vlastně tady stavy modelu
tady sme měli čas
a teďka sme tam vlast příkaz neměli _e graf T těch různých _e stavových sekvencí
který _e který vypadal
tedy vypadá nějak takhle
a my sme říkali že alfa je T
že je vlastně jakési ohodnocení toho _e že
sem v tomhletom _e stavu v tomletom čase
a předtím sem byl kdekoliv a berou v úvahu všechny možné testy protože při výpočtu
alfy se nám tam někde objevovala nějaká pěkná suma jo
a říkali sme že když prostě jako takhle proběhne a posledním čase
se ocitnu posledním stavu modelů tak saal alfa N
_e T plus jedna protože času skončil ně bude udávat celkovou baumwelchovu
_e likelihood vyslání možných dat _e tím celý modelem
jo a uvědomíme si prosím až F alfy je
se _e zohledněný všechny možné testy čili jsou tam sumy přitom výpočtu
tak a teďka mě zkuste říci ne někdy když sem vám začal povídat o
o
_m skrytých markovových modelech
bychom si mohli zkusit tipnout jak se spočítat ta likelihood P hvězdičkou
R _e se říkalo viterbiho a která vlastně bude likelihood vyslání zase dát mi modelem
a teďka bacha ne po všech možných cesta ale poté úplně nejlepší cestě
tak zkuste tak nějaký návrh
prosím
bude počítat
ale tak pozor tak já vám tam napíšu B vzoreček kterým sme tu alfu _e
které sme tu alfu počítali jo
takže alfa je
ste se počítala jako všechny možný předchozí stavy Í
_e jejich _e něj alfa
a texture tam bude
_e
přechod sorry ste i mínus jedna pardon
zda P T mínus jedna
přechodová pravděpodobnost _e T je a současnej vyslání současnýho
vektoru jo tak takhle jsem počítal
takhle jsem počítal alfy tak mě zkuste říct
_e jaká tam bude změna když budu počítat pouze s tou nejlepší cestu
a poradíme to smazání jednoho symbolu a přepsání třeba písmenka
no
dobrý
a nahradili maxem přesně tak
jo
takže jinými slovy když sme tady v tomhletom puntíku
tak nebereme v úvahu
obě dvě ty předchozí cesty ale berou v úvahu jenom tu kterou která je tlustší
která mi dá lepší hodnotu a tu druhou prostě takhle kimonu neberu ji úvahou vůbec
a zkuste si uvědomit analytik analogii T dynamickým
_e borcení času dete dvojí béčkem
my se vlastně úplně stejně byl jsem nějakým puntíků té _e matice jak se to
menovalo
částečných kumulovaných vzdáleností ne a teďka sem vlastně _e vybíral
odkud se tam dostanu s největší
pro s nejmenší možnou hodnotou
to sem vybrala ty ostatní sem zapomněl
jo tak N při výpočtu viterbiho se to bere naprosto stejně
a když potom dojdu do posledního času a do posledního stavu
tak _e
budou mít
tady
vtom puntíku nikoliv baumwelchovu ale viterbiho pravděpodobnost té o M
která bude vlastně maximum přes všechny možné stavové sekvence
vyslání vektoru o po těchto stavových sekvencích akorát že to _e akorát že to rozhodnutí
nedělám až na konci tedy jako když se podíváte na tu definici tak bych je
měl vlastně jako všechny si vymyslet
všechny spočítat a pak vybrat maximum a tady to míněním tady to maximum vlastně vybírám
lokálně v každém stavu v každém čase a když dojde na konec tak už to
maximum a motole
jo takže to úplně přesně stejné jako při počítání
_e D C dvojtečka
_e prostě
jak se řekne X hospic česky
výčet vyčerpávající prohledávání všech možností sem nahradil
_e výběrem ten nejlepší možnosti s každým uzlu mýho počítání
tak
a _e teď si pod dnem říct jak se tady tohleto dá implementovat co nám
to totiž _e v nám totiž pomůže ještě dál implementuje se toho pomocí takzvaného tokenpassing
a nebo u mě předávání půllitru
a vlastně graficky se to mohli už vidět na těch _e lukášovi k animací které
jsem vám tady předváděl _e které sem vám tady předváděl minule jo
inicializace probíhá takže vožice prázdný půllitr do každého vstupního stavu modelu
potom
_e iterujeme
kdy vlastně
_e kdekoliv
máme
ten
graf který se nám někam
_e někam takhle sdělí
_e sem
vjeď ku teda
sem miječku a sem _e sem čase to je
tak pokud se mohu dostat do nějakého dalšího stavu F prostě ten půllitr vezmu
a pošlu
do každého s těch následujících stavu
po cestě do toho půllitru dole ju
logaritmus a
příjde
plus logaritmus to je vysílací pravděpodobnosti byl
koncovém stavu
a pokud se mi v nějakém stavu se jde více půllitru
tak _e musím být kruťas a nechat jenom ten co má větší hodnotu adresoval menší
hodnotu tak _e tak zabít nebo vy Y vyhodit rozpor
tak
teď prosím vás se mně řekněte jak je možný že tady najednou jako _e začíná
začínám pracovat za S lokalit máma
a že je to takhle jako jednoduchý a předtím když jsem počítal baumwelch je tak
tam řádného velikými nebyly
které se používají taky samozřejmě ale to je to složitější
jak to že teďka si můžu dovolit tak jako projev pohodičce to všecko přepsat do
logaritmu
tam zkusím
přehodit _e ty zápisky
zkuste se podívat _e na původní stav tady tento
tady této rovnice
u
tak
já tam suma
logaritmu je se suma dobře
teďka tam suma není
teďka je tam _e k
a najednou jako je to všechno bezvadný protože vidíte že v této _e v této
rovnici není jedinej součet
sou tam pouze součiny
a součin se krásně převádí prostě na logaritmy takže když si
jenom napíšete log tady přes to všechno takže to log _e je T rovná se
_e sorry teďka už tam nejsou alfy protože _e vitter bod viterbiho částečný
pravděpodobnosti většinou _e značíme jako _e skorkov íčka
takže log svíjet E bude má
to je todle dobrý potom je tam C E
_e té
mínus jedna
co tam mám sandál
plus že jo plus logaritmus _e
a je
plus logaritmus
B
je
no C
jo takže v pohodě to přepíšeme _e a implementujeme to V logaritmy
tak to probíhá
rozpoznávání a pak prosím vás jako když přicházejí vstupní vektory
tak _e necháme _e C modelem pro lítá what _e pro lítala půllitry
_e když dojde na konec
tak jenom musíme vlastně zařídit aby se ten půllitr _e dostal ostrého _e z toho
mého
toho mého modelu
to znamená _e mám tam nějaký _e poslední
poslední vektor
poslední stav modelu
a abych ten půllitr dostal ven tak vlastně jenom
takže sem vám říkal když i muži _e
se
to je vše co se nemá rádo
tak
když mám vlastně tady _e tady ten graf
a _e tady je poslední opravdický čas ste
a je tam poslední vysílací stav modelu tak já mám vlastně poslední krok který musím
učiniti
a toho s toho modelu vylézt
a lezu ven o logaritmické _e pravděpodobnosti a
N
mínus jedna
_e jedna to je prostě ta úplně
je to úplně poslední
a ten _e půllitr který odeberu tady na konci
mě prosím udává
logaritmickou viterbiho pravděpodobnost vyslání sekvence vektorů tím modelem po nejlepší možné cestě
tak
_e
teď prosím
zase vypomůžu tady tohoto prezentaci
skutečně mu
pro s tomu ty
mediální představení
a
chtěl bych abychom se vrátili
_e vůbec tomu
původním problému rozpoznávání co je naším úkolem
naším úkolem je
rozpoznat když máme tady na vstupu nějakou promluvu
nějaký slova třeba jest nebo know bysme se teďka naučili
vyhodnocovat
tady tuhletu pravděpodobnost že sekvence vektorů byla produkována modelem slova je s
anebo že sekvence vektorů byla produkováno modelem slovanů
teď smím úkolem je rozpoznání vlastně co
co udělat
aby ty slova rozpozná tak my si tady tyhlety dvě pravděpodobnosti nebo likelihoody můžeme vyhodnotit
co myslíte že sou tady _e že sou tady ty hodnoty P je saténu co
to je
vidíte z nich nějaký data
vstupní nějak i
jako promluvte rabicka přišla
no jo ale já se ptám jako tady na toto na té jestli naplněnou jestli
to vidíte v nich
ne
v tom žádný nastane jsou to znamená P je schopen O sou jaký pravděpodobnosti
apriorní super
a jaký by bylo takový jako unk třeba doporučení
jak je nastavit
půl přesně tak jo pokud člověk jako nechce
před přiklonit ani jednou ani k druhýmu tak by bylo dobrý jeden a půl
takže _e tenhleten modýlek vyprodukuje jedno číslo
to je vono krát půl tahle modýlek vy po roku je druhý číslo to je
vono krát půl no a teďka prostě když to čísílko je větší tak řeknete že
to bylo jestli bych tohle větší tak řekne ze když to bylo know
tak
_e teď prosím vás ale bychom mohli možná si to dělat něco chytřejšího
a to chytřejší bude rozpoznávání _e spojitých šlo
jo nějaká promlouvá která _e
třeba bude mít _e za úkol rozpoznávat sekvence slov kočkopes
vo může být slovo kočka může být slovo pes
a ona by nám _e když řeknete kočka kočkopes
tak by měla
přesně
přepsat co ste řek
tak
očekávám vaše návrhy jak to budem dělat
nebo mí nebyl ní příklad když se to dělat třeba vytáčení telefonních čísel hlasem
jo máme čísla prostě vod nuly do devítky křížek hvězdička
to číslo může mít
op
_e nevím očistit do
deseti
čísílek
a vy máte rozpoznat
jak to udělá
nemáme se
to by bylo jednoduchý K ale nemáme
jo takže rozpoznávání spojitých
spojených slov
a kolik ano survey zapojíme ale jakým
přesně výstup na vstupu děláme takovou smyčku
kde _e řeknem
_e kde řekneme
dobrý
_e když _e bude to funguje to standardní skrytý markovův model akorát že bude trochu
složitější budou tam lítat _e ty piva do kterých se bude do líbat tady kliku
a když nějaké pivo
vypadne tady toho posledního stavu
tak se vrátí
do prvního stavu zase se prostě ostrov split ne
no všech možných _e modelu
a může se pokračovat dál
tak a teďka akorát si uvědomte E s
tady budeme mít prostě teda tu krásnou promluvu
vod do
která se mi
převede do _e do sekvence
vektoru s akustickými parametry že jo tady bude čas jedna tady bude časté
a _e
tady bude časté _e teďka co uděláme
co uděláme v čase T když ta promluva skončí
no právě tak tady v tomhletom posledním stavu modelu
budeme mít takovýhle velký škopek
S pravděpodobnosti
logaritmickou která bude třeba mínus šest tisíc osum set sedmdesát dva
tak a teď mně řekněte jestli jako sme
epic tady s tímto výsledkem nebo ne
asi na jeho protože když sme měli izolovaná slova
tak sem tam měl dva různý modely jeden byl na kočku druhý byl napsat každý
mně dal nějaký ohodnocení já jsem ta ohodnocení srovnala to co bylo vyšší tak vyhrálo
a rozpoznal
teďka je to takový zlý protože já mám jenom jeden model
potřebujeme trasu klimat došlo a jak by se teďka _e to zařídili co
co takhle
že dobrý ale pozor já vám to začne trochu vrtat maximum se vlastně vybíralo třeba
tady
teďka tady
maximum se vlastně vybírat po každým stavu
tak _e budeme vopravdu jak of bude chtít maximum
tak perfektní že těch děkuju je to naprosto přesně tak mi vlastně musíme _e kontrolovat
těžko píky který nám tady během token pásy nebo pivo passing algoritmu vycházejí tohoto stavu
a pamatovat si jaké sou odkud vylezli
jo když to když to řeknu _e jednoduše to znamená my tady doplníme nějaké
pseudo stavy
ten _e nebudou generovat žádné pravděpodobnosti
ale budou zodpovědné za to
že na ten škopek
který poletí zatím čtverečkem
se napíše
_e se napíše identita toho slova _m odkud _e odtud odkud ten škopek bylo to
znamená tady nissan absolvován
tady by se napsalo na nějakou kartičku tu a tak dále a samozřejmě tady ta
červená čára potom s těch škopku vybere _e vybere jeden
terry přežije
a který se vrátí na vstup
ale už bude mít na sobě kartičku a na té bude napsáno že _e že
_e vyletěl veslovat u
jo takhle to bude skutečně se všemi škopky které nám tam budou říkal s našim
algoritmu
a až nakonec
vypadne ten velký škopek
který bude mít
svou
likelihood která nám vůbec nevadí která nás moc nezajímá
tak bude mít prosím tak je
popsanou kartičku identitami slov
ve kterých V lítal jo a tady tohle
je prosím
to co
to se potřebuju
tak _e jinak tak ať íčka
to se N řeší tak může vlastně každý token nebo každý škopek má na sobě
nějakou struktura strukturu která sem nebral klink rekord
wall or
a při průchodu těmi čtvr a ty mi stavy se do té struktury něco napíše
jo ale to budete potřebovat až kdybyste chtěli něco takového implementovat
tak že jo takže tady je _e v je to
zobrazeno
tak prosím vás kornetistka rozpoznávání ještě trošku
že trošku dále
tady je vlastně _e
s obrazem ten _e ten případ kdy sme měli _e kdy sme měli teda rozpoznávání
dvou různých slov
S možností vracení začátek
s tím že tady budu mít i _e stavy které vlastně mejdlo jí procházející token
i nebo škopky a dávají jim jak identity
tak _e tetě
prosím _e se poďme trochu podívat zpátky na natrénováním modelů
no jasně
no
_e vona tam většinou ani nebývá to mezerami číslo ale takhle uvědomte si že tím
že tou čárkou poslední červenou
tady tímhle tím stavem
že projít _e jeden škopek _e s každým s každým frameu
jo to znamená každý čas každých deset milisekund tam letí jeden škopek není to tak
že by tam jako letěl jeden jako po konci slova mi ani nevíme kde konec
toho slova je jo to znamená každých deset milisekund automata s tam letí škopek
a jsem
ano
ano to se rozskokové na dalších devět
a je to také krok pozor tady toto jednoduchý příklad kde opravdu se trošku pokovená
dalších devět
a všechny škopky dokážeme udržet paměti že děláte nějaké rozpoznávání s velkým slovníkem
který má z dejme tomu padesát tisíc slov a všechny slova sou mezi sebou propojeny
ještě nějakým a jazykovým a pravděpodobnostma ke kterým se dostanem
tak tam všechny škopky nedokážete držet paměti o tom se potom musí dělat nějaký pruning
vy vlastně řeknete budu mít s každým čase aktivních jenom tisíc škopku a všechny ostatní
prostě wiki rujete _e a nenecháte dál žít a budete propagovat jenom těch tisíc aktivních
jo to toto jako vopravdu je potřeba pak při velký rozpoznávačích řešit
tady bysme se dokázali představě že ty škopky opravdu lítají s každým čase každým stavu
všude
a teďka si jenom uvědomte když tady je slovíčko ován
tedy _e který trvá já nevím _e který trvá půl
_e
půl sekundy jo
za jak dlouho tady tohle stavu vylítne první škopek
ne
ano takže po štvrtým jo po štvrtým _e stavu
už tady tento model začne vyhazovat
začne vyhazovat open i
jo ale
jejich kvalita nebude nic moc
protože vlastně se mi
čtyři vektory které jsou tady na začátku natáhnou na čtyři stavy který mají reprezentovat úplně
jiný lásky to znamená
budou to nějaký hrůzy
když se budete ale ten moc model vopravdu bude produkovat
token každej deset milisekund jako mašinka hodin
když se budete blížit konci tady tohoto slova
tak že toho modelu začnou vyhledávat kvalitní škopky
proč
protože prostě je sežer a vy si správný stavy tohoto modelu
to znamená budou to škopky který budou mít dobrý hodnoty
a když se potom _e dostanou dál do toho C E a budou se srovnávat
trošku kam a který vlítnou vodsaď tak budou mi hod naději na to že to
tady tyhlety škopky přežijou
no a potom pojedou dál prostě do _e do mlýnice a pak se to stejný
zopakuje druhým slovem a tak dál a tak dál
jo to znamená _e to _e to rozhodnutí
jak jsem měl vlastně ve své promluvě nasegmentovaná slova jestli to bylo prostě vo vánoci
_e stáhneš
a tady mezi nima byly nějaký hranice takto neděláte během toho rozpoznávací v algoritmu
ale dělat do až na konci protože se podíváte na kartičku
S líbila má která je na tom úplně posledním vyhrávaj tím skok
jo a děkuju tohleto byla velice dobrá otázka řekl
tak _e poďme se teďka podívat
jak to bude trénováním
_e modelu nějaký složitějších _e když třeba nebudu mít rozpoznávač tady jako hle tady nějakej
dvanácti číslo vek ale
padesáti tisíc slov
což je takovej standard pro angličtinu pro češtinu tak tři sta tisíc slov aby to
trošku fungoval
tak jak si myslíte že budem trénovat
zase jako aby model stálo za to
tak potřebuje mít k sobě aspoň
deset ale radši sto
trénovacích promluv
jo tak
představte si že budu mít natrénovat takovédle rozpoznávače teďka jako sto musím sehnat samozřejmě nějaký
data
a _e
u straně popovídat tak bity data měli vypadat
tak _e kdyby tady šlo nějaký kraviny jako třeba _e číslovky jedna nebo slova pes
počkat tak byste možná našli data nějaký zprávy nebo já nevím kdyby se slovo pes
objevovalo sto krát
kočkami tom taky oblast okna to znamená měli bychom šanci
_e tady tyhle modely natrénovat
teďka
_e vy tam byste ale chtěli aby to dobře fungovalo i na slova to kůlny
o ne jiné obhospodařovat silnějšími
a to byste možná jako prošli celý archiv české televize _e celý rok a to
slovy se tam našli jednou nějakým zábavným pořadu
a na takovým slovy byste natrénovali velmi špatný model
na jednom takže
X na to pude
jo teďka de o to abysme postavili modely na který budu mít dost trénovacího materiál
_mhm není sou drazí
nech nechci dělat
a to rozpoznávač teda za týden nemůžete nemodlí
_e
na to byste možná právě to celkové rozpoznávač tak _e řekl určitým nentek
velice slepice problém _e tak jako musíme to rozsekána menší jednotky ne když nepůjde natrénovat
model na slovo pes a na strana tým jako na S _e na kočka půjdou
ale na ty složitější slova nepůjdou takto budeme
hned rozdělit na nějaký jednotky a udělat jednu udělat modely tady těch malých jednotek
a s tohoto potom poskládat a co myslíte jak jednotky tak asi budou
jsme na přímo na jako základní zvuky řeči souhlásky že jo nebo fonémy sečtu budou
modely fonémů tak _e to bude vypadat tak
když budeme chtít udělat slovo je s
tak tam bude model
fonémů že jo
_e
S
a dohromady
tam to bude tvořit slovo je
my vlastně zřetězením _e tady těch tři modelů dostaneme zase normální markovův model
a s toho potom budeme moci ty slova
kdy skládat jo to znamená _e
pokud chceme udělat jo rozpoznávač tak takový velice užitečné je slov ován trumfli
tak to bude vypadat nějak takhle u vána čudu
vy
tak tady zase vidíme E volby
link node i
který má když provalí nějakej token
tak _e tak se to méně napíše
a pak to může jít tedy pěkně
na začátek
tak a co si myslíte že sou tady ty pí one kýtu a P s
V
zase jsou to nějaký pravděpodobnosti že jo
ale sou to pravděpodobnosti který nevidí žádný vstupní data žádný akustický vektory
toho že něco se generuje podle akustických vektoru je schovaných těch
těch kolečka
tak
asi
tam pořád na stejný věci to sou nějaký pravděpodobnosti že jo jaký
apriorní jako
tak takhle jako že bychom dávali apriorní pravděpodobností nějakým izolovaným slovům to asi nebude _e
moc _e moc nutný nebo
jako nebude to moc užitečný
ale už si můžeme _e zkusit představit
že budeme dělat něco složitějšího
a tam budou chtít _e za drát ovace vztahy nebo pravděpodobnosti mezi těmi danými slovy
jo podmíněnou pravděpodobnost
slova tu
když předtím bylo rozpozná viny slovo one
podmíněnou pravděpodobnost slova Q když předtím bylo rozpoznaný slovo tu a tak dál
tady tohle _e se menuje
bigramový jazykový model
digram proto čtem vlastně mám dvojice slov
na nichž počítám jak i pravděpodobnosti
a zase jako _e rozpoznávači slov u want úsilí
nám to asi moc nepomůže ale teďka si představte že _e rozpoznávat E s řeč
s velkým slovníkem
a teďka tam máte prostě _e akustika nebo
to je tyhle vlekli užitých těch more kolečka si nejsou moci sty jestli tam bylo
slova _e slovo prezident _e prezident václav klaus sálem nebo prezident pačes plavu
jo a tady už asi
cítíte že nám ty jazykový pravděpodobnosti nějaký bigramy
můžou pomoct protože podmíněná pravděpodobnost slova václav
když předtím bude prezident bude asi docela velká podmíněná pravděpodobnost klaus když předtím bylo václav
bude asi taky docela velká když to ty vostatní budou asi docela malý
tak kromě zkuste říct _e kde se tady tyhle pravděpodobnosti podmíněny vezmu
si
_e noviny jo ale jak jaké budu počítat
no
no přesně tak za rok dokázali bysme napsat nějakym vzoreček třeba když jako mám u
podmíněnou pravděpodobnost _e
_e slova
klaus
když václav
tak zkusíme sme na dohromady _e
jak by se to dalo vyhodnotit
na velkým korpusu no novinových dat
no přesně tak
jo takže normy tam vlastně k aut
já to budu značit takovým a tím křížkem count
slov
václav
klaus prázdné slovo ale sousloví takhle jo
lomeno count M
_e václav no a
příklad za naprosto přesně
takhle se skutečně o rádio u _e pravděpodobnosti digramu je to zase jako samozřejmě a
pak byste to mohli rozšířit na trigramy for gramy a tak dále ten tohleto schémátko
už tam bylo
o něco _e složitější
a jen jenom tak jako zkusíme ťuknout to si myslíte že tady u těch jazykový
modelu bude trochu problém
N provede ta jasný ale člověk jich jako dycky někde může stáhnout nebo nakoupit nebo
_e na webu je spousta dat srandovní
můžou být neaktuální toto ve velice dobrý když třeba rozpoznávat _e nějakou novou doménu
těch _e i třeba bysme tady dělali přednáškový systém na sítko
tak sme měli nějaký jazykový model který byl udělaný na obecnej českých datech jo jakým
pražský mluvený korpus brněnský mluvili korpus
další korpusy
moc to nefungovalo
jo takže museli jsme vlastně vzít doménový data
chlapci chrousta vy všechny studijním
podpory které jsou tady k dispozici na fit ku
a napočítali z nich _e jazykový model _e se potom vlastně smíchal v interpolováno s
tím standardním českým a začalo to nějak fungovat tak že tady toto je dobrý ale
eště další problém
co třeba když budete rozpoznávat větu
_e
umřel mýmu limon či část macourek
a v životě se trénovacích datech neviděli spojením on syčák macourek
jo když to vezmete čistě _e čistě pravděpodobnostně a procházeli byste tady takovouhle
takovouhle sítí
tak tam prostě budka spojnice mučíš a macourek vůbec nebude anebo tam bude admit bude
mít hodnotu nula
a tím pádem tady tato věta nemůže být nikdy
rozpozná
tak _e kdybyste na to šli
_e dobře jako konstantu jo ona se používají takový techniky jako tak zvaný B kofein
_e backoff _e jako ústup nějaké pozici jo takže já bych chtěl
hodnotou by gramům on či část macourek ale já je nemám protože sem neviděl trénovacích
datech takže můžu ustoupit o krok zpět
a říct tak teraso ryby gram nebude tak bude aspoň ne gram
a _e možná že už sem viděl nějakou pravděpodobnost _e slova macourek
jenom toho jednoho slova
já už samozřejmě dokážu navazovat nějakou pravděpodobnost _e nějakou konstantou a použiju místo B gramu
pravděpodobnost tady tohle mikro mu jo
o tom jako když byste chtěli vědět tak se přihlaste
_e pavlas marže do zapojil zpracování přirozeného jazyka
protože tam se tady tydle vědy docela _e docela dělají dobrý takže jako víme jak
by v zhruba fungovalo
_e rozpoznávání
_e tady s těmi _e s těmi foném ovými modely a trošku sme si řekli
vo jazykových modelech
a možná dokonce přednášky se poďme pobavit potom
jak by se takový fonému V modely
dali natrénovat
tak já vám řeknu _e co typicky bývá vstupem
takovýhle trénování
_e
true
no domluvit se tady zmizet je to dole
tak
_e vstupem trénování
vopravdu rozpoznávače s velkým slovníkem který je založený na fonémech
bývá třeba sto tisíc wavek
jo tady nebudu malovat všechny ale prostě
vždycky wavka a u toho máte textově zapsány _e co je vevnitř
takže
ahoj ferda
tak je tam další _e wavka
a tam je prostě mravenec šel nakoupit semestru takové _e znáte ke každé masce
textové předpisy
a naším cílem je zeť _e při
trénování
mít
sadu modelu
_e tady je prostě modýlek pro písmenko a tady je modýlek pro písmenko B
a tak dále náš pro písmenko Z
a každým to modeluje samozřejmě střední hodnota a nějaký ty směrodatný odchylky a tady jsou
nějaký ty přechodový
pravděpodobnosti jo
tak mi z asi před chvilkou ukázali jak tady toto perfektně zvládneme
když mám jednou promluvu mám jeden model o kterým víme že _e budu na té
promluvě trénovat
a pak sme si tam prostě nadefinovali nějaký jako L je se to magický čísílka
pomocí zalijete sem to všechno zvládnu
a teď tě
sme poněkud těším
případě
kdy mám velikánskou databázi dat
máme ke každé vase textový přepis a to je všecko
tak zkuste poradit
co bude
tak _e první _e první etapa
eště docela jednoduchá bude tak zvaný ditu P
grapheme to phoneme neboli převod slov
na fonémy
v češtině tady tohle docela v pohodě toto vlastně bych si mohl klidně přímo přepsat
do fonému
F _e rodeo tady bych _e třeba
jo sem _e
hrát
tak tady by to bylo trošku složitější že jo takže byste to
_e museli přepsat doméně L
asi by tam bylo polknu T mělo sem
S
_e hra to ale prostě nějak pomocí slovníku nebo pomocí nějakých pravidel bychom tady toto
zvládli to znamená ke každé promluvě teď mám sekvenci fonémů
a nevím kde které je
to znamená takový nápad jako že bych třeba vysekal s těch wavek
jako úseky který odpovídají písmenku S
jo vysekal bych to ze všech sto tisíc wavek a pak bych na trénoval model
S při předem zamítá
potřebujeme nějakou techniku která se dokáže vyrovnat s nesegmentovaný má trénovací má data
no
no toto do začíná vypadat dobře
takže _e já si T asi tady
udělám nějakou _e nějakou jednoduchou promluvu
dejme tomu
dejme tomu P
_e a pak by měl další moc _m promlouvat tam by bylo klepe jo
takže já si skutečně u téhle promluvy
vezmu
model
_e
_e a spojím je do jedno alenka a uvědomíme si prosím vás že vevnitř ty
modely fonému vypadají takhle že prostě každý má nějaký ty stavy _e nějaký přechody pravděpodobnosti
jo takže tady tohle bylo by bylo to je to _e
a u další promluvy bych zase _e udělal _e spojení modelu K
_m
_e
_e
_e
jo každej tady těchto modeluje normální korektní allen
teďka budu předpokládat že jejich _e že jejich _e
ne _e slušnej rozšířit jo je _e
že jejich _e parametry jsou nějakým způsobem inicializovaný
a já ta tak jak sme si to říkali tak si můžu klidně
u každýho s těchto _e těchto modelů vyhodnotit
ty měkké rozhazovat si pravděpodobnosti
který mě budou dávat jak bude který _e jak bude který
_e vektor náležet
kterému stavu
tady těchto
těchto modelu
jo
a teďka pozor
nebudu tady mít
_e tento stav
a tento stav který budou různý
ale protože sou to stavy který pochází z S T ze stejnýho foném ku tak
už budou vědět že tady tohleto je ten
stejný stav
tím pádem
_e pro ty červený
she pečky to znamená pro první stav
modelu pro
ta funkce L je _e já vám tam napíšu třeba L P jedna T
bude vypadat nějak takhle začátku hodně pak málo tak
tak tady zase bude
a tady zase nic jo
takže takhle sem vyhodnotil _e jednu funkci
_e jednu funkci _e
s mi říkali state occuppation likelihood tady tohle prvního stavu tohoto modelu na této promluvě
no ale já si tady toto samozřejmě udělám i na všech ostatních promluvách jo takže
takže _e teď prosím
si vezmu
_e teď si vezmu
další promluvu kde slovo klepe
jo
a
na tom slově klepe
udělám to sami
zase pro ten stejný ne stroj
protestem samý stav tohodle modelu
je to vyjede
někde
někde tady
jo a prosím vás tady tyto _e tyto funkce si uděláte pro všechny stavy vašeho
von nemovi ho
zvěřince
a potom _e jenom naznačit že když budeme neodhadovat
tak si prostě vezmu všechny
parametry tady téhleté
promluvy
a samozřejmě budu updatovat
příslušný akumulátor tady k tomu tomuhle stavu asi si dokážete představit že tady těchto pár
vektoru se uplatní protože budou váženy touto vysokou hodnotou těchto pár vektoru se uplatní
a ty ostatní se neuplatní jo
a potom si vezmu další promluvu a zase ten na tom akumulátoru se budou podílet
vektory které jsou tady po tímto kopečkama ty ostatní se neuplatní
a takhle si projedu všech svých sto tisíc trénovacích promluv
budu mít akumulátory
_e nultého prvního druhého řádu
pro já nevím čtyrycet tři fonému krásy stavy takže budují mít nějaký sto
sto dvacet nebo sto dvacet devět
pro si všecky trénovací data na konci vezmu
těhletěch sto dvacet devět akumulátoru a spočítám z nich nový parametry
svých stavu
jo a kouzlo na tom je takové
že skutečně
_e na začátku toho trénování vůbec nemusím tušit kde ty které fonémy jsou
když uděláte prvních pár iterací _e tak samozřejmě si to sou ty fonémy rozdíly nějak
rovnoměrně ale to totální hallův
ale pokud se podíváte na ty funkce zalijete tak zjistíte že po pár iteracích skutečně
si ty funkce L je to je přesně najdou ty své foném ty datech cache
až by člověk řekl že to je prostě nějaké kouzlo ale není to kouzlo je
to vobyčejný to vobyčejný baumwelch
a _e
optimálně si to ty
modely takle nastaví
jo takže _e
samozřejmě se tam potom musí jako řešit
další různé věci jako jak to optimalizovat jak to počítat C E
_e tak abyste nevyjeli dynamiky
kterou máte na počítači k dispozici a teda ten _e ale ta základní dále vopravdu
velice jednu
ano ve
konec přednášky příští pondělí si pěkně už víte
_e _m prosím vás nejezděte dopravními prostředky
jakými to se řídí
příští pondělí
a uspokojit ze silnice a uvidíme se za dva týdny na poslední přednášce
a na numerickém cvičení večerním