CI06: Rozdiel medzi revíziami
(Vytvorená stránka „=CI06= ==HMM opakovanie== Parametre HMM: * <math>a_{u,v}</math>: prechodová pravdepodobnosť zo stavu <math>u</math> do stavu <math>v</math> * <math>e_{u,x}</math>: pra...“) |
|||
Riadok 1: | Riadok 1: | ||
− | |||
==HMM opakovanie== | ==HMM opakovanie== | ||
Parametre HMM: | Parametre HMM: |
Aktuálna revízia z 08:31, 28. október 2020
Obsah
HMM opakovanie
Parametre HMM:
- : prechodová pravdepodobnosť zo stavu do stavu
- : pravdepodobnosť emisie v stave
- : pravdepodobnosť, že začneme v stave
- Sekvencia
- Anotácia
Trénovanie
- Proces, pri ktorom sa snažíme čo najlepšie odhadnúť pravdepodobnosti a v modeli podľa trénovacích dát
Usudzovanie (inferencia)
- Proces, pri ktorom sa snažíme pre sekvenciu nájsť anotáciu , ktorá sekvenciu emituje s veľkou pravdepodobnosťou.
Inferencia pomocou najpravdepodobnejšej cesty, Viterbiho algoritmus
Hľadáme najpravdepodobnejšiu postupnosť stavov , teda . Úlohu budeme riešiť dynamickým programovaním.
- Podproblém : Pravdepodobnosť najpravdepodobnejšej cesty končiacej po krokoch v stave , pričom vygeneruje .
- Rekurencia:
- (*)
- (**)
Algoritmus:
- Nainicializuj podľa (*)
- for i=2 to n=dĺžka reťazca
- for u=1 to m=počet stavov
- vypočítaj pomocou (**)
- for u=1 to m=počet stavov
- Maximálne je pravdepodobnosť najpravdepodobnejšej cesty
Aby sme vypísali anotáciu, pamätáme si pre každé stav , ktorý viedol k maximálnej hodnote vo vzorci (**).
Zložitosť:
Poznámka: pre dlhé sekvencie budú čísla veľmi malé a môže dôjsť k podtečeniu. V praxi teda používame zlogaritmované hodnoty, namiesto násobenia súčet.
Inferencia - dopredný algoritmus
Aká je celková pravdepodobnosť, že vygenerujeme sekvenciu , t.j. Podobný algoritmus ako Viterbiho.
Podproblém : pravdepodobnosť, že po krokoch vygenerujeme a dostaneme sa do stavu .
Celková pravdepodobnosť
Inferencia - posterior decoding
Aposteriórna pravdepodobnosť stavu u na pozícii i:
Pre každý index i chceme nájsť stav u s najväčšiou aposteriórnou pravdepodobnosťou, dostaneme tak inú možnú anotáciu.
Spustíme dopredný algoritmus a jeho symetrickú verziu, spätný algoritmus, ktorý počíta hodnoty
Aposteriórna pravdepodobnosť stavu u na pozícii i:
Posterior decoding uvažuje všetky anotácie, nielen jednu s najvyššou pravdepodobnosťou. Môže však vypísať anotáciu, ktorá má sama o sebe nulovú pravdepodobnosť (napr. počet kódujúcich báz v géne nie je deliteľný 3).
Trénovanie HMM
- Stavový priestor + povolené prechody väčšinou ručne
- Parametre (pravdepodobnosti prechodu, emisie a počiatočné) automaticky z trénovacích sekvencií
- Ak máme anotované trénovacie sekvencie, jednoducho počítame frekvencie
- Ak máme iba neanotované sekvencie, snažíme sa maximalizovať vierohodnosť trénovacích dát v modeli. Používajú sa heuristické iteratívne algoritmy, napr. Baum-Welchov, ktorý je verziou všeobecnejšieho algoritmu EM (expectation maximization).
- Čím zložitejší model a viac parametrov máme, tým potrebujeme viac trénovacích dát, aby nedošlo k preučeniu, t.j. k situácii, keď model dobre zodpovedá nejakým zvláštnostiam trénovacích dát, nie však ďalším dátam.
- Presnosť modelu testujeme na zvláštnych testovacích dátach, ktoré sme nepoužili na trénovanie.
Tvorba stavového priestoru modelu
- Promótor + niekoľko prokaryotických génov
- Repeaty v intrónoch: multiple path problem
- Intrón má dĺžku aspoň 10
Zovšeobecnené HMM
- Predstavme si HMM s dvoma stavmi, napr. gén / negén, pričom každý stav má prechod do seba aj do druhého stavu
- Úloha: Nech p je pravdepodobnosť, že zostaneme v tom istom stave, (1-p), že prejdeme do druhého stavu. Aká je pravdepodobnosť, že v stave zostaneme presne k krokov (k>=1)?
- Riešenie:
- Toto rozdelenie sa nazýva geometrické a pravdepodbnosť exponenciálne rýchlo klesá s rastúcim k
- Keď sa pozrieme na histogram reálny dĺžkov génov / exónov a iných oblastí, väčšinou sa enpodobá na geometrické rozdelnie, môže priponínať napr. normálne rozdelenie s určitou priemenrou dĺžkou a rozptylom okolo
- Jednoduché HMM teda dobre nemodeluje tento fenomén
- Zovšeobecnené HMM (semi-Markov) pracuje tak, že v stave má ľubovoľné rozdelenie pravdepodobnosti dĺžok. Model vôjde do stavu, vygeneruje dĺžku k z tohto rozdelenia, potom vygeneruje k znakov z príslušnej emisnej tabuľky a na záver sa rozhodne, ktorým prechodom opustí stav
- Úloha: ako spočítame pravdepodobnosť konkrétnej sekvencie a konkrétnej postupnosti stavov aj s dĺžkami? (zaveďme si aj nejaké vhodné označenie)
- Úloha: ako treba upraviť Viterbiho algoritmus pre tento model? Aká bude jeho zložitosť?
- Zložitosť bude kvadraticky rásť od dĺžky sekvencie, predtým rástla lineárne
- Predstavme si teraz, že rozdelenie dĺžok má hornú hranicu D takú, že všetky dĺžky väčšie ako D majú nulovú pravdepodobnosť.
- Úloha: ako sa toto obmedzenie prejaví v zložitosti Viterbiho algoritmu?
- Uloha: navrhnite, ako modelovať zovšeobecnený HMM s rozdelením dĺžok ohraničeným D pomocou normálneho stavu, kde sa jedne zovšeobecnený stav nahradí vhodnou postupnosťou D obyčajných stavov.
Párové HMM (pair HMM)
Nebrali sme, uvedene pre zaujimavost
- Emituje dve sekvencie
- V jednom kroku moze emitovat:
- pismenka v oboch sekvenciach naraz
- pismenko v jednej skevencii
- pismenko v druhej sekvencii
Priklad: HMM s jednym stavom v, takym, ze
- ,
- ,
- tak, aby sucet emisnych pravdepodobnosti bol 1
- Co reprezentuje najpravdepodobnejsia cesta v tomto HMM?
Zlozitejsi HMM: tri stavy M, X, Y, uplne navzajom poprepajane
- ,
- ,
- ,
- Co reprezentuje najpravdepodobnejsia cesta v tomto HMM?
Viterbiho algoritmus pre parove HMM
- V[i,j,u] = pravdepodobnost najpravdepodobnejsej postupnosti stavov, ktora vygeneruje x1..xi a y1..yj a skonci v stave u
- Casova zlozitost O(mnk^2) kde m a n su dlzky vstupnych sekvencii, k je pocet stavov
Ako by sme spravili parove HMM na hladanie genov v dvoch sekvenciach naraz?
- Predpokladajme rovnaky pocet exonov
- V exonoch medzery len cele kodony (oboje zjednodusuje)
- Inde hocijake medzery