190 likes | 347 Views
Προσομοίωση Απλού Μοντέλου Markov σε. Επιμέλεια: Γιώργος Πληγορόπουλος Σπύρος Δημόπουλος Μανώλης Βαρδάκης. Markov Models. Μοντελοποίηση πιθανοτήτων στο χρόνο Φανερά και κρυφά Διακριτά και συνεχή Χαρακτηριστικά: Καταστάσεις Παρατηρήσεις Πίνακας Μεταβάσεων
E N D
Προσομοίωση Απλού Μοντέλου Markov σε Επιμέλεια: Γιώργος ΠληγορόπουλοςΣπύρος ΔημόπουλοςΜανώλης Βαρδάκης
Markov Models • Μοντελοποίηση πιθανοτήτων στο χρόνο • Φανερά και κρυφά • Διακριτά και συνεχή • Χαρακτηριστικά: • Καταστάσεις • Παρατηρήσεις • Πίνακας Μεταβάσεων • Πιθανότητες παρατηρήσεων σε κάθε κατάσταση • Order μοντέλου Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Περιγραφή Μοντέλου • Κρυφό και διακριτό μοντέλο • 11 καταστάσεις • 4 παρατηρήσεις • Πίνακας μεταβάσεων (11x11) a(i,j) • Πίνακας παρατηρήσεων (11x4) b(j,k) • Αρχικές πιθανότητες πi • First order Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Διάγραμμα Μεταβάσεων Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Πίνακας Μεταβάσεων μεταξύ καταστάσεων Στην πρώτη γραμμή εμφανίζονται οι αρχικές πιθανότητες. Όπου δεν υπάρχει τιμή εννοείται η μηδενική πιθανότητα μετάβασης Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Πίνακας πιθανοτήτων παρατηρήσεων Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Αλγόριθμοι για HMM • Training(Learning): ρυθμίζονται οι παράμετροι σύμφωνα με κάποια δεδομένα εκμάθησης • Evaluation: υπολογίζεται η πιθανότητα χρονικών ακολουθιών παρατηρήσεων να έχουν προέλθει από την διεργασία που μοντελοποιεί το HMM • Decoding: βρίσκεται η πιο πιθανή ακολουθία κρυφών καταστάσεων του μοντέλου που αντιστοιχεί με κάποια χρονοσειρά παρατηρήσεων. Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Θεωρούμε το μοντέλου αυτού του project ήδη εκπαιδευμένο με πίνακες αυτούς που παρουσιάστηκαν παραπάνω • Για το evaluation υπάρχουν δύο αλγόριθμοι • Ο straightforward που υλοποιείται σύμφωνα με τον τύπο. O(cT T) Πληγορόπουλος - Δημόπουλος - Βαρδάκης
O forward αλγόριθμός τον οποίο χρησιμοποιούμε στη δική μας υλοποίηση έχει πολύ μικρότερη πολυπλοκότηταΟ(c2T) και φαίνεται παρακάτω. Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Υλοποίηση Μοντέλου σε C • Δομή κώδικα • Συνάρτηση CreateInput()δημιουργεί τα vectors παρατηρήσεων εισόδου με τυχαίο τρόπο 20 στοιχείων • Συνάρτηση LoopFunction( )υλοποιεί το forward αλγόριθμό του μοντέλου Markov και επιστρέφει την πιθανότητα Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Θέματα εισόδου/εξόδου • Προκύπτουν από τους υπολογισμούς πιθανότητες της τάξεως του 10-12 • Πρόβλημα: Μικρές τιμές πιθανοτήτων • Αναγκαία χρήση τύπου long long • Long long αναπαράσταση 64bit => • Ικανοποιεί τις απαιτήσεις Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Αναπαράσταση πιθανοτήτων • Χρειαζόμαστε αντιστοίχηση του [0,1] σε [0,264-1] • Ισχύει ο τύπος μετατροπής f(P(x))=P(x)*(264-1) • Πράξεις • Πρόσθεση, δεν χρειάζεται τροποποίηση • Πολλαπλασιασμός 64bit x 64bit =128bit. Κρατάμε τα 64 Most Significant bits Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Testbench • 300 διανύσματα εισόδου • Κάθε διάνυσμα αποτελείται από 20 παρατηρήσεις • Δημιουργούνται μέσω της rand με τυχαίο τρόπο Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Υπολογιστικά ακριβά κομμάτια • Bρόγχος επανάληψης που εκτελείται n*c2*T • Όπου n=300 Vectors εισόδου c=11 αριθμός καταστάσεων και Τ=20 μέγεθος Vector. • Ο βρόγχος εκτελεί πολλαπλασιασμούς και προσθέσεις που συμφωνά με τα αποτελέσματα του profiling μονοπωλούν τους κύκλους εκτέλεσης του μοντέλου μας . • 70% του χρόνου Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Βελτιστοποίηση Κώδικα • Xρήση αναδιατασσομένης λογικής και loop unrolling • Παράλληλη επεξεργασία προσθέσεων και πολλαπλασιασμών • Εκμετάλλευση των 128bit των Wide Registers για εκτέλεση στο αναδιατασσόμενο • Χρήση της Cache μνήμης του επεξεργαστή Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Υλοποίηση Σε Stretch C • Σε κάθε επανάληψη του βρόχου, επεξεργασία δεδομένων ανά128 bit • Χρήση δυο συναρτήσεων για το αναδιατασσόμενο: • Mult64(wra IN1,wra IN2, wra *OUT) • Multsum(wra IN1,wra IN2, wra IN3, wra *OUT) Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Αποτελέσματα • Χρόνος / Κύκλοι εκτέλεσης • Χωρίς αναδιατασσομένη λογική 102.292.543 κύκλους=> 340ms με 300MHzclock Χρόνος προσομοίωσης 5minute Σε επεξεργαστή AMD Athlon 2.6MHz • Με αναδιατασσομένη λογική 33.295.495 κύκλους=>90ms με 300MHzclock Χρόνος προσομοίωσης 3minute Σε επεξεργαστή AMD Athlon 2.6MHz Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Επιπλέον Βελτιστοποίηση • Ανάθεση στο αναδιατασσόμενο δύο επιπλέων βρόχων Πληγορόπουλος - Δημόπουλος - Βαρδάκης
Ευχαριστούμε!!! Πληγορόπουλος - Δημόπουλος - Βαρδάκης