Ανταγωνιστική Εκμάθηση Δίκτυα Kohonen Κυριακίδης Ιωάννης 2013
Εισαγωγή Στα προβλήματα που έχουμε αντιμετωπίσει μέχρι τώρα, υπήρχε μια διαδικασία εκπαίδευσης του δικτύου, κατά την οποία είχαμε διανύσματα για τα οποία γνωρίζαμε εκ' των προτέρων την κλάση στην οποία ανήκουν (εκπαίδευση με επίβλεψη). Χρησιμοποιήθηκαν με τέτοιο τρόπο αυτά τα διανύσματα ώστε το νευρωνικό δίκτυο να μάθει από αυτά τα χαρακτηριστικά της κατηγορίας τους.
Ανταγωνιστική Εκπαίδευση Στην πραγματικότητα δεν έχουμε πάντα την πολυτέλεια να εκπαιδεύσουμε το δίκτυο μας με πρότυπα για τα οποία γνωρίζουμε εξαρχής την κατηγορία τους. Αυτό συμβαίνει πολύ απλά διότι μπορεί: Να μην έχουμε αυτά τα διανύσματα Να μην ξέρουμε ακόμη και το αριθμό των κατηγοριών που πρέπει να τα χωρίσουμε. Στην περίπτωση αυτή τα δίκτυα θα πρέπει να εκπαιδευτούν με τέτοιο τρόπο ώστε να γνωρίσουν τις ομοιότητες και ανομοιότητες των διανυσμάτων ώστε να κτίσουν στη συνέχεια τις κατηγορίες (εκπαίδευση χωρίς επίβλεψη).
Δίκτυα Kohonen Αποτελούνται από ένα επίπεδο. Έχουμε πλήρη σύνδεση. Το δίκτυο αυτό έχει κάποιες βασικές διαφορές στη λειτουργία του σε σχέση με τα επίπεδα ενός επιπέδου που έχουμε ήδη μελετήσει: Χρησιμοποιεί την ανταγωνιστική συνάρτηση μεταφοράς (C) Υπολογίζει αποστάσεις (ευκλείδεια) για την σύγκριση των χαρακτηριστικών τιμών του κάθε προτύπου με τα βάρη.
Δίκτυα Kohonen (βάρη) Ας υποθέσουμε ότι στην είσοδο του δικτύου παρουσιάζεται ένα διάνυσμα p το οποίο έχει διάσταση R Επίσης υποθέτουμε ότι το νευρωνικό δίκτυο διαθέτει S νευρώνες στο μοναδικό του επίπεδο. Εφόσον έχουμε πλήρη σύνδεση μεταξύ των χαρακτηριστικών τιμών των προτύπων, και των νευρώνων, ο πίνακας των βαρών IW που σχηματίζεται είναι διάστασης S x R.
Δίκτυα Kohonen (βάρη) Κάθε γραμμή του πίνακα αυτού αντιπροσωπεύει τα βάρη που ξεκινούν από έναν νευρώνα και συναντούν τις χαρακτηριστικές τιμές των προτύπων. Μπορούμε να υποθέσουμε λοιπόν ότι κάθε γραμμή του πίνακα των βαρών είναι από μόνο της ένα διάνυσμα το οποίο έχει διάσταση R (όσες δηλαδή και οι χαρακτηριστικές τιμές των προτύπων που εισάγονται).
Δίκτυα Kohonen (βάρη) Η είσοδος ενός προτύπου στο δίκτυο έχει ως αποτέλεσμα να συγκριθούν οι χαρακτηριστικές του τιμές με κάθε γραμμή του πίνακα των βαρών. Η σύγκριση αυτή γίνεται υπολογίζοντας την (ευκλείδεια) απόσταση τους. Ο νευρώνας που αντιπροσωπεύει τη γραμμή αυτή ονομάζεται νικητής και έχει έξοδο 1 ενώ όλοι οι υπόλοιποι βγάζουν έξοδο 0.
Εκπαίδευση δικτύου Kohonen Γενικά για την εκπαίδευση του δικτύου θα χρησιμοποιηθούν πάρα πολλά πρότυπα (τα οποία θα ανήκουν σε διάφορες ομάδες). Η εκπαίδευση του δικτύου αποτελείται από δύο βήματα: Την αναπροσαρμογή των βαρών. Την αναπροσαρμογή των biases. Και οι δύο έχουν ως τελικό στόχο την εκπαίδευση του δικτύου, θεωρητικά όμως κάθε μια εξυπηρετεί διαφορετικό σκοπό.
Αναπροσαρμογή των βαρών Μετά την σύγκριση των αποστάσεων με τις γραμμές του πίνακα των βαρών, θα έχει βρεθεί ο νικητής νευρώνας. Στην συνέχεια θα τροποποιηθούν τα βάρη μόνο της γραμμής που ανήκει το συγκεκριμένο πρότυπο (γραμμή βαρών του νικητή νευρώνα), έτσι ώστε να κάνουμε τον νικητή νευρώνα να μοιάζει ακόμα περισσότερο με το διάνυσμα εισόδου. Με αυτόν τον τρόπο υποθέτουμε ότι όταν στην είσοδο του νευρωνικού έρθει ξανά το ίδιο πρότυπο θα ενεργοποιηθεί ο ίδιος νευρώνας νικητής, άρα θα έχει αναγνωρίσει το πρότυπο.
Αναπροσαρμογή των βαρών Γενικεύοντας, μπορούμε να υποθέσουμε ότι όταν παρουσιάζονται στο δίκτυο πρότυπα τα οποία ανήκουν στην ίδια ομάδα, ενεργοποιείται πάντα ο ίδιος νευρώνας με την λογική ότι: Τα πρότυπα αφού ανήκουν στην ίδια κατηγορία βρίσκονται κοντά μεταξύ τους και μακριά από άλλα που ανήκουν σε διαφορετικές ομάδες. Όταν εισάγουμε μεγάλο αριθμό προτύπων ο νικητής νευρώνας ρυθμίζεται με τέτοιο τρόπο ώστε να βρίσκεται όσο το δυνατό κοντά σε όλα τα πρότυπα της ομάδας αυτής. Με άλλα λόγια βρίσκεται κοντά στα χαρακτηριστικά της ομάδας και δεν απομνημονεύει ξεχωριστά διανύσματα.
Αναπροσαρμογή των bias Υπάρχει περίπτωση κάποιος από τους νευρώνες να βρίσκεται μακριά από τα πρότυπα οποιασδήποτε κατηγορίας. Έτσι, δεν θα ικανοποιήσει ποτέ το κριτήριο της μικρότερης απόστασης από κάποιο πρότυπο Άρα, δεν θα γίνει ποτέ νικητής (νεκρός νευρώνας) και τα βάρη του δεν θα ρυθμιστούν ποτέ ώστε να αλλάξει αυτή η κατάσταση.
Αναπροσαρμογή των bias Στην περίπτωση που αντιληφθεί το δίκτυο ότι κάποιος από τους νευρώνες παραμένει ανενεργός για μεγάλο διάστημα ή δεν ενεργοποιείται ποτέ, τότε θα ρυθμίσει ανάλογα το bias. Την επόμενη φορά που θα υπολογιστεί η απόστασή του, από κάποιο διάνυσμα εισόδου, αφαιρεί από αυτήν την απόσταση μια τιμή ίση με το συντελεστή bias (τυχαία τιμή). Ουσιαστικά τον πριμοδοτεί έτσι ώστε να γίνει νικητής και να αναπροσαρμόσει τα βάρη του ώστε να μοιάζει με κάποιο από τα διανύσματα της εισόδου.
Αναπροσαρμογή των bias Τα πλεονεκτήματα της μεθόδου αυτής είναι: Ενεργοποιούνται οι όλοι οι νευρώνες ώστε να πιάσουν μια κατηγορία προτύπων. Αν έχουμε μια ομάδα που αποτελείται από πολλά πρότυπα τα οποία μπορεί να σχηματίζουν και απομακρυσμένες υπό-ομάδες αφιερώνονται δύο ή και περισσότεροι νευρώνες ώστε να αποτυπώσουν καλύτερα τα χαρακτηριστικά της ομάδας αυτής.
Η συνάρτηση newc Η συνάρτηση newc() δημιουργεί ένα δίκτυο ανταγωνιστικής εκμάθησης απαιτώντας δύο παραμέτρους για να καθορίσει την δομή του δικτύου. Η σύνταξη της συνάρτησης είναι: Όπου: net = newc (F, S) F = Είναι ένας πίνακας 2 στηλών. Σε κάθε γραμμή του πίνακα θα πρέπει να υπάρχει η ελάχιστη και η μέγιστη τιμή για κάθε χαρακτηριστική τιμή του διανύσματος εισόδου. S = Ο αριθμός των νευρώνων.
Παράδειγμα (με σετ δεδομένων fisheriris ) Το σετ δεδομένων του fisher ως γνωστό μας δίνει το πίνακα meas ο οποίος έχει τις μετρήσεις των λουλουδιών της ίριδας καθώς και τον πίνακα species ο οποίος μας δίνει την ταυτότητα του κάθε προτύπου (την κατηγορία δηλαδή που ανήκει). Στο συγκεκριμένο πρόβλημα που έχουμε να αντιμετωπίσουμε ο δεύτερος πίνακας μας χρειάζεται μόνο για να αξιολογήσουμε τα αποτελέσματα του δικτύου kohonen και δεν διεκδικεί κανένα ρόλο στην εκπαίδευση του δικτύου.
Παράδειγμα (με σετ δεδομένων fisheriris )
Παράδειγμα (με σετ δεδομένων fisheriris ) Τα αποτελέσματα της συνάρτησης sim() θα είναι η κατηγοριοποίηση των προτύπων της εισόδου. Επειδή όμως η εμφάνιση των αποτελεσμάτων δεν μας βοηθά πολύ σε σχέση με την επεξεργασία τους τα μορφοποιούμε με την συνάρτηση vec2ind().
Παράδειγμα (με σετ δεδομένων fisheriris )
Παράδειγμα (με σετ δεδομένων fisheriris ) Σημειώσουμε ότι στην προηγούμενη υλοποίηση δεν αποτελεί ορθή τακτική το να δοκιμάζουμε την απόδοση ενός δικτύου με διανύσματα που πρωτύτερα το είχαμε εκπαιδεύσει. Κανονικά θα πρέπει να χωρίσουμε τα δεδομένα σε δύο ομάδες. Το ένα για εκπαίδευση και το άλλο για αξιολόγηση (πχ. Εκπαίδευση με το 80% των δειγμάτων και έλεγχος με το υπόλοιπο 20%).
Απορίες - Ερωτήσεις ;
Ασκήσεις για το σπίτι Οι ασκήσεις είναι ατομικές!!! 1. Συμπιέστε όλα τα αρχεία m-file σε ένα αρχείο με όνομα: lab06_ομx_yyyy (όπου X ο αριθμός ομάδας εργαστηρίου και YYYY το ΑΜ σας) 2. Υποβάλετε το αρχείο στην αντίστοιχη άσκηση στο eclass
Δεν θα έχετε