Επιστροφή

SNNS v4.2

Εγχειρίδιο Χρήσης (εκδ. 1)

Πασχαλούδη Β. Ν. και Μαργαρίτης Κ. Γ.

Εργαστήριο Παράλληλης και Κατανεμημένης Επεξεργασίας

Τμήμα Εφαρμοσμένης Πληροφορικής

Πανεπιστήμιο Μακεδονίας

Εισαγωγή

Το παρόν εγχειρίδιο είναι μια μετάφραση επιλεγμένων κεφαλαίων και παραγράφων του αγγλικού εγχειριδίου του προγράμματος Προσομοίωσης Νευρωνικών Δικτύων SNNS v4.2 (Stuttgart Neural Network Simulator). Ο SNNS εξομοιωτής μπορεί να αποκτηθεί μέσω ανώνυμου ftp από τον host

ftp.informatik.uni-tuebingen.de

στον υποκατάλογο

/pub/SNNS

σαν αρχείο

SNNSv4.2.tar.gz

Οι διευθύνσεις των εργαστηρίων είναι:

http://www.informatik.uni-stuttgart.de/iprv

http://www.informatik.uni-tuebingen.de

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

Κεφάλαιο 3

Ορολογία Νευρωνικών Δικτύων

3.1 Δημιουργώντας Τεχνητά Νευρωνικά Δίκτυα

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

Η πραγματική επεξεργασία πληροφορίας μέσα στους κόμβους μοντελοποιείται στον εξομοιωτή SNNS με τη συνάρτηση διέγερσης (activation function) και τη συνάρτηση εξόδου (output function). Η συνάρτηση διέγερσης υπολογίζει πρώτα την είσοδο ενός κόμβου από τις βεβαρημένες τιμές εξόδου προηγούμενων κόμβων. Στη συνέχεια υπολογίζει τη νέα διέγερση απ’ αυτή την είσοδο. Η συνάρτηση εξόδου παίρνει αυτό το αποτέλεσμα για να δημιουργήσει την έξοδο του κόμβου.

3.1.1 Κόμβοι

Όλοι οι κόμβοι έχουν κάποια χαρακτηριστικά:

3.1.2 Συνδέσεις (Links)

Η κατεύθυνση του βέλους δείχνει την κατεύθυνση της μεταφοράς της διέγερσης. Κάθε σύνδεση έχει ένα βάρος που της αντιστοιχεί. Αν η τιμή του βάρους είναι θετική τότε έχουμε διεγερτική (excitatory), ενώ αν είναι αρνητική, έχουμε ανασταλτική (inhibitory) σύνδεση.

3.2 Τύποι Ενημέρωσης (Update Modes)

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

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

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

  3. Τυχαία: η σειρά καθορίζεται τυχαία από μια γεννήτρια αριθμών, αλλά ο κάθε κόμβος μπορεί να επιλεγεί είτε πολλές φορές είτε καθόλου.

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

  5. Τοπολογική: Ο πυρήνας ταξινομεί τους κόμβους σύμφωνα με την τοπολογία τους. Η σειρά αντιστοιχεί στη φυσική διάδοση της δραστηριότητας από είσοδο σε έξοδο. Σε καθαρά feed-forward δίκτυα (εμπρός διάδοσης) η διέγερση εισόδου φτάνει στην έξοδο εξαιρετικά γρήγορα μ’ αυτή τη μέθοδο.

Υπάρχουν άλλοι δώδεκα τύποι ενημέρωσης. Ενδεικτικά αναφέρονται οι παρακάτω:

Κανόνας 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 μέρη:

3.5 Παράδειγμα ΝΔ

Η παράγραφος περιγράφει ένα απλό παράδειγμα δικτύου, το οποίο είναι έτοιμο για χρήση στον εξομοιωτή SNNS: έναν ταξινομητή για κεφαλαία αγγλικά γράμματα, που παρουσιάζονται σαν είσοδος στο δίκτυο σε έναν πίνακα 5x7.

Τα αρχεία που χρησιμοποιούνται είναι:

Network-files: letters_untrained.net, letters.net (trained)

Pattern-file: letters.pat

Το δίκτυο είναι ένα πρόσθιας διάδοσης δίκτυο με 3 επίπεδα κόμβων, που μπορεί να αναγνωρίσει κεφαλαία αγγλικά γράμματα. Η είσοδος είναι ένας 5x7 πίνακας, σε κάθε pixel του οποίου εκχωρείται ένας κόμβος. Η έξοδος του δικτύου αποτελείται από ακριβώς έναν κόμβο για κάθε γράμμα.

Οι συναρτήσεις διέγερσης και εξόδου, που χρησιμοποιούνται εξ’ ορισμού είναι:

Το δίκτυο έχει 1 επίπεδο εισόδου (5x7 κόμβοι), ένα κρυμμένο επίπεδο (10 κόμβοι) και ένα επίπεδο εξόδου (26 κόμβοι). Το σύνολο των (35 x 10 + 10 x 26) = 610 συνδέσεων συνιστούν τη μνήμη του ταξινομητή.

Κεφάλαιο 4

Χρησιμοποιώντας το Graphical User Interface

4.1 Βασική χρήση του SNNS

Πριν από τη χρήση πρέπει να γίνουν οι εξής ενέργειες:

  1. Αντιγραφή του SNNSv4.2/default.cfg στον προσωπικό κατάλογο του χρήστη

  2. Αντιγραφή του SNNSv4.2/help.hdoc στον προσωπικό κατάλογο του χρήστη

  3. Θέση της μεταβλητής περιβάλλοντος 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.7. Μορφές αρχείων στο SNNS

4.1.7.1. Αρχεία Παραδειγμάτων

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

Ιδιαίτερη προσοχή χρειάζεται στα κενά της επικεφαλίδας.

Το # σημαίνει ότι ακολουθεί σχόλιο.

4.3 Παράθυρα του XGUI

Για την εγκατάλειψη του 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 - τα ονόματά τους δίνονται με ΚΕΦΑΛΑΙΑ έντονα γράμματα):

  1. STEPS : Καθορίζει τον αριθμό των βημάτων διόρθωσης στο δίκτυο. Όταν είναι επιλεγμένη η Topological_Order σαν συνάρτηση ενημέρωσης (απ’ το πλήκτρο SEL_FUNC στη σειρά του UPDATE) ένα μόνο βήμα είναι αρκετό για τη διάδοση της πληροφορίας από την είσοδο στην έξοδο.

  2. STEP : Με το πάτημα του πλήκτρου ο πυρήνας του εξομοιωτή εκτελεί τον αριθμό των βημάτων που έχει καθοριστεί στο πεδίο STEPS. Αν αυτό είναι 0, οι κόμβοι απλά ξανασχεδιάζονται. Χρησιμοποιείται η συνάρτηση ενημέρωσης που έχει επιλεγεί με το πλήκτρο MODE. Στην τοπολογική σειρά το πρώτο βήμα χρειάζεται περισσότερο χρόνο απ’ τα υπόλοιπα, γιατί πρέπει να ταξινομηθεί πρώτα το δίκτυο τοπολογικά.

  3. COUNT: Το πεδίο δίπλα στο STEP. Δείχνει τα βήματα που έχουν εκτελεστεί μέχρι τώρα.

  4. JOG : Εμφανίζει ένα αναδυόμενο παράθυρο για τον καθορισμό του εύρους των τιμών (κάτω όριο …. άνω όριο) κάποιου τυχαίου θορύβου, που πρέπει να προστεθεί σε όλες τις συνδέσεις στο δίκτυο. Το ‘κάτω όριο’ και το ‘άνω όριο’ ορίζουν το εύρος ενός τυχαίου κλάσματος των τρεχόντων βαρών των συνδέσεων. Αυτό το μεμονωμένο κλάσμα χρησιμοποιείται σαν ένα ποσό θορύβου. Έχει βρεθεί ότι αυτό βοηθάει την απόδοση ενός δικτύου, καθώς βοηθάει να αποφευχθούν τοπικά ελάχιστα. Αν δοθεί ίδια τιμή για ‘άνω’ και ‘κάτω όριο’, τα βάρη θα τροποποιηθούν ακριβώς κατά αυτό το ποσό.

  5. INIT : Αρχικοποιεί το δίκτυο με τιμές σύμφωνα με τη συνάρτηση και τις παραμέτρους που δίνονται στη γραμμή αρχικοποίησης του πίνακα.

  6. RESET : Ο μετρητής μηδενίζεται και στους κόμβους εκχωρείται η αρχική τους διέγερση.

  7. ERROR : Τυπώνονται στατιστικά. Τα κριτήρια είναι για γραμμικά μοντέλα. Μερικές φορές μπορούν να εφαρμοστούν απευθείας σε μη-γραμμικά μοντέλα, αν το μέγεθος του δείγματος είναι μεγάλο.

    4.3.4 Info Panel (Πίνακας Πληροφοριών)

    Δείχνει όλες τις πληροφορίες που αφορούν σε δύο κόμβους και στη μεταξύ τους σύνδεση. Οι κόμβοι καλούνται κόμβος-πηγή και κόμβος-προορισμός (source και target units).

    Μπορεί να δημιουργηθεί ένας προκαθορισμένος κόμβος με συγκεκριμένες τιμές διέγερσης, μεροληψίας (bias), τύπου εισόδου-εξόδου (io-type), αριθμού υπο-δικτύου, αριθμού επιπέδων, συνάρτησης ενεργοποίησης και συνάρτησης εξόδου, που οι τιμές της αντιγράφονται σε όλους τους επιλεγμένους κόμβους του δικτύου.

    Ο κόμβος-πηγή μιας σύνδεσης μπορεί να εμφανιστεί σε μια 2D-Display με το πάτημα του μεσαίου πλήκτρου του ποντικιού, ενώ ο κόμβος-προορισμός με την ελευθέρωσή του.

    Για την επιλογή της σύνδεσης ανάμεσα στους δύο κόμβους, πιέζουμε το μεσαίο πλήκτρο του ποντικιού πάνω στον κόμβο-πηγή σε μια 2D Display, μετακινούμε το ποντίκι στον κόμβο-προορισμό, κρατώντας πατημένο το πλήκτρο και το ελευθερώνουμε στον κόμβο-προορισμό.

    Πλήκτρα

      1. Πλήκτρο μετακίνησης : Κάτω από το TARGET επιλέγει τον πρώτον κόμβο-προορισμό, του δοσμένου κόμβου-πηγής, ενώ κάτω από το SOURCE επιλέγει τον πρώτον κόμβο-πηγή, του δοσμένου κόμβου-προορισμού.

      2. Πλήκτρο μετακίνησης : πάει στον επόμενο κόμβο

      3. FREEZE : ο κόμβος ‘παγώνει’ (δηλαδή δεν δέχεται αλλαγές), αν το πλήκτρο είναι ανεστραμμένο. Οι αλλαγές ενεργοποιούνται μόνο μετά το πάτημα του SET.

      4. DEF : στον προκαθορισμένο κόμβο εκχωρούνται οι τιμές των κόμβων πηγής και προορισμού (activation, bias, subnet number, layer numbers, activation function, output function)

      5. OPTIONS

      6. SET : Μόνο όταν πιεστεί αυτό το πλήκτρο τα χαρακτηριστικά του αντίστοιχου κόμβου τίθενται στη συγκεκριμένη τιμή. Οι κόμβοι επανασχεδιάζονται.

    Για τις συνδέσεις υπάρχουν τα παρακάτω πλήκτρα:

    1. Επιλογή πρώτης σύνδεσης του κόμβου-προορισμού.

    2. Επιλογή επόμενης σύνδεσης του κόμβου-προορισμού.

    3. OPTIONS : εμφανίζει ένα μενού:

      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. Το διάγραμμα μπορεί να χρησιμοποιηθεί για την ανάλυση της κατανομής των βαρών, ή για την παρακολούθηση της εξέλιξης των βαρών κατά τη διάρκεια της εκπαίδευσης.

      Πλήκτρα

        1. ZOOM IN : μεγαλώνει το τετράγωνο του βάρους κατά ένα pixel σε κάθε πλευρά.

        2. ZOOM OUT : μικραίνει το τετράγωνο του βάρους κατά ένα pixel σε κάθε πλευρά.

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

      4.3.8 Projection Panel (Πίνακας Προβολής)

      Το εργαλείο αυτό επιτρέπει την παρουσίαση του πώς η έξοδος ενός κόμβου (κρυμμένου ή κόμβου εξόδου) επηρεάζεται από δύο κόμβους εισόδου.

      Καλείται από το πλήκτρο PROJECTION στοManager Panel.

    4.3.9 Print Panel (Πίνακας Εκτύπωσης)

    Ο πίνακας χειρίζεται το postscript output.

    Υπάρχουν διάφορα πλήκτρα, για τα οποία η κατανόηση της χρήσης τους είναι εύκολη και δεν περιγράφονται στο παρόν εγχειρίδιο.

    Ένα σημαντικό πλήκτρο είναι το NETWORK, με το οποίο ανοίγει το Network Setup Panel. Εκεί είναι δυνατό να οριστούν οι παρακάτω μεταβλητές:

        1. x-min, x-max, y-min, y-max: για τον προσδιορισμό της περιοχής που πρόκειται να τυπωθεί

        2. Unit size: FIXED : όλες οι κόμβοι έχουν το ίδιο μέγεθος

      4.3.10 Class Panel

      Το Class Panel δίνει τη δυνατότητα ελέγχου στη σύνθεση των παραδειγμάτων που χρησιμοποιούνται στην εκπαίδευση. Ενώ μπορεί να ανοιχτεί οποιαδήποτε στιγμή, οι τιμές του χρησιμοποιούνται μόνον όταν πρόκειται να χειριστεί σύνολα παραδειγμάτων, που περιέχουν πληροφορίες κατηγοριών.

      4.3.11 Help Windows (Παράθυρα Βοήθειας)

      Είναι δυνατό να ανοιχτεί ένα αυθαίρετο πλήθος από παράθυρα βοήθειας, το καθένα από τα οποία εμφανίζει ένα διαφορετικό μέρος του κειμένου.

      Ειδικό χαρακτηριστικό είναι η δυνατότητα αναζήτησης ενός string μέσα στο κείμενο βοήθειας. Για να γίνει αυτό, επιλέγεται το string αναζήτησης μέσα στο κείμενο.

      Πλήκτρα

        1. LOOK : αναζήτηση πρώτης εμφάνισης του string, ξεκινώντας απ’ την αρχή του κειμένου βοήθειας. Αν βρεθεί, παρουσιάζεται η αντίστοιχη παράγραφος.

        2. MORE : αναζήτηση πρώτης εμφάνισης του 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 Παράμετροι Συναρτήσεων Εκπαίδευσης

          1. P : παράμετρος επαγρύπνησης

      1. Std_Backpropagation (“Vanilla” Backprop)

        1. BackpropBatch &

        2. TimeDelayBackprop

          1. n : παράμετρος εκπαίδευσης. Καθορίζει το εύρος του βήματος της βαθμωτής κατάβασης. Τυπικές τιμές : 0.1 . . . 1.0. Μερικά μικρά παραδείγματα ‘εκπαιδεύουν’ το δίκτυο πολύ πιο γρήγορα με τιμές μεγαλύτερες του 1.0, όπως 2.0

            1. με τον αριθμό των παραδειγμάτων στο τρέχον σύνολο παραδειγμάτων

          2. dmax : Η μέγιστη διαφορά dj = tj - oj , ανάμεσα σε έναν κόμβο εκπαίδευσης tj και σε μια έξοδο, oj, ενός κόμβου εξόδου, που είναι ανεκτή, π.χ. διαδίδεται πίσω σαν dj = 0. Αν οι τιμές πάνω από 0.9 θεωρηθούν 1.0 και οι τιμές κάτω από 0.1 θεωρηθούν 0, τότε dmax = 0.1. Αυτό προστατεύει το δίκτυο από υπερ-εκπαίδευση (overtraining). Τυπικές τιμές για dmax : 0, 0.1, 0.2.

      2. BackpropChunk

          1. n : παράμετρος εκπαίδευσης. Καθορίζει το εύρος του βήματος της βαθμωτής κατάβασης, όπως στον Std_Backpropagation.

            1. Σημείωση : εδώ η τιμή αυτή θα διαιρεθεί με τον πραγματικό αριθμό των αλλαγών των βαρών και των μεροληψιών (bias), κατά τη διάρκεια ενός κομματιού (chunk), και πριν πραγματοποιηθεί οποιαδήποτε αλλαγή στα βάρη.

          1. dmax : οι μέγιστες διαφορές εξόδων εκπαίδευσης, όπως παραπάνω. Συνήθως είναι 0.0.

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

          3. lower limit : το κατώτερο όριο του εύρους του τυχαίου θορύβου, που πρόκειται να προστεθεί για κάθε chunk.

          4. upper limit : το ανώτερο όριο του εύρους του τυχαίου θορύβου, που πρόκειται να προστεθεί για κάθε chunk. Αν και το ανώτερο και το κατώτερο όριο είναι 0.0, δε γίνεται αλλαγή στα βάρη.

      1. BackpropMomentum (Backprop με momentum term & flat spot elimination- εξάλειψη επίπεδου σημείου)

          1. n : (ίδιο με παραπάνω) Τυπικές τιμές 0.1 … 1.0

          2. μ : momentum term, καθορίζει το ποσό μιας παλιάς αλλαγής βάρους (σχετικά με το 1), το οποίο προστίθεται στην τρέχουσα αλλαγή.

          3. c : τιμή εξάλειψης επίπεδου σημείου. Είναι μια σταθερή τιμή, που προστίθεται στην παράγωγο της συνάρτησης διέγερσης, προκειμένου να δοθεί η δυνατότητα στο δίκτυο να προσπεράσει επίπεδα σημεία της επιφάνειας λάθους. Τυπικές τιμές 0 .. 0.25, 0.1.

          4. dmax : Η μέγιστη διαφορά dj = tj - oj , ανάμεσα στη μεταβλητή εκπαίδευσης tj και σε μια έξοδο, oj, όπως παραπάνω.

            1. Η γενική μορφή BP που χρησιμοποιείται εδώ είναι:

    Δwij (t+1) = η δj oi + μ Δwij (t)

    δj = (f’j(netj) + c) (tj-oj), αν το j είναι κόμβος εξόδου

    (f’j(netj) + c) Σκ δκ wjk, αν το j είναι κρυμμένος κόμβος

    1. BackpropThroughTime (BPTT),

      1. BatchBackpropThroughTime (BBPTT)
          1. n : ρυθμός εκπαίδευσης. Καθορίζει το εύρος του βήματος της βαθμωτής κατάβασης. Τυπικές τιμές : 0.005 …0.1.
          2. μ : momentum term, καθορίζει το ποσό της αλλαγής του παλιού βάρους (σχετικά με το 1), το οποίο προστίθεται στην τρέχουσα αλλαγή. Τυπικές τιμές : 0.0 .. 1.0.

          3. backstep : ο αριθμός των backprop βημάτων πίσω στο χρόνο. Ο BPTT αποθηκεύει μια ακολουθία όλων των διεγέρσεων των κόμβων, ενόσω εφαρμόζονται παραδείγματα εισόδου. Οι διεγέρσεις αποθηκεύονται σε μια ουρά FIFO (first input first output) για κάθε κόμβο. Η μεγαλύτερη backstep τιμή που υποστηρίζεται είναι 10.

      1. BackpropWeightDecay (Backprop με μείωση βαρών)

          1. n : όπως παραπάνω

          2. d : όρος μείωσης βάρους. Ορίζει το πόσο μέρος της παλιάς τιμής βάρους θα αφαιρεθεί, μετά την εκπαίδευση. Τυπικές τιμές 0.005 … 0.3

          3. dmin : το ελάχιστο βάρος που είναι ανεκτό σε μια σύνδεση. Όλες οι συνδέσεις με μικρότερο βάρος κόβονται (are pruned).

          4. dmax : Η μέγιστη διαφορά dj = tj - oj , ανάμεσα σε μια τιμή εκπαίδευσης tj και σε μια έξοδο, oj, ενός κόμβου εξόδου, η οποία (διαφορά ;) είναι ανεκτή, για παράδειγμα διαδίδεται πίσω σαν dj=0.

      1. Cascade Correlation (CC – Συσχετισμού Επικάλυψης)

        1. TACOMA

        2. Οι CC και TACOMA δεν είναι συναρτήσεις εκπαίδευσης. Είναι meta-αλγόριθμοι για τη δημιουργία και την εκπαίδευση βέλτιστων δικτύων. Ωστόσο, έχουν ενσωματωμένο ένα σύνολο από τυπικές συναρτήσεις εκπαίδευσης. Αυτές οι συναρτήσεις απαιτούν τροποποιημένες παραμέτρους και είναι οι εξής:

        3. -(Batch) Backpropagation (στο CC ή στο TACOMA)

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

          2. μ1 : momentum term, καθορίζει το ποσό της αλλαγής του παλιού βάρους (σχετικά με τον κόμβο), το οποίο προστίθεται στην τρέχουσα αλλαγή. Για Batch BP μ1=0.0.

          3. c : τιμή εξάλειψης επίπεδου σημείου. Είναι μια σταθερή τιμή, που προστίθεται στην παράγωγο της συνάρτησης διέγερσης, προκειμένου να δοθεί η δυνατότητα στο δίκτυο να προσπεράσει επίπεδα σημεία της επιφάνειας λάθους. Τυπική τιμή 0.1.

          4. n2 : ρυθμός εκπαίδευσης, καθορίζει του εύρος του βήματος της βαθμωτής ανάβασης, μεγιστοποιώντας την covariance.

          5. μ2 : momentum term, καθορίζει το ποσό της αλλαγής του παλιού βάρους (σχετικά με τον κόμβο), το οποίο προστίθεται στην τρέχουσα αλλαγή. Για Batch BP μ2=0.0.

            1. Η γενική φόρμα για τη συνάρτηση εκπαίδευσης είναι:

            2. Δwij (t+1) = η S(t) + μ Δwij (t-1)

            3. όπου S è dE/dwij - dC/wij

            4. Ο αρχικά υλοποιημένος BP (Batch BP) δεν έχει ικανοποιητικά αποτελέσματα κι έτσι δημιουργήθηκε ένας καινούριος BP αλγόριθμος (ονομάζεται απλά BP), ο οποίος καθορίζει τις παραγώγους και αλλάζει τις συνδέσεις μετά τη διάδοση όλων των παραδειγμάτων.

            5. Υπάρχουν και άλλοι αλγόριθμοι, όπως ο Rprop και Quickprop, που περιγράφονται αναλυτικά στο αγγλικό εγχειρίδιο.

      1. Hebbian learning

          1. n : ρυθμός εκπαίδευσης. Καθορίζει το εύρος του βήματος της βαθμωτής κατάβασης. Προτεινόμενες τιμές : < 1 / (αριθμό κόμβων).

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

          3. Count : αριθμός των φορών που το δίκτυο ενημερώνεται πριν τον υπολογισμό του λάθους.

      1. Kohonen

          1. h(0) : Ύψος προσαρμογής. Το αρχικό ύψος προσαρμογής κυμαίνεται ανάμεσα στο 0 και στο 1. Καθορίζει ολόκληρη τη δύναμη προσαρμογής.

          2. r(0) : Ακτίνα προσαρμογής. Η αρχική ακτίνα προσαρμογής, r(0), είναι η ακτίνα της ‘γειτονιάς’ του νικητή κόμβου.

          3. mult_H : Παράγοντας μείωσης. Το ύψος προσαρμογής μειώνεται μονοτονικά μετά την παρουσίαση κάθε παραδείγματος εκπαίδευσης. Αυτή η μείωση ελέγχεται από τη μείωση του παράγοντα μείωσης : h(t+1) : = h(t) * mult_H.

          4. mult_R Παράγοντας μείωσης. Η ακτίνα προσαρμογής μειώνεται μονοτονικά μετά την παρουσίαση κάθε παραδείγματος εκπαίδευσης. Αυτή η μείωση ελέγχεται από τη μείωση του παράγοντα μείωσης : r(t+1) : = r(t) * mult_R.

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

    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 στην κατηγορία Β και εμφανίζονται με την ακόλουθη σειρά στο αρχείο παραδειγμάτων:

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.

Για παράδειγμα, αν θέλουμε να εμφανίσουμε έναν κόμβο με όνομα Α κάνουμε τα εξής:

  1. Επιλέγουμε τον κόμβο

  2. Ανοίγουμε το παράθυρο INFO για τον κόμβο και γράφουμε στο Name του Target: A

  3. Πατάμε διαδοχικά τα πλήκτρα 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 βήματα:

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

    • Ο editor έχει 2 τμήματα:

      1. Το τμήμα επεξεργασίας επιπέδων (planes)

      2. Το τμήμα επεξεργασίας συνδέσεων (links)

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. Στην οθόνη υπάρχουν δύο περιοχές:

      1. DONE : εγκαταλείπει τον αλγόριθμο αντιστροφής και κλείνει την οθόνη

      2. STEP : Ξεκινάει ή συνεχίζει τον αλγόριθμο. Το πρόγραμμα αρχίζει τις επαναλήψεις αλλάζοντας αργά το παράδειγμα εισόδου, είτε μέχρι να πατηθεί το STOP, είτε μέχρι η έξοδος να πλησιάσει την επιθυμητή αρκετά καλά (δmax). Το όριο λάθους μπορεί να τεθεί στο setup panel. Κατά τη διάρκεια της εκτέλεσης παρουσιάζεται η τρέχουσα κατάσταση στο παράθυρο shell, που είναι της μορφής:

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

    ΠΑΡΑΡΤΗΜΑ Ι

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

    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 τύπος ενημέρωσης

Επιστροφή