Leela: Ένα σημαντικό ορόσημο στη τεχνητή νοημοσύνη

H AI που απέσπασε την προσοχή της παγκόσμιας σκακιστικής κοινότητας!
08 Μαΐου 2018 15:08
Leela: Ένα σημαντικό ορόσημο στη τεχνητή νοημοσύνη

Στις αρχές του περασμένου Δεκεμβρίου (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 (May – Dec 2016). Για τον λόγο αυτό επιλέχθηκε από την DeepMind ως ο αντίπαλος του AlphaZero.

Το AlphaZero δεν είναι μια ακόμα chess engine σαν όλες τις άλλες. Είναι μια τελείως διαφορετική προσέγγιση, που βασίζεται στην τεχνητή νοημοσύνη και τα τεχνητά νευρωνικά δίκτυα. Το match του AlphaZero απέναντι στο Stockfish 8, που αποτελούνταν από 100 παρτίδες, έληξε με αποτέλεσμα 28 νίκες και 72 ισοπαλίες για το AlphaZero. Μια άνετη νίκη χωρίς καμία ήττα για το 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.

Παίξτε με τη Leela από εδώ: http://play.lczero.org/