Α.Τ.ΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ. ΕΡΓΑΣΤΗΡΙΟ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΔΙΚΤΥΩΝ ΑΝΤΑΓΩΝΙΣΤΙΚΗ ΕΚΜΑΘΗΣΗ ΤΑ ΔΙΚΤΥΑ KOHONEN A. ΕΙΣΑΓΩΓΗ Στα προβλήματα που έχουμε αντιμετωπίσει μέχρι τώρα με τα νευρωνικά τα οποία χρησιμοποιήσαμε, υπήρχε μια διαδικασία εκπαίδευσης του δικτύου, κατά την οποία διανύσματα για τα οποία γνωρίζαμε εκ' των προτέρων την κλάση στην οποία ανήκουν χρησιμοποιήθηκαν με τέτοιο τρόπο ώστε το νευρωνικό δίκτυο να μάθει από αυτά τα χαρακτηριστικά της κατηγορίας τους. Όταν αυτό συνέβαινε, τότε το δίκτυο είχε εκπαιδευτεί και ήταν ικανό με ένα ποσοστό σφάλματος να αναγνωρίσει πλέον ένα άγνωστο διάνυσμα (ένα διάνυσμα δηλαδή το οποίο δεν ανήκει σε αυτά της εκπαίδευσης) σε ποια κατηγορία ανήκει. Στον πραγματικό κόσμο όμως της αναγνώρισης προτύπων όπου βρίσκουν εφαρμογή τα νευρωνικά δίκτυα δεν έχουμε πάντα την πολυτέλεια να εκπαιδεύσουμε το δίκτυο μας με πρότυπα για τα οποία γνωρίζουμε την κατηγορία τους. Αυτό συμβαίνει πολύ απλά διότι μπορεί να μην έχουμε αυτά τα διανύσματα ή να μην ξέρουμε ακόμη και το αριθμό των κατηγοριών που πρέπει να τα χωρίσουμε. Στην περίπτωση αυτή τα δίκτυα θα πρέπει να εκπαιδευτούν με τέτοιο τρόπο ώστε να γνωρίσουν τις ομοιότητες και ανομοιότητες των διανυσμάτων ώστε να κτίσουν στη συνέχεια κατηγορίες. B. Τα Δίκτυα Kohonen Το δίκτυο Kohonen Σχήμα 1 - (μονο-επίπεδο) δεν διαφέρει σε σχέση με την αρχιτεκτονική του με άλλα μονο-επίπεδα δίκτυα που είδαμε σε προηγούμενες ενότητες. Τα διανύσματα εισόδου p εισάγονται στο δίκτυο, υπάρχουν οι νευρώνες του επιπέδου καθώς και τα βάρη εισόδου IW όπως και τα biases. Ο κάθε νευρώνας επίσης μας δίνει την δικιά του έξοδο a. Το δίκτυο αυτό όμως έχει κάποιες πολύ βασικές διαφορές σε σχέση με την λειτουργία του. ΑΝΤΑΓΩΝΙΣΤΙΚΑ ΔΙΚΤΥΑ ΤΟ ΔΙΚΤΥΟ KOHONEN σελ. 1 από 5
Ας υποθέσουμε ότι στην είσοδο του παρουσιάζεται ένα διάνυσμα p το οποίο έχει διάσταση R. Υποθέτουμε επίσης ότι το νευρωνικό διαθέτει S νευρώνες στο μοναδικό του επίπεδο. Εφόσον Σχήμα 1:To δίκτυο Kohonen (πηγή matlab tutorial) έχουμε πλήρη σύνδεση μεταξύ των χαρακτηριστικών τιμών των προτύπων και των νευρώνων ο πίνακας των βαρών IW που σχηματίζεται είναι διάστασης S x R. Υπενθυμίζεται το ότι κάθε γραμμή του πίνακα αυτού αντιπροσωπεύει τα βάρη που ξεκινούν από έναν νευρώνα και συναντούν τις χαρακτηριστικές τιμές των προτύπων. Μπορούμε να υποθέσουμε λοιπόν ότι κάθε γραμμή του πίνακα των βαρών είναι από μόνο του ένα διάνυσμα το οποίο έχει διάσταση R όσες δηλαδή και οι χαρακτηριστικές τιμές των προτύπων που εισάγονται. Η είσοδος του προτύπου στο δίκτυο έχει ως αποτέλεσμα να συγκριθούν οι χαρακτηριστικές του τιμές με κάθε γραμμή του πίνακα των βαρών. p 1 W 11 W 12 W 13... W 1R p 2 W 21 W 22 W23... W 2R p 3 W 31 W 32 W 33... W 3R... W 41 W 42 W 43... W 4R p R W 51 W 52 W 53... W 5R............... W S1 W S2 W S3... W SR Σχήμα 2: Το πρότυπο εισόδου συγκρίνεται με τα διανύσματα των βαρών Η σύγκριση γίνεται υπολογίζοντας την (ευκλείδεια) απόσταση τους. Επειδή οι γραμμές του πίνακα είναι όσοι και οι νευρώνες, κάποια γραμμή θα είναι πιο κοντά στο πρότυπο εισόδου (Σχήμα 2). Ο νευρώνας που αντιπροσωπεύει τη γραμμή αυτή ονομάζεται νικητής και έχει έξοδο 1 ενώ όλοι οι υπόλοιποι βγάζουν έξοδο 0. Όταν από το δίκτυο περάσουν πάρα πολλά πρότυπα (τα οποία ΑΝΤΑΓΩΝΙΣΤΙΚΑ ΔΙΚΤΥΑ ΤΟ ΔΙΚΤΥΟ KOHONEN σελ. 2 από 5
ανήκουν σε διαφορετικές ομάδες) οι γραμμές του πίνακα των βαρών αναπροσαρμόζουν τις τιμές τους έτσι ώστε ο κάθε νευρώνας να ενεργοποιείται (νικητής) για διαφορετική ομάδα προτύπων που εισέρχεται (ο κάθε νευρώνας μαθαίνει τα χαρακτηριστικά της ομάδας του και όχι ξεχωριστά πρότυπα). Γ. Εκπαίδευση του δικτύου Όπως είδαμε στην προηγούμενη παράγραφο, στόχο αποτελεί η ρύθμιση των τιμών που έχουν τα βάρη, με τέτοιο τρόπο ώστε ο κάθε νευρώνας του επιπέδου του δικτύου να πλησιάσει μια ομάδα προτύπων. Η εκπαίδευση του δικτύου έχει δύο διαστάσεις: Την αναπροσαρμογή των βαρών και την αναπροσαρμογή των biases. Και οι δύο έχουν ως τελικό στόχο την εκπαίδευση του δικτύου, θεωρητικά όμως καθεμιά εξυπηρετεί διαφορετικό σκοπό. α) Αναπροσαρμογή των βαρών. Από την στιγμή που για κάποιο διάνυσμα εισόδου, μετά την σύγκριση των αποστάσεων με τις γραμμές του πίνακα των βαρών, βρεθεί ο νικητής νευρώνας, αναπροσαρμόζονται μόνο οι δικές του τιμές. Με άλλα λόγια πειράζουμε μόνο την γραμμή από τον πίνακα των βαρών που ανήκει σε αυτόν. Η ρύθμιση συνίσταται στο να κάνουμε τον νικητή νευρώνα να ομοιάζει ακόμα περισσότερο με το διάνυσμα εισόδου. Με αυτόν τον τρόπο υποθέτουμε ότι όταν στην είσοδο του νευρωνικού έρθει ξανά το ίδιο πρότυπο θα ενεργοποιηθεί ο ίδιος νευρώνας νικητής, άρα θα έχει αναγνωρίσει το πρότυπο. Γενικεύοντας μπορούμε να υποθέσουμε ότι όταν παρουσιάζονται στο δίκτυο πρότυπα τα οποία ανήκουν στην ίδια ομάδα, ενεργοποιείται πάντα ο ίδιος νευρώνας από την άποψη ότι: i) Τα πρότυπα αφού ανήκουν στην ίδια κατηγορία βρίσκονται κοντά μεταξύ τους και μακριά από άλλα που ανήκουν σε διαφορετικές ομάδες. ii) Όταν εισάγουμε μεγάλο αριθμό προτύπων ο νικητής νευρώνας ρυθμίζεται με τέτοιο τρόπο ώστε να βρίσκεται όσο το δυνατό κοντά σε όλα τα πρότυπα της ομάδας αυτής. Με άλλα λόγια βρίσκεται κοντά στα χαρακτηριστικά της ομάδας και δεν απομνημονεύει ξεχωριστά διανύσματα. β) Αναπροσαρμογή των bias Τα παραπάνω φαίνονται ιδανικά για την εκπαίδευση που εμείς επιθυμούμε, στην πράξη όμως έχουμε να αντιμετωπίσουμε διάφορα προβλήματα σε σχέση με την αναπροσαρμογή των βαρών. Το κυριότερο είναι το ότι επειδή οι αρχικές τιμές τους είναι τυχαίες, μπορεί κάποιος από τους ΑΝΤΑΓΩΝΙΣΤΙΚΑ ΔΙΚΤΥΑ ΤΟ ΔΙΚΤΥΟ KOHONEN σελ. 3 από 5
νευρώνες να βρίσκεται μακριά από τα πρότυπα οποιασδήποτε κατηγορίας. Με άλλα λόγια δεν θα ικανοποιήσει ποτέ το κριτήριο της μικρότερης απόστασης από κάποιο πρότυπο, άρα δεν θα γίνει ποτέ νικητής (νεκρός νευρώνας) και τα βάρη του δεν θα ρυθμιστούν ώστε να αλλάξει αυτή η κατάσταση. Το πρόβλημα αυτό αντιμετωπίζεται με την ρύθμιση των bias. Το δίκτυο κατά κάποιο τρόπο τηρεί στατιστικά στοιχεία σε σχέση με την ενεργοποίηση των νευρώνων του παρακολουθώντας τις εξόδους τους (1 για το νικητή, 0 για τα υπόλοιπα). Στην περίπτωση που αντιληφθεί ότι κάποιος από τους νευρώνες παραμένει ανενεργός για μεγάλο διάστημα ή δεν ενεργοποιείται ποτέ δρα ως εξής: Την επόμενη φορά που θα υπολογιστεί η απόστασή του από κάποιο διάνυσμα εισόδου του αφαιρεί από αυτήν μια τιμή ίση με το συντελεστή bias (τυχαία τιμή). Ουσιαστικά τον πριμοδοτεί έτσι ώστε να γίνει νικητής και να αναπροσαρμόσει τα βάρη του ώστε να μοιάζει με κάποιο από τα διανύσματα της εισόδου. Τα πλεονεκτήματα της μεθόδου αυτής είναι: i) Ενεργοποιούνται οι όλοι οι νευρώνες ώστε να πιάσουν μια κατηγορία προτύπων. ii) Αν έχουμε μια ομάδα που αποτελείται από πολλά πρότυπα τα οποία μπορεί να σχηματίζουν και απομακρυσμένες υποομάδες αφιερώνονται δύο ή και περισσότεροι νευρώνες ώστε να αποτυπώσουν καλύτερα τα χαρακτηριστικά της ομάδας αυτής. Δ. Υλοποίηση με το σετ δεδομένων fsheriris Το σετ δεδομένων του fsher ως γνωστό μας δίνει το πίνακα meas ο οποίος έχει τις μετρήσεις των λουλουδιών της ίριδας καθώς και το πίνακα species ο οποίος μας δίνει την ταυτότητα του κάθε προτύπου σε ποια κατηγορία δηλαδή ανήκει. Στο συγκεκριμένο πρόβλημα που έχουμε να αντιμετωπίσουμε ο δεύτερος πίνακας μας χρειάζεται μόνο για να αξιολογήσουμε τα αποτελέσματα του δικτύου kohonen και δεν διεκδικεί κανένα ρόλο στην εκπαίδευση του δικτύου. i. Κατασκευή του Kohonen Η συνάρτηση newc( ) Μπορούμε να κατασκευάσουμε ένα δίκτυο Kohonen χρησιμοποιώντας τη συνάρτηση net=newc(pr,k). Η παράμετρος pr είναι ένας πίνακας ο οποίος έχει τα ελάχιστα και μέγιστα ανά χαρακτηριστική τιμή για τα διανύσματα εισόδου (ο υπολογισμός τους γίνεται εύκολα με τη συνάρτηση minmax( )), k είναι ο αριθμός των νευρώνων που έχουμε στο επίπεδο του δικτύου. ii. Εκπαίδευση του Kohonen Η συνάρτηση train( ) Προκειμένου του δίκτυο να μάθει από τα διανύσματα εισόδου εκπαιδεύουμε το δίκτυο ΑΝΤΑΓΩΝΙΣΤΙΚΑ ΔΙΚΤΥΑ ΤΟ ΔΙΚΤΥΟ KOHONEN σελ. 4 από 5
εισάγοντας τα διανύσματα του ανεστραμμένου πίνακα meas: tmeas=transpose(meas); net=train(net,tmeas); Το δίκτυο μετά από αυτές τις εντολές θεωρητικά έχει εκπαιδευτεί και μπορούμε να προχωρήσουμε σε δοκιμή της απόδοσή του. iii. Δοκιμή του δικτύου. - Η συνάρτηση sim( ) Προκειμένου να δοκιμάσουμε την απόδοση που έχει το δίκτυο μας περνάμε ξανά τα διανύσματα του ανεστραμμένου meas: a=sim(net,tmeas); Τα αποτελέσματα αυτής της συνάρτησης θα είναι η κατηγοριοποίηση τω προτύπων της εισόδου. Επειδή όμως η εμφάνιση των αποτελεσμάτων δεν μας βοηθά πολύ σε σχέση με την επεξεργασία τους τα μορφοποιούμε με την ακόλουθη συνάρτηση: ac=vec2ind(a); Στο σημείο αυτό πρέπει να σημειώσουμε το ότι δεν αποτελεί ορθή τακτική να δοκιμάζουμε την απόδοση ενός δικτύου με διανύσματα που πρωτύτερα το είχαμε εκπαιδεύσει. Κανονικά θα πρέπει να ακολουθήσουμε το κανόνα του 80 20 % (δηλ. Εκπαίδευση με το 80% των δειγμάτων και έλεγχος με το υπόλοιπο 20%) ΑΝΤΑΓΩΝΙΣΤΙΚΑ ΔΙΚΤΥΑ ΤΟ ΔΙΚΤΥΟ KOHONEN σελ. 5 από 5