Hidden Markovin malli (Hmm) on tilastollinen Markovin malli, jossa mallinnettavan järjestelmän oletetaan olevan Markovin prosessi, jossa on havaitsemattomia (eli piilotettuja) tiloja.
Piilomarkov-mallit tunnetaan erityisesti niiden soveltamisesta vahvistusoppimiseen ja ajalliseen hahmontunnistukseen, kuten puheen, käsialan, eleen tunnistamiseen, puheen osamerkintään, nuottien seurantaan, osapurkauksiin ja bioinformatiikkaan.
terminologia HMM
termi piilotettu viittaa ensimmäisen kertaluvun Markov-prosessiin havainnon takana. Havainnointi tarkoittaa tietoa, jonka tunnemme ja voimme havainnoida. Markovin prosessi näkyy ”sateisen” ja ”aurinkoisen” vuorovaikutuksena alla olevassa kaaviossa ja jokainen näistä on piilotettu tila.
havainnot ovat tunnettuja tietoja ja viittaavat yllä olevassa kaaviossa ”kävellä”, ”kauppa” ja ”puhdas”. Koneoppimisessa havainto on koulutustietomme, ja piilotilojen määrä on hyper-parametrimme mallillemme. Mallin arviointia käsitellään myöhemmin.
T = ei ole vielä havaintoa, N = 2, M = 3, Q = {”sateinen”, ”aurinkoinen”}, V = {”kävele”, ”kauppa”, ”puhdas”}
Valtion siirtymätodennäköisyydet ovat kuhunkin piilotilaan osoittavia nuolia. Havainnon todennäköisyysmatriisi ovat sinisiä ja punaisia nuolia, jotka osoittavat jokaiseen havaintoon jokaisesta piilotilasta. Matriisit ovat rivistokastisia eli rivien yhteenlasku on 1.
matriisi selittää, mikä todennäköisyys on tilasta toiseen menemisestä tai tilasta havaintoon menemisestä.
Alkutilajakauma saa mallin käyntiin aloittamalla piilotilasta.
täydellinen malli, jossa tunnetaan tilan siirtymätodennäköisyydet, havainnon todennäköisyysmatriisi ja alkutilan jakauma merkitään seuraavasti,
miten voimme rakentaa yllä olevan mallin Pythonissa?
edellä mainitussa tapauksessa päästöt ovat diskreetti {”kävellä”, ”kauppa”, ”puhdas”}. Hmmlearnin kirjastosta on käytetty edellä mainittua mallia. Gaussianhmm ja GMMHMM ovat kirjaston muita malleja.
Now with the HMM what are some key problems to solving?
- ongelma 1, koska tunnettu malli mikä on sekvenssin O tapahtumisen todennäköisyys?
- ongelma 2, Kun otetaan huomioon tunnettu malli ja sekvenssi O, mikä on optimaalinen piilotilasekvenssi? Tästä on hyötyä, jos haluamme tietää, onko sää ”sateinen” tai ”aurinkoinen”
- ongelma 3, Kun otetaan huomioon O-jakso ja piilotilojen lukumäärä, mikä on optimaalinen malli, joka maksimoi o: n todennäköisyyden?
ongelma 1 Pythonissa
ensimmäisen havainnon todennäköisyys on ”kävellä” yhtä suuri kuin alkutilan jakauman ja emissiotodennäköisyysmatriisin kertolasku. 0, 6 x 0, 1 + 0, 4 x 0, 6 = 0, 30 (30%). Lokitodennäköisyys saadaan soittamisesta .pisteet.
ongelma 2 Pythonissa
ottaen huomioon tunnetun mallin ja havainnon {”Shop”, ”Clean”, ”Walk”}, sää oli mitä todennäköisimmin {”Rainy”, ”Rainy”, ”Sunny”} ~1,5% todennäköisyydellä.
ottaen huomioon tunnetun mallin ja havainnon {”puhdas”, ”puhdas”, ”puhdas”}, sää oli mitä todennäköisimmin {”sateinen”, ”sateinen”, ”sateinen”} ~3,6 prosentin todennäköisyydellä.
intuitiivisesti” kävellessä ”sää ei todennäköisesti ole”sateinen”.
ongelma 3 Pythonissa
puheentunnistus äänitiedostolla: ennusta nämä sanat
amplitudia voidaan käyttää hmm: n havaintona, mutta ominaisuustekniikka antaa meille enemmän suorituskykyä.
toiminto stft ja peakfind luo ominaisuus äänisignaalin.
yllä oleva esimerkki on otettu täältä. Kyle Kastner rakennettu hmm luokka, joka vie 3d-paneelit, käytän hmmlearn joka sallii vain 2D-paneelit. Siksi vähennän Kyle Kastnerin tuottamia ominaisuuksia x_testinä.keskiarvo (akseli=2).
tämän mallintamisen läpikäyminen vei paljon aikaa ymmärtämiseen. Minulla oli käsitys, että kohdemuuttujan pitää olla havainto. Tämä pätee aikasarjoihin. Luokittelu tehdään rakentamalla HMM kullekin luokalle ja vertaamalla tuotosta laskemalla logprob tulollesi.
matemaattinen ratkaisu ongelmaan 1: eteenpäin-algoritmi
Alpha pass on havainnon ja tilan sekvenssin todennäköisyys annetulla mallilla.
Alfapäästö hetkellä (t) = 0, alkutilajakauma I: lle ja siitä ensimmäiseen havaintoon O0.
Alfa-läpäisy ajanhetkellä (t) = t, kunkin piilotilan viimeisen alpha-syötön summa kerrottuna päästöllä Ot: hen.
matemaattinen ratkaisu ongelmaan 2: Taaksepäin menevä algoritmi
annettu malli ja havainto, todennäköisyys olla tilassa qi ajankohtana t.
matemaattinen ratkaisu ongelmaan 3: Eteenpäin-taaksepäin-algoritmi
todennäköisyys tilasta qi-qj hetkellä t annetulla mallilla ja havainnolla
kaikkien siirtymistodennäköisyyksien summa I: stä j: hen.
Transition-ja emissiotodennäköisyysmatriisi arvioidaan di-gammalla.
iteroidaan, jos todennäköisyys P(O / malli) kasvaa