Α.Τ.Ε.Ι ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΕΡΓΑΣΤΗΡΙΟ ΝΕΥΡΩΝΙΚΩΝ ΔΙΚΤΥΩΝ 4

Σχετικά έγγραφα
Δίκτυα Perceptron. Κυριακίδης Ιωάννης 2013

Α.Τ.ΕΙ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ. ΕΡΓΑΣΤΗΡΙΟ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΔΙΚΤΥΩΝ

Α. ΤΕΙ ΚΡΗΤΗΣ Τµήµα Εφαρµοσµένης Πληροφορικής και Πολυµέσων Εργαστήριο Νευρωνικών Δικτύων

Α.Τ.Ε.Ι ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΕΡΓΑΣΤΗΡΙΟ ΝΕΥΡΩΝΙΚΩΝ ΔΙΚΤΥΩΝ. Σχήμα 1 Η λειτουργία του νευρώνα

Προσομοίωση Νευρωνικού Δικτύου στο MATLAB. Κυριακίδης Ιωάννης 2013

Εισαγωγή στους Νευρώνες. Κυριακίδης Ιωάννης 2013

Ανταγωνιστική Εκμάθηση Δίκτυα Kohonen. Κυριακίδης Ιωάννης 2013

Το μοντέλο Perceptron

Backpropagation Multilayer Feedforward Δίκτυα. Κυριακίδης Ιωάννης 2013

Εκπαίδευση ΤΝΔ με ελαχιστοποίηση του τετραγωνικού σφάλματος εκπαίδευσης. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν.

Βασικές αρχές εκπαίδευσης ΤΝΔ: το perceptron. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Α.Σ.Ε.Ι ΚΡΗΣΗ ΣΜΗΜΑ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ & ΠΟΛΤΜΕΩΝ ΕΡΓΑΣΗΡΙΟ ΝΕΤΡΩΝΙΚΩΝ ΔΙΚΣΤΩΝ 2

ΔΙΚΤΥO RBF. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ

Το Πολυεπίπεδο Perceptron. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Μοντέλο Perceptron πολλών στρωμάτων Multi Layer Perceptron (MLP)

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

Υπολογιστική Νοημοσύνη. Μάθημα 4: Μάθηση στον απλό τεχνητό νευρώνα (2)

Αρχιτεκτονική Νευρωνικών Δικτύων

Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 4 o Φροντιστήριο

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

Ασκήσεις μελέτης της 19 ης διάλεξης

Υπολογιστική Νοημοσύνη. Μάθημα 6: Μάθηση με Οπισθοδιάδοση Σφάλματος Backpropagation Learning

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 4 ο Εργαστήριο. Διανύσματα-Πίνακες 1 ο Μέρος

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Υπολογιστική Νοημοσύνη. Μάθημα 12: Παραδείγματα Ασκήσεων 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΔΕ. 11 ΙΟΥΝΙΟΥ 2012

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΠΑ. 7 ΣΕΠΤΕΜΒΡΙΟΥ 2012

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

Αναγνώριση Προτύπων Ι

Συνέλιξη Κρουστική απόκριση

Μάθηση και Γενίκευση. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Εισαγωγή στον Προγραμματισμό

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

Διαδικασιακός Προγραμματισμός

Ένας απλός και γρήγορος αλγόριθμος για την αποκοπή γραμμών στο Scratch

3. O ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ PERCEPTRON

Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή

9. Συστολικές Συστοιχίες Επεξεργαστών

ΔΠΜΣ: ΕΦΑΡΜΟΣΜΕΝΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΠΙΣΤΗΜΕΣ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ. Καραγιώργου Σοφία

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΙΚΤΥΑ

1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.

Εναλλακτικές εντολές για ανάγνωση/εγγραφή

Αναγνώριση Προτύπων Ι

Εντολές ελέγχου ροής if, for, while, do-while

HMY 795: Αναγνώριση Προτύπων. Διαλέξεις 15-16

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Ομαδοποίηση ΙΙ (Clustering)

Παράρτημα Έκδοση 2017

Τεχνητή Νοημοσύνη. 19η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

Υπολογιστική Νοημοσύνη. Μάθημα 13: Αναδρομικά Δίκτυα - Recurrent Networks

Εισαγωγή στην Αριθμητική Ανάλυση

ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μεταβλητές. Σενάριο για μαθητές Γ γυμνασίου διάρκειας 3+ ωρών

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Προσεγγιστική λύση Γραμμικών Συστημάτων με την μέθοδο Gauss-Seidel. Δημιουργία κώδικα στο Matlab

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Νευρωνικά Δίκτυα στο Matlab

Πληροφορική 2. Δομές δεδομένων και αρχείων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Συνδυαστική Βελτιστοποίηση Εισαγωγή στον γραμμικό προγραμματισμό (ΓΠ)

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Η Μηχανική Μάθηση στο Σχολείο: Μια Προσέγγιση για την Εισαγωγή της Ενισχυτικής Μάθησης στην Τάξη

Επεξήγηση των εντολών που θα ΕΝΤΟΛΕΣ χρησιμοποιηθούν παρακάτω στα παραδείγματα < ενδυμασία1>

ΚΕΦΑΛΑΙΟ 2 ΑΝΑΣΚΟΠΗΣΗ ΑΠΑΡΑΙΤΗΤΩΝ ΓΝΩΣΕΩΝ: ΕΚΤΙΜΗΤΕΣ

Προγραμματισμός ΙI (Θ)

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

Τυπικές χρήσεις της Matlab

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή.

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Υπολογιστική Νοημοσύνη. Μάθημα 10: Ομαδοποίηση με Ανταγωνιστική Μάθηση - Δίκτυα Kohonen

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Ασκήσεις μελέτης της 16 ης διάλεξης

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοηµοσύνη Ι» 7ο Φροντιστήριο 15/1/2008

Transcript:

Α.Τ.Ε.Ι ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΕΡΓΑΣΤΗΡΙΟ ΝΕΥΡΩΝΙΚΩΝ ΔΙΚΤΥΩΝ 4 ΤΟ ΔΙΚΤΥΟ PERCEPTRON I. Αρχιτεκτονική του δικτύου Το δίκτυο Perceptron είναι το πρώτο νευρωνικό δίκτυο το οποίο θα κατασκευάσουμε και στη συνέχεια θα εκπαιδεύσουμε προκειμένου να το χρησιμοποιήσουμε σε εφαρμογές αναγνώρισης προτύπων. Το χαρακτηριστικό του δικτύου αυτού είναι ότι αποτελείται από ένα μόνο επίπεδο, θεωρητικά με οποιοδήποτε αριθμό νευρώνων ενώ ο κάθε νευρώνας υλοποιεί την συνάρτηση μεταφοράς hard limit. Υπενθυμίζουμε ότι η συνάρτηση αυτή δίνει μηδενική έξοδο (0) σε αρνητική είσοδο και μοναδιαία έξοδο (1) σε μηδενική ή θετική είσοδο (βλέπε εργαστήριο 1). Μεταξύ του επιπέδου των νευρώνων και του διανύσματος εισόδου υπάρχει πλήρης σύνδεση με τα αντίστοιχα βάρη. Ο κάθε νευρώνας επίσης έχει και ως μοναδιαία είσοδο το bias με βάρος b. Ακολουθεί (Σχήμα 1) η αναπαράσταση του: Σχήμα 1 Η αρχιτεκτονική του δικτύου Perceptron

Λόγω του ότι το δίκτυο αποτελείται μονάχα από ένα επίπεδο, περιορίζει το εύρος των εφαρμογών του στην Αναγνώριση Προτύπων. Συγκεκριμένα το δίκτυο είναι ικανό στην αντιμετώπιση γραμμικά διαχωρίσιμων προβλημάτων ένα θέμα το οποίο θα το αναπτύξουμε στην συνέχεια. II. Δημιουργία του Perceptron IIα. Η συνάρτηση newp( ). Μπορούμε εύκολα να δημιουργήσουμε ένα δίκτυο perceptron χρησιμοποιώντας την συνάρτηση του matlab newp(). Η ακριβής σύνταξη της συνάρτησης είναι η εξής: net=newp(pr, S) Με το όρισμα S αναφερόμαστε στον αριθμό των νευρώνων που θα έχει το επίπεδο του δικτύου, ενώ με το όρισμα PR αναφερόμαστε σε έναν Rx πίνακα (όπου R ο αριθμός των χαρακτηριστικών τιμών του διανύσματος εισόδου) ο οποίος θα περιέχει τα ελάχιστα και τα μέγιστα ανά κατηγορία χαρακτηριστικής τιμής του διανύσματος εισόδου. Παράδειγμα: Θέλουμε να κατασκευάσουμε ένα δίκτυο perceptron το οποίο να αποτελείται από 5 νευρώνες και τα διανύσματα εισόδου του δικτύου είναι τα ακόλουθα: 1 9 7 4 6 5 0 5 6 9 15 3 1 5 1 11 3 8 14 Η εντολή η οποία θα μας κατασκευάσει το δίκτυο αυτό είναι η : net=newp(pr,5) όπου pr: pr= 4 9 15 3 11 7 3

Σημειώνεται ότι δεν χρειάζεται να ορίσουμε με κάποια εντολή την συνάρτηση μεταφοράς που υλοποιεί ο κάθε νευρώνας μιας και αυτή είναι εξ ορισμού η hard- limit και την ρυθμίζει αυτόματα η συνάρτηση newp( ). Επίσης όπως παρατηρούμε τα διανύσματα εισόδου είναι έξι (6) τον αριθμό και κάθε διάνυσμα αποτελείται από τέσσερις (4) χαρακτηριστικές τιμές. Στην πράξη όταν κάνουμε εισαγωγή των διανυσμάτων στο matlab προκειμένου να τροφοδοτήσουμε ένα δίκτυο αυτά τα έξι διανύσματα τα μετατρέπουμε σε δισδιάστατο πίνακα 4x6. IIβ. Αρχικοποίηση των βαρών και των biases. Στο δίκτυο που έχουμε δημιουργήσει από το προηγούμενο παράδειγμα το Matlab έχει κάνει αυτόματα μια αρχικοποίηση για τα βάρη και τα biases. Αν τυπώσουμε την εντολή: inputweights=net.inputweights{1,1} το αποτέλεσμα το οποίο θα δούμε στην οθόνη είναι το ακόλουθο: inputweights= delays: 0 initfcn: initzero learn: 1 learnfcn: learnp learnparam: [] size: [4 5] userdata: [1x1 struct] weightfcn: dotprod Τα παραπάνω μας ενημερώνουν ότι η συνάρτηση αρχικοποίησης που έχει χρησιμοποιηθεί αρχικοποιεί όλα τα βάρη στο 0. Επίσης παρατηρούμε ότι τα βάρη συμμετέχουν στην εκπαίδευση του δικτύου καθώς και ότι η μέθοδος εκπαίδευσής τους είναι η learnp. Μπορούμε να επέμβουμε στην ιδιότητα αρχικοποίησης των βαρών και να χρησιμοποιήσουμε ένα αλγόριθμο τυχαίας αρχικοποίησης πληκτρολογώντας την ακόλουθη εντολή: net.inputweights{1,1}.initfcn= rands

Το ίδιο ισχύει και για την αρχικοποίηση των biases. Το matlab έχει επιλέξει να αρχικοποιεί στο 0 το bias του κάθε νευρώνα. Εμείς μπορούμε να το αλλάξουμε αυτό πληκτρολογώντας την εντολή: net.biases{1}.initfcn= rands Σε κάθε περίπτωση μπορούμε να δούμε στην οθόνη μας τις τιμές της αρχικοποίησης τόσο των βαρών όσο και των biases πληκτρολογώντας τις εντολές: net.iw{1, 1} και net.b{1}. Μπορούμε Αν θέλουμε με την χρήση των προηγουμένων εντολών να δώσουμε δικές μας αρχικές τιμές στα βάρη και στα biases ως εξής: και net.iw{1,1}=a net.b{1}=b όπου a και b είναι πίνακες κατάλληλων διαστάσεων. IIγ. Εκτέλεση Αποτελέσματα από το δίκτυο. Από την στιγμή που έχουμε αρχικοποιήσει το δίκτυο μπορούμε τροφοδοτώντας το με τα διανύσματα εισόδου να δούμε τις εξόδους του. Σημειώνεται ότι τα αποτελέσματα που θα βγάλουμε σε αυτό το στάδιο αφορούν τις αρχικοποιημένες τιμές των βαρών και των biases εφόσον το δίκτυο δεν έχει υποστεί καμία εκπαίδευση. Η συνάρτηση που θα χρησιμοποιήσουμε για να βγάλουμε αποτελέσματα είναι η sim( ). Η χρήση της συνάρτησης αυτής γίνεται εφικτή με την προϋπόθεση ότι έχουμε αρχικοποιήσει τη δομή, τα βάρη και τα biases του δικτύου με τη συνάρτηση newp( ). Η σύνταξη της συνάρτησης είναι η ακόλουθη: a1=sim(net,p) όπου net το αρχικοποιημένο δίκτυο και p είναι το διάνυσμα εισόδου. Στην περίπτωση που έχουμε πολλά μονοδιάστατα διανύσματα τα ενοποιούμε σε έναν δισδιάστατο πίνακα. Ο πίνακας a1 είναι το διάνυσμα εξόδου του δικτύου. Παράδειγμα: Στον κώδικα που ακολουθεί βγάζουμε τα αποτελέσματα από ένα perceptron 5 νευρώνων με διανύσματα εισόδου αυτά του προηγούμενου παραδείγματος και τυχαίες αρχικές τιμές για τα βάρη και τα biases:

a=[ 1 9 7]; b=[ 4 6 5 0]; c=[ 5 6 ]; d=[9 15 3 1]; e=[5 1 11 3]; f=[8 14 ]; v=[a;b;c;d;e;f]; m1=min(v); m=max(v); pr=[transpose(m1) transpose(m)]; p=transpose(v); net=newp(pr,5); net.inputweights{1,1}.initfcn='rands'; net.biases{1}.initfcn='rands' net=init(net); apotelesma=sim(net,p); Το αποτέλεσμα 1 που παίρνουμε από το matlab είναι: apotelesma = και αυτό συμβαίνει διότι η hard- limit συνάρτηση μεταφοράς δίνει ως έξοδο μόνο δύο δυνατές τιμές (0 ή 1). Η συνάρτηση init(net) γράφεται για να ενημερωθεί η δομή net για τις αλλαγές που κάναμε στις ιδιότητές. IΙδ. Εκπαίδευση του δικτύου. Με τον όρο εκπαίδευση του δικτύου για την αναγνώριση προτύπων αναφερόμαστε στην διαδικασία επαναπροσδιορισμού των βαρών και των biases προκειμένου το δίκτυο να είναι ικανό να αναγνωρίζει τα διανύσματα εισόδου σε σχέση με την κατηγορία στην οποία αυτά υπάγονται. Γενικά υπάρχουν δύο 1 Τα αποτελέσματα είναι ενδεικτικά και εξαρτώνται από την αρχικοποίηση που έχει γίνει στα βάρη και τα bias.

κατηγορίες εκπαίδευσης: Supervised (με επίβλεψη) και Unsupervised (χωρίς επίβλεψη). Η εκπαίδευση με επίβλεψη προϋποθέτει ότι για να εκπαιδεύσουμε το δίκτυο χρησιμοποιούμε κάποια διανύσματα εισόδου για τα οποία γνωρίζουμε εκ των προτέρων σε ποια κατηγορία ανήκουν. Στην μη επιβλεπόμενη (unsupervised) εκπαίδευση η πρότερη γνώση για την ταυτότητα των προτύπων δεν υπάρχει. Χρησιμοποιώντας την επιβλεπόμενη εκπαίδευση λοιπόν προσφέρουμε ζευγάρια διανυσμάτων στο δίκτυο (ταυτόχρονα στην είσοδο και στην έξοδο). Το ένα διάνυσμα είναι αυτό της εισόδου και το άλλο είναι η επιθυμητή έξοδος ή στόχος (target) που θέλουμε να βγάλει το δίκτυο για το διάνυσμα της εισόδου που του δώσαμε. Το δίκτυο λοιπόν προσπαθώντας να βγάλει ως έξοδο τον στόχο επαναπροσδιορίζει τα βάρη και τα biases, με κάποιον αλγόριθμο ο οποίος για να γίνει αποδοτικός θα πρέπει ίσως να επαναληφθεί αρκετές φορές. Ορίζουμε ως σφάλμα νευρώνα το e=t- a όπου t ο στόχος και a η πραγματική έξοδος του νευρώνα. Ορίζουμε ως ΔW=e p T τον παράγοντα που θα πρέπει να επαναπροσδιοριστεί το βάρος όπου p T το αντεστραμμένο διάνυσμα της εισόδου. Το βάρος μετά τον επαναπροσδιορισμό W new ορίζεται W new =W old + ΔW. Ομοίως ορίζεται το Δb=e και b new =b old + Δb. Τονίζεται ότι η διαδικασία αυτή ανάλογα και με το πρόβλημα ίσως χρειαστεί να επαναληφθεί αρκετές φορές προκειμένου να καταφέρει το δίκτυο να βγάζει για τα διανύσματα εισόδου τις επιθυμητές τιμές εξόδου. Τότε λέμε ότι το δίκτυο έχει εκπαιδευτεί. Επίσης ορίζουμε στην εκπαίδευση του δικτύου κάθε πέρασμα όλων των διανυσμάτων εισόδου μαζί με τα ζευγάρια τους (στόχους) ως πέρασμα ή epoch. Η συνάρτηση που χρησιμοποιούμε για την εκπαίδευση του δικτύου είναι η train( ). Η σύνταξή της είναι η ακόλουθη: net=train(net, p, t) όπου net είναι το αρχικοποιημένο δίκτυο, p είναι το διάνυσμα εισόδου, και t είναι το διάνυσμα του στόχου. Παράδειγμα: Τροποποιούμε το προηγούμενο δίκτυο ώστε να έχει δύο νευρώνες και έστω ότι τα δύο πρώτα διανύσματα εισόδου ανήκουν στην πρώτη κατηγορία ενώ τα τέσσερα επόμενα ανήκουν στην δεύτερη κατηγορία.

1. a=[-1 9-7];. b=[-4 6 5 0 ]; 3. c=[ 5 6 ]; 4. d=[9 15 3 1]; 5. e=[5 1 11 3]; 6. f=[8 14 ]; 7. v=[a; b; c; d; e; f]; 8. m1=min(v); 9. m=max(v); 10. pr=[transpose(m1) transpose(m)]; 11.p=transpose(v); 1.net=newp(pr,); 13. net.inputweights{1,1}.initfcn='rands'; 14. net.biases{1}.initfcn='rands' 15.net=init(net); 16. t=[[0;1] [0;1] [1;0] [1;0] [1;0] [1;0]]; 17.net.trainParam.epochs=15; 18. net=train(net,p,t); 19. apotelesma=sim(net,p); Στην εντολή 16 του κώδικα ορίζουμε τον στόχο έτσι ώστε τα δύο πρώτα διανύσματα εισόδου να ανήκουν στην πρώτη κατηγορία και τα τέσσερα επόμενα να ανήκουν στην δεύτερη κατηγορία. Στην εντολή 17 ορίζουμε ως μέγιστο αριθμό περασμάτων επαναλήψεων της εκπαίδευσης τον αριθμό 15. Στην εντολή 18 εκπαιδεύουμε το δίκτυο και τα αποτελέσματα που παίρνουμε από το matlab είναι: TRAINC, Epoch 0/15 TRAINC, Epoch /15 TRAINC, Performance goal met. apotelesma = 0 0 1 1 1 1 1 1 0 0 0 0

Παρατηρούμε ότι στο συγκεκριμένο παράδειγμα το δίκτυο εκπαιδεύτηκε στο δεύτερο πέρασμα των διανυσμάτων επομένως δεν υπήρχε λόγος να συνεχίσει τις επαναλήψεις του. Σημειώσεις: Με τον όρο εκπαίδευση εννοούμε τον επαναπροσδιορισμό των βαρών και των biases προς την κατεύθυνση μείωσης του σφάλματος (πραγματική επιθυμητή έξοδος). Είναι κανόνας ότι με όσες περισσότερες επαναλήψεις εκπαιδεύσουμε ένα δίκτυο τόσο καλύτερα αποτελέσματα θα μας βγάλει με την προϋπόθεση ότι το δίκτυο θα μπορεί να εκπαιδευτεί και δεν θα πέσει σε κάποιο τοπικό ελάχιστο όσο αφορά τη συνάρτηση μείωσης του σφάλματος. Η εκπαίδευση του δικτύου μπορεί να σταματήσει για δύο λόγους. Ο πρώτος είναι να έχει μειώσει το σφάλμα (error) στο όριο που του έχουμε θέσει. Στην πραγματικότητα η μείωση του σφάλματος στο 0 είναι σπάνια, επομένως θέτουμε ένα χαμηλό κατώφλι, το οποίο μόλις ο αλγόριθμος εκπαίδευσης συναντήσει η διαδικασία της εκπαίδευσης τερματίζει. Ο δεύτερος λόγος είναι να έχουν τελειώσει τα epochs εκπαίδευσης τα οποία έχουμε ορίσει από την αρχή. Το δίκτυο perceptron αποτελείται μονάχα από ένα επίπεδο και υλοποιεί την hard- - limit συνάρτηση. Αυτό έχει ως αποτέλεσμα να είναι αποδοτικό μονό σε περιπτώσεις προβλημάτων όπου οι κατηγορίες που θέλουμε να διακρίνουμε είναι γραμμικά διαχωρίσιμες. Σε περιπτώσεις άλλων προβλημάτων τα αντιμετωπίζουμε με διαφορετικού τύπου νευρωνικά δίκτυα.