12 Οκτ 2016

Μια εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα

poster

Περιεχόμενα


Διαφήμιση

Μια σύντομη εισαγωγή στον κόσμο των Τεχνητών Νευρωνικών Δικτύων και της Τεχνητής Νοημοσύνης και μια σύγκριση αυτών με την λειτουργία του εγκεφάλου μας.

Πως λειτουργεί ο εγκέφαλός μας

Αναμφίβολα ο εγκέφαλος είναι το πιο μυστήριο όργανο του σώματός μας και αυτό που έχουμε δυσκολευτεί περισσότερο να αποκρυπτογραφήσουμε. Παρακάτω, θα δούμε ένα μέρος της λειτουργίας του: το νευρωνικό του δίκτυο.

Ο Νευρώνας

Πριν δούμε το δίκτυο όμως, θα πρέπει να δούμε τα μέρη από τα οποία αποτελείται: τους νευρώνες. Στην από κάτω φωτογραφία μπορείς να δείς έναν από τους περίπου 10.000.000.000 νευρώνες που έχει ο εγκέφαλός μας. Τι είναι το κάθε μέρος αφορά τους βιολόγους, οπότε εδώ δεν θα μπω σε λεπτομέρειες.

1_uDLh5EEn8XeQJEd3cDpLag

Επικοινωνία μεταξύ των νευρώνων

Να σημειώσω ότι υπάρχει ολόκληρη επιστήμη πάνω στα βιολογικά νευρωνικά δίκτυα, την οποία προφανώς δεν κατέχω παρά ελάχιστα, όσο απαιτεί η ενασχόλησή μου με τα τεχνητά νευρωνικά δίκτυα. Παρακάτω προσπαθώ να επεξηγήσω πως λειτουργεί το βιολογικό νευρωνικό δίκτυο όσο πιο απλά γίνεται.

Κάθε νευρώνας συνδέεται με χιλιάδες άλλους νευρώνες και ανταλλάσει μηνύματα με αυτούς μέσω διαφόρων ισχύων συνάψεων. Όσο πιο πολλά μαθαίνουμε οι συνάψεις των συγκεκριμένων νευρώνων που συμμετείχαν στην εκμάθηση ενισχύονται.

Ένας νευρώνας έχει δύο καταστάσεις. Μία κατά την οποία στέλνει έναν παλμό αρκετών Hz, και μία που δεν στέλνει σήμα.

Κάθε νευρώνας έχει αρκετές συνάψεις διαφορετικής ισχύος (βάρη) ως εισόδους και μία έξοδο που εξαρτάται από τις εισόδους.

Η δύναμη της συλλογικότητας

Ένας νευρώνας είναι μια πολύ μικρή υπολογιστική μονάδα, τόσο σε μέγεθος όσο και σε ικανότητα υπολογισμών.

Ωστόσο λόγω του πλήθους των νευρώνων, ο εγκέφαλος είναι σε θέση να κάνει πολύπλοκες εργασίες αφού μπορεί να τις «σπάει» ώστε να επεξεργαστούν από μεμονομένους νευρώνες.

1_CeNtLOMOk1FgwJQoAaUhcQ Καλλιτεχνική αναπαράσταση ενός νευρωνικού δικτύου

Ενώ τα τεχνητά νευρωνικά δίκτυα που θα δούμε παρακάτω σε ταχύτητα μετάδοσης είναι γρηγορότερα από τις συνδέσεις του βιολογικού νευρωνικού δικτύου, η τεχνολογία του σήμερα αδυνατεί να πλησιάσει την παραλληλία με την οποία ο εγκέφαλος διαχειρίζεται τις πληροφορίες.

Παρόλαυτά με πολύ απλούστερα μοντέλα νευρωνικών δικτύων από αυτά του εγκεφάλου, έχουμε κατορθώσει να έχουμε πολύ ενδιαφέροντα αποτελέσματα και όσο η τεχνολογία προοδεύει τόσο θα αυξάνει η ευφυΐα των μοντέλων αυτών.

Γιατί Τεχνητά Νευρωνικά Δίκτυα και όχι απλός προγραμματισμός;

Με τον όρο απλό προγραμματισμό αναφέρομαι στον προστακτικό προγραμματισμό (imperative programming) στον οποίο ανοίκουν οι κλασσικές γλώσσες όπως C, C++, Java κ.ά. και τον δηλωτικό προγραμματισμό (declarative programming) στον οποίο ανοίκουν οι SQL, HTML, CSS κ.ά.

Τα τεχνητά νευρωνικά δίκτυα ανοίκουν στην οικογένεια του συναρτησιακού προγραμματισμού (functional programming).

Τις διαφορές μεταξύ των ειδών προγραμματισμού μπορείς να τις βρείς και να τις κατανοήσεις, δεν θεωρώ ότι είναι κάτι που πρέπει να αναλυθεί εδώ.

Αλλά γιατί είναι τόσο ελκυστικά τα Τεχνητά Νευρωνικά Δίκτυα (από εδώ και στοεξής θα τα λέω ΤΝΔ);

Εξάλειψη του αλγοριθμικού μοντέλου

Με τον απλό προγραμματισμό (περιέγραψα παραπάνω τι εννοώ με αυτό τον όρο) για να επιλύσουμε ένα πρόβλημα ακολουθούμε έναν αλγόριθμο ο οποίος επιλύει το συγκεκριμένο πρόβλημα. Μπορούμε να αλλάξουμε τις μεταβλητές εισόδου και να έχουμε άλλη έξοδο αλλά η λύση είναι η ίδια.

Πρακτικά αυτό σημαίνει ότι με τον απλό προγραμματισμό επιλύουμε προβλήματα που ήδη ξέρουμε πως να επιλύσουμε και απλά εκμεταλλευόμαστε την ταχύτητα των υπολογιστικών συστημάτων για να τα επιλύσουμε ταχύτερα.

Τι θα γινόταν όμως αν τα υπολογιστικά συστήματα μπορούσαν από μόνα τους να επιλύσουν προβλήματα που πολύ πιθανόν ούτε εμείς δεν θα ξέραμε πως;

Δεν προγραμματίζονται να κάνουν κάποια εργασία, αλλά εκπαιδεύονται γι’αυτή.

Δεν προγραμματίζεις εκ των προτέρων ένα ΤΝΔ να κάνει μια συγκεκριμένη εργασία, αλλά βάσει των δειγμάτων που του εισάγεις το εκπαιδεύεις να την κάνει.

Για τον λόγο αυτό η εκπαίδευση ενός ΤΝΔ είναι ιδιαίτερα λεπτός τομέας καθώς αμα του εισάγεις λάθος δείγματα πολλές φορές είναι δύσκολο να βρείς τα λάθη στους υπολογισμούς.

Αναγνώριση Μοτίβων (Pattern Recognition)

Το δυνατό σημείο των ΤΝΔ είναι η δυνατότητα αναγνώρισης μοτίβων.Δεν είναι τυχαίο ότι τα περισσότερα, αν όχι όλα προγράμματα αναγνώρισης φωνής (speech recognition), μετάφρασης, και αναγνώρισης εικόνων είναι εκπαιδευμένα ΤΝΔ.

1_S1BUgOd26Ogt1FaFA2a7fA

Βέβαια θα μπορούσαμε να φτιάξουμε τα παραπάνω προγράμματα και με τον απλό προγραμματισμό αλλά θα ήταν εξαιρετικά χρονοβόρο και ενεργοβόρο.

Ανοχή στα λάθη

Αν για κάποιο λόγο καταρρεύσει μέρος του ΤΝΔ, ναι μεν θα πέσει η απόδοση του ΤΝΔ, αλλά θα μπορέσει να προσαρμοστεί στο λάθος.

Αυτό-οργάνωση

Τα ΤΝΔ μπορούν να οργανώνουν και να παρουσιάζουν την εισαγώμενη πληροφορία κατά την εκπαίδευσή τους.

Παραλληλία υπολογισμών

Ένα ΤΝΔ μπορεί να χρησιμοποιεί ταυτόχρονα νευρώνες αν του το επιτρέπει ο σχεδιασμός και το hardware του, με αποτέλεσμα οι υπολογισμοί να επιταχύνονται.

Τι ΔΕΝ είναι τα ΤΝΔ

Δεν λύνουν τα πάντα

Τα ΤΝΔ λύνουν συγκεκριμένο αριθμό προβλημάτων, κυρίως Ασαφούς Λογικής τα οποία ο απλός προγραμματισμός, αδυνατεί ή δυσκολεύεται να επιλύσει

Δεν λειτουργούν όπως ο εγκέφαλος

Σίγουρα είναι ωραίο να λες ότι ασχολείσαι με ΤΝΔ τα οποία σκέφτονται όπως ο εγκέφαλος. Σε κάνει τον φοβερό επιστήμονα της οικογένειας ή της παρέας αλλά όσο εντυπωσιακά και αν είναι τα ΤΝΔ δεν πλησιάζουν την πολυπλοκότητα και αποτελεσματικότητα του εγκεφάλου ούτε στο ελάχιστο.

Παραμένει εντυπωσιακό το ότι με πολύ εξαπλουστευμένα μοντέλα έχουμε τόσο ακριβή αποτελέσματα, αλλά αυτό συμβαίνει σε συγκεκριμένα προβλήματα και υπό συγκεκριμένες προϋποθέσεις.

Πηγές

Σχόλια