Επιβλεπόμενη μηχανική μάθηση και τεχνητά νευρωνικά δίκτυα – Μέρος Β: “Neural Networks”
- Συγγραφέας: Σάββας Ράπτης
- 10-10-2021
- Τροποποίηση: 04-12-2021
- Δυσκολία: Μέτριο
- Κατηγορίες: Τεχνολογίες
Μια από τις πιο διαδεδομένες μεθόδους επιβλεπόμενης μηχανικής μάθησης, είναι αυτή των τεχνητών νευρωνικών δικτύων (Artificial Neural Networks).
Ιστορικά, η έρευνα των βιολογικών νευρώνων του ανθρώπινου εγκεφάλου αποτέλεσε έμπνευση για την ανάπτυξη των τεχνητών νευρωνικών δικτύων. Απλουστεύοντας σε μεγάλο βαθμό, μπορούμε να πούμε ότι στην περίπτωση του ανθρώπινου εγκεφάλου, το μυαλό μας μαθαίνει με τα χρόνια ποιους νευρώνες να ενεργοποιεί αναλόγως του ερεθίσματος που λαμβάνει. Στη συνέχεια, αλλάζοντας τον βαθμό ενεργοποίησης των συνάψεων μπορεί και δημιουργεί νέες συνδέσεις και έτσι να μαθαίνει νέες πληροφορίες και διαδικασίες. Οι πρώτες αναφορές για το πως θα μπορούσε να λειτουργήσει ένας τεχνητός νευρώνας, έγιναν από τους Warren McCulloch και Walter Pitts το 1943, ενώ η πρώτη εμφάνισή τεχνητού νευρώνα έγινε το 1957 από τον ψυχολόγο Frank Rosenblatt.
Για να μπούμε σε λεπτομέρειες θα χρησιμοποιήσουμε το παράδειγμα που είδαμε στο πρώτο μέρος*. Γενικά, ένα νευρωνικό δίκτυο αποτελείται από 3 τουλάχιστον βασικά επίπεδα (layers). Το πρώτο είναι αυτό της εισόδου (input), όπου δίνονται τα δεδομένα, δηλαδή στην περίπτωση που εξετάζουμε, οι εικόνες. Στη συνέχεια υπάρχουν ένα ή περισσότερα κρυφά (hidden) επίπεδα. Εδώ υπάρχει ένα πλήθος νευρώνων που η παραμετροποίησή τους δίνει την ικανότητα να λύσουμε το πρόβλημα που αντιμετωπίζουμε (δηλαδή, η αναγνώριση των εικόνων). Τέλος, έχουμε το επίπεδο εξόδου (output) όπου το δίκτυό μας επιλέγει την απάντηση που θεωρεί σωστή. Στην περίπτωσή μας η έξοδος είναι 9 νευρώνες που το δίκτυο θα επιλέξει αντιστοίχως έναν για κάθε νούμερο 1-9
Αρχικά το νευρωνικό δίκτυο δεν είναι εκπαιδευμένο. Μπορούμε να το παρομοιάσουμε με έναν άνθρωπο που του έχουν πει ότι πρέπει να διαλέξει έναν αριθμό από το 1-9 για κάθε εικόνα, και αφού δεν έχει ξαναδεί αυτό το τρόπο γραφής, επιλέγει στην τύχη! Όμως εδώ ξεκινάμε τη διαδικασία μάθησης.
Διαδικασία μάθησης (training): Για κάθε σωστή εικόνα δεν κάνουμε αλλαγές στις παραμέτρους του δικτύου, ενώ για κάθε λάθος, τις αλλάζουμε. Ένα νευρωνικό δίκτυο συνήθως αποτελείται από εκατοντάδες παραμέτρους που δείχνουν τον βαθμό ενεργοποίησης του κάθε νευρώνα (Εικόνα 2). Στο τέλος μετά από εκατομμύρια διαφορετικά παραδείγματα που παρέχουμε επανειλημμένα για εκπαίδευση (training set) το νευρωνικό δίκτυο μαθαίνει να αναγνωρίζει τα νούμερα. Πώς όμως το ελέγχουμε αυτό; Πώς μπορούμε να σιγουρευτούμε ότι δεν έμαθε απλώς να “παπαγαλίζει” και να αναγνωρίζει μόνο αυτά που του μάθαμε εμείς; Με τον ίδιο τρόπο που ελέγχουμε και εμάς τους ανθρώπους. Δηλαδή, με ένα τεστ!
Διαδικασία ελέγχου (testing): Όταν εκπαιδεύουμε ένα νευρωνικό δίκτυο, του δίνουμε ένα μεγάλο μέρος της πληροφορίας που έχουμε (60-80%) και κρατάμε το υπόλοιπο μέρος κρυφό! Έτσι, μπορούμε δίνοντάς του το άγνωστο μέρος (test set) να ελέγξουμε αν απλώς έμαθε να αναγνωρίζει ό,τι του μάθαμε ή αν μπορεί να γενικεύει την πληροφορία και σε παρόμοιες περιπτώσεις ώστε να βγάλει σωστό συμπέρασμα**.
Σήμερα, η έρευνα στα τεχνητά νευρωνικά δίκτυα έχει προχωρήσει πολύ. Μια από τις πιο επιτυχημένες προεκτάσεις είναι τα λεγόμενα συνελικτικά δίκτυα (Convolutional Neural Network). Σε αυτή την περίπτωση, χρησιμοποιώντας μεθόδους παρόμοιες με αυτές που χρησιμοποιούν τα μάτια μας, μπορούμε να κάνουμε το δίκτυό μας να αναγνωρίσει εικόνες με πολύ μεγάλη ακρίβεια και ταχύτητα!
Περαιτέρω διάβασμα:
(Step 1 — Introduction): 3Blue1Brown — But what is a neural network? https://www.youtube.com/watch?v=aircAruvnKk & CGP Gray — How Machines Learn https://www.youtube.com/watch?v=R9OHn5ZF4Uo
(Step 2 — Hands-on): Machine Learning Coursera Course | offered by Stanford: https://www.coursera.org/learn/machine-learning
(Step 3 — Theoretical reading): Bishop, Christopher M. “Pattern Recognition and Machine Learning (Information Science and Statistics)”, Machine learning 128.9 (2006).
*Στο παράδειγμα αυτό έχουμε πολλές εικόνες που άνθρωποι έχουν βάλει ετικέτες (labels) και καλούμαστε να φτιάξουμε ένα τεχνητό νευρωνικό δίκτυο να μάθει να αναγνωρίζει αυτές τις εικόνες.
** Στην πραγματικότητα πέρα από τα δεδομένα εξέτασης (test set) έχουμε και τα δεδομένα αξιολόγησης (validation set) που χρησιμοποιούνται για να ελέγξουμε διαφορετικές παραμετροποιήσεις του νευρωνικού δικτύου. Για παράδειγμα, πόσους νευρώνες να βάλουμε και πόσα κρυφά επίπεδα.