Νευρωνικό δίκτυο

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

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

Επισκόπηση

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

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

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

Α κ τ ι ν ω τ ι κ ό τ η τ α ( W ( e i g h t s ) ∗ X + b ( i a s ) ) {\displaystyle Activation(W(eights)*X+b(ias))} {\displaystyle Activation(W(eights)*X+b(ias))}

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

Παράδειγμα

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

function isAlive(pulse, breathing) { if(pulse || breathing) { return true; } else { return false; } }

Ένα πολύ απλό νευρωνικό δίκτυο, αποτελούμενο από έναν μόνο νευρώνα που λύνει το ίδιο πρόβλημα, θα μοιάζει ως εξής:

Single neuron which takes the values of pulse (true/false) and breathing (true/false), and outputs value of alive (true/false).

Οι τιμές των σφυγμών, της αναπνοής και της ζωής θα είναι είτε 0 είτε 1, αντιπροσωπεύοντας το ψευδές και το αληθές. Έτσι, εάν σε αυτόν τον νευρώνα δοθούν οι τιμές (0,1), (1,0) ή (1,1), θα πρέπει να βγάλει 1, ενώ εάν του δοθεί (0,0), θα πρέπει να βγάλει 0. Ο νευρώνας το κάνει αυτό εφαρμόζοντας μια απλή μαθηματική πράξη στην είσοδο - προσθέτει όλες τις τιμές που του έχουν δοθεί και στη συνέχεια προσθέτει τη δική του κρυφή τιμή, η οποία ονομάζεται "προκατάληψη". Στην αρχή, αυτή η κρυφή τιμή είναι τυχαία και την προσαρμόζουμε με την πάροδο του χρόνου, αν ο νευρώνας δεν μας δίνει την επιθυμητή έξοδο.

Αν προσθέσουμε τιμές όπως (1,1) μαζί, μπορεί να καταλήξουμε σε αριθμούς μεγαλύτερους από 1, αλλά θέλουμε η έξοδός μας να είναι μεταξύ 0 και 1! Για να το λύσουμε αυτό, μπορούμε να εφαρμόσουμε μια συνάρτηση που περιορίζει την πραγματική μας έξοδο στο 0 ή στο 1, ακόμη και αν το αποτέλεσμα των μαθηματικών του νευρώνα δεν ήταν εντός του εύρους. Σε πιο περίπλοκα νευρωνικά δίκτυα, εφαρμόζουμε μια συνάρτηση (όπως η σιγμοειδής) στον νευρώνα, έτσι ώστε η τιμή του να είναι μεταξύ 0 ή 1 (όπως 0,66), και στη συνέχεια μεταβιβάζουμε αυτή την τιμή στον επόμενο νευρώνα μέχρι να χρειαστούμε την έξοδό μας.

Μέθοδοι εκμάθησης

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

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

Ερωτήσεις και απαντήσεις

Ε: Τι είναι το νευρωνικό δίκτυο;


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

Ερ: Πώς συγκρίνεται ένα νευρωνικό δίκτυο με τους βιολογικούς εγκεφάλους;


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

Ερ: Ποιο είδος προγράμματος μπορεί να δημιουργήσει τεχνητά ευφυή προγράμματα;


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

Ερ: Πώς μπορείτε να εκπαιδεύεστε και να βελτιώνεστε με κάθε παράδειγμα προκειμένου να χρησιμοποιήσετε τη βαθιά μάθηση;


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

Ερ: Τι χρειάζεται για να είναι επιτυχής η βαθιά μάθηση;


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

Ερ: Πώς σχετίζεται η μηχανική μάθηση με τη δημιουργία τεχνητά ευφυών προγραμμάτων;



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

AlegsaOnline.com - 2020 / 2023 - License CC3