En Markovian-beslutsprocess har verkligen att göra med att gå från en stat till en annan och används huvudsakligen för planering och beslutsfattande.
Teorin
Att bara upprepa teorin snabbt är en MDP:
$$ \ text {MDP} = \ langle S, A, T, R, \ gamma \ rangle $$
där $ S $ är staterna, $ A $ åtgärderna, $ T $ övergångssannolikheterna (dvs. sannolikheterna $ Pr (s '| s, a) $ för att gå från en stat till en annan med tanke på en åtgärd), $ R $ belöningarna ( givet ett visst tillstånd och eventuellt åtgärd) och $ \ gamma $ är en rabattfaktor som används för att minska vikten av framtida belöningar.
För att kunna använda det måste du ha fördefinierat:
- States : dessa kan referera till exempel rutnätkartor inom robotik, eller till exempel dörr öppen och dörr stängd .
- Åtgärder : en fast uppsättning åtgärder, t.ex. till exempel att gå norr, söder, öst, etc för en robot eller öppna och stänga en dörr.
- Övergångssannolikheter : sannolikheten för att gå från en stat till en annan med en åtgärd . Vad är till exempel sannolikheten för en öppen dörr om åtgärden är öppen . I en perfekt värld kan senare vara 1.0, men om det är en robot, kunde den ha misslyckats med att hantera dörrhandtaget korrekt. Ett annat exempel i fallet med en rörlig robot skulle vara åtgärden norr , som i de flesta fall skulle föra den i nätcellen norr om den, men i vissa fall kunde ha flyttat för mycket och nått nästa till exempel.
- Belöningar : dessa används för att styra planeringen. När det gäller nätet exempel, kanske vi vill gå till en viss cell, och belöningen blir högre om vi kommer närmare. I fallet med dörrexemplet kan en öppen dörr ge en hög belöning.
När MDP har definierats kan en policy läras genom att göra Value Iteration eller Policy Iteration som beräknar den förväntade belöningen för var och en av staterna. -policyn ger sedan per stat åtgärden bäst (med tanke på MDP-modellen).
Sammanfattningsvis är en MDP användbar när du vill planera en effektiv sekvens av åtgärder där dina handlingar inte alltid kan vara 100% effektiva.
Dina frågor
Kan den användas för att förutsäga saker?
Jag skulle vilja kalla det planering, inte förutsäga t.ex. regression.
Om ja, vilka typer av saker?
Se exempel.
Kan den hitta mönster bland oändliga datamängder?
MDP används för att göra Inlärning av förstärkning, för att hitta mönster behöver du Ej övervakad inlärning. Och nej, du kan inte hantera en oändlig mängd data. Faktum är att komplexiteten i att hitta en policy växer exponentiellt med antalet stater $ | S | $ .
Vad kan denna algoritm göra för mig.
Se exempel.
Exempel på tillämpningar av MDP
- Vit , DJ (1993) nämner en stor lista med applikationer:
- Skörd: hur mycket medlemmar av en befolkning som måste vara kvar för avel.
- Jordbruk: hur mycket att plantera baserat på väder och marktillstånd.
- Vattenresurser: behåll rätt vattennivå vid behållare.
- Inspektion, underhåll och reparation: när man ska byta ut / inspektera baserat på ålder, tillstånd etc. / li>
- Inköp och produktion: hur mycket att producera baserat på efterfrågan.
- Köer: minskar väntetiden.
- ...
- Ekonomi: beslutar hur mycket du ska investera i aktier.
- Robotics:
Och det finns en hel del fler modeller. En ännu mer intressant modell är Partially Observable Markovian Decision Process där stater inte är helt synliga, och istället används observationer för att få en uppfattning om det aktuella tillståndet, men detta faller utanför denna fråga.
Ytterligare information
En stokastisk process är Markovian (eller har Markov-egenskapen) om den villkorliga sannolikhetsfördelningen av framtida stater beror bara på nuvarande tillstånd och inte på tidigare (dvs. inte på en lista över tidigare stater).