Προηγμένη Τεχνητή Νοημοσύνη (2022-12-21-20:10:19) / Μέρος 3 / Προγραμματισμένη Μετάδοση μαθήματος - Σταματόπουλος Παναγιώτης (ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ, 2022)
Προγραμματισμένη Μετάδοση μαθήματος: Βλέπω δύο κόμβους στα δύο δέντρα, με τυχαίο τρόπο. Πάω το ένα υπό δέντρο εδώ με το ένα υπό δέντρο εκεί. Δηλαδή συνδυάζω δύο συναρτήσεις και φτιάχνω δύο απογόρων συναρτήσεις. Που είναι οι δύο απογόρων που είναι από κάτω. Και μιλήσω με τι θα σημαίνει. Θα σημαίνει να πάω σε ένα κόμμο και να αλλάξω κάτι. Με τυχαίο τρόπο πάλι. Να πάω εδώ και αντιγραμήτων να βάλω συνειμήτων. Αλλά προσέξτε, με τρόπο που ο γονότυπος, δηλαδή το δέντρο, να το κωδικοποιείται σε έναν νόμο μοφινότυπο. Δηλαδή εδώ που έχω έναν διάβουσακό μου που είναι μια συναρτήση μιας μεταβλητής, θα βάλω μια συναρτήση μιας μεταβλητής. Ζάβαλα όχι να τελειώσει τη ΣΥΝ. Έχω λοιπόν, μπορώ να παραλλάξω την ιδέα του crossover, όχι με την έννοια του κόβω strings σε ένα σημείο και τα συνδυάζω χρειαστεί, αλλά κόβω δέντρα σε ένα τυχαίο σημείο το καθένα και ανταλλάσσω τα υποδέντρα τους. Και mutation ανταλλάσσω, πειράζω με τυχαίο τρόπο πάλι κάποιο κόμμα. Fitness. Κάθε συναρτήση έχει μια fitness που έχει να κάνει το πόσο σφάλμα κάνει στα παραδείγματα εκπαίδευσης. Για δεδομένο αυτή συναρτήση, δεδομένο H&C, μου δίνει ένα αποτέλεσμα, το οποίο απέχει τόσο από το επιθυμητό αποτέλεσμα για τα συγκεκριμένα H&C, το τραγωνίζει και όλας μάλιστα, γιατί συνήθως πρέπει να είμαστε τραγωνικό σφάλμα. Το αθρίζω και όλα τα παραδείγματα εκπαίδευσης, αφού είναι το σφάλμα αυτή η συναρτήση. Και το σφάλμα μπορεί να το κάνει ο fitness με ένα μειών μπροστά ή με ένα ένα διάν το τέτοιο. Γιατί το fitness είναι κάτι σωστικό, είναι κάτι το οποίο θέλουμε να είναι μεγάλο. Το σφάλμα θέλει να είναι κάτι που θα είναι μικρό. Ενώ στα ενεργονικά νέκτια θέλουμε να μεγιστοποιήσουμε το σφάλμα, στις γενικούς αργορίθμους και γενικού πρωμαθμού θέλουμε να μεγιστοποιήσουμε τη fitness. Αλλά αυτό που να γίνει εύκολα μαθηματικά πάμε από το ένα στο άλλο πολύ εύκολα. Ά, λοιπόν, να πως με έναν population based μηχανισμό μπορώ να λύσω προβλήματα τα οποία λέγονται και με άλλους τρόπους, αλλά έχει αποδεχθεί στην πορεία ότι για κάποια από αυτά αυτή η προσέγγιση είναι αρκετά καλή. Δηλαδή είναι αποτελέσματα γρήγορα και αρκετά ποιοτικά. Αρκετά καλά σε σχέση και με τις άλλες μεθρώνους. Εδώ το βιβλίο αυτό το καρυγράφεται μεθόδο στο πρόβλημα του COSMOTO GIVEN. Το πρόβλημα του COSMOTO GIVEN είναι ότι έχω ένα τραπέζι, έχω κάποιο σκημούσιο που είναι labeled, έχω μια αρχική κατάσταση όπου εκεί βρίσκονται κάποιοι πάνω στο τραπέζι, κάποιοι δημιουργούν κάποια στάξη, κάποιες στήρες και αντιδρομένη αρχική κατάσταση με τελεστές οι οποίοι είναι ουσιαστικά μπορώ να μετακινήσω εγώ σε κάθε κίνηση έναν κύβο από μια θέση το πάω κάπου αλλού, φυσικά μπορώ να μετακινήσω ως μαγοφτησίβα μόνο τον κορυφαίο κύβο, να τον πάω είτε πάνω στο τραπέζι είτε πάνω από κάποιο άλλο κύβο, δεν μπορώ να μετακινήσω κάποιον διάμεσο, δηλαδή μόνο έναν κύβο ο οποίος είναι ελεύθερος από πάνω που να μετακινηθεί και φυσικά δεν μπορώ να κάνω ασκήσεις ισορροπίας, δεν μπορώ πάνω από έναν κύβο να βάλω δύο το ένα δίπλα στον άλλο, έτσι. Μπορώ να βάλω έναν κύβο πάνω από έναν κύβο πάνω από αυτό που να βάλουν και τα λοιπά. Και σε αυτό το πρόβλημα που είναι ένα κλασικό πρόβλημα τεχνητής νέμωσινης που πάνω σε αυτό έχουν αναπτυχθεί πάρα πολύ περισσότεροι, θα λέγα όλοι, οι αλγόριθμοι planning, κατάστασης σχεδίου, το ζητό μου είναι να ξεκινήσουμε με αντεδομέρα αρχική κατάσταση και να το δώσουμε σε μια επιθυμητή τελική κατάσταση. Στον κόσμο τον κύβο. Και τώρα εδώ πάει να λύσει αυτό το πρόβλημα με γενετικό προγραμματισμό, ουσιαστικά να φτιάξει ένα, εισαγωγικά, πρόγραμμα, μια αλληλουχία από εντολές, οι οποίες για τη δεδομένη αρχική κατάσταση θα μας, εφαρμόζοντας αυτή την αλληλουχία από εντολές, με τα κινήσων δηλαδή, θα φτάσουμε σε μια επιθυμητή τελική κατάσταση που είναι, ας πούμε, για παράδειγμα εδώ, να βλέπετε οι κύβοι εδώ, έχουν γράμματα επάνω και είναι τα γράμματα της λέξης universe. Να φτιάξουμε μια στήβα με κύβους, ο ένας από τον άλλο, που από πάνω προς τα κάτω, ας πούμε, να φτιάχνει τη λέξη universe. Αυτή είναι η τελική επιθυμητή κατάσταση. Τι πρέπει να κάνω, ας πούμε, τι κινήσεις πρέπει να κάνω. Και όρισαν, λοιπόν, κάποια εστραογεντικό προγραμματισμό, τα σύμβολα τα οποία είναι στα φύλλα λέγονται terminals, και η ενιά μεσηκώμη είναι non terminals, δηλαδή εδώ στο παράδειγμα με τις συναρτήσεις, οι μητες και οι σταθερές είναι terminals, και οι μαθηματικές συναρτήσεις και οι μαθηματικοί τελεστές είναι non terminals. Όρισαν, λοιπόν, κάποια terminals, CS, ας πούμε, το terminal card stack, είναι το όνομα του top block στη stack. Θέλω να φτιάξω μια stack που να έχει το universal. Ποιο είναι το top block, ποιο είναι το γράμμα που είναι στο top block στη stack αυτή που θέλω να φτιάξω, αυτό είναι το CS. TB, top correct block, είναι το name of top most correct block on stack, το πιο ψηλό που είναι σωστό, σωστό σημαίνει να είναι πάνω από τη σωστή του θέση. Το NN, next necessary, είναι το name of the next block needed above top block in the stack, δηλαδή πάνω από το top block, το top correct block, ποιο είναι το επόμενο το οποίο πρέπει να βάλω. Αν το top correct block, ας πούμε, είναι το E, το next necessary είναι το V. Έχει, λοιπόν, αυτά τα terminals και έχει και κάποια ability functions. Το MS είναι move to stack, μετακίνηση από το τραπέζι προς τη stack ενός block X. MTX, μετακίνηση του block X από την stack στο τραπέζι. Το equal αν το X είναι ίσο με το ψ, το not X αντισρεύει απλώς την τιμή αλήθεια στο ν και false. Και το du, do until το du, κάνε το X όσο το ψ είναι αληθές. Αυτά ήταν λοιπόν τα functions, δηλαδή τα non terminals και αυτά είναι τα terminals. Και εφάρμωσαν γενετικό προγραμματισμό με ένα σύνολο από τυχαίες αρχικές καταστάσεις του κόσμου των κύβων, με αυτό δε με βάζω τα block. Και μετά από σχετικά πολύ λίγες γενιές, μετά από 10 γενιές, 166 ήταν τα 4 problems τα οποία χρησιμοποιήσαμε. Μετά από χρησιμοποιήσαμε πληθυσμό από 300 προγράμματα, δηλαδή 300 πιθανές αλληλουχίες ενεργειών οι οποίες μπορούσαν να μαζούν το τελικό αποτελεσμα. Και τελικά μετά από 10 γενιές, το οποίο είναι πολύ λίγο, δηλαδή από τα 10 παραλείψει το γενετικό αλγορίσμα, κατασκευάστηκε ουσιαστικά αυτό το πρόγραμμα, το οποίο πραγματικά πάμε να αποκωδικοποιήσουμε τι ακριβώς σημαίνει. Με βάση το πώς ορίστηκαν τα τέρμηλα θελαντόνων τέρμηλας, αυτό που κάνει αυτό το πρόγραμμα, να μεταποληλογούμε, είναι να καταστρέψει όλες τις υπάρχουσες τύβες και να τις βάλει πάνω στο τραπέζι, δηλαδή εδώ στο προκειμένου αρχική κατάσταση, θα κατεβάσει το ν κάτω, θα κατεβάσει το ε κάτω, θα κατεβάσει το ες κάτω, να τα βάλει πάνω στο τραπέζι και μετά να χτίσει την επιθυμητή στιγμή, την universal, από κάτω προς τα πάνω με τη σειρά όλη την οποία πρέπει, το οποίο δεν είναι βέβαια η βέλτης τη λύση για το πρόβλημα, είναι μία λύση όμως, η οποία όμως λύσει κατασκευάσει και αυτόματα μέσω γεωργικού προγραμματισμού. Δεν χρησιμοποιήθηκε κάποια ευφυεία υπό την έννοια του έχω ένα πρόγραμμα να ζήτησης, αυτοί είναι τρέψα κατάσταση, μια κατεγκίνηση να κάνω, να χρησιμοποιήσω ASTR και τα λοιπά, με εντελώς στοχαστικό τρόπο, έτσι, παράχτηκε ένα πρόγραμμα, αυτό εδώ. Λοιπόν, αυτά πέραγε γεωργικού προγραμματισμού, δηλαδή η διαφορά, η ισοδιότητα της διαφοράς του, η βασική ομοιότητά του, είναι και αυτός population based και στοχαστικού χαρακτήρα, η ισοδιότητα της διαφοράς είναι, στις γενικούς αλλαγωρίθμους, τα άτομα του πληθυσμού είναι strings, κατά κρανόνα, αλλά όχι πάντοτε bit strings, δηλαδή γενικά και άση, ενώ στο γενικικό προγραμματισμό τα άτομα είναι δέντρα, αλλά επεκτείνοντας την ιδέα των γιαδυτικών τελεστών crossover και mutation από τα bit strings στραδέντρα, μπορούμε να έχουμε αντίστοιχα αποτελέσματα. Άλλα, ας πούμε, άλλες περιπτώσεις που έχει εφαρμοσύγει ο γενικός προγραμματισμός, και έχει πάρει και το όνομά του σιαστικά, Genetic Programming, είναι να κατασκευαστούν προγράμματα σε γλώσσα προγραμματισμού με στοχαστικό τρόπο, τα οποία επιλύνουν ένα πρόβλημα. Θέλω να φτιάξω ένα πρόγραμμα το οποίο είναι αυτό το πρόβλημα. Κάθε πρόγραμμα μπορεί να αναπαρασταθεί και αυτός θέλει ένα δέντρο. Έχει σε μια γλώσσα προγραμματισμού, ένα πρόγραμμα τι είναι, είναι μια αλληλουχία από εντολές. Κάθε εντολή όμως που έχει μια συγκεκριμένη σύνταξη, συγκεκριμένη γλώσσα προγραμματισμού, μπορεί να παρασταθεί και αυτός σαν ένα δέντρο. Ας πούμε, αν πάρουμε μια εντολή, ξέρω εγώ, y, y συνθήκη, έχει ένα σώμα εντολών μέσα στη y, η y έχει μια συνθήκη. Οι συνθήκες και αυτές μπορούν να παρασταθούν σαν ένα δέντρο. Μπορούν να είναι σύνθετες συνθήκες, να έχουν συζέψη, διάζεψη και οι επιμέρους, οι απλές συνθήκες, έχουν αρχιεργτικούς τελεστές σύγκρισης ας πούμε μεγαλύτερο, μικρότερο και τα λοιπά. Όλα αυτά, ένα πρόγραμμα σε μια γλώσσα προγραμματισμού μπορεί να παρασταθεί σαν ένα δέντρο. Κάλλα μπορεί να έχω ένα πληθυσμό προγραμμάτων και να κατασκευάζονται από αυτό το πληθυσμό γενιές και γενιές με τελεστές διαστάρους και μετάλλαξεις και με fitness. Έχω και fitness. Η fitness ποια είναι η fitness είναι του πόσο καλό είναι ένα πρόγραμμα, δηλαδή του πόσο σωστά είναι τα αποτελέσματα που βγάζει. Θέλω να φτιάξω ένα πρόγραμμα το οποίο να κάνει μια δουλειά, που σημαίνει για αυτές τις ώδους να δίνει αυτές τις εξόδους. Άρα και εκεί έχω παραδείγματα εκπαίδευσης, που σημαίνει ότι ένα πρόγραμμα που έχει κατασκευαστεί με σωχαστικό τρόπο, για τα δεμένα παραδείγματα εκπαίδευσης έχει μια X επιτυχία. Αυτό το X είναι η fitness του. Όσο πιο μεγάλη επιτυχία έχει το πρόγραμμα, τόσο μεγάλη είναι η fitness του. Εντάξει, εδώ κάποια θετικά στοιχεία για το πρόγραμμα. Αυτά είχα να σας πω εγώ, επί των θεμάτων που είχα μαζί. Εδώ να γράψω τα URL, είναι τα εξής. Κάτω υπό εκεί βρίσκεται και όλα τα URL στα οποία θα σας δώσουμε τώρα. Αυτά είναι λοιπόν το aai-advanced artificial intelligence 22 και το άλλο είναι το aai-21.pdf. Έχω ανοίξει εδώ τα περίσσινά, η εξέταση έγινε 17 Φεβρουαρίου. Ήταν 16 ερωτήσεις πολλαπλής επιλογής, με 4 πιθανές απαντήσεις το καθένα από όλο το έβρος της ύλης. Στις οποίες ερωτήσεις ζητάω, φυσικά, τη σωστή απάντηση και σύντομη αιτειολόγηση. Δηλαδή αν έχει μόνο μια σωστή απάντηση, χρειάζεται και μια σύντομη αιτειολόγηση. Και συνήθως επιδέχονται σύντομοι αιτειολόγησεις σε αυτές οι ερωτήσεις. Είναι 16 λοιπόν ερωτήσεις με βαθμολογία 5 μόρια η καθεμία, 5-16-80. Οπότε ο 80% είναι συνηθισμένος χωράς 14% στο ελληνικό βαθμό. Είχα στο τέλος το 22 και έχω βάλει τώρα και μια bonus ερώτηση. Έτσι που έχει έρθει τότε, δεν ξέρω αν θα την βάλω φέτος, μπορεί και να πω και όχι. Συνολογίες πέφτουν όχι... Λέω επιλογίες πέφτουν, αλλά πέφτουν ανάπτυξεις. Όχι. Επί κορονοϊού, πρόκορονοϊού, ήταν θέματα ανάπτυξης. Επί κορονοϊού που μειώθηκαν οι χρόνοι εξέτασης κλπ, μπήκαν θέματα επιλογίες. Τώρα δεν ξέρω αν έχουμε ή δεν έχουμε κορονοϊού ακόμα. Θα τα εμισάνσουμε. Όχι. Θα εξεργοθήσουμε να έχουμε θέματα απολύτως επιλογίες. Τι ώρα έχουμε? Αυτή η εξέταση ήταν μια μισή ώρα. Είναι 16 ερωτήσεις για μια μισή ώρα. Η 17η λοιπόν η πόνη σε ερώτηση ήταν μια εκτίμηση παθημολογίας στις προηγούμενες. Αν την πετυχαίνατε σωστά, αυτοί που πήρατε να είναι πιο κοντά σ' αυτοί που είχατε επιλέξει εδώ, έπαιρναν τα άλλα πέντε μόρια. Σαν μια επιβραβεύση σωστής αυτοαξιολόγησης. Θα δω ότι περίπου η μισή ώρα και παράλληλα ο αδερφός σας πέτυχαν σωστά. Και πήραν πέντε μόρια από την σωστή αυτοαξιολόγηση την οποία κάνουν. Αυτό είναι πόνη σε ερώτηση. 17η, δηλαδή πάνω απ' το 80 η γενιά. Παθμοδογιά το πετυχάνα γι' αυτό. Ανάλογο της αυτοαξιολόγησης χάσεις το... Τι? Δεν υπάρχει πιθανάτητα να χάσεις... Όχι, γιατί... Όχι, γιατί... Τα ειπωγούμενες 16 έχουν ναύστατο το 80. Η πρώτη επιλογή είναι 75. Που σημαίνει ότι... Αν πάρεις από 75 και πάνω, ή σίγουρα είσαι στην πρώτη επιλογή αυτή, η δεύτερη επιλογή είναι 60. Άρα, αν είναι 60 με 75 είναι 15. 8 κάτω απ' το 85. Απ' το 67 και πάνω... Απ' το 67 και πάνω... Προσεγγίζεται στο 85. Άρα, λοιπόν, αν κάποιος είχε πάρει 67 και είχε πάρει το 85, τα κέρδιζε τα πέντε μόρια. Άρα, είναι σωστή η επιλογή σε αυτή την περίπτωση... Δεν υπάρχει σωστή η επιλογή. Το διάστημα. Το πιο κοντινό νομίζω. Και αυτό και η απόσταση είναι περίπτωση αρθμός, ώστε να μην υπάρχει τάιμ. Δεν ξέρω αν θα το ξαναβάλω φέτος. Προς να μην πάρεις μούρθα τελευταία στιγμή. Λέω να βάλω και από τη μόνη σου ερώτηση. Μπορεί φέτος να μούρθα με λίγο άλλο, δεν ξέρω. Λοιπόν, θα βάλω κάθε άλλη τέτοιο. Λοιπόν, η ουσία είναι ότι είναι 16 ερωτήσεις από όλο το εύρος της Ήλης. Δεν υπάρχει κάτι να αφήνω απ' έξω. Αλλά θέλω και τι ολόγηση. Και αντίστοιχα ήταν και το 21. Εξετάσεις που γίνανε το 21. Αυτός το 21 δεν είχα τον πόνος. Ήταν 16 ερωτήσεις. Λοιπόν αυτές ήταν τα δύο ερωτήσεις. Θα τις συνηθίσουμε στο μάθημα της 10ης μετά από τις 20ης. Λοιπόν καλά και στιγμές, καλές διακοπές. Καλές διακοπές σας. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα. Καλή πονέα.