SNNS v4.2
Εγχειρίδιο Χρήσης (εκδ. 1)
Πασχαλούδη Β. Ν. και Μαργαρίτης Κ. Γ.
Εργαστήριο Παράλληλης και Κατανεμημένης Επεξεργασίας
Τμήμα Εφαρμοσμένης Πληροφορικής
Πανεπιστήμιο Μακεδονίας
Εισαγωγή
Το παρόν εγχειρίδιο είναι μια μετάφραση επιλεγμένων κεφαλαίων και παραγράφων του αγγλικού εγχειριδίου του προγράμματος Προσομοίωσης Νευρωνικών Δικτύων SNNS v4.2 (Stuttgart Neural Network Simulator). Ο SNNS εξομοιωτής μπορεί να αποκτηθεί μέσω ανώνυμου ftp από τον host
στον υποκατάλογο
/pub/SNNS
σαν αρχείο
SNNSv4.2.tar.gz
Οι διευθύνσεις των εργαστηρίων είναι:
Στην αρίθμηση των κεφαλαίων και των παραγράφων διατηρήθηκε η ακριβής αρίθμηση των παραγράφων του αγγλικού εγχειριδίου, προκειμένου να εξασφαλιστεί η εύκολη αναζήτηση των εικόνων και πινάκων, που δεν έχουν περιληφθεί στις σημειώσεις που ακολουθούν. Έτσι το πρώτο κεφάλαιο των σημειώσεων αριθμείται σαν ΚΕΦΑΛΑΙΟ 3 και αντιστοιχεί στο CHAPTER 3 του αγγλικού εγχειριδίου. Επίσης, στην παρούσα έκδοση του ελληνικού εγχειριδίου κάποια κεφάλαια δεν έχουν συμπεριληφθεί.
Κεφάλαιο 3
Ορολογία Νευρωνικών Δικτύων
3.1 Δημιουργώντας Τεχνητά Νευρωνικά Δίκτυα
Ένα δίκτυο αποτελείται από κόμβους (units) και συνδέσεις με συγκεκριμένη διεύθυνση και βάρος. Αντίστοιχα με τη διαδικασία διέγερσης σε βιολογικούς νευρώνες, κάθε κόμβος δέχεται μια είσοδο, που υπολογίζεται από τις βεβαρημένες (weighted) εξόδους κόμβων που ανήκουν σε προηγούμενο επίπεδο, οι οποίες έχουν συνδέσεις που οδηγούν σ’ αυτόν τον κόμβο.
Η πραγματική επεξεργασία πληροφορίας μέσα στους κόμβους μοντελοποιείται στον εξομοιωτή SNNS με τη συνάρτηση διέγερσης (activation function) και τη συνάρτηση εξόδου (output function). Η συνάρτηση διέγερσης υπολογίζει πρώτα την είσοδο ενός κόμβου από τις βεβαρημένες τιμές εξόδου προηγούμενων κόμβων. Στη συνέχεια υπολογίζει τη νέα διέγερση απ’ αυτή την είσοδο. Η συνάρτηση εξόδου παίρνει αυτό το αποτέλεσμα για να δημιουργήσει την έξοδο του κόμβου.
3.1.1 Κόμβοι
Όλοι οι κόμβοι έχουν κάποια χαρακτηριστικά:
- αριθμός : για κάθε κόμβο καθορίζει τη σειρά με την οποία οι κόμβοι αποθηκεύονται στον πυρήνα του εξομοιωτή (simulator kernel).
- όνομα : το όνομα δεν πρέπει να έχει κενά ή ειδικούς χαρακτήρες, πρέπει να ξεκινά από γράμμα και να είναι περιγραφικό σχετικά με τη λειτουργία του κόμβου.
- τύπος εισόδου εξόδου (io-type) : ορίζει τη λειτουργία του κόμβου στο δίκτυο. Μπορεί να είναι:
- Εισόδου (input)
- Εξόδου (output)
- Διπλής λειτουργίας (dual)
- Κρυμμένος (hidden)
- Ειδικός (special). Tα βάρη σε τέτοιους κόμβους δεν προσαρμόζονται στον αλγόριθμο εκπαίδευσης
- Ειδικός εισόδου, ειδικός εξόδου, ειδικός κρυμμένος
- διέγερση : η τιμή διέγερσης
- αρχική διέγερση (i_act) : είναι η αρχική τιμή διέγερσης μόλις φορτωθεί το δίκτυο και επανέρχεται με reset του δικτύου.
- έξοδος : η τιμή εξόδου
- μεροληψία (bias) : είναι μια μόνιμη είσοδος εκτός των κόμβων
- κατώφλι (threshold) : τιμή αποκοπής (μέγιστο ή ελάχιστο) κορεσμού
- συνάρτηση διέγερσης ή actFunc: μια νέα διέγερση υπολογίζεται από εξόδους προηγούμενων κόμβων, συνήθως πολλαπλασιασμένων με τα βάρη που συνδέουν αυτούς τους προηγούμενους κόμβους με τον τρέχοντα κόμβο, επίσης από την παλιά διέγερση του κόμβου και την πιθανή μεροληψία της.
- συνάρτηση εξόδου : υπολογίζει την έξοδο κάθε κόμβου από την τρέχουσα διέγερση του κόμβου.
- τύπος λειτουργικότητας ( f-type ή functionality type): ο χρήστης μπορεί να αντιστοιχίσει τέτοια πρωτότυπα σε έναν κόμβο. Μπορούμε να φανταστούμε ένα πρωτότυπο σαν ένα δείκτη σε έναν πρωτότυπο κόμβο όπου ένας αριθμός παραμέτρων έχουν ήδη καθοριστεί.
- θέση: κάθε κόμβος έχει μια συγκεκριμένη θέση
- αριθμός υπο-δικτύου: κάθε κόμβος είναι αντιστοιχισμένος σε ένα υποδίκτυο. Με τη χρήση αυτής της μεταβλητής τα δομημένα δίκτυα μπορούν να παρουσιαστούν πιο καθαρά.
- επίπεδα: οι κόμβοι μπορούν να παρουσιαστούν στις 2 διαστάσεις μέχρι και σε 8 επίπεδα. Υπάρχει δυνατότητα τα επίπεδα να εμφανιστούν επιλεκτικά.
- πάγωμα (frozen): αυτό το flag καθορίζει αν η διέγερση και η έξοδος είναι «παγωμένα». Αυτό σημαίνει ότι αυτές οι τιμές δεν αλλάζουν κατά την εξομοίωση (μέχρι να ακυρωθεί το flag).
3.1.2 Συνδέσεις (Links)
Η κατεύθυνση του βέλους δείχνει την κατεύθυνση της μεταφοράς της διέγερσης. Κάθε σύνδεση έχει ένα βάρος που της αντιστοιχεί. Αν η τιμή του βάρους είναι θετική τότε έχουμε διεγερτική (excitatory), ενώ αν είναι αρνητική, έχουμε ανασταλτική (inhibitory) σύνδεση.
3.2 Τύποι Ενημέρωσης (Update Modes)
Για να υπολογιστούν οι νέες τιμές διέγερσης των κόμβων, ο εξομοιωτής του SNNS πρέπει να τους επισκεφτεί όλους με κάποια σειρά. Αυτή η σειρά καθορίζεται από την κατάσταση ενημέρωσης. Στο SNNS υλοποιούνται πέντε τύποι ενημέρωσης γενικής χρήσης:
- Σύγχρονη: Οι κόμβοι αλλάζουν την διέγερσή τους όλες μαζί μετά από κάθε βήμα. Ο πυρήνας πρώτα υπολογίζει τις νέες διεγέρσεις όλων των κόμβων από τις συναρτήσεις διέγερσής τους με κάποια τυχαία σειρά. Μετά υπολογίζεται η έξοδος.
- Τυχαία μετάθεση : οι κόμβοι υπολογίζουν τη νέα τους διέγερση και τη συνάρτηση εξόδου ακολουθιακά. Η σειρά των κόμβων καθορίζεται τυχαία, αλλά κάθε κόμβος επιλέγεται ακριβώς μια φορά.
- Τυχαία: η σειρά καθορίζεται τυχαία από μια γεννήτρια αριθμών, αλλά ο κάθε κόμβος μπορεί να επιλεγεί είτε πολλές φορές είτε καθόλου.
- Σειριακή: Η σειρά καθορίζεται βάσει του αύξοντος εσωτερικού αριθμού του κόμβου. Αν οι κόμβοι δημιουργούνται με αύξοντες αριθμούς που ξεκινάνε από τους κόμβους εισόδου προς τους κόμβους εξόδου, τότε αυτός είναι ο πιο γρήγορος τρόπος.
- Τοπολογική: Ο πυρήνας ταξινομεί τους κόμβους σύμφωνα με την τοπολογία τους. Η σειρά αντιστοιχεί στη φυσική διάδοση της δραστηριότητας από είσοδο σε έξοδο. Σε καθαρά feed-forward δίκτυα (εμπρός διάδοσης) η διέγερση εισόδου φτάνει στην έξοδο εξαιρετικά γρήγορα μ’ αυτή τη μέθοδο.
Υπάρχουν άλλοι δώδεκα τύποι ενημέρωσης. Ενδεικτικά αναφέρονται οι παρακάτω:
3.3 Εκπαίδευση στα Νευρωνικά Δίκτυα
Κανόνας Hebb : Μια σύνδεση ανάμεσα σε δύο κόμβους ενισχύεται αν και οι δύο κόμβοι είναι ενεργοί την ίδια στιγμή.
Γενική μορφή του κανόνα Hebb:
Δwij = g(aj(t), tj) h(oi(t), wij)
wij βάρος της σύνδεσης από i σε j
aj(t) διέγερση του κόμβου j στο βήμα t
tj κόμβος εκπαίδευσης, ή γενικότερα η επιθυμητή έξοδος του κόμβου j
oi(t) η έξοδος του κόμβου i στο χρόνο t
g(…) συνάρτηση που εξαρτάται από τη διέγερση του κόμβου και τον κόμβο εκπαίδευσης
h(…) συνάρτηση που εξαρτάται από την έξοδο προηγούμενου στοιχείου και το τρέχον βάρος της σύνδεσης
Online/Offline Εκπαίδευση
Στην online εκπαίδευση οι αλλαγές των βαρών Δwij εφαρμόζονται μετά από κάθε παράδειγμα εκπαίδευσης (π.χ. μετά από κάθε forward και backward σάρωση)
Στην offline εκπαίδευση οι αλλαγές βαρών αθροίζονται για όλα τα παραδείγματα στο αρχείο εκπαίδευσης (training file) και το άθροισμα όλων των αλλαγών εφαρμόζεται μετά από έναν πλήρη κύκλο (epoch) μέσω του αρχείου εκπαίδευσης παραδειγμάτων (training pattern file).
Κανόνας Back Propagation
Ο πιο διάσημος αλγόριθμος που δουλεύει έτσι είναι ο backpropagation (πίσω διάδοσης). Στον αλγόριθμο πίσω διάδοσης η online εκπαίδευση είναι αρκετά γρηγορότερη από την εκπαίδευση batch, ειδικά στην περίπτωση μεγάλων συνόλων παραδειγμάτων εκπαίδευσης.
Ο κανόνας διόρθωσης βαρών για τον backpropagation ή αλλιώς Γενικευμένος Delta-rule είναι :
Δwij= η δj oI
δj = f’j(netj)(tj-oj), αν το j είναι κόμβος εξόδου
f’j(netj) Σκ δκ wjk, αν το j είναι κρυμμένος κόμβος
η παράγοντας εκπαίδευσης ήτα
δj λάθος του κόμβου j (διαφορά της πραγματικής εξόδου και της εισόδου εκπαίδευσης
tj είσοδος εκπαίδευσης στη j
oi έξοδος του προηγούμενου κόμβου i
i προηγούμενος κόμβος
j τρέχων κόμβος
k επόμενος κόμβος
Το SNNS παρέχει αρκετούς αλγορίθμους πίσω διάδοσης: Αυτός που μόλις περιγράφηκε υλοποιείται στο SNNS σαν συνάρτηση εκπαίδευσης με όνομα Vanilla BP ή Std_Backprop. Υπάρχει και ο BackPropMomentum που χρησιμοποιεί έναν όρο momentum για την εξάλειψη επίπεδων σημείων (flat spot elimination), καθώς και μια batch έκδοση, που ονομάζεται BackpropBatch.
3.4 Γενίκευση των ΝΔ
Το μεγάλο πλεονέκτημα των ΝΔ είναι η ικανότητα γενίκευσης που έχουν. Ένα, δηλαδή, εκπαιδευμένο δίκτυο μπορεί να κατηγοριοποιήσει δεδομένα παρόμοια με τα δεδομένα εκπαίδευσης, χωρίς να τα έχει δει ποτέ πριν.
Σε πραγματικές εφαρμογές υπάρχει μόνο ένα μικρό μέρος όλων των δυνατών παραδειγμάτων για τη γέννηση ενός ΝΔ. Για την καλύτερη γενίκευση το σύνολο δεδομένων μπορεί να χωριστεί σε 3 μέρη:
- στο σύνολο εκπαίδευσης (training set), που χρησιμοποιείται για την εκπαίδευση του ΝΔ. Το λάθος αυτού του συνόλου παραδειγμάτων ελαχιστοποιείται κατά τη διάρκεια της εκπαίδευσης.
- το σύνολο δεδομένων για την επικύρωση (validation set). Χρησιμοποιείται για να καθορίσει την απόδοση του ΝΔ σε παραδείγματα που δεν έχουν χρησιμοποιηθεί στη διάρκεια της εκπαίδευσης.
- Το σύνολο ελέγχου (test set) για τον τελικό έλεγχο ολόκληρης της απόδοσης (performance) του ΝΔ.
3.5 Παράδειγμα ΝΔ
Η παράγραφος περιγράφει ένα απλό παράδειγμα δικτύου, το οποίο είναι έτοιμο για χρήση στον εξομοιωτή SNNS: έναν ταξινομητή για κεφαλαία αγγλικά γράμματα, που παρουσιάζονται σαν είσοδος στο δίκτυο σε έναν πίνακα 5x7.
Τα αρχεία που χρησιμοποιούνται είναι:
Network-files: letters_untrained.net, letters.net (trained)
Pattern-file: letters.pat
Το δίκτυο είναι ένα πρόσθιας διάδοσης δίκτυο με 3 επίπεδα κόμβων, που μπορεί να αναγνωρίσει κεφαλαία αγγλικά γράμματα. Η είσοδος είναι ένας 5x7 πίνακας, σε κάθε pixel του οποίου εκχωρείται ένας κόμβος. Η έξοδος του δικτύου αποτελείται από ακριβώς έναν κόμβο για κάθε γράμμα.
Οι συναρτήσεις διέγερσης και εξόδου, που χρησιμοποιούνται εξ’ ορισμού είναι:
- Συνάρτηση διέγερσης: Act_logistic
- Συνάρτηση εξόδου: Out_identity
Το δίκτυο έχει 1 επίπεδο εισόδου (5x7 κόμβοι), ένα κρυμμένο επίπεδο (10 κόμβοι) και ένα επίπεδο εξόδου (26 κόμβοι). Το σύνολο των (35 x 10 + 10 x 26) = 610 συνδέσεων συνιστούν τη μνήμη του ταξινομητή.
Κεφάλαιο 4
Χρησιμοποιώντας το Graphical User Interface
4.1 Βασική χρήση του SNNS
Πριν από τη χρήση πρέπει να γίνουν οι εξής ενέργειες:
- Αντιγραφή του SNNSv4.2/default.cfg στον προσωπικό κατάλογο του χρήστη
- Αντιγραφή του SNNSv4.2/help.hdoc στον προσωπικό κατάλογο του χρήστη
- Θέση της μεταβλητής περιβάλλοντος XGUILOADPATH σ’ αυτόν τον ίδιο κατάλογο, ως εξής:
Setenv XGUILOADPATH your_dir_path
ή να προστεθεί η γραμμή στο .login αρχείο του χρήστη
4.1.1 Ο πίνακας Διαχείρισης του SNNS (SNNS Manager Panel)
FILE χειρισμός αρχείων
CONTROL έλεγχος εκπαίδευσης και λειτουργίας
INFO πληροφορίες για μεμονωμένους κόμβους ή βάρη
DISPLAY διάγραμμα δικτύου
GRAPH διάγραμμα λάθους
BIGNET ορισμός δικτύου
4.1.2. Διαβάζοντας και γράφοντας αρχεία
Οι τύποι των αρχείων είναι οι εξής:
4.1.3 Δημιουργώντας καινούρια δίκτυα
Παράδειγμα δημιουργίας ενός feed-forward δικτύου.
BIGNET GENERAL
Το παράθυρο που εμφανίζεται χωρίζεται σε δύο μέρη:
- Στο πάνω μέρος πραγματοποιείται ο ορισμός της τοπολογίας δικτύου, δηλαδή πόσοι κόμβοι απαιτούνται σε κάθε επίπεδο και πώς θα εμφανίζονται αν το δίκτυο παρουσιαστεί στην οθόνη.
- Το κάτω μέρος επιτρέπει την πλήρη σύνδεση των επιπέδων και τη δημιουργία του δικτύου.
Στο πάνω μέρος ορίζονται οι κόμβοι που θα αποτελούν το κάθε επίπεδο (τοποθετημένες σε ένα σύστημα συντεταγμένων xyz), ο τύπος του επιπέδου στο οποίο ανήκουν (εισόδου, κρυμμένο ή εξόδου – ορίζεται από το TYPE) καθώς και η σχετική θέση του κάθε επιπέδου με το προηγούμενό του (κάτω, δεξιά ή αριστερά – ορίζεται από το POS)
Δεν υπάρχει σχετική θέση για το πρώτο επίπεδο. Ένα επίπεδο θα τοποθετηθεί για παράδειγμα κάτω από το προηγούμενό του, αν η σχετική θέση αλλάξει σε below, απ’ το πεδίο POS.
Μετά τον καθορισμό των κόμβων στα επίπεδα, πιέζεται το πλήκτρο FULL CONNECTION, για τον καθορισμό πλήρους σύνδεσης μεταξύ των κόμβων και τέλος το CREATE NET, για τη δημιουργία του δικτύου.
Αν το DISPLAY είναι ήδη πατημένο, φαίνεται το καινούριο δίκτυο στο παράθυρο DISPLAY.
Για να φανούν οι συνδέσεις πρέπει από το SETUP του παραθύρου DISPLAY να επιλεγεί links ON.
Υπάρχει και ένας εναλλακτικός τρόπος δημιουργίας δικτύου μέσω ενός γραφικού editor, ενσωματωμένου στο SNNS. Ο editor χρησιμοποιείται είτε για αλλαγές σε ένα μεγάλο δίκτυο ή για τη δημιουργία ενός μικρού.
4.1.4. Εκπαίδευση Δικτύων
Ολόκληρη η εκπαίδευση και ο έλεγχος του δικτύου γίνεται μέσα από τον πίνακα Ελέγχου, που καλείται με πάτημα του πλήκτρου CONTROL στο Manager Panel.
Το πάνω μέρος του πίνακα ελέγχει παραμέτρους για τη διαδικασία εκπαίδευσης. Στο κάτω μέρος υπάρχουν κενά πεδία που πρέπει να συμπληρωθούν για να ορίσουν το ρυθμό εκπαίδευσης (learning rate) και το εύρος των βαρών, τα οποία θα κατανεμηθούν τυχαία (προκαθορισμένες τιμές: learn.rate : 0.2 – 0.0, weight: 1.0 -1.0).
4.1.4.1. Αρχικοποίηση
Πολλά δίκτυα πρέπει να αρχικοποιηθούν πριν τη χρήση τους. Αυτό γίνεται με το πλήκτρο INIT. Το εύρος των τυχαίων αριθμών που χρησιμοποιούνται στην αρχικοποίηση μπορεί να αλλάξει, αν αλλαχθούν οι τιμές των πεδίων δεξιά της λέξης INIT, στο κάτω μέρος του παραθύρου.
4.1.4.2. Επιλέγοντας Συνάρτηση Εκπαίδευσης (learning function)
Το πλήκτρο SEL FUNC στη σειρά των παραμέτρων εκπαίδευσης δίνει τη δυνατότητα επιλογής συνάρτησης εκπαίδευσης. Οι πιο συνηθισμένες είναι:
Η εκπαίδευση γίνεται για τον αριθμό “CYCLES” ή epochs (π.χ. 200), που εισάγεται στο αντίστοιχο πεδίο.
Το SHUFFLE χρησιμοποιείται για να γίνει τυχαία επιλογή των παραδειγμάτων.
Το GRAPH για να παρουσιαστεί η διαδικασία εκπαίδευσης.
Τα ALL και STOP για να ξεκινήσει και να σταματήσει η εκπαίδευση.
Το γράφημα στο παράθυρο GRAPH ξεκινάει πάντα από αριστερά, κάθε φορά που το ΝΔ αρχικοποιείται. Έτσι μπορεί κανείς να συγκρίνει διαφορετικές παραμέτρους εκπαίδευσης.
Η απόδοση του Νευρωνικού Δικτύου δεν είναι δυνατό να κριθεί μόνο από τα δεδομένα εκπαίδευσης. Είναι καλό να φορτωθεί ένα σύνολο παραδειγμάτων ελέγχου (test set), για να επιβεβαιωθεί ότι το δίκτυο δεν είναι υπερ-εκπαιδευμένο (over-trained) και γενικεύει σωστά. Για το παράδειγμα letters, που έχει αναφερθεί, δεν υπάρχει test set.
Τα data sets που μπορεί να είναι ενεργά κάθε στιγμή είναι μέχρι 5.
Τα δύο πλήκτρα USE επιτρέπουν την επιλογή των συνόλων παραδειγμάτων που θα χρησιμοποιηθούν για την εκπαίδευση και την επικύρωση.
Αν εισαχθεί αριθμός Ν στο πεδίο δίπλα στη λέξη VALID, θα ελέγχεται ένα σύνολο παραδειγμάτων για την επικύρωση και η ρίζα του μέσου τετραγωνικού σφάλματος (RMS) θα παρουσιάζεται στο παράθυρο γραφήματος με κόκκινο κάθε Ν κύκλους.
Μπορεί κανείς να περάσει μέσα απ’ όλα τα παραδείγματα σε ένα σύνολο παραδειγμάτων και, χωρίς ν’ αλλάξει τα βάρη, να υπολογίσει τις διεγέρσεις εξόδου. Για να περάσει κανείς μέσα απ’ τα παραδείγματα πατάει το TEST. Μπορεί επίσης να πάει σε οποιοδήποτε παράδειγμα του συνόλου, είτε καθορίζοντας τον αριθμό του στο πεδίο PATTERN και πατώντας μετά GOTO, είτε με τα πλήκτρα μετακίνησης. Οι έξοδοι που δίνονται από το Νευρωνικό Δίκτυο, καθώς περνάει μέσα απ΄ τα data είναι οι στόχοι και όχι οι υπολογισμένες έξοδοι.
4.1.5. Σώζοντας αποτελέσματα για έλεγχο.
Οι μετρήσεις της απόδοσης του δικτύου εξαρτώνται απ΄ το πρόβλημα. Αν το δίκτυο έχει να επιτελέσει μια διεργασία ταξινόμησης είναι καλό να υπολογίζεται το λάθος σαν ποσοστό σωστής ταξινόμησης.
Αν το νευρωνικό έχει να «ταιριάξει» με μια ομαλή συνάρτηση, μπορεί να είναι πιο λογικό να υπολογιστεί το RMS λάθος πάνω σε όλους τους κόμβους εξόδου.
Ο πιο λογικός τρόπος να προχωρήσει κανείς είναι να σώσει τις διεγέρσεις εξόδου μαζί με τις τιμές-στόχους για τα δεδομένα ελέγχου και να γράψει ένα μικρό πρόγραμμα που να κάνει ό,τι έλεγχο χρειάζεται. Τα αρχεία RES είναι εισιτήριο : τα παραδείγματα εξόδου πάντα σώζονται. Σημειώστε ότι ‘να συμπεριληφθούν παραδείγματα εξόδου’ σημαίνει στην πραγματικότητα ‘να συμπεριληφθούν παραδείγματα-στόχοι’.
4.1.6.
Το πλήκτρο WEIGHTS από το Manager panel εμφανίζει το διάγραμμα των βαρών.
4.1.7. Μορφές αρχείων στο SNNS
4.1.7.1. Αρχεία Παραδειγμάτων
Τα αρχεία δεδομένων στο SNNS περιλαμβάνουν μια επικεφαλίδα και τα δεδομένα. Στην επικεφαλίδα αναφέρεται ο αριθμός των παραδειγμάτων του αρχείου, καθώς και οι διαστάσεις των διανυσμάτων εισόδου και εξόδου.
Ιδιαίτερη προσοχή χρειάζεται στα κενά της επικεφαλίδας.
Το # σημαίνει ότι ακολουθεί σχόλιο.
4.3 Παράθυρα του XGUI
- Manager Panel
- File Browser
- Control Panel για λειτουργίες εξομοίωσης
- Info panel, για καθορισμό και εμφάνιση πληροφοριών που αφορούν στους κόμβους και τις μεταξύ τους συνδέσεις
- Πολλά παράθυρα Display
- 3D View
- Οθόνη Γραφήματος, για ερμηνεία του λάθους, ενόσω γίνεται γραφική εκπαίδευση.
- Class panel, για έλεγχο της σύνθεσης του αρχείου εκπαίδευσης παραδειγμάτων.
- Bignet panel, για διευκόλυνση της δημιουργίας μεγάλων κλασικών δικτύων.
- Pruning panel, για έλεγχο του pruning αλγορίθμου
- Cascade panel, για έλεγχο της φάσης εκπαίδευσης της Cascade Correlation και της TACOMA εκπαίδευσης.
- Kohonen panel
- Weight Display, για να δείξει τον πίνακα βαρών σαν WV(?) ή σαν Hinton διάγραμμα
- Projection panel, για να ξεκαθαρίσει η επίδραση 2 κόμβων πάνω σε έναν τρίτο.
- Analyzer, για supervising recurrent NN
- Inversion Display, για έλεγχο στη μέθοδο Αντιστροφής
- Print panel, για δημιουργία Postscript picture μιας από τις οθόνες 2D Display.
- Help window, εδώ υπάρχει όλο το κείμενο βοήθειας του help.hdoc.
Για την εγκατάλειψη του SNNS : QUIT ή Alt-q
4.3.2 File Browser
Χειρίζεται όλες τις λειτουργίες φορτώματος, και αποθήκευσης των αρχείων δικτύου (network files), των αρχείων παραδειγμάτων (pattern files) και των αρχείων ρυθμίσεων (configuration files), καθώς και τα περιεχόμενα του text window.
Τα αρχεία ρυθμίσεων περιέχουν τον αριθμό, τη θέση και τη διάσταση των οθονών, καθώς και τις setup values τα ονόματα των επιπέδων.
4.3.2.1 Φορτώνοντας και Αποθηκεύοντας Δίκτυα
Σημείωση 1: Με το σώσιμο του Δικτύου ο πυρήνας (kernel) συμπιέζει τις εσωτερικές δομές δεδομένων του, αν οι κόμβοι δεν έχουν αριθμηθεί με συνεχόμενη αρίθμηση. Αυτό συμβαίνει αν σβήνονται κόμβοι κατά τη δημιουργία του δικτύου. Όλες οι προηγούμενες λίστες των αριθμών των κόμβων ακυρώνονται. Γι’ αυτό το λόγο ο χρήστης πρέπει να σώσει και να ξαναφορτώσει το δίκτυο πριν συνεχίσει τη δουλειά του.
Σημείωση 2: Η εκχώρηση παραδειγμάτων σε κόμβους εισόδου ή εξόδου μπορεί να τροποποιηθεί μετά από μια αποθήκευση δικτύου, αν ένας κόμβος σβηστεί και επανεισαχθεί. Αυτό συμβαίνει επειδή οι τιμές διέγερσης σε ένα αρχείο παραδειγμάτων εκχωρούνται στους κόμβους σύμφωνα με την αύξουσα σειρά των αριθμών των κόμβων. Αυτή η σειρά, όμως, αλλάζει επειδή στους νέους κόμβους εισόδου ή εξόδου μπορεί να έχουν εκχωρηθεί αριθμοί μεγαλύτεροι από το πλήθος των υπαρχόντων κόμβων εισόδου και κόμβων εξόδου. Έτσι μερικά από τα συστατικά των παραδειγμάτων μπορεί να μην είναι σωστά εκχωρημένα.
4.3.2.2 Φορτώνοντας και Αποθηκεύοντας Παραδείγματα
Τα παραδείγματα είναι συνδυασμοί διεγέρσεων των κόμβων εισόδου και εξόδου. Κατά το φόρτωμα των παραδειγμάτων δε γίνεται έλεγχος για το αν ταιριάζουν τα παραδείγματα στο δίκτυο. Αν το πλήθος των τιμών διέγερσης δεν ταιριάζει με το πλήθος των κόμβων εισόδου, πρέπει να οριστεί αργότερα ένα sub-pattern shifting scheme στο sub-pattern panel.
4.3.2.3 Φορτώνοντας και Αποθηκεύοντας Ρυθμίσεις
Είναι δυνατό να οριστεί μια διαμόρφωση για πολλά δίκτυα, καθώς και πολλές διαμορφώσεις για ένα δίκτυο. Όταν ξεκινάει το XGUI το αρχείο default.cfg φορτώνεται αυτόματα, αν δεν έχει οριστεί κανένα άλλο .cfg αρχείο.
4.3.2.4 Αποθηκεύοντας ένα αρχείο Αποτελεσμάτων
Ένα αρχείο αποτελεσμάτων (result file) περιέχει τις διεγέρσεις όλων των κόμβων εξόδου. Αυτές οι διεγέρσεις λαμβάνονται με την εκτέλεση μιας σάρωσης εμπρός διάδοσης. Μετά το πάτημα του SAVE ένα popup παράθυρο επιτρέπει στο χρήστη να ορίσει ποια παραδείγματα θα ελεγχθούν και ποια θα αποθηκευτούν, εκτός από το test output.
4.3.2.5 Ορίζοντας το log file
Στο log file μπορούν να αποθηκευτούν μηνύματα που επεξηγούν (document) το τρέξιμο εξομοίωσης. Το πρωτόκολλο περιέχει λειτουργίες αρχείων, ορισμούς τιμών που έχουν τεθεί με το πάτημα του πλήκτρου SET στο παράθυρο INFO, ή με το SET FUNC στο control panel, καθώς και ένα πρωτόκολλο εκπαίδευσης (κύκλοι, παράμετροι, λάθη). Επιπλέον ο χρήστης μπορεί να αποθηκεύσει δεδομένα για το δίκτυο στο log file, με τη βοήθεια του INFO στο control panel.
4.3.3 Control Panel
Στη συνέχεια περιγράφονται τα διάφορα πεδία κειμένου (τα ονόματά τους δίνονται με ΚΕΦΑΛΑΙΑ απλά γράμματα), τα πλήκτρα και τα πλήκτρα πολλαπλών επιλογών αυτού του πίνακα (menu buttons - τα ονόματά τους δίνονται με ΚΕΦΑΛΑΙΑ έντονα γράμματα):
- STEPS : Καθορίζει τον αριθμό των βημάτων διόρθωσης στο δίκτυο. Όταν είναι επιλεγμένη η Topological_Order σαν συνάρτηση ενημέρωσης (απ’ το πλήκτρο SEL_FUNC στη σειρά του UPDATE) ένα μόνο βήμα είναι αρκετό για τη διάδοση της πληροφορίας από την είσοδο στην έξοδο.
- STEP : Με το πάτημα του πλήκτρου ο πυρήνας του εξομοιωτή εκτελεί τον αριθμό των βημάτων που έχει καθοριστεί στο πεδίο STEPS. Αν αυτό είναι 0, οι κόμβοι απλά ξανασχεδιάζονται. Χρησιμοποιείται η συνάρτηση ενημέρωσης που έχει επιλεγεί με το πλήκτρο MODE. Στην τοπολογική σειρά το πρώτο βήμα χρειάζεται περισσότερο χρόνο απ’ τα υπόλοιπα, γιατί πρέπει να ταξινομηθεί πρώτα το δίκτυο τοπολογικά.
- COUNT: Το πεδίο δίπλα στο STEP. Δείχνει τα βήματα που έχουν εκτελεστεί μέχρι τώρα.
- JOG : Εμφανίζει ένα αναδυόμενο παράθυρο για τον καθορισμό του εύρους των τιμών (κάτω όριο …. άνω όριο) κάποιου τυχαίου θορύβου, που πρέπει να προστεθεί σε όλες τις συνδέσεις στο δίκτυο. Το ‘κάτω όριο’ και το ‘άνω όριο’ ορίζουν το εύρος ενός τυχαίου κλάσματος των τρεχόντων βαρών των συνδέσεων. Αυτό το μεμονωμένο κλάσμα χρησιμοποιείται σαν ένα ποσό θορύβου. Έχει βρεθεί ότι αυτό βοηθάει την απόδοση ενός δικτύου, καθώς βοηθάει να αποφευχθούν τοπικά ελάχιστα. Αν δοθεί ίδια τιμή για ‘άνω’ και ‘κάτω όριο’, τα βάρη θα τροποποιηθούν ακριβώς κατά αυτό το ποσό.
- INIT : Αρχικοποιεί το δίκτυο με τιμές σύμφωνα με τη συνάρτηση και τις παραμέτρους που δίνονται στη γραμμή αρχικοποίησης του πίνακα.
- RESET : Ο μετρητής μηδενίζεται και στους κόμβους εκχωρείται η αρχική τους διέγερση.
- ERROR : Τυπώνονται στατιστικά. Τα κριτήρια είναι για γραμμικά μοντέλα. Μερικές φορές μπορούν να εφαρμοστούν απευθείας σε μη-γραμμικά μοντέλα, αν το μέγεθος του δείγματος είναι μεγάλο.
4.3.4 Info Panel (Πίνακας Πληροφοριών)
Δείχνει όλες τις πληροφορίες που αφορούν σε δύο κόμβους και στη μεταξύ τους σύνδεση. Οι κόμβοι καλούνται κόμβος-πηγή και κόμβος-προορισμός (source και target units).
Μπορεί να δημιουργηθεί ένας προκαθορισμένος κόμβος με συγκεκριμένες τιμές διέγερσης, μεροληψίας (bias), τύπου εισόδου-εξόδου (io-type), αριθμού υπο-δικτύου, αριθμού επιπέδων, συνάρτησης ενεργοποίησης και συνάρτησης εξόδου, που οι τιμές της αντιγράφονται σε όλους τους επιλεγμένους κόμβους του δικτύου.
Ο κόμβος-πηγή μιας σύνδεσης μπορεί να εμφανιστεί σε μια 2D-Display με το πάτημα του μεσαίου πλήκτρου του ποντικιού, ενώ ο κόμβος-προορισμός με την ελευθέρωσή του.
Για την επιλογή της σύνδεσης ανάμεσα στους δύο κόμβους, πιέζουμε το μεσαίο πλήκτρο του ποντικιού πάνω στον κόμβο-πηγή σε μια 2D Display, μετακινούμε το ποντίκι στον κόμβο-προορισμό, κρατώντας πατημένο το πλήκτρο και το ελευθερώνουμε στον κόμβο-προορισμό.
Πλήκτρα
Για τις συνδέσεις υπάρχουν τα παρακάτω πλήκτρα:
- Επιλογή πρώτης σύνδεσης του κόμβου-προορισμού.
- Επιλογή επόμενης σύνδεσης του κόμβου-προορισμού.
- OPTIONS : εμφανίζει ένα μενού:
4.3.4.1 Οθόνες Συναρτήσεων Κόμβων (Unit function displays)
Η επικεφαλίδα του παραθύρου καθορίζει αν πρόκειται για συνάρτηση διέγερσης ή συνάρτηση εξόδου, καθώς και αν η τρέχουσα συνάρτηση αναφέρεται σε κόμβο-πηγή ή σε κόμβο-προορισμό.
Αν μια νέα ενεργοποίηση ή συνάρτηση εξόδου οριστεί για έναν κόμβο, το παράθυρο αλλάζει αυτόματα για να δείξει τη νέα κατάσταση.
Έτσι είναι εύκολο να πάρει κανείς μια γρήγορη εικόνα από τις διαθέσιμες συναρτήσεις, ανοίγοντας τις οθόνες συναρτήσεων και μετακινούμενος μέσα στη λίστα των διαθέσιμων συναρτήσεων. Η λίστα μπορεί να γίνει διαθέσιμη επιλέγοντας select act function ή select output function στο μενού του κόμβου.
4.3.5 2D Displays (Οθόνες 2 Διαστάσεων)
Η απόσταση ανάμεσα σε δύο σημεία του πλέγματος (grid) μπορεί ν’ αλλάξει από την προκαθορισμένη των 37 pixels σε κάποια άλλη τιμή μέσω του setup panel.
Η τρέχουσα έκδοση εμφανίζει τους κόμβους σαν μικρά τετράγωνα, των οποίων το μέγεθος είναι ανάλογο της τιμής του εμφανιζόμενου χαρακτηριστικού. Πιθανά χαρακτηριστικά είναι η διέγερση, η αρχική διέγερση, η μεροληψία και η έξοδος.
Μαύρο τετράγωνο è τιμή >0
Κενό τετράγωνο è τιμή <0
Το μέγεθος του κόμβου κυμαίνεται από 16x16 έως 0 pixels, σύμφωνα με την τιμή του παράγοντα κλιμάκωσης (Scale Factor)-προκαθορισμένη τιμή : 0, μπορεί να αλλαχτεί από 0.0 – 2.0 στο setup panel.
Κάθε κόμβος μπορεί να εμφανιστεί με δύο χαρακτηριστικά: ένα πάνω απ’ τον κόμβο κι ένα κάτω απ’ αυτόν. Το ποια θα είναι τα χαρακτηριστικά που εμφανίζονται καθορίζεται στο setup panel.
Οι συνδέσεις εμφανίζονται σαν συμπαγείς γραμμές, με προαιρετική εμφάνιση του βάρους στο κέντρο της γραμμής και/ή ένα βέλος που δείχνει προς τον προορισμό. Επιδρούν όμως, πολύ αρνητικά στην ταχύτητα σχεδιασμού του παραθύρου οθόνης.
Μια οθόνη παγώνει με το FREEZE (το πλήκτρο αναστρέφεται) και μετά απ’ αυτό δεν μπορεί να αλλάξει ή να δεχτεί επιπλέον εντολές.
4.3.5.1 Setup panel μιας 2D Display
Οι αλλαγές που γίνονται στον πίνακα αρχίζουν να έχουν ισχύ μόνο μετά το DONE. Τότε επανασχεδιάζεται όλο το παράθυρο σχεδίασης.
- Υπάρχουν πλήκτρα για τον έλεγχο της εμφάνισης της πληροφορίας του κόμβου
- Υπάρχουν πλήκτρα για τον έλεγχο της εμφάνισης της σύνδεσης:
4.3.6 Graph Window
Είναι ένα εργαλείο για την απεικόνιση της εξέλιξης του λάθους σε ένα δίκτυο. Το παράθυρο εμφανίζεται με το πάτημα του GRAPH στο Manager Panel.
Η καμπύλη λάθους του δικτύου σχεδιάζεται μέχρι να αρχικοποιηθεί το δίκτυο ή να φορτωθεί ένα νέο. Στην τελευταία περίπτωση ο μετρητής κύκλων τίθεται στην τιμή 0.Το παράθυρο, δεν καθαρίζει, παρά μόνο όταν πιεστεί το CLEAR. Έτσι μπορούμε να συγκρίνουμε τις διαφορετικές καμπύλες λάθους σε μια μόνο οθόνη.
Ο μέγιστος αριθμός καμπυλών, που μπορούν να εμφανιστούν ταυτόχρονα είναι 25. Όταν η καμπύλη φτάνει στο δεξιό άκρο του παραθύρου, γίνεται αυτόματα αναπροσαρμογή στην κλίμακα του x άξονα.
Το πλήκτρο DONE κλείνει το παράθυρο GRAPH και resets (κάνει 0) τον μετρητή κύκλων.
Το πλήκτρο SSE ανοίγει ένα popup μενού για να επιλέξει κανείς την τιμή που επιθυμεί να σχεδιαστεί στην οθόνη. Πιθανές τιμές είναι οι SSE, MSE, και SSE/out. Στην τελευταία περίπτωση το SSE διαιρείται με τον αριθμό των κόμβων εξόδου.
4.3.7 WEIGHT Display (Οθόνη παρουσίασης Βαρών)
Καλείται από το πλήκτρο WEIGHTS του manager panel. Το διάγραμμα μπορεί να χρησιμοποιηθεί για την ανάλυση της κατανομής των βαρών, ή για την παρακολούθηση της εξέλιξης των βαρών κατά τη διάρκεια της εκπαίδευσης.
Πλήκτρα
Με το πάτημα οποιουδήποτε πλήκτρου, όταν ο δείκτης είναι πάνω στο τετράγωνο του βάρους, εμφανίζεται η αριθμητική τιμή του συνδέσμου.
4.3.8 Projection Panel (Πίνακας Προβολής)
Το εργαλείο αυτό επιτρέπει την παρουσίαση του πώς η έξοδος ενός κόμβου (κρυμμένου ή κόμβου εξόδου) επηρεάζεται από δύο κόμβους εισόδου.
Καλείται από το πλήκτρο PROJECTION στοManager Panel.
4.3.9 Print Panel (Πίνακας Εκτύπωσης)
Ο πίνακας χειρίζεται το postscript output.
Υπάρχουν διάφορα πλήκτρα, για τα οποία η κατανόηση της χρήσης τους είναι εύκολη και δεν περιγράφονται στο παρόν εγχειρίδιο.
Ένα σημαντικό πλήκτρο είναι το NETWORK, με το οποίο ανοίγει το Network Setup Panel. Εκεί είναι δυνατό να οριστούν οι παρακάτω μεταβλητές:
4.3.10 Class Panel
Το Class Panel δίνει τη δυνατότητα ελέγχου στη σύνθεση των παραδειγμάτων που χρησιμοποιούνται στην εκπαίδευση. Ενώ μπορεί να ανοιχτεί οποιαδήποτε στιγμή, οι τιμές του χρησιμοποιούνται μόνον όταν πρόκειται να χειριστεί σύνολα παραδειγμάτων, που περιέχουν πληροφορίες κατηγοριών.
4.3.11 Help Windows (Παράθυρα Βοήθειας)
Είναι δυνατό να ανοιχτεί ένα αυθαίρετο πλήθος από παράθυρα βοήθειας, το καθένα από τα οποία εμφανίζει ένα διαφορετικό μέρος του κειμένου.
Ειδικό χαρακτηριστικό είναι η δυνατότητα αναζήτησης ενός string μέσα στο κείμενο βοήθειας. Για να γίνει αυτό, επιλέγεται το string αναζήτησης μέσα στο κείμενο.
Πλήκτρα
4.3.12 Shell Window
Το παράθυρο Shell από το οποίο καλείται το SNNS χρησιμοποιείται για την έξοδο μηνυμάτων πρωτοκόλλου. Τα πρωτόκολλα περιλαμβάνουν:
- Μηνύματα για την επιτυχία ή αποτυχία φορτώματος ή αποθήκευσης ενός αρχείου
- Πληροφορίες για τις ρυθμίσεις του SNNS, όταν πιέζεται το πλήκτρο INFO στο Control Panel
- Μηνύματα λάθους για τον σαρωτή των αρχείων παραδειγμάτων, όταν τα αρχεία παραδειγμάτων δεν ανταποκρίνονται στη γραμματική
- Τιμές λαθών εκπαίδευσης
- Τιμές λαθών του συνόλου παραδειγμάτων για την επικύρωση
Όταν ξεκινά η εκπαίδευση το λάθος από τους κόμβους εξόδου εμφανίζεται σ’ αυτό το παράθυρο μετά από κάθε κύκλο. Εμφανίζονται το πολύ 10 λάθη, άρα, αν έχω 20 κύκλους, θα εμφανιστούν τα λάθη ανά δύο κύκλους. Αν έχω 100 κύκλους, θα εμφανιστούν τα λάθη κάθε κύκλους (100, 90, 80, … , 10, 1).
Η αναφορά των λαθών στο shell έχει τη μορφή ενός πίνακα με 5 στήλες:
Epoch SSE MSE SSE/o-units
Train 100 57.78987 2.22345 2.2259
Αν η επικύρωση (validation) ισχύει, τότε ο πίνακας που παρουσιάζεται στο παράθυρο shell αναμειγνύεται με την έξοδο της επικύρωσης.
Στην πρώτη στήλη : καθορίζεται αν το λάθος υπολογίζεται πάνω στο σύνολο εκπαίδευσης ή στο σύνολο επικύρωσης
Στη δεύτερη στήλη : εμφανίζεται ο αριθμός των κύκλων που υπολείπονται να εκτελεστούν
Στην τρίτη στήλη : εμφανίζεται το Sum Squared Error (SSE) της συνάρτησης εκπαίδευσης
SSE = Σ p patterns Σ j output (tpj-opj)2
όπου tpj = teaching output (επιθυμητό) του νευρώνα εξόδου j στο παράδειγμα p
και opj η πραγματική έξοδος
Στην τέταρτη στήλη : εμφανίζεται το MSE (Mean Squared Error), που είναι το SSE/(πλήθος παραδειγμάτων)
Στην πέμπτη στήλη : εμφανίζεται το SSE/ o_units
Τα MSE και SSE/o_units θα είναι ίδια αν υπάρχουν τόσα παραδείγματα όσες και οι κόμβοι εξόδου.
Επίσης υπάρχει πλήκτρο INFO
4.4 Παράμετροι Συναρτήσεων Εκπαίδευσης
- ART1
Δwij (t+1) = η δj oi + μ Δwij (t)
δj = (f’j(netj) + c) (tj-oj), αν το j είναι κόμβος εξόδου
(f’j(netj) + c) Σκ δκ wjk, αν το j είναι κρυμμένος κόμβος
- BackpropThroughTime (BPTT),
- BatchBackpropThroughTime (BBPTT)
4.5 Update Functions (Συναρτήσεις Ενημέρωσης)
Ένας τύπος ενημέρωσης είναι σημαντικό να υπάρχει γιατί είναι απαραίτητο το πέρασμα από τους νευρώνες ενός δικτύου να γίνεται με μια συγκεκριμένη σειρά προκειμένου να εκτελεστούν λειτουργίες πάνω σ’ αυτούς. Η σειρά εξαρτάται απ’ την τοπολογία του δικτύου και επηρεάζει σε μεγάλο βαθμό την έξοδο ενός κύκλου διάδοσης.
Για κάθε δίκτυο είναι σημαντικό να επιλεγεί μια συνάρτηση ενημέρωσης, η οποία να σχετίζεται με τα ιδιαίτερα χαρακτηριστικά του δικτύου, ώστε αυτό να έχει την επιθυμητή συμπεριφορά.
Στη συνέχεια αναφέρεται η λειτουργία μιας από τις διαθέσιμες συναρτήσεις ενημέρωσης, που χρησιμοποιείται για BP_through_time δίκτυα. Η συνάρτηση είναι η BPTT_Order.
O BPTT_Order αλγόριθμος πραγματοποιεί ενημέρωση σε αναδρομικά δίκτυα. Το αναδρομικό δίκτυο μπορεί να μετατραπεί σε ένα κανονικό δίκτυο εμπρός μετάδοσης, με ένα επίπεδο εισόδου, πολλαπλά κρυμμένα επίπεδα και ένα επίπεδο εξόδου. Στην αρχή της διαδικασίας ενημέρωσης ελέγχει αν υπάρχει στο επίπεδο εισόδου ένα παράδειγμα μηδενικής εισόδου. Έστω ότι υπάρχει τέτοιο παράδειγμα. Τότε η i_act buffer τιμή τίθεται ίση με 0 για όλους τους νευρώνες. Σ’ αυτή την περίπτωση η i_act μπορεί να θεωρηθεί σαν μια buffer για την τιμή εξόδου όλων των κρυμμένων νευρώνων και των νευρώνων εξόδου. Στη συνέχεια υπολογίζεται η νέα διέγερση των κρυμμένων κόμβων και των κόμβων εξόδου. Τέλος υπολογίζεται η νέα έξοδος των κρυμμένων κόμβων και των κόμβων εξόδου και αποθηκεύεται στο i_act
4.6 Συναρτήσεις Αρχικοποίησης
Προκειμένου να δουλέψουν με ποικίλα μοντέλα Νευρωνικών Δικτύων και αλγορίθμων εκπαίδευσης, απαιτούνται διαφορετικές συναρτήσεις αρχικοποίησης, οι οποίες θέτουν αρχικές τιμές στα στοιχεία ενός δικτύου.
Ο Backpropagation δε θα δουλέψει σωστά, αν όλα τα βάρη αρχικοποιηθούν στην ίδια τιμή
4.7 Συναρτήσεις επαναντιστοίχισης παραδειγμάτων
Οι συναρτήσεις επαναντιστοίχισης παραδειγμάτων είναι ένα μέσο για γρήγορη αλλαγή της επιθυμητής εξόδου, χωρίς να χρειάζεται να αλλαχτούν τα αρχεία παραδειγμάτων.
Αυτές οι συναρτήσεις αλλάζουν μόνο το τμήμα εξόδου, ενώ το τμήμα εισόδου παραμένει άθικτο. Οι τιμές εξόδου κάθε παραδείγματος περνάνε μέσα απ’ αυτή τη συνάρτηση, πριν να παρουσιαστούν στο δίκτυο σαν έξοδος εκπαίδευσης. Έτσι είναι δυνατό να καθοριστεί γρήγορα η απόδοση της εκπαίδευσης, όταν χρησιμοποιούνται διαφορετικές τιμές εξόδου.
Κεφάλαιο 5
Χειρισμός παραδειγμάτων με το SNNS
Ο κανονικός τρόπος να χρησιμοποιεί κανείς ένα παράδειγμα με το δίκτυο είναι να έχει μια τιμή παραδείγματος για κάθε κόμβο εισόδου/εξόδου του δικτύου. Το σύνολο των διεγέρσεων όλων των κόμβων εισόδου καλείται παράδειγμα εισόδου, ενώ το σύνολο των διεγέρσεων όλων των κόμβων εξόδου καλείται παράδειγμα εξόδου. Το παράδειγμα εισόδου μαζί με το παράδειγμα εξόδου λέγεται παράδειγμα.
Αυτός ο ορισμός υπονοεί ότι όλα τα παραδείγματα για ένα συγκεκριμένο δίκτυο έχουν το ίδιο μέγεθος. Αυτά τα παραδείγματα ονομάζονται κανονικά ή σταθερού μεγέθους.
Το SNNS περιέχει ακόμη έναν άλλο τύπο παραδειγμάτων, πολύ πιο ευέλικτο. Αυτά τα παραδείγματα λέγονται μεταβλητού μεγέθους. Εδώ τα παραδείγματα είναι, συνήθως, μεγαλύτερα απ’ ότι τα επίπεδα εισόδου/εξόδου του δικτύου. Για την εκπαίδευση και ανάκληση τέτοιων παραδειγμάτων ‘κόβονται’ συστηματικά από το μεγάλο παράδειγμα μικρά κομμάτια και διαδίδονται στο δίκτυο, ένα τη φορά. Μόνο τα μικρά υπο-παραδείγματα (sub-patterns) πρέπει να έχουν σταθερό μέγεθος, που να ταιριάζει στο δίκτυο. Το παράδειγμα είναι δυνατό να έχει ένα τυχαίο μέγεθος και διαφορετικά παραδείγματα μέσα σ’ ένα σύνολο παραδειγμάτων μπορεί να έχουν διαφορετικά μεγέθη. Ο αριθμός των μεταβλητών διαστάσεων είναι, επίσης, μεταβλητός.
Μια τρίτη παραλλαγή παραδειγμάτων, τα οποία έχει τη δυνατότητα να χειριστεί το SNNS, είναι τα παραδείγματα που περιλαμβάνουν, εκτός από τις τιμές εισόδου και εξόδου, κάποια πληροφορία κατηγορίας. Έτσι μπορεί κανείς να ομαδοποιήσει τα παραδείγματα σύμφωνα με κάποια ιδιότητα που έχουν.
5.1 Χειρισμός Συνόλων Παραδειγμάτων
Παρόλο που οι διεγέρσεις μπορούν να διαδοθούν στο δίκτυο, χωρίς να έχουν οριστεί παραδείγματα, η εκπαίδευση μπορεί να υλοποιηθεί μόνο αν υπάρχουν παραδείγματα. Κανονικά υπάρχουν δύο ειδικά σύνολα παραδειγμάτων σε ένα Νευρωνικό Δίκτυο. Ένα για την εκπαίδευση (training pattern set) και ένα που εξυπηρετεί σκοπούς ελέγχου για το τι έχει μάθει το δίκτυο (test pattern set). Στο SNNS είναι δυνατό να διατηρηθούν και τα δύο ταυτόχρονα στον εξομοιωτή. Όλες οι ενέργειες που υλοποιούνται με τον εξομοιωτή αναφέρονται μόνο στο τρέχον σύνολο παραδειγμάτων και επηρεάζουν μόνον αυτό.
Ήδη φορτωμένα σύνολα παραδειγμάτων μπορούν να σβηστούν απ’ την κύρια μνήμη με το πλήκτρο DEL SET του Control Panel. Το πλήκτρο USE χρησιμοποιείται για το φόρτωμα των συνόλων παραδειγμάτων.
5.2 Παραδείγματα σταθερού μεγέθους
Όταν χρησιμοποιούνται παραδείγματα σταθερού μεγέθους ο αριθμός των τιμών εισόδου και εξόδου πρέπει να ταιριάζει με τον αριθμό των κόμβων εισόδου και εξόδου αντίστοιχα. Παραδείγματα χωρίς διεγέρσεις εξόδου μπορούν να οριστούν για δίκτυα χωρίς κόμβους εξόδου, ή για σκοπό test/recall σε δίκτυα που έχουν κόμβους εξόδου. Είναι πιθανό για παράδειγμα να φορτωθούν δύο σύνολα παραδειγμάτων: ένα σύνολο εκπαίδευσης με τιμές εξόδου για την εκπαίδευση του δικτύου και ένα σύνολο ελέγχου χωρίς τιμές εξόδου για ανάκληση. Η μετάβαση από το ένα σύνολο στο άλλο γίνεται με τη χρήση του USE.
5.3 Παραδείγματα μεταβλητού μεγέθους
Τα παραδείγματα μεταβλητού μεγέθους είναι πολύ πιο δύσκολα στον ορισμό και στο χειρισμό τους. Παραδείγματα εφαρμογών για μεταβλητά παραδείγματα περιλαμβάνουν παραδείγματα για TDNN για μια μεταβλητή διάσταση και επεξεργασία εικόνας με δύο μεταβλητές διαστάσεις.
Στη συνέχεια περιγράφεται ένα αρχείο παραδειγμάτων μεταβλητού μεγέθους, το οποίο περιγράφει μια bitmap εικόνα. Για εύκολη αναφορά έχουν προστεθεί αριθμοί γραμμών στην αρχή κάθε γραμμής.
0001
0002
0004 No of patterns :10
0005 No of input units : 1
0006 No of output units :1
0007 No of variable input dimensions : 2
0008 Maximum input dimensions : [200 200]
0009 No of variable output dimensions : 2
0010 Maximum output dimensions : [200 200]
0011
0012 #Input pattern 1 : pic1
0013 [200 190]
0014 0 0 1 (σύνολο από 32 0 και 1) 0 0 1
.
.
.
0214 0 0 1 (σύνολο από 32 0 και 1) 0 0 1
0215 #output pattern 1 : pic1
0216 [200 190]
0217 0 1 1 (σύνολο από 32 0 και 1) 0 1 1
γραμμή 0004: δείχνει τον αριθμό των παραδειγμάτων που είναι ορισμένα σ’ αυτό το αρχείο. Ο αριθμός των υποπαραδειγμάτων δεν καθορίζεται, καθώς εξαρτάται από το μέγεθος του δικτύου.
γραμμή 0005: ΠΡΟΣΟΧΗ! Αυτός ο αριθμός ΔΕΝ δείχνει τον αριθμό των κόμβων εισόδου, αλλά το μέγεθος C της σταθερής διάστασης. Για δίκτυα TDNN αυτός ο αριθμός αντιπροσωπεύει το (αμετάβλητο) πλήθος των χαρακτηριστικών, για μια εικόνα αντιπροσωπεύει τον αριθμό των τιμών ανά pixel (π.χ. μια bitmap εικόνα έχει μέγεθος 1, ενώ μια RGB εικόνα έχει μέγεθος 3).
γραμμή 0006: ο αντίστοιχος αριθμός με τη γραμμή 0005 για τα παραδείγματα εξόδου.
γραμμή 0007: καθορίζει τον αριθμό των μεταβλητών διαστάσεων εισόδου, I. Για παραδείγματα σταθερού μεγέθους πρέπει να καθοριστεί η τιμή 0.
γραμμή 0008: η γραμμή αυτή καθορίζει το μέγεθος του μεγαλύτερου παραδείγματος σ’ αυτό το σύνολο. Ο αριθμός απαιτείται για λόγους σάρωσης και δέσμευσης αποθηκευτικού χώρου. Ο αριθμός των εισόδων στη λίστα πρέπει να ταιριάζει με τον αριθμό που δίνεται στη γραμμή 0007 (αν έχει καθοριστεί 0 η λίστα πρέπει να είναι της μορφής [] ). Σημείωση: Αν έχει οριστεί γραμμή 0007, πρέπει οπωσδήποτε να οριστεί και γραμμή 0008
γραμμή 0009: αντιστοιχεί στη γραμμή 0007 για τα παραδείγματα εξόδου. Καθορίζει τον αριθμό των μεταβλητών διαστάσεων εξόδου, Ο.
γραμμή 0010: αντιστοιχεί στη γραμμή 0009 για τα παραδείγματα εξόδου. Σημείωση: Αν έχει οριστεί γραμμή 0009, πρέπει οπωσδήποτε να οριστεί και γραμμή 0010.
γραμμή 0012: Σχόλιο. Ακολουθεί το #.
γραμμή 0013: Αυτή η γραμμή πρέπει να καθοριστεί, όποτε ο αριθμός στη γραμμή 0007 είναι διάφορος του 0. Καθορίζει το μέγεθος του παραδείγματος εισόδου που ακολουθεί και δίνεται σα μια λίστα από ακεραίους χωριζόμενους με κενά και περικλειόμενους από [ ]. Οι τιμές πρέπει να δίνονται με φθίνουσα σειρά διαστάσεων, δηλ., [διάσταση_3 διάσταση_2 διάσταση_1] (εδώ [200 190]).
γραμμή 0014: Η πρώτη γραμμή από τα Πι=1Ι διάστασηI * C τιμές ενεργοποίησης (εδώ 1*190=190 ακέραιες τιμές). Οι τιμές αναμένονται να αποθηκευτούν ως εξής:
διάσταση Ι-1 *
………
διάσταση 1 *
C τιμές
γραμμή 0214: Η τελευταία γραμμή του Πι=1Ι διάστασηI * C τιμές ενεργοποίησης (εδώ η 200η)
γραμμή 0215: αντιστοιχεί στη γραμμή 0012 για τα παραδείγματα εξόδου
γραμμή 0216: αντιστοιχεί στη γραμμή 0013 για τα παραδείγματα εξόδου
γραμμή 0217: αντιστοιχεί στη γραμμή 0014 για τα παραδείγματα εξόδου
Όταν φορτωθούν τα παραδείγματα στον εξομοιωτή, ο χειρισμός τους μπορεί να ελεγχθεί με τον πίνακα ελέγχου (Control Panel). Για το χειρισμό παραδειγμάτων μεταβλητού μεγέθους παρέχεται ένας επιπλέον πίνακας ελέγχου υποπαραδειγμάτων.
Σημείωση 1: Ένα σωστό υποπαράδειγμα πρέπει να οριστεί πριν εκτελεστεί οποιαδήποτε συνάρτηση εκπαίδευσης, διάδοσης ή ανάκλησης.
Σημείωση 2: Για ένα δίκτυο με 30 κόμβους εισόδου, τα υποπαραδείγματα εισόδου με διαστάσεις 1x30, 2x15, 3x10, 5x6, 6x5, 10x3, 15x2, 30x1 είναι έγκυρα, αν το C=1. Αν, ωστόσο, η θέση των κόμβων εισόδου είναι σημαντική (όπως στις εικόνες), πρέπει και το μέγεθος και το σχήμα να ταιριάζουν στο δίκτυο. Στην περίπτωση έγχρωμης εικόνας, όπου κάθε pixel αναπαρίσταται από 3 τιμές (RGB), το C τίθεται ίσο με 3 και το σύνολο των πιθανών συνδυασμών μειώνεται στο 1x10, 2x5, 5x2 και 10x1.
Σημείωση 3: Όταν φορτώνεται ένα καινούριο αρχείο παραδειγμάτων, η λίστα των διεγέρσεων αντιστοιχίζεται στους κόμβους σύμφωνα με την αύξουσα σειρά των κόμβων. Όταν κάποιοι κόμβοι διαγράφονται ή δημιουργούνται καινούριοι, η σειρά αυτή διαταράσσεται. Αυτό οδηγεί σε λάθος γραφικές αναπαραστάσεις. Για την αποφυγή τέτοιων καταστάσεων πρέπει ο κόμβος με το μικρότερο αριθμό να βρίσκεται στην πάνω αριστερή γωνία της οθόνης. Με τη χρήση του BIGNET για τη δημιουργία τέτοιων δικτύων δεν υπάρχει τέτοιο πρόβλημα.
5.4 Παραδείγματα με Πληροφορίες Κατηγοριών και Ιδεατά Σύνολα Παραδειγμάτων
Το SNNS δίνει τη δυνατότητα προσάρτησης πληροφοριών κατηγοριών σε παραδείγματα. Αυτές οι πληροφορίες μπορούν να χρησιμοποιηθούν για ομαδοποίηση παραδειγμάτων σ’ ένα σύνολο παραδειγμάτων.
Τα αρχεία παραδειγμάτων με πληροφορίες κατηγοριών έχουν μία ή δύο επιπλέον γραμμές στο αρχείο παραδειγμάτων:
No of classes :<class_no>
Class redistribution : [<count_1> <count_2> <count_3> ……. <count_class_no>]
Η πρώτη γραμμή είναι υποχρεωτική για αρχεία με πληροφορίες κατηγοριών και δίνει το συνολικό αριθμό των κατηγοριών στο σύνολο. Η δεύτερη γραμμή είναι προαιρετική και δίνει την επιθυμητή κατανομή των κατηγοριών για εκπαίδευση (εξηγείται στη συνέχεια). Το όνομα της κατηγορίας δίνεται αμέσως μετά το παράδειγμα εξόδου, αν συμπεριλαμβάνεται κάτι τέτοιο στο αρχείο παραδειγμάτων, ή αλλιώς αμέσως μετά το παράδειγμα εισόδου και είναι ένα αλφαριθμητικό.
Με την προαιρετική ανακατανομή κατηγοριών είναι δυνατό να δημιουργηθεί ένα ιδεατό σύνολο παραδειγμάτων από το υπάρχον αρχείο παραδειγμάτων. Σ’ αυτό το σύνολο τα παραδείγματα έχουν μια σχεδόν αυθαίρετη κατανομή. Ο αριθμός των εισόδων των <count_x> πρέπει να ταιριάζει με τον αριθμό των διαφορετικών κατηγοριών του συνόλου. Κάθε αριθμός καθορίζει πόσα παραδείγματα της κατηγορίας θα πρέπει να είναι παρόντα στο ιδεατό σύνολο σχετικά με τις άλλες κατηγορίες. Η πρώτη τιμή (<count_1>) αντιστοιχεί στο πρώτο - σε αλφαριθμητική διάταξη - όνομα κατηγορίας, ενώ η τελευταία τιμή στο τελευταίο όνομα κατηγορίας.
Στα ιδεατά σύνολα παραδειγμάτων πρέπει να ισχύει επίσης το εξής: Κάθε παράδειγμα που ανήκει σε μια κατηγορία πρέπει να χρησιμοποιείται τουλάχιστον μια φορά σε έναν κύκλο εκπαίδευσης.
Παράδειγμα
…
…
Νο. of classes : 2
Class redistribution : [2 1]
….
….
Αν έχω συνολικά 6 παραδείγματα εισόδου, από τα οποία τα 2 ανήκουν στην κατηγορία Α και τα 4 στην κατηγορία Β και εμφανίζονται με την ακόλουθη σειρά στο αρχείο παραδειγμάτων:
1Β
2Β
3Α
4Α
5Β
6Β,
μπορώ να έχω διαθέσιμο ένα ιδεατό σύνολο παραδειγμάτων με 12 παραδείγματα (κάποια επαναλαμβάνονται).
Η ανακατανομή κατηγοριών ορίζεται ως εξής: ο αριθμός 2 (Class redistribution : [2 1]) αντιστοιχίζεται στην κατηγορία Α, που αλφαβητικά προηγείται της Β, ενώ ο αριθμός 1 αντιστοιχίζεται στη Β. Αυτό σημαίνει ότι, σε ένα ιδεατό σύνολο παραδειγμάτων, όσον αφορά στα παραδείγματα της Α, θα εμφανίζονται 2 παραδείγματα για κάθε ένα της Β. Λαμβάνοντας υπόψη και τον περιορισμό ότι, όλα τα παραδείγματα μιας κλάσης πρέπει να εμφανιστούν μια φορά τουλάχιστο, ένα πιθανό ιδεατό σύνολο παραδειγμάτων είναι το παρακάτω:
|
Ιδεατός αρ. Παρ |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
|
Πραγματικός αρ. Παρ. |
3 |
1 |
4 |
3 |
2 |
4 |
3 |
5 |
4 |
3 |
6 |
4 |
|
Κατηγορία |
Α |
Β |
Α |
Α |
Β |
Α |
Α |
Β |
Α |
Α |
Β |
Α |
Από την παραπάνω ανάλυση προκύπτει ότι οι κατηγορίες παραδειγμάτων εξυπηρετούν στη δημιουργία διαφορετικών συνόλων παραδειγμάτων εκπαίδευσης, με μεγάλο αριθμό παραδειγμάτων, ενώ στην πραγματικότητα τα διαθέσιμα παραδείγματα είναι λίγα.
Κεφάλαιο 6
Γραφικός Επεξεργαστής δικτύων του SNNS
Μετά τη δημιουργία ενός δικτύου, θα είναι πιθανά επιθυμητό να εμφανίζονται στους κόμβους τα ονόματά τους, αντί να εμφανίζονται οι τιμές τους ή οι αριθμοί που τους αντιστοιχούν.
Αυτό μπορεί να γίνει με τη βοήθεια του ενσωματωμένου graphical editor του SNNS.
Για παράδειγμα, αν θέλουμε να εμφανίσουμε έναν κόμβο με όνομα Α κάνουμε τα εξής:
- Επιλέγουμε τον κόμβο
- Ανοίγουμε το παράθυρο INFO για τον κόμβο και γράφουμε στο Name του Target: A
- Πατάμε διαδοχικά τα πλήκτρα U, S από τα αρχικά των λέξεων (Units, Set)
Στο SETUP του παραθύρου DISPLAY πρέπει να έχουμε ορίσει SHOWà name
Κεφάλαιο 7
Εργαλεία Δημιουργίας Γραφικών Δικτύων
Το SNNS παρέχει 10 εργαλεία δημιουργίας μεγάλων Ν.Δ.. Αυτά καλούνται με το πλήκτρο BIGNET του Manager panel.
7.1 Bignet για Δίκτυα Πρόσθιας Διάδοσης και Αναδρομικά Δίκτυα
7.1.1 Ορολογία για το Bignet
Το Bignet υποδιαιρεί ένα δίκτυο σε πολλά επίπεδα. Το επίπεδο εισόδου, το επίπεδο εξόδου και κάθε κρυμμένο επίπεδο λέγονται planes στο bignet.
Ένα επίπεδο είναι ένας πίνακας κόμβων 2 διαστάσεων. Κάθε κόμβος μέσα στο επίπεδο μπορεί να προσδιοριστεί με τις συντεταγμένες του. Ο κόμβος στην πάνω αριστερή γωνία έχει συντεταγμένες (1,1).
Ένα τμήμα (cluster) είναι ένα σύνολο κόμβων διαταγμένων σε τετράγωνο μέσα σε ένα επίπεδο. Η θέση του τμήματος προσδιορίζεται από τις συντεταγμένες της πάνω αριστερής γωνίας και της έκτασής της στη x διεύθυνση και στην y διεύθυνση.
Το Bignet δημιουργεί ένα δίκτυο σε 2 βήματα:
- Επεξεργασία Δικτύου: Αυτό το βήμα δημιουργεί εσωτερικές δομές στο Bignet, που περιγράφουν το δίκτυο, αλλά δεν το δημιουργούν. Έτσι υπάρχει δυνατότητα εύκολης διόρθωσης.
- Ο editor έχει 2 τμήματα:
- Το τμήμα επεξεργασίας επιπέδων (planes)
- Το τμήμα επεξεργασίας συνδέσεων (links)
- Δημιουργία Δικτύου στο SNNS: Δημιουργεί το δίκτυο από τις εσωτερικές δομές δεδομένων στο Bignet
7.1.2 Πλήκτρα στο Bignet
ENTER : Τα δεδομένα εισάγονται στο τέλος του επιπέδου ή της λίστας συνδέσεων
INSERT : Τα δεδομένα εισόδου εισάγονται πριν από το τρέχον επίπεδο.
OVERWRITE : Το τρέχον στοιχείο αντικαθίσταται από τα εισαγόμενα δεδομένα
DELETE : Το τρέχον στοιχείο σβήνεται.
PLANE TO EDIT : Τα δεδομένα του τρέχοντος επιπέδου γράφονται στο edit plane
LINK TO EDIT : Τα δεδομένα της τρέχουσας σύνδεσης γράφονται στο edit link
POS : Η θέση του επιπέδου αναφέρεται πάντα σχετικά (αριστερά, δεξιά, πάνω) με τη θέση του προηγούμενου επιπέδου.
FULL CONNECTION : Δημιουργείται ένα πλήρως συνδεδεμένο δίκτυο εμπρός διάδοσης. Κάθε κόμβος σε ένα επίπεδο i πρέπει να συνδέεται με κάθε κόμβο του επιπέδου i+1 .
SHORTCUT CONNECTION : Για κάθε κόμβο στο επίπεδο i δημιουργούνται συνδέσεις με όλους τους κόμβους όλων των άλλων επιπέδων
CREATE NET : Δημιουργείται το δίκτυο που περιγράφεται από τους δύο editors, με προκαθορισμένο όνομα SNNS_NET.net
DONE : Έξοδος απ’ το BIGNET και επιστροφή στα παράθυρα εξομοίωσης.
7.1.3 Plane Editor
Κάθε επίπεδο χαρακτηρίζεται από τον αριθμό των κόμβων στη x και y κατεύθυνση. Ο τύπος των κόμβων ενός επιπέδου μπορεί να καθοριστεί και να αλλαχτεί από το πλήκτρο TYPE. Η θέση ενός επιπέδου είναι σχετική με το προηγούμενο επίπεδο. Πιέζοντας το POS, μπορεί να αλλαχτεί η σχετική θέση ενός επιπέδου (αριστερά, δεξιά ή κάτω).
Κάθε επίπεδο συσχετίζεται με έναν αριθμό επιπέδου. Ο αριθμός αυτός εισάγεται για να ξεχωρίζουν τα επίπεδα μεταξύ τους και δεν είναι δυνατό να αλλαχτεί από το χρήστη.
7.1.4 Link Editor
Υπάρχουν 9 διαφορετικοί συνδυασμοί συνδέσεων ανάμεσα στα επίπεδα που μπορεί κανείς να επεξεργαστεί άμεσα.
Συνδέσεις :
|από όλους τους κόμβους ενός επιπέδου |προς όλους τους κόμβους ενός επιπέδου
όλους τους κόμβους ενός τμήματος όλους τους κόμβους ενός τμήματος
έναν μόνο κόμβο έναν μόνο κόμβο
Κεφάλαιο 8
Network Analyzing Tools
8.1 Inversion (Αντιστροφή)
Πολύ συχνά ένας χρήστης νευρωνικού δικτύου αναρωτιέται ποιες ιδιότητες πρέπει να έχει ένα παράδειγμα εισόδου, προκειμένου να επιτρέψει στο Δίκτυο να δημιουργήσει μια συγκεκριμένη έξοδο. Στην απάντηση του ερωτήματος βοηθά ο Αλγόριθμος Αντιστροφής (Inversion Algorithm), που αναπτύχθηκε στο SNNS.
8.1.1 Ο Αλγόριθμος
Η αντιστροφή ενός Νευρωνικού Δικτύου προσπαθεί να βρει ένα παράδειγμα εισόδου, που δημιουργεί μια συγκεκριμένη έξοδο, με τις υπάρχουσες συνδέσεις. Για την εύρεση αυτής της εισόδου υπολογίζεται η απόκλιση κάθε εξόδου από την επιθυμητή έξοδο σαν ένα λάθος δ. Αυτή η τιμή λάθους χρησιμοποιείται για να πλησιάσει την τιμή-στόχο στο χώρο εισόδου βήμα-βήμα. Η κατεύθυνση και το βάθος αυτής της κίνησης υπολογίζεται από τον αλγόριθμο Αντιστροφής.
Η πιο συνηθισμένη τιμή λάθους είναι η Least Mean Square Error, ELMS,που ορίζεται ως εξής:
ELMS = Σ p=1 n [Tp – f(Σ wijopi)]2
Ο στόχος του αλγορίθμου είναι η ελαχιστοποίηση του ELMS . Το λάθος μπορεί να υπολογιστεί ως εξής:
δpi = ο (1-pi) Σk E Succ(i) δpkwik
και η τιμή προσαρμογής της διέγερσης του κόμβου είναι:
Δnet pi = n δ pi , net pi = net pi +n δ pi
Σ’ αυτή την υλοποίηση ένα ενιαίο παράδειγμα εφαρμόζεται στους κόμβους εισόδου στο πρώτο βήμα του αλγορίθμου, του οποίου η διέγερση εξαρτάται από τη μεταβλητή input -pattern. Αυτό το παράδειγμα διαδίδεται-ανάστροφα στο δίκτυο σαν σημάδι λάθους δi (0). Η διαδικασία είναι ανάλογη με την εκπαίδευση backpropagation, με τη διαφορά ότι εδώ δε διορθώνονται βάρη. Τα σήματα λάθους που θα φτάσουν στο επίπεδο εισόδου αντιπροσωπεύουν μια βάθμωση στο χώρο εισόδου, η οποία δίνει την κατεύθυνση για τη βαθμωτή κατάβαση.
Έτσι το νέο άνυσμα εισόδου υπολογίζεται σαν :
Ι (1) = Ι (0) + n δ i (0) ,
όπου n είναι το μέγεθος του βήματος στο χώρο εισόδου.
Η διαδικασία επαναλαμβάνεται με το νέο διάνυσμα εισόδου, μέχρι η απόσταση ανάμεσα στην επιθυμητή έξοδο και στην έξοδο που προκύπτει να πέσει κάτω από το προκαθορισμένο όριο delta-max, όταν ο αλγόριθμος σταματήσει.
8.1.2 Οθόνη Αντιστροφής (Inversion Display)
Καλείται με το πλήκτρο Inversion του Manager Panel. Στην οθόνη υπάρχουν δύο περιοχές:
- μια μεγάλη περιοχή με τους κόμβους εισόδου και εξόδου του δικτύου
- και η πάνω περιοχή που περιέχει τα εξής πλήκτρα:
Πρέπει να τονιστεί ότι ο αλγόριθμος είναι εξαιρετικά ασταθής και ότι ο χρήστης πρέπει να δοκιμάσει μεγάλο αριθμό από συνδυασμούς.
ΠΑΡΑΡΤΗΜΑ Ι
Στη συνέχεια παρατίθεται η μετάφραση των αγγλικών όρων που χρησιμοποιήθηκε στο παρόν εγχειρίδιο.
link σύνδεση
unit κόμβος
hidden layer/unit κρυμμένο επίπεδο/ -ος κόμβος
activation διέγερση
bias μεροληψία
threshold κατώφλι
feed forward πρόσθια διάδοση
back propagation αανάδρομη ή πίσω διάδοση
training εκπαίδευση
teaching unit κόμβος εκπαίδευσης
steepest ascent άνοδος μέγιστης κλίσης
steepest descent κάθοδος μέγιστης κλίσης
gradient ascent βαθμωτή ανάβαση
gradient descent βαθμωτή κατάβαση
weighted βεβαρημένος
update mode τύπος ενημέρωσης