Τίτλος: AlphaZero και Leela chess

Υπότιτλος: Ένα σημαντικό ορόσημο για την τεχνητή νοημοσύνη που απέσπασε την προσοχή της παγκόσμιας σκακιστικής κοινότητας.

Στις αρχές του περασμένου Δεκεμβρίου (του 2017) και στο πλαίσιο του London Chess Classic Tour, ένα πολύ ιδιαίτερο γεγονός έλαβε χώρα. Το τμήμα τεχνητής νοημοσύνης DeepMind της Google θέλησε να δείξει τις δυνατότητες του προγράμματος AlphaZero απέναντι στην κορυφαία (εκείνη την περίοδο) chess engine που λέγεται Stockfish.

Το Stockfish είναι ένα open source chess engine το οποίο έχει καταφέρει να έρθει πρώτο αρκετές φορές στο TCEC (Top Chess Engine Championship). H έκδοση 8 του Stockfish ήταν αυτή που πήρε την πρώτη θέση στο TCEC Season 9 (MayDec 2016). Για τον λόγο αυτό επιλέχθηκε από την DeepMind ως ο αντίπαλος του AlphaZero.

Το AlphaZero δεν είναι μια ακόμα chess engine σαν όλες τις άλλες. Είναι μια τελείως διαφορετική προσέγγιση που βασίζεται στην τεχνητή νοημοσύνη και τα τεχνητά νευρωνικά δίκτυα. Το match του AlphaZero απέναντι στο Stockfish 8 που αποτελούνταν από 100 παρτίδες έληξε με αποτέλεσμα 28 νίκες για το AlphaZero και 72 ισοπαλίες. Μια άνετη νίκη χωρίς καμία ήττα για το AlphaZero. Αξίζει όμως να σημειώσουμε ότι top Grand Masters όπως ο GM Hikaru Nakamura επέκριναν αυτό το αποτέλεσμα λόγω του τρόπου με τον οποίο διαγωνίστηκαν τα δύο προγράμματα. Το Stockfish κανονικά χρησιμοποιεί μια βάση δεδομένων με τα ανοίγματα για το παιχνίδι του σκακιού, χαρακτηριστικό το οποίο ήταν απενεργοποιημένο σε αυτό το match. Ο Nakamura σχολίασε ότι το αποτέλεσμα μπορεί να ήταν και πάλι υπέρ του AlphaZero αν το opening cookbook ήταν ενεργοποιημένο για το Stockfish αλλά σίγουρα όχι με τόσο συντριπτική διαφορά. Η διαφορά αυτή στο score μπορεί να θεωρηθεί τεράστια αν αναλογιστούμε ότι στα τουρνουά του TCEC, η διαφορά που κρίνει την νικήτρια chess engine είναι συνήθως πολύ μικρότερη. Παρόμοιες ασσυμετρίες δεν άφησε ασχολίαστες και ένας από τους developers του Stockfish, όπως για παράδειγμα τα time controls που επιλέχθηκαν για την αναμέτρηση και πως αυτά στοίχησαν σημαντικά στην απόδοση του. Επίσης δεν είναι λίγες οι συζητήσεις στα forum και σε άλλες πλατφόρμες σχετικά με το hardware που χρησιμοποίησε κάθε πλευρά και κατά πόσο ήταν τελικά δίκαιη αυτή η αναμέτρηση. Το AlphaZero έτρεξε σε custom made επεξεργαστές από την Google που ονομάζονται Tensor Processor Units (TPUs) και θέλει λίγη προσπάθεια για να κατανοήσει κανείς τις διαφορές με τα συμβατικά CPUs ούτως ώστε να κάνει λογικές συγκρίσεις.

Όμως ο στόχος αυτής της παρουσίασης του AlphaZero μάλλον δεν ήταν να μας συστηθεί ως η επόμενη κυρίαρχη chess engine, αλλά να κάνει μια εντυπωσιακή επίδειξη του τί μπορεί να καταφέρει πλέον η τεχνητή νοημοσύνη σε μια “real-world” εφαρμογή. Σε λίγες μόνο ώρες και δίνοντας μόνο τους κανόνες του σκακιού, το πρόγραμμα αυτό κατάφερε παίζοντας αποκλειστικά με τον εαυτό του να φτάσει σε ένα "superhuman" επίπεδο και μάλιστα να νικήσει με σημαντική διαφορά την καλύτερη συμβατική chess engine.

Η DeepMind ήταν αρκετά φειδωλή ως προς το τι τελικά έκανε διαθέσιμο στο κοινό σχετικά με αυτό το επίτευγμα της. Μόνο 10 από τα 100 παιχνίδια της αναμέτρησης δόθηκαν στην δημοσιότητα (στα οποία βγήκε νικητής το AlphaZero) γιατί θεωρήθηκαν τα πιο αντιπροσωπευτικά. Ο κώδικας του AlphaZero καθώς και τα κόστη του νευρωνικού δικτύου επίσης παρέμειναν κλειστά για το κοινό. Το θετικό ήταν ότι δημοσιεύτηκε επιστημονικό άρθρο στο οποίο αναλύονται τα τεχνικά χαρακτηριστικά και η αρχιτεκτονική του AlphaZero με το οποίο μπορεί κανείς να προσπαθήσει να αναπαράγει τον ίδιο αλγόριθμο.

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

Και το όνομα «αυτής» Leela!

H Leela είναι ένα πρόγραμμα ΑΙ που βαδίζει στα χνάρια του AlphaZero και κάθε μέρα που περνάει γίνεται όλο και εξυπνότερη. Για να καταφέρει ένα πρόγραμμα τεχνητής νοημοσύνης σαν το Leela chess να γίνει δυνατός παίκτης στο σκάκι θα πρέπει να κάνει το απαραίτητο training του νευρωνικού δικτύου που το απαρτίζει. Αυτό γίνεται παίζοντας με άλλους παίκτες αλλά ακόμα και με τον εαυτό του. Μία πολύ αφαιρετική περιγραφή θα ήταν να πούμε ότι αυτοί οι νευρώνες έχουν διάφορα επίπεδα και πολλές συνδέσεις μεταξύ τους. Οι συνδέσεις αυτές έχουν τιμές (συναπτικά βάρη) τα οποία μεταβάλλονται κάθε φορά που ολοκληρώνεται ένα παιχνίδι ανάλογα πάντα με το αποτέλεσμα. Μετά από πλήθος παιχνιδιών, τα βάρη που υπολογίζονται έχουν τις κατάλληλες τιμές για να πετυχαίνει το δίκτυο να βρίσκει την καλύτερη δυνατή κίνηση για κάθε θέση σε μια παρτίδα σκακιού. Φυσικά η Google διαθέτει τεράστια υπολογιστική δύναμη και μπορεί να πετύχει αυτή την εκπαίδευση ενός νευρωνικού δικτύου σε λίγες ώρες. Για ένα ανοικτό project σαν τη Leela, και με συμβατικό hardware όπως GPU και CPU που διαθέτουν οι χρήστες της κοινότητας, οι αρχικές εκτιμήσεις ήταν ότι θα χρειαστεί μερικά χρόνια (!) για να μπορέσει η Leela να νικήσει το Stockfish.

Η δύναμη όμως του διαδικτύου και των κοινοτήτων του σίγουρα μπορεί να κάνει πολλά για ένα τόσο ενδιαφέρον project. Τη στιγμή που γράφονται αυτές οι γραμμές η Leela έχει συμπληρώσει πάνω από 4 εκατομμύρια παιχνίδια και ο ρυθμός συνεχώς αυξάνεται.

Τόσο για τους φίλους του σκακιού όσο και για τους φίλους του προγραμματισμού αλλά και των νέων τεχνολογιών γενικότερα, το project αυτό είναι σίγουρα μια πολύ καλή ευκαιρία να έρθει κανείς σε επαφή με την θεωρία και την εφαρμογή των μηχανισμών της τεχνητής νοημοσύνης. Ταυτόχρονα μπορεί να συνεισφέρει σε αυτή την προσπάθεια ακολουθώντας τα λεπτομερή guides για το πώς μπορεί κανείς να κατεβάσει, να κάνει compile και να τρέξει τα binaries για την εκπαίδευση της Leela.



Πηγές:

https://en.chessbase.com/post/the-future-is-here-alphazero-learns-chess

https://www.chess.com/news/view/google-s-alphazero-destroys-stockfish-in-100-game-match