Arkanoid-clone agent, LSPI implementation Δημήτρης Τριγκάκης Arkanoid-clone agent, LSPI implementation Δημήτρης Τριγκάκης
Problem ● Το θέμα του πρότζεκτ ήταν η υλοποίηση του αλγορίθμου ενισχυτικής μάθησης LSPI στο παιχνίδι Arkanoid. Στην απλοποιημένη εκδοχή του, το παιχνίδι θα αποτελούταν από δύο μπάλες, εμπόδια (indestructible) και την μπάρα του παίχτη. Δίνουμε αρνητικό σκορ κάθε φορά που η μπάλα καταφέρνει και περνάει πέρα από την μπάρα που ελέγχει ο παίκτης. Η μπάλα επανεμφανίζεται στο πάνω μέρος του ταμπλό.
LSPI ● Ο lspi είναι ένας αλγόριθμος ενισχυτικής μάθησης ο οποίος χρησιμοποιεί γραμμική προσέγγιση και επανάληψη αξιών για να λύσει το πρόβλημα της εύρεσης των Q(s,a). Αυτό δηλαδή που θα χρησιμοποιήσουμε είναι μια δομή η οποία ανανεώνει τις τιμές Q με βάση τα δείγματα με μια „τυχαία“ πολιτική, και έπειτα θα επανεξετάζει τα δείγματα με την βελτιωμένη πολιτική που ανακαλύπτει. Αυτό θα γίνει μέχρι να μην υπάρχει ουσιαστική βελτίωση.
LSPI ● Το πως συλλέγει δείγματα ο LSPI είναι σημαντικό. Ο τυχαίος παίκτης στο συγκεκριμμένο πρότζεκτ αποτελείται από επεισόδια κίνησης και ακινησίας προς τυχαίες κατευθύνσεις. Υπήρχε πρόβλημα στον πραγματικά τυχαίο παίκτη, διότι υπήρχε απότομη κίνηση(ταλάντωση) χωρίς ουσιαστική μετατόπιση. Επιπλέον, γίνεται χρήση των παλιών δειγμάτων και των δειγμάτων που συλλέγει ένας βελτιωμένος παίχτης για την δημιουργία ενός ακόμα καλύτερου παίχτη. ● Σημαντικές για τον LSPI είναι και οι επιλογές των συναρτήσεων φ. Αυτές είναι οι συναρτήσεις βάσης που γραμμικοποιούν το πρόβλημα της επίλυσης των εξισώσεων και είναι βασικός καθοριστικός παράγοντας απόδοσης.
Game Engine ● Για το ίδιο το παιχνίδι, έγινε υλοποίηση η οποία κάνει update στα δεδομένα του παιχνιδιού με βάση την δράση του παίκτη και τις μεταβλητές των μπαλών(θέση x, θέση y, ταχύτητα, κατεύθυνση, θέση μπάρας παίχτη) και ανεξάρτητα γίνεται η γραφική απεικόνιση του παιχνιδιού. Για τις ανακλάσεις της μπάλας, η ίδια η μπάλα κάνει υπολογισμούς πάνω στις γωνίες ανάκλασης χρησιμοποιώντας collision checking μεταξύ κύκλου - ορθογωνίων. Υπάρχει τυχαιότητα στην κίνηση της μπάλας καθώς αυτή ανακλάται από τα τοιχώματα. ● Δυστυχώς δεν ήταν εφικτή η παρουσίαση με δύο μπάλες και πολλαπλα εμπόδια προς το παρόν (τα οποία όμως έχουν υλοποιηθεί), διότι ο αλγόριθμος δεν έδινε τα επιθυμητά αποτελέσματα.
Implementation ● Η εφαρμογή του LSPI έγινε παραμετρικά, με δύο κύριες μεταβλητές. Η πρώτη ήταν ο αριθμός δειγμάτων τα οποία έπρεπε να συλλέξει ο αλγόριθμος, και έπειτα ο αριθμός των συναρτήσεων βάσης. Στο βίντεο παρουσιάζεται η υλοποίηση με δείγματα πάνω σε 90 συναρτήσεις βάσης. Ο υπερβελτιωμένος παίχτης χρησιμοποίησε αυτά τα δείγματα από τον τυχαίο παίχτη, και άλλα τόσα από τον τυχαία εκπαιδευμένο παίχτη. Παρόμοια σύγκλιση, αλλά όχι καλύτερη, μπορεί να επιτευχθεί με δείγματα και 20 συναρτήσεις βάσεις. Ο τρόπος που επηρεάζουν το αποτέλεσμα τα δείγματα και οι συναρτήσεις βάσης είναι περίπλοκος.
Implementation ● Όπως αναφέρθηκε πριν, η επιλογή των συναρτήσεων βάσης ήταν πολύ σημαντική. Έτσι ο αλγόριθμος έπαιρνε όλες τις μεταβλητές κατάστασης (γωνία,θέση,ταχύτητα για την μπάλα, και θέση για την μπάρα), και χρησιμοποιούσε συνδυασμούς τους. Αυτό ήταν και το κύριο πρόβλημα του συγκεκριμμένου πρότζεκτ. Σημαντικές φαίνονται οι συναρτήσεις που συσχετίζουν την θέση μπάρας και μπάλας μέσω διαφορών. Αυτές οι διαφορές μπαίνουν συσχετισμένες με τα ημίτονα και συνημίτονα της διεύθυνσης της μπάλας καθώς και το ύψος της μπάλας. ballXballYball direction → (COS(ω)SIN(ω)) paddleX Basis functions:
Results ● Τα αποτελέσματα εφαρμογής του αλγορίθμου φαίνονται στο βίντεο. Υπήρξε λιγότερη από την επιθυμητή βελτίωση, η οποία ήταν περίπου 50% πάνω στον τυχαίο παίκτη.
Future Work ● Σαν επόμενο βήμα, θα ήταν καλό να γίνει η βελτιστοποίηση του παίκτη με μια μπάλα, και η δοκιμή στο πλήρες περιβάλλον με τα εμπόδια και τις δύο μπάλες.
This page is intentionally left blank(except for this(and this(and this(etc...))))