Τι είναι και πώς λειτουργεί η βαθιά μάθηση μέσα στα νευρωνικά δίκτυα που τροφοδοτούν τη σημερινή τεχνική νοημοσύνη.
Η τεχνητή νοημοσύνη (AI =Artificial Intelligence) είναι μία επανάσταση στην τεχνολογία του σήμερα, και ο όρος υπονοεί την ικανότητα μιας μηχανής να αναπαράγει τις γνωστικές λειτουργίες ενός ανθρώπου, όπως είναι την μάθηση, τον σχεδιασμός και την δημιουργικότητα.
Η τεχνητή νοημοσύνη καθιστά τις μηχανές ικανές να “κατανοούν” το περιβάλλον τους, να επιλύουν προβλήματα και να δρουν προς την επίτευξη ενός συγκεκριμένου στόχου.
Για παράδειγμα ο υπολογιστής οφείλει να καταλάβει ποιος αριθμός είναι το κάθε χειρόγραφο σύμβολο παραπάνω. Θεωρείτε το πρόβλημα απλό και τις απαντήσεις σωστές; Ορισμένες από τις «ορθές» απαντήσεις είναι αμφισβητήσιμες. Δείτε για παράδειγμα τη δεύτερη εικόνα από αριστερά: είναι πράγματι 7, ή μήπως είναι 4;
Εδώ ξεφεύγουμε από τους απλούς αλγόριθμούς και εισερχόμαστε σε κάτι μεγαλύτερο που θα μπορεί να ανταποκριθεί στην παραπάνω απαίτηση. Ο υπολογιστής λαμβάνει δεδομένα (ήδη έτοιμα ή συλλεγμένα μέσω αισθητήρων, π.χ. κάμερας), τα επεξεργάζεται και ανταποκρίνεται βάσει της “εμπειρίας” του σε χειρόγραφα κείμενα . Όμως πως γίνεται αυτό;
Ξεπερνώντας τις αρχικές, απλοϊκές μεθόδους για να πετύχουμε τεχνητή νοημοσύνη, πλέον η τεχνολογία επικεντρώνεται σε μια τεχνική που ονομάζεται βαθιά μάθηση, η οποία τροφοδοτείται από τεχνητά νευρωνικά δίκτυα.
Βαθιά μάθηση, νευρωνικά δίκτυα; Περίεργες λέξεις και νοήματα. Ακολουθεί μια γραφική εξήγηση για το πώς αυτά τα νευρωνικά δίκτυα είναι δομημένα και εκπαιδευμένα.
Ορισμοί – Έννοιες
Table of Contents
Μηχανική Μάθηση
Η Μηχανική μάθηση (Machine Learning) στους υπολογιστές διερευνά τη μελέτη και την κατασκευή αλγορίθμων που μπορούν να μαθαίνουν από τα δεδομένα και να κάνουν προβλέψεις σχετικά με αυτά. Η Μηχανική Μάθηση εφαρμόζεται σε μια σειρά από υπολογιστικές εργασίες, όπου τόσο ο σχεδιασμός όσο και ο ρητός προγραμματισμός των αλγορίθμων είναι ανέφικτος.
Έτσι οι αλγόριθμοι στην μηχανική μάθηση δεν λένε ακριβώς στον υπολογιστή τι να κάνει, αλλά λειτουργούν κατασκευάζοντας μοντέλα από πειραματικά δεδομένα, προκειμένου να κάνουν προβλέψεις βασιζόμενες στα δεδομένα ή να εξάγουν αποφάσεις που εκφράζονται ως το αποτέλεσμα.
Παραδείγματα εφαρμογών αποτελούν τα φίλτρα spam (spam filtering), η οπτική αναγνώριση χαρακτήρων (OCR), οι μηχανές αναζήτησης και η υπολογιστική όραση.
Αρχιτεκτονική νευρωνικού δικτύου
Κάθε νευρώνας σε ένα τεχνητό νευρωνικό δίκτυο αθροίζει τις πολλαπλές εισόδους του και εφαρμόζει μια συνάρτηση για τον προσδιορισμό της εξόδου του. Αυτή η αρχιτεκτονική είναι εμπνευσμένη από αυτό που συμβαίνει στον εγκέφαλο μας, όπου οι νευρώνες μεταδίδουν σήματα μεταξύ τους μέσω συνάψεων.
Εδώ είναι η δομή ενός υποθετικού βαθύ νευρωνικού δικτύου (“βαθύ” επειδή περιέχει πολλαπλά κρυμμένα επίπεδα). Αυτό το παράδειγμα δείχνει ένα δίκτυο που διαβάζει και ερμηνεύει μία εικόνα που περιέχει ένα χειρόγραφο νούμερο και το κατατάσσει ως έναν από τους 10 πιο πιθανούς αριθμούς.
Το στρώμα εισόδου περιέχει πολλούς νευρώνες, καθένας από τους οποίους έχει ενεργοποιημένη μία τιμή γκρι κλίμακας ενός εικονοστοιχείου επάνω στην εικόνα. Αυτοί οι νευρώνες εισόδου συνδέονται με τους νευρώνες του επόμενου στρώματος, μεταδίδοντας το επίπεδο ενεργοποίησής τους αφού πολλαπλασιαστούν με μια ορισμένη τιμή, που ονομάζεται weight (βάρος). Κάθε νευρώνας στο δεύτερο στρώμα αθροίζει τις πολλές εισόδους του και εφαρμόζει μια συνάρτηση για να προσδιορίσει την έξοδό του, η οποία τροφοδοτείται προς τα εμπρός με τον ίδιο τρόπο.
Βαθιά Μάθηση
Η Βαθιά Μάθηση (Deep Learning) είναι μία τεχνική μηχανικής μάθησης (υπάρχουν πολλές τεχνικές που απαρτίζουν την μηχανική μάθηση) στην οποία αρκετά «επίπεδα» απλών μονάδων επεξεργασίας συνδέονται σε ένα δίκτυο, το ένα πίσω από το άλλο, με αποτέλεσμα η είσοδος στο σύστημα να διέρχεται διαδοχικά μέσα από κάθε ένα από αυτά.
Η συγκεκριμένη αρχιτεκτονική επινοήθηκε με πρότυπο την επεξεργασία των οπτικών πληροφοριών στον εγκέφαλο, δηλ. των πληροφοριών που εισέρχονται μέσω των ματιών και συλλαμβάνονται από τον αμφιβληστροειδή χιτώνα, προχωρούν μέσα στο οπτικό νεύρο και φτάνουν στον εγκέφαλο.
Αυτό το βάθος επιτρέπει στο δίκτυο να μαθαίνει πιο σύνθετες δομές, χωρίς να απαιτούνται μεγάλες, μη ρεαλιστικές, ποσότητες δεδομένων.
Εκπαίδευση
Αυτό το είδος νευρωνικού δικτύου εκπαιδεύεται υπολογίζοντας τη διαφορά μεταξύ της πραγματικής εξόδου και της επιθυμητής εξόδου (όταν φυσικά γνωρίζουμε εκ των προτέρων το σωστό αποτέλεσμα).
Το πρόβλημα μαθηματικής βελτιστοποίησης έχει τόσες διαστάσεις όσες και οι ρυθμιζόμενες παράμετροι στο δίκτυο, κυρίως τα βάρη των συνδέσεων μεταξύ των νευρώνων, τα οποία μπορεί να είναι θετικά [μπλε γραμμές] ή αρνητικά [κόκκινες γραμμές].
Η εκπαίδευση του δικτύου ουσιαστικά βρίσκει ένα ελάχιστο αυτής της πολυδιάστατης λειτουργίας “απώλειας” (loss) ή “κόστους” (cost). Αυτό γίνεται επαναλαμβανόμενα σε πολλές εκπαιδευτικές διαδρομές, αλλάζοντας σταδιακά την κατάσταση του δικτύου.
Στην πράξη, αυτό συνεπάγεται πολλές μικρές προσαρμογές στα βάρη του δικτύου με βάση τις εξόδους που υπολογίζονται για ένα τυχαίο σύνολο παραδειγμάτων εισόδου, κάθε φορά ξεκινώντας με τα βάρη που ελέγχουν το επίπεδο εξόδου και κινούμενα προς τα πίσω μέσω του δικτύου. (Μόνο οι συνδέσεις σε έναν μόνο νευρώνα σε κάθε στρώμα εμφανίζονται εδώ, για λόγους απλότητας.)
Αυτή η διαδικασία αναπαραγωγής επαναλαμβάνεται σε πολλά τυχαία παραδείγματα προπόνησης έως ότου ελαχιστοποιηθεί η συνάρτηση απώλειας και το δίκτυο παρέχει στη συνέχεια τα καλύτερα αποτελέσματα που μπορεί, για οποιοδήποτε νέα εισαγωγή.
Το καταλαβαίνουμε ότι ίσως να έχετε μπερδευτεί λίγο, γιαυτό ας δούμε λίγο πιο επεξηγηματικά το παραπάνω παράδειγμα. Εκπαιδεύουμε το υπολογιστή να μάθει να ξεχωρίζει το αριθμό 3 το οποίο είναι άτσαλα γραμμένο με το χέρι.
ΒΗΜΑ 1
Όταν παρουσιάζεται ένα χειρόγραφο “3” στην είσοδο, οι νευρώνες εξόδου ενός μη εκπαιδευμένου δικτύου θα έχουν τυχαίες ενεργοποιήσεις. Η επιθυμία είναι ο νευρώνας εξόδου που σχετίζεται με το 3 να έχει υψηλή ενεργοποίηση [σκοτεινή σκίαση] και οι άλλοι νευρώνες εξόδου να έχουν χαμηλές ενεργοποιήσεις [ελαφριά σκίαση]. Έτσι, η ενεργοποίηση του νευρώνα που σχετίζεται με το 3, για παράδειγμα, πρέπει να αυξηθεί [μοβ βέλος]. |
ΒΗΜΑ 2
Για να γίνει αυτό, τα βάρη των συνδέσεων από τους νευρώνες του δεύτερου κρυφού στρώματος προς την έξοδο για το ψηφίο “3” πρέπει να γίνουν πιο θετικά [μαύρα βέλη], με το μέγεθος της αλλαγής να είναι ανάλογο με την ενεργοποίηση του συνδεδεμένου νευρώνα. |
ΒΗΜΑ 3
Μια παρόμοια διαδικασία πραγματοποιείται στη συνέχεια για τους νευρώνες στο πρώτο κρυφό στρώμα (θυμηθείτε ότι εκπαιδεύουμε τις βαθμίδες προς τα πίσω).
Για παράδειγμα, για να γίνει το δίκτυο πιο ακριβές, ο ανώτερος νευρώνας σε αυτό το επίπεδο μπορεί να χρειαστεί να μειωθεί η ενεργοποίησή του [πράσινο βέλος]. Το δίκτυο μπορεί να ωθηθεί προς αυτή την κατεύθυνση, προσαρμόζοντας τα βάρη των συνδέσεών του με το πρώτο κρυφό στρώμα [μαύρα βέλη]. |
ΒΗΜΑ 4
Στη συνέχεια, η διαδικασία επαναλαμβάνεται για το κρυφό στρώμα μετά την είσοδο. Για παράδειγμα, ο πρώτος νευρώνας σε αυτό το στρώμα μπορεί να χρειαστεί να έχει αυξημένη ενεργοποίηση [πορτοκαλί βέλος]. |
Ρυθμίζοντας με αυτό το τρόπο τα βάρη των νευρώνων ουσιαστικά διαμορφώνουμε τον αλγόριθμο αναγνώρισης του αριθμού 3 και εκπαιδεύουμε τον υπολογιστή να μπορεί να αναγνωρίσει οποιοδήποτε άλλο 3 του δοθεί αργότερα.