Τι είναι η μηχανική μάθηση (machine learning); – Μέρος Α: “Εισαγωγή”
- Συγγραφέας: Σάββας Ράπτης
- 10-10-2021
- Τροποποίηση: 11-01-2023
- Δυσκολία: Εύκολο
- Κατηγορίες: Τεχνολογίες
Μηχανική μάθηση (machine learning) ονομάζεται το πεδίο της επιστήμης των υπολογιστών που μελετά τη δημιουργία αλγορίθμων* οι οποίοι «μαθαίνουν» χωρίς να έχουν προγραμματιστεί με συγκεκριμένους κανόνες. Με άλλα λόγια, οι αλγόριθμοι αυτοί χρησιμοποιούν δεδομένα με σκοπό να ανακαλύψουν μοτίβα και σχέσεις ώστε να κάνουν προβλέψεις ή να πάρουν αποφάσεις. Αναφορές στη μηχανική μάθηση υπάρχουν από τη δεκαετία του 1960 όμως η χρήση των τεχνικών αυτών αυξήθηκε ραγδαία μετά τη δεκαετία του 1990 ως αποτέλεσμα της ανάπτυξης κλάδων της επιστήμης υπολογιστών όπως είναι η ψηφιοποίηση αρχείων, η εξόρυξη δεδομένων και οι υπερυπολογιστές.
Στο πρώτο άρθρο της σειράς αυτής θα δούμε τις 3 βασικότερες μορφές της μηχανικής μάθησης!
Επιβλεπόμενη (supervised) μάθηση ονομάζεται η τεχνική με την οποία ένα πρόγραμμα εκπαιδεύεται για να καταλάβει τη σχέση μεταξύ των δεδομένων που δίνουμε και ενός επιθυμητού αποτελέσματος. Δηλαδή έχουμε προκαθορισμένη είσοδο (input – δεδομένα) και έξοδο (output – αποτέλεσμα). Αλλιώς, συνηθίζεται να λέμε ότι έχουμε δεδομένα με ετικέτες (labels) που δείχνουν τη σύνδεση με την έξοδο, τις οποίες έχουν βάλει άνθρωποι ή άλλοι κώδικες (επιβλεπόμενη). Σε αυτή τη μορφή μάθησης σκοπός του προγράμματος είναι να καταλάβει τη σχέση μεταξύ εισόδου και εξόδου. Στο παράδειγμα της εικόνας 1, βλέπουμε μια βάση δεδομένων που περιλαμβάνει 280.000 χειρόγραφα νούμερα από το 0 μέχρι το 9. Εδώ, για είσοδο έχουμε την εικόνα από κάθε νούμερο και για έξοδο τον αντίστοιχο αριθμό. Αυτό που θέλουμε είναι να εκπαιδεύσουμε τον υπολογιστή να κάνει αυτό που οι άνθρωποι κάνουμε τα μάτια μας, να μάθει να αναγνωρίζει εικόνες που αναπαριστούν αριθμούς!
Στην περίπτωση της μη-επιβλεπόμενης (unsupervised) μάθησης γνωστό είναι μόνο το κομμάτι της εισόδου (input) των δεδομένων και ο υπολογιστής καλείται να αναγνωρίσει τα μοτίβα που μπορεί να υπάρχουν. Μία από τις πιο συνηθισμένες εφαρμογές είναι η ομαδοποίηση (clustering). Σε αυτή την περίπτωση τα δεδομένα κατηγοριοποιούνται σε ομάδες (clusters) που έχουν κοινά στοιχεία/πληροφορίες (βλέπε Εικόνα 2). Εδώ, προσπαθούμε να αναπαράγουμε το πως οι άνθρωποι χωρίζουμε σε κατηγορίες τα πράγματα. Ένα χαρακτηριστικό παράδειγμα της τεχνικής αυτής είναι η δημιουργία φίλτρου ανεπιθύμητης αλληλογραφίας (spam filter) που χρησιμοποιείται από τους παρόχους e-mail.
Στην ενισχυτική μάθηση (reinforcement learning) τα πράγματα είναι κάπως διαφορετικά. Εδώ, κατασκευάζουμε ένα εικονικό «περιβάλλον» που έχει συγκεκριμένους κανόνες και αφήνουμε τον υπολογιστή να αλληλεπιδράσει με αυτό μέχρι την επίτευξη κάποιου στόχου όπως η μεγιστοποίηση ενός σκορ. Για την ώρα οι περισσότερες εφαρμογές αυτού του είδους μάθησης υπάρχουν σε παιχνίδια! Με τη χρήση ενισχυτικής μάθησης, οι υπολογιστές μαθαίνουν να παίζουν τόσο καλά μερικά παιχνίδια που πλέον οι άνθρωποι δεν μπορούν να τους ανταγωνιστούν (π.χ. εικόνα 3). Στο επιτραπέζιο Go, ο υπολογιστής AlphaGo, με τη χρήση ενισχυτικής μάθησης, το 2017 νίκησε τον παγκόσμιο πρωταθλητή Ke Jie! Σε πιο σύγχρονα βιντεοπαιχνίδια, έχουμε παραδείγματα όπως αυτό του OpenAI** που στο παιχνίδι DOTA 2 ο υπολογιστής έχει ποσοστό νίκης πάνω από 99%, ενώ πρόσφατα νίκησε και τους παγκόσμιους πρωταθλητές (2018,2019) OG!
Σε επόμενα άρθρα θα εξετάσουμε κάθε κατηγορία ξεχωριστά. Έτσι, θα δούμε περισσότερες λεπτομέρειες, παραδείγματα και τις πιο διαδεδομένες πρακτικές που χρησιμοποιούνται σήμερα.
*Αλγόριθμο ονομάζουμε ένα σύνολο εντολών που καθορίζουν μια διεργασία η οποία έχει φτιαχτεί με σκοπό την επίλυση ενός προβλήματος ή τη διεξαγωγή μιας υπολογιστικής διεργασίας.