Α.Τ.Ε.Ι ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΕΡΓΑΣΤΗΡΙΟ ΝΕΥΡΩΝΙΚΩΝ ΔΙΚΤΥΩΝ 1 Ο Νευρώνας Τα τεχνικά νευρωνικά δίκτυα αποτελούν μια προσπάθεια μαθηματικής προσομοίωσης της λειτουργίας του ανθρώπινου εγκεφάλου σε σχέση με τον τρόπο λήψης αποφάσεων. Αποτελούνται λοιπόν από ένα σύνολο νευρώνων (στοιχείων) οι οποίοι συνδέονται μεταξύ τους. Όπως και στα βιολογικά Νευρωνικά Δίκτυα ολόκληρη η λειτουργία του δικτύου καθορίζεται από τις συνδέσεις μεταξύ των νευρώνων (στοιχείων). Το κάθε στοιχείο νευρώνας υλοποιεί μια συνάρτηση μεταφοράς f λαμβάνοντας μια είσοδο και αποδίδοντας μια έξοδο, η οποία ταυτόχρονα μπορεί να είναι είσοδος για κάποιον άλλον νευρώνα. Σχηματικά η λειτουργία του νευρώνα είναι: Διάνυσμα εισόδου x + W*x+bias Συνάρτηση μεταφοράς νευρώνα f f(w*x+bias) bias Σχήμα 1 Η λειτουργία του νευρώνα Ένας νευρώνας λαμβάνει στην γενική περίπτωση ως είσοδο ένα διάνυσμα x. Το κάθε στοιχείο του διανύσματος εισέρχεται σταθμισμένο (πολλαπλασιάζεται με έναν συντελεστή w το οποίο το ονομάζουμε βάρος) και αθροίζεται με τα υπόλοιπα στοιχεία του διανύσματος καθώς και με έναν συντελεστή ο οποίος ονομάζεται bias. Σε ένα νευρωνικό δίκτυο η κάθε σύνδεση μεταξύ νευρώνων καθορίζεται από το βάρος της σύνδεσης w (Σχήμα 2). Ως είσοδος στον νευρώνα λοιπόν εισέρχεται η παράσταση (x1*w1+x2*w2+ +xn*wn+b). Το bias μπορούμε να το θεωρήσουμε ως μια μοναδιαία είσοδο πολλαπλασιαζόμενη με τον συντελεστή b. Στον νευρώνα υλοποιείται η συνάρτηση μεταφοράς f και λαμβάνουμε την τελική έξοδο του. a1 a2 a3 w1 w2 w3 Έξοδος Σχήμα 2 Διανύσματα και βάρη συνδέσεων 1
Ένα νευρωνικό δίκτυο αποτελείται από ένα σύνολο νευρώνων οι οποίοι συνδέονται μεταξύ τους και η ταυτότητα της σύνδεσης καθορίζεται από το βάρος w. Στα πολυεπίπεδα νευρωνικά δίκτυα έχουμε διαφορετικά επίπεδα όπου το καθένα αποτελείται από ένα σύνολο νευρώνων. Η εκπαίδευση ενός νευρωνικού δικτύου συνίσταται στο να ρυθμίσουμε τις συνδέσεις του δικτύου προκειμένου να υλοποιήσουμε μια συγκεκριμένη συνάρτηση και το δίκτυο να μας δώσει ή να πλησιάσει μια επιθυμητή έξοδο. Η ρύθμιση των συνδέσεων γίνεται με την ρύθμιση των βαρών. Στοιχείο της εκπαίδευσης του δικτύου είναι και η ρύθμιση των bias. Θα πρέπει να αναφέρουμε ότι σε ένα νευρωνικό δίκτυο δεν είναι απαραίτητο ο αριθμός των νευρώνων που αποτελούν το κάθε επίπεδο να είναι ο ίδιος. Επίσης δεν είναι απαραίτητο όλοι οι νευρώνες να υλοποιούν την ίδια συνάρτηση μεταφοράς. Στο Σχήμα 3 φαίνεται η διαδικασία εκπαίδευσης ενός δικτύου με την αναπροσαρμογή των συνδέσεων μεταξύ των νευρώνων. Είσοδος x Νευρωνικό Δίκτυο (Νευρώνες, συνδέσεις, βάρη) Έξοδος Σύγκριση Επιθυμητή έξοδος Επαναπροσδιορισμός βαρών και bias Σχήμα 3 Η διαδικασία της εκπαίδευσης του δικτύου 2. Συναρτήσεις Μεταφοράς Όπως είδαμε στην προηγούμενη παράγραφο ο κάθε νευρώνας υλοποιεί μια συνάρτηση f. Ως συνάρτηση μεταφοράς του νευρώνα μπορούμε να χρησιμοποιήσουμε ένα πλήθος από συναρτήσεις, εξαρτάται κάθε φορά από την εφαρμογή που βρίσκει το νευρωνικό δίκτυο. Οι τρεις συναρτήσεις που χρησιμοποιούνται περισσότερο παρουσιάζονται : 2
Η συνάρτηση μεταφοράς Hard Limit περιορίζει την έξοδο του νευρώνα στο 0 στην περίπτωση που η είσοδος στο νευρώνα είναι αρνητική ή στο 1 αν η είσοδος είναι μεγαλύτερη ή ίση με το 0. Η συνάρτηση αυτή χρησιμοποιείται κυρίως στα δίκτυα Perceptrons για εφαρμογές αναγνώρισης προτύπων. Η Συνάρτηση στο Matlab που υλοποιεί την συγκεκριμένη συνάρτηση είναι hardlim(). Παράδειγμα: n=5:0.1:5; plot(n,hardlim(n),'c+:'); α=hardlim(n) Η γραμμική συνάρτηση μεταφοράς υλοποιείται στο Matlab με την συνάρτηση purelin( ). Χρησιμοποιείται κυρίως στα γραμμικά φίλτρα. Παράδειγμα: n=- 5:0.1:5; plot(n,purelin(n), c+ ); α=purelin(n) Η σιγμοειδής συνάρτηση μεταφοράς υλοποιείται στο Matlab με την συνάρτηση logsig( ) και ως αποτέλεσμα έχει να περιορίζει την έξοδό του νευρώνα στο διάστημα (0,+1). Χρησιμοποιείται κυρίως στα δίκτυα back- propagation. Στην πράξη μπορούμε να δούμε την απεικόνιση της σιγμοειδούς συνάρτησης με τις ακόλουθες εντολές στο Matlab: n=- 5:0.1:5; plot(n,logsig(n), c+ ) α=logsig(n) 3
3. Διάνυσμα ως είσοδος στο Νευρώνα Η πρώτη εφαρμογή που θα δούμε είναι το αποτέλεσμα της εισόδου ενός διανύσματος σε έναν νευρώνα που υλοποιεί τη σιγμοειδή συνάρτηση μεταφοράς. Ως γνωστό ένα διάνυσμα είναι ένα σύνολο από αριθμούς οι οποίοι αναπαρίστανται με τη μορφή μονοδιάστατου πίνακα. Καθένας από τους αριθμούς αυτούς ονομάζεται χαρακτηριστική τιμή. Ένα διάνυσμα που αποτελείται από δύο χαρακτηριστικές τιμές είναι η απεικόνιση του διανύσματος στον δισδιάστατο χώρο. Στις τρεις διαστάσεις το διάνυσμα θα περιέχει τρεις χαρακτηριστικές τιμές κ.λ.π. Ας υποθέσουμε ότι έχουμε ένα διάνυσμα p το οποίο έχει διάσταση R και το οποίο θέλουμε να δώσουμε ως είσοδο σε νευρώνα. Σχήμα 4 Είσοδος Διανύσματος σε Νευρώνα Όπως βλέπουμε και από το σχήμα 4 πριν την είσοδο του στον νευρώνα το διάνυσμα πολλαπλασιάζεται σημείο προς σημείο με το διάνυσμα των βαρών. Αυτό σημαίνει ότι η κάθε χαρακτηριστική τιμή του διανύσματος εισόδου p πολλαπλασιάζεται με το κάθε χαρακτηριστικό του διανύσματος των βαρών w. Τα γινόμενα που προκύπτουν αθροίζονται και μαζί αθροίζεται και το bias. Προκύπτει λοιπόν το n το οποίο είναι ένα βαθμωτό διάνυσμα (ένας αριθμός). Το n εισάγεται στον νευρώνα όπου υλοποιεί μια συγκεκριμένη συνάρτηση μεταφοράς και μας δίδει ως αποτέλεσμα το a το οποίο είναι επίσης βαθμωτό διάνυσμα. 4. Υλοποίηση στο Matlab Επιλέγοντας τυχαία διανύσματα εισόδου, βαρών και bias, υλοποιούμε στο matlab όλα όσα αναφέραμε στις παραπάνω παραγράφους προκειμένου να προσομοιάσουμε την λειτουργία ενός νευρώνα. Το matlab μας προσφέρει ένα πλήθος από προγραμματιστικά εργαλεία τα οποία βοηθούν σημαντικά την προσπάθεια μας 4
ΥΛΟΠΟΙΗΣΗ 1η p=[2 4 6 8]; (το τυχαίο διάνυσμα εισόδου) w=[0.1 0.2 0.3 0.4]; (το τυχαίο διάνυσμα βαρών) b=0.5; (το bias) s=0; for i=1:4 f(i)=p(i)*w(i); s=s+f(i) end n=s+b (η έξοδος μετά τον αθροιστή) a=logsig(n) (η τελική έξοδος) ΥΛΟΠΟΙΗΣΗ 2η p=[2 4 6 8]; (το τυχαίο διάνυσμα εισόδου) w=[0.1 0.2 0.3 0.4]; (το τυχαίο διάνυσμα βαρών) b=0.5; (το bias) n=sum(p.*w)+b; a=logsig(n) ΠΑΡΑΤΗΡΗΣΗ : Η είσοδος ενός διανύσματος σε έναν νευρώνα έχει ως αποτέλεσμα την έξοδο ενός βαθμωτού διανύσματος. Αν σε ένα επίπεδο νευρωνικού δικτύου έχουμε α νευρώνες, αυτοί ως ενιαία έξοδο αποδίδουν ένα διάνυσμα διαστάσεως α. ΕΡΓΑΣΙΑ Δημιουργήστε ένα τυχαίο διάνυσμα εισόδου το οποίο θα περιέχει 3 πρότυπα με 4 χαρακτηριστικές τιμές. Δημιουργήστε επίσης έναν τυχαίο πίνακα βαρών και τυχαία bias. Παρουσιάστε τις εξόδους ενός νευρώνα που υλοποιεί την σιγμοειδή συνάρτηση μεταφοράς. Υπενθυμίζουμε ότι στην συγκεκριμένη περίπτωση για κάθε διάνυσμα εισόδου θα έχουμε και από μια έξοδο. 5