Εισαγωγή στην Q-Learning: ενίσχυση της μάθησης

Αυτό το άρθρο είναι το δεύτερο μέρος της σειράς «Εκμάθηση βαθιάς ενίσχυσης». Η πλήρης σειρά θα είναι διαθέσιμη τόσο στο Medium όσο και σε βίντεο στο κανάλι μου στο YouTube.

Στο πρώτο μέρος της σειράς μάθαμε τα βασικά της μάθησης ενίσχυσης .

Η Q-learning είναι ένας αλγόριθμος μάθησης βασισμένος στις αξίες στη μάθηση ενίσχυσης. Σε αυτό το άρθρο, μαθαίνουμε για την Q-Learning και τις λεπτομέρειες της:

  • Τι είναι το Q-Learning;
  • Μαθηματικά πίσω από το Q-Learning
  • Εφαρμογή με χρήση python

Q-Learning - μια απλοϊκή επισκόπηση

Ας πούμε ότι ένα ρομπότ πρέπει να περάσει ένα λαβύρινθο και να φτάσει στο τελικό σημείο. Υπάρχουν νάρκες και το ρομπότ μπορεί να μετακινεί μόνο ένα πλακίδιο κάθε φορά. Εάν το ρομπότ σκαρφαλώσει σε ορυχείο, το ρομπότ είναι νεκρό. Το ρομπότ πρέπει να φτάσει στο τελικό σημείο το συντομότερο δυνατό.

Το σύστημα βαθμολογίας / επιβράβευσης έχει ως εξής:

  1. Το ρομπότ χάνει 1 βαθμό σε κάθε βήμα. Αυτό γίνεται έτσι ώστε το ρομπότ να ακολουθεί το συντομότερο μονοπάτι και να φτάνει στο στόχο όσο το δυνατόν γρηγορότερα.
  2. Εάν το ρομπότ πατήσει ένα ορυχείο, η απώλεια πόντων είναι 100 και το παιχνίδι τελειώνει.
  3. Εάν το ρομπότ αποκτήσει ισχύ ⚡️, κερδίζει 1 πόντο.
  4. Εάν το ρομπότ φτάσει στον τελικό στόχο, το ρομπότ παίρνει 100 πόντους.

Τώρα, η προφανής ερώτηση είναι: Πώς εκπαιδεύουμε ένα ρομπότ για να φτάσει στον τελικό στόχο με το συντομότερο μονοπάτι χωρίς να πατήσουμε σε ένα ορυχείο;

Λοιπόν, πώς το επιλύουμε αυτό;

Παρουσιάζοντας το Q-Table

Το Q-Table είναι απλώς ένα φανταχτερό όνομα για έναν απλό πίνακα αναζήτησης όπου υπολογίζουμε τις μέγιστες αναμενόμενες μελλοντικές ανταμοιβές για δράση σε κάθε κατάσταση. Βασικά, αυτός ο πίνακας θα μας καθοδηγήσει στην καλύτερη δράση σε κάθε πολιτεία.

Θα υπάρχουν τέσσερις αριθμοί ενεργειών σε κάθε πλακίδιο χωρίς άκρα. Όταν ένα ρομπότ βρίσκεται σε κατάσταση, μπορεί είτε να κινηθεί προς τα πάνω είτε προς τα κάτω ή προς τα δεξιά ή προς τα αριστερά.

Ας μοντελοποιήσουμε λοιπόν αυτό το περιβάλλον στον πίνακα Q.

Στον Πίνακα Q, οι στήλες είναι οι ενέργειες και οι σειρές είναι οι καταστάσεις.

Κάθε βαθμολογία Q-table θα είναι η μέγιστη αναμενόμενη μελλοντική επιβράβευση που θα λάβει το ρομπότ εάν κάνει αυτήν την ενέργεια σε αυτήν την κατάσταση. Αυτή είναι μια επαναληπτική διαδικασία, καθώς πρέπει να βελτιώσουμε τον Πίνακα Q σε κάθε επανάληψη.

Αλλά οι ερωτήσεις είναι:

  • Πώς υπολογίζουμε τις τιμές του πίνακα Q;
  • Είναι οι τιμές διαθέσιμες ή προκαθορισμένες;

Για να μάθουμε κάθε τιμή του πίνακα Q, χρησιμοποιούμε τον αλγόριθμο Q-Learning.

Μαθηματικά: ο αλγόριθμος Q-Learning

Λειτουργία Q

Η συνάρτηση Q χρησιμοποιεί την εξίσωση Bellman και λαμβάνει δύο εισόδους: κατάσταση ( ες ) και ενέργεια ( α ).

Χρησιμοποιώντας την παραπάνω συνάρτηση, λαμβάνουμε τις τιμές του Q για τα κελιά στον πίνακα.

Όταν ξεκινήσουμε, όλες οι τιμές στον πίνακα Q είναι μηδενικά.

Υπάρχει μια επαναληπτική διαδικασία ενημέρωσης των τιμών. Καθώς αρχίζουμε να εξερευνούμε το περιβάλλον , η συνάρτηση Q μας δίνει καλύτερες και καλύτερες προσεγγίσεις ενημερώνοντας συνεχώς τις τιμές Q στον πίνακα.

Τώρα, ας καταλάβουμε πώς γίνεται η ενημέρωση.

Παρουσιάζοντας τη διαδικασία αλγορίθμου Q-learning

Κάθε ένα από τα χρωματιστά κουτιά είναι ένα βήμα. Ας κατανοήσουμε λεπτομερώς κάθε ένα από αυτά τα βήματα.

Βήμα 1: προετοιμασία του Q-Table

Θα δημιουργήσουμε πρώτα ένα Q-table. Υπάρχουν n στήλες, όπου n = αριθμός ενεργειών. Υπάρχουν σειρές m, όπου m = αριθμός καταστάσεων. Θα ξεκινήσουμε τις τιμές στο 0.

Στο παράδειγμα του ρομπότ μας, έχουμε τέσσερις ενέργειες (a = 4) και πέντε καταστάσεις (s = 5). Έτσι θα φτιάξουμε έναν πίνακα με τέσσερις στήλες και πέντε σειρές.

Βήματα 2 και 3: επιλέξτε και εκτελέστε μια ενέργεια

Αυτός ο συνδυασμός βημάτων γίνεται για απροσδιόριστο χρονικό διάστημα. Αυτό σημαίνει ότι αυτό το βήμα διαρκεί έως ότου σταματήσουμε την προπόνηση ή ο κύκλος προπόνησης σταματήσει όπως ορίζεται στον κώδικα.

Θα επιλέξουμε μια ενέργεια (α) στην κατάσταση (ες) με βάση τον Πίνακα Q. Όμως, όπως αναφέρθηκε προηγουμένως, όταν ξεκινά αρχικά το επεισόδιο, κάθε τιμή Q είναι 0.

Τώρα λοιπόν, η ιδέα της ανταλλαγής εξερεύνησης και εκμετάλλευσης μπαίνει στο παιχνίδι. Αυτό το άρθρο έχει περισσότερες λεπτομέρειες.

Θα χρησιμοποιήσουμε κάτι που ονομάζεται άπληστη στρατηγική epsilon .

Στην αρχή, τα ποσοστά epsilon θα είναι υψηλότερα. Το ρομπότ θα εξερευνήσει το περιβάλλον και θα επιλέξει τυχαία ενέργειες. Η λογική πίσω από αυτό είναι ότι το ρομπότ δεν γνωρίζει τίποτα για το περιβάλλον.

Καθώς το ρομπότ εξερευνά το περιβάλλον, ο ρυθμός epsilon μειώνεται και το ρομπότ αρχίζει να εκμεταλλεύεται το περιβάλλον.

Κατά τη διάρκεια της διαδικασίας εξερεύνησης, το ρομπότ σταδιακά γίνεται πιο σίγουρο στην εκτίμηση των τιμών Q.

Για το παράδειγμα του ρομπότ, υπάρχουν τέσσερις ενέργειες για να επιλέξετε : πάνω, κάτω, αριστερά και δεξιά.Ξεκινάμε την προπόνηση τώρα - το ρομπότ μας δεν γνωρίζει τίποτα για το περιβάλλον. Έτσι, το ρομπότ επιλέγει μια τυχαία ενέργεια, ας πούμε σωστά.

Μπορούμε τώρα να ενημερώσουμε τις τιμές Q για να είστε στην αρχή και να κινηθείτε δεξιά χρησιμοποιώντας την εξίσωση Bellman.

Βήματα 4 και 5: αξιολόγηση

Τώρα έχουμε κάνει μια ενέργεια και παρατηρήσαμε ένα αποτέλεσμα και ανταμοιβή. Πρέπει να ενημερώσουμε τη συνάρτηση Q (s, a).

Στην περίπτωση του παιχνιδιού ρομπότ, η επανάληψη της δομής βαθμολογίας / ανταμοιβής είναι:

  • ισχύς = +1
  • ορυχείο = -100
  • τέλος = +100

Θα το επαναλάβουμε ξανά και ξανά μέχρι να σταματήσει η μάθηση. Με αυτόν τον τρόπο το Q-Table θα ενημερωθεί.

Εφαρμογή της Q-Learning από την Python

Η ιδέα και η εφαρμογή κώδικα εξηγούνται στο βίντεό μου.

Εγγραφείτε στο κανάλι μου στο YouTube Για περισσότερα βίντεο AI: ADL .

Επιτέλους… ας ανακεφαλαιώσουμε

  • Το Q-Learning είναι ένας αλγόριθμος ενίσχυσης εκμάθησης βασισμένης στην αξία που χρησιμοποιείται για την εύρεση της βέλτιστης πολιτικής επιλογής δράσης χρησιμοποιώντας μια συνάρτηση Q.
  • Στόχος μας είναι να μεγιστοποιήσουμε τη συνάρτηση τιμής Q.
  • Ο πίνακας Q μας βοηθά να βρούμε την καλύτερη ενέργεια για κάθε κατάσταση.
  • Βοηθά στη μεγιστοποίηση της αναμενόμενης ανταμοιβής επιλέγοντας το καλύτερο από όλες τις πιθανές ενέργειες.
  • Το Q (κατάσταση, ενέργεια) επιστρέφει την αναμενόμενη μελλοντική ανταμοιβή αυτής της ενέργειας σε αυτήν την κατάσταση.
  • Αυτή η συνάρτηση μπορεί να εκτιμηθεί χρησιμοποιώντας το Q-Learning, το οποίο ενημερώνει επαναληπτικά Q (s, a) χρησιμοποιώντας την εξίσωση Bellman.
  • Αρχικά διερευνούμε το περιβάλλον και ενημερώνουμε το Q-Table. Όταν το Q-Table είναι έτοιμο, ο πράκτορας θα αρχίσει να εκμεταλλεύεται το περιβάλλον και να αρχίσει να κάνει καλύτερες ενέργειες.

Την επόμενη φορά που θα εργαστεί για μια βαθιά παράδειγμα Q-learning .

Μέχρι τότε, απολαύστε το AI;

Σημαντικό : Όπως αναφέρθηκε νωρίτερα, αυτό το άρθρο είναι το δεύτερο μέρος της σειράς «Deep Reinforcement Learning». Η πλήρης σειρά θα είναι διαθέσιμη τόσο σε άρθρα στο Medium όσο και σε βίντεο στο κανάλι μου στο YouTube.

Αν σας άρεσε το άρθρο μου, κάντε κλικ στο? t o με βοηθήσει να παραμείνει κίνητρο για να γράφουν άρθρα. Παρακαλώ ακολουθήστε με στο M edium και σε άλλα κοινωνικά μέσα:

Εάν έχετε απορίες, ενημερώστε με σε ένα σχόλιο παρακάτω ή στο Twitter .

Εγγραφείτε στο κανάλι μου στο YouTube για περισσότερα βίντεο τεχνολογίας.