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

Σχετικά έγγραφα
Μοντέλο Perceptron πολλών στρωμάτων Multi Layer Perceptron (MLP)

Το μοντέλο Perceptron

Πραγματοποίηση Νευρωνικών Δικτύων με το Matlab. Νευρωνικά Δίκτυα

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

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

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

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

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

4.3. Γραµµικοί ταξινοµητές

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

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

Τεχνητά Νευρωνικά Δίκτυα. Τσιριγώτης Γεώργιος Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας & Θράκης

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

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

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

Νευρωνικά ίκτυα και Εξελικτικός

Νευρωνικά ίκτυα και Εξελικτικός. Σηµερινό Μάθηµα. επανάληψη Γενετικών Αλγορίθµων 1 η εργασία Επανάληψη νευρωνικών δικτύων Ασκήσεις εφαρµογές

HMY 795: Αναγνώριση Προτύπων

Δίκτυα Συναρτήσεων Βάσης Ακτινικού Τύπου Radial Basis Functions (RBF)

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

Υπολογιστική Νοημοσύνη. Μάθημα 9: Γενίκευση

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

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

Πληροφοριακά Συστήματα & Περιβάλλον

ΕΥΦΥΗΣ ΕΛΕΓΧΟΣ. Ενότητα #12: Εισαγωγή στα Nευρωνικά Δίκτυα. Αναστάσιος Ντούνης Τμήμα Μηχανικών Αυτοματισμού Τ.Ε.

Αναγνώριση Προτύπων. Μη παραμετρικές τεχνικές Αριθμητικά. (Non Parametric Techniques)

Μη γραµµικοί ταξινοµητές Νευρωνικά ίκτυα

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

ΚΕΦΑΛΑΙΟ 5. Matlab GUI για FWSVM και Global SVM

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

ΕΡΩΤΗΜΑΤΑ σε ΝΕΥΡΩΝΙΚΑ

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

Π Τ Υ Χ Ι Α Κ Η /ΔΙ Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

Πανεπιστήμιο Αιγαίου

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

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

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

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

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

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

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

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

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ανάλυση Κυρίων Συνιστωσών (Principal-Component Analysis, PCA)

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

Μέθοδοι Μηχανικής Μάθησης στην επεξεργασία Τηλεπισκοπικών Δεδομένων. Δρ. Ε. Χάρου

ANFIS(Από την Θεωρία στην Πράξη)

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

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

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

HMY 795: Αναγνώριση Προτύπων

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

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

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π.

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

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

Γραµµικοί Ταξινοµητές

Συγκριτική Μελέτη Μεθόδων Κατηγοριοποίησης σε Ιατρικά Δεδομένα

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

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

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

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

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

ΚΑΤΗΓΟΡΙΕΣ ΤΑΞΙΝΟΜΗΣΗΣ

ΠΡΟΣΕΓΓΙΣΗ ΚΑΙ ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ ΜΙΑΣ ΔΙΑΣΤΑΣΗΣ ΜΕ ΣΥΝΔΥΑΣΜΟ MLP ΚΑΙ RBF ΝΕΥΡΩΝΙΚΩΝ ΔΙΚΤΥΩΝ Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ.

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

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

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

Σκοπός μας είναι να εκπαιδεύσουμε το ΝΝ ώστε να πάρει από τα δεδομένα μόνο την «σοφία» που υπάρχει μέσα τους. Αυτή είναι η έννοια της γενίκευσης.

ΠΕΙΡΑΜΑΤΙΚΕΣ ΠΡΟΣΟΜΟΙΩΣΕΙΣ ΚΕΦΑΛΑΙΟ 4. είναι η πραγματική απόκριση του j δεδομένου (εκπαίδευσης ή ελέγχου) και y ˆ j

ΑΝΤΑΓΩΝΙΣΤΙΚΗ ΜΑΘΗΣΗ ΔΙΚΤΥA LVQ και SOM. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ «Αξιοποίηση ερευνητικών στοιχείων δοκών τύπου sandwich με χρήση Νευρωνικών Δικτύων»

Συστήματα Αυτομάτου Ελέγχου

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΝΕΥΡΩΝΙΚΩΝ ΚΑΙ ΣΥΝΤΟΜΟ ΕΓΧΕΙΡΙ ΙΟ MATLAB

HMY 795: Αναγνώριση Προτύπων

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

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

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

Κινητά Δίκτυα Επικοινωνιών. Συμπληρωματικό υλικό. Προσαρμοστική Ισοστάθμιση Καναλιού

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

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

MATLAB. Εισαγωγή στο SIMULINK. Μονάδα Αυτόματης Ρύθμισης και Πληροφορικής

LOGO. Εξόρυξη Δεδομένων. Δειγματοληψία. Πίνακες συνάφειας. Καμπύλες ROC και AUC. Σύγκριση Μεθόδων Εξόρυξης

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

Προσαρμοστικό Σύστημα Νευρο-ασαφούς Συμπερασμού ANFIS (Adaptive Network based Fuzzy Inference System)

Υπολογιστική Νοημοσύνη. Μέρος Β Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα (ΤΝΔ) Αναστάσιος Ντούνης, Καθηγητής 1

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

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

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

ΕΥΦΥΗΣ ΕΛΕΓΧΟΣ. Ενότητα #8: Βελτιστοποίηση Συστημάτων Ασαφούς Λογικής. Αναστάσιος Ντούνης Τμήμα Μηχανικών Αυτοματισμού Τ.Ε.

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Τεχνητά Νευρωνικά Δίκτυα

ΠΡΟΒΛΕΨΗ ΖΗΤΗΣΗΣ ΦΥΣΙΚΟΥ ΑΕΡΙΟΥ

Το δίκτυο SOM. Νευρωνικά Δίκτυα

Χεμπιανά Μοντέλα Μάθησης με Επίβλεψη

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

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

ΜΕΜ251 Αριθμητική Ανάλυση

Transcript:

Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα (Machine Intelligence) Ευστάθιος Αντωνίου Τμήμα Μηχανικών Πληροφορικής Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης E-mail: antoniou@itteithegr Πρόγραμμα Μεταπτυχιακών Σπουδών στη Ρομποτική Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Κεντρικής Μακεδονίας Μάιος 2018 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 1 / 71

Περιεχόμενα 1 Εισαγωγή στο Neural Networks Toolbox του Matlab 2 Perceptron 3 Adaptive Linear Neuron (ADALINE) 4 Multi Layer Perceptron (MLP) Backpropagation 5 Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) 6 Αυτο-οργανούμενοι Χάρτες (Self Organizing Maps SOM) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 2 / 71

Περιεχόμενα 1 Εισαγωγή στο Neural Networks Toolbox του Matlab 2 Perceptron 3 Adaptive Linear Neuron (ADALINE) 4 Multi Layer Perceptron (MLP) Backpropagation 5 Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) 6 Αυτο-οργανούμενοι Χάρτες (Self Organizing Maps SOM) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 3 / 71

Matlab Neural Networks Toolbox Το Matlab διαθέτει το Neural Networks Toolbox για τη δημιουργία, εκπαίδευση και ανάπτυξη εφαρμογών με νευρωνικά δίκτυα https://wwwmathworkscom/products/neural-networkhtml Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 4 / 71

Matlab Neural Networks Toolbox Το Matlab διαθέτει το Neural Networks Toolbox για τη δημιουργία, εκπαίδευση και ανάπτυξη εφαρμογών με νευρωνικά δίκτυα https://wwwmathworkscom/products/neural-networkhtml Κύρια χαρακτηριστικά και δυνατότητες: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 4 / 71

Matlab Neural Networks Toolbox Το Matlab διαθέτει το Neural Networks Toolbox για τη δημιουργία, εκπαίδευση και ανάπτυξη εφαρμογών με νευρωνικά δίκτυα https://wwwmathworkscom/products/neural-networkhtml Κύρια χαρακτηριστικά και δυνατότητες: Δημιουργία και εκπαίδευση μοντέλων μέσω εντολών ή με τη βοήθεια γραφικού περιβάλλοντος (GUI) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 4 / 71

Matlab Neural Networks Toolbox Το Matlab διαθέτει το Neural Networks Toolbox για τη δημιουργία, εκπαίδευση και ανάπτυξη εφαρμογών με νευρωνικά δίκτυα https://wwwmathworkscom/products/neural-networkhtml Κύρια χαρακτηριστικά και δυνατότητες: Δημιουργία και εκπαίδευση μοντέλων μέσω εντολών ή με τη βοήθεια γραφικού περιβάλλοντος (GUI) Διάθεση μεγάλης γκάμας αρχιτεκτονικών, τοπολογιών και τεχνικών εκπαίδευσης νευρωνικών δικτύων Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 4 / 71

Matlab Neural Networks Toolbox Το Matlab διαθέτει το Neural Networks Toolbox για τη δημιουργία, εκπαίδευση και ανάπτυξη εφαρμογών με νευρωνικά δίκτυα https://wwwmathworkscom/products/neural-networkhtml Κύρια χαρακτηριστικά και δυνατότητες: Δημιουργία και εκπαίδευση μοντέλων μέσω εντολών ή με τη βοήθεια γραφικού περιβάλλοντος (GUI) Διάθεση μεγάλης γκάμας αρχιτεκτονικών, τοπολογιών και τεχνικών εκπαίδευσης νευρωνικών δικτύων Μεταφορά γνώσης με τη χρήση προεκπαιδευμένων μοντέλων για τη γρήγορη ανάπτυξη εφαρμογών Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 4 / 71

Matlab Neural Networks Toolbox Το Matlab διαθέτει το Neural Networks Toolbox για τη δημιουργία, εκπαίδευση και ανάπτυξη εφαρμογών με νευρωνικά δίκτυα https://wwwmathworkscom/products/neural-networkhtml Κύρια χαρακτηριστικά και δυνατότητες: Δημιουργία και εκπαίδευση μοντέλων μέσω εντολών ή με τη βοήθεια γραφικού περιβάλλοντος (GUI) Διάθεση μεγάλης γκάμας αρχιτεκτονικών, τοπολογιών και τεχνικών εκπαίδευσης νευρωνικών δικτύων Μεταφορά γνώσης με τη χρήση προεκπαιδευμένων μοντέλων για τη γρήγορη ανάπτυξη εφαρμογών Δυνατότητα χρήσης CPUs/GPUs, σε προσωπικούς υπολογιστές, συστοιχίες και νέφη, για την επιτάχυνση της εκπαίδευσης και της ανάκλησης Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 4 / 71

Matlab Neural Networks Toolbox Το Matlab διαθέτει το Neural Networks Toolbox για τη δημιουργία, εκπαίδευση και ανάπτυξη εφαρμογών με νευρωνικά δίκτυα https://wwwmathworkscom/products/neural-networkhtml Κύρια χαρακτηριστικά και δυνατότητες: Δημιουργία και εκπαίδευση μοντέλων μέσω εντολών ή με τη βοήθεια γραφικού περιβάλλοντος (GUI) Διάθεση μεγάλης γκάμας αρχιτεκτονικών, τοπολογιών και τεχνικών εκπαίδευσης νευρωνικών δικτύων Μεταφορά γνώσης με τη χρήση προεκπαιδευμένων μοντέλων για τη γρήγορη ανάπτυξη εφαρμογών Δυνατότητα χρήσης CPUs/GPUs, σε προσωπικούς υπολογιστές, συστοιχίες και νέφη, για την επιτάχυνση της εκπαίδευσης και της ανάκλησης Αυτομάτη παραγωγή κώδικα για Matlab και δημιουργία blocks που μπορούν να ενσωματωθούν στο Simulink Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 4 / 71

Γρήγορο ξεκίνημα με το NN Toolbox (1/2) Για την εκκίνηση του βοηθού (wizard) για την κατασκευή ενός δικτύου δίνουμε την εντολή nnstart Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 5 / 71

Γρήγορο ξεκίνημα με το NN Toolbox (1/2) Για την εκκίνηση του βοηθού (wizard) για την κατασκευή ενός δικτύου δίνουμε την εντολή nnstart Διαθέσιμα πρότυπα εφαρμογών: Παλινδρόμηση (Fitting app) Αναγνώριση - ταξινόμηση προτύπων (Pattern Recognition app) Συσταδοποίηση (Clustering app) Πρόγνωση χρονοσειρών (Time Series app) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 5 / 71

Γρήγορο ξεκίνημα με το NN Toolbox (2/2) Στη δεύτερη σελίδα του βοηθού (More Information Tab) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 6 / 71

Γρήγορο ξεκίνημα με το NN Toolbox (2/2) Στη δεύτερη σελίδα του βοηθού (More Information Tab) δίνονται οι παρακάτω παραπομπές: Τεκμηρίωση του NN Toolbox Λίστα ολοκληρωμένων παραδειγμάτων του NN Toolbox Λίστα προτύπων για την εκπαίδευση και αξιολόγηση εφαρμογών Λίστα επιδείξεων του πακέτου από το [3] Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 6 / 71

Παράδειγμα χρήσης του nprtool (1/11) Επιλέγουμε Pattern Recognition app στην κύρια σελίδα του διαλόγου nnstart ή δίνουμε απευθείας την εντολή nprtool Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 7 / 71

Παράδειγμα χρήσης του nprtool (1/11) Επιλέγουμε Pattern Recognition app στην κύρια σελίδα του διαλόγου nnstart ή δίνουμε απευθείας την εντολή nprtool Επιλέγουμε Next Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 7 / 71

Παράδειγμα χρήσης του nprtool (2/11) Επιλέγουμε Load Example Data Set και στο διάλογο που ανοίγει διαλέγουμε το σύνολο Wine Vintage Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 8 / 71

Παράδειγμα χρήσης του nprtool (2/11) Επιλέγουμε Load Example Data Set και στο διάλογο που ανοίγει διαλέγουμε το σύνολο Wine Vintage Το σύνολο αυτό περιέχει 13 χαρακτηριστικά από 178 δείγματα κρασιών που προέρχονται από 3 αμπελώνες Το ζητούμενο η αυτόματη ανίχνευση της προέλευσης ενός κρασιού από τα 13 αυτά χαρακτηριστικά (Next) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 8 / 71

Παράδειγμα χρήσης του nprtool (3/11) Αφήνουμε όλες τις ρυθμίσεις στις προεπιλεγμένες τιμές Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 9 / 71

Παράδειγμα χρήσης του nprtool (3/11) Αφήνουμε όλες τις ρυθμίσεις στις προεπιλεγμένες τιμές Το 70% των προτύπων θα χρησιμοποιηθεί για την εκπαίδευση, το 15% για την επικύρωση και το 15% για δοκιμή (Next) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 9 / 71

Παράδειγμα χρήσης του nprtool (4/11) Αφήνουμε όλες τις ρυθμίσεις στις προεπιλεγμένες τιμές Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 10 / 71

Παράδειγμα χρήσης του nprtool (4/11) Αφήνουμε όλες τις ρυθμίσεις στις προεπιλεγμένες τιμές Το κρυφό στρώμα αποτελείται 10 νευρώνες (Next) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 10 / 71

Παράδειγμα χρήσης του nprtool (5/11) Στο νέο παράθυρο επιλέγουμε το πλήκτρο Train Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 11 / 71

Παράδειγμα χρήσης του nprtool (5/11) Στο νέο παράθυρο επιλέγουμε το πλήκτρο Train Το δίκτυο εκπαιδεύεται με τις παραμέτρους που επιλέχθηκαν Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 11 / 71

Παράδειγμα χρήσης του nprtool (6/11) Κάποιοι βασικοί δείκτες αξιολόγησης της εκπαίδευσης εμφανίζονται στο πλαίσιο Results Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 12 / 71

Παράδειγμα χρήσης του nprtool (7/11) Παράλληλα εμφανίζεται το παράθυρο του nntraintool, το οποίο απεικονίζει περισσότερες λεπτομέρειες σχετικά με το μοντέλο που εκπαιδεύτηκε Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 13 / 71

Παράδειγμα χρήσης του nprtool (7/11) Παράλληλα εμφανίζεται το παράθυρο του nntraintool, το οποίο απεικονίζει περισσότερες λεπτομέρειες σχετικά με το μοντέλο που εκπαιδεύτηκε Τα πλήκτρα Performance Training State Error Histogram Confusion Receiver Operating Characteristic, εμφανίζουν λεπτομερή γραφήματα σχετικά με τις επιδόσεις του μοντέλου Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 13 / 71

Παράδειγμα χρήσης του nprtool (8/11) Τα γραφήματα που παράγει το nntraintool Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 14 / 71

Παράδειγμα χρήσης του nprtool (9/11) Επιλέγοντας Next στο κεντρικό παράθυρο του nprtool Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 15 / 71

Παράδειγμα χρήσης του nprtool (9/11) Επιλέγοντας Next στο κεντρικό παράθυρο του nprtool Από το παραπάνω παράθυρο μπορούμε να επιλέξουμε εκ νέου παραμέτρους του δικτύου και να επαναλάβουμε την εκπαίδευση Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 15 / 71

Παράδειγμα χρήσης του nprtool (10/11) Το επόμενο παράθυρο διαλόγου του nprtool Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 16 / 71

Παράδειγμα χρήσης του nprtool (10/11) Το επόμενο παράθυρο διαλόγου του nprtool Δίνει τη δυνατότητα αυτόματης δημιουργίας κώδικα Matlab, Simulink block, κα Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 16 / 71

Παράδειγμα χρήσης του nprtool (11/11) Το τελικό παράθυρο διαλόγου του nprtool Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 17 / 71

Παράδειγμα χρήσης του nprtool (11/11) Το τελικό παράθυρο διαλόγου του nprtool Δίνει τη δυνατότητα αποθήκευσης των δεδομένων και του μοντέλου Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 17 / 71

Περιεχόμενα 1 Εισαγωγή στο Neural Networks Toolbox του Matlab 2 Perceptron 3 Adaptive Linear Neuron (ADALINE) 4 Multi Layer Perceptron (MLP) Backpropagation 5 Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) 6 Αυτο-οργανούμενοι Χάρτες (Self Organizing Maps SOM) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 18 / 71

Το Perceptron Το perceptron είναι ένα δίκτυο που αποτελείται από ένα νευρώνα McCulloch Pitts x 1 1 w 0 x 2 x 3 w 1 w 2 w 3 + F y x n w n Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 19 / 71

Το Perceptron Το perceptron είναι ένα δίκτυο που αποτελείται από ένα νευρώνα McCulloch Pitts x 1 1 w 0 x 2 x 3 w 1 w 2 w 3 + F y x n w n Η πόλωση b (b = θ) μπορεί να θεωρηθεί ως το βάρος w 0 μιας σταθερής εικονικής εισόδου x 0 Συνήθως θέτουμε w 0 = b και x 0 = 1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 19 / 71

Το Perceptron Η F είναι η συνάρτηση ενεργοποίησης του νευρώνα, είναι μία από τις παρακάτω βηματικές συναρτήσεις: H (0/1) (n) = { 1, n > 0 0, n 0 ή H ( 1/1) (n) = { 1, n > 0 1, n 0 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 20 / 71

Το Perceptron Η F είναι η συνάρτηση ενεργοποίησης του νευρώνα, είναι μία από τις παρακάτω βηματικές συναρτήσεις: { { 1, n > 0 1, n > 0 H (0/1) (n) = ή H ( 1/1) (n) = 0, n 0 1, n 0 Η έξοδος του perceptron είναι 0/1 ή 1/1 ανάλογα με την επιλογή της F, δηλαδή γενικά: n n y = F( w i x i ) = F( w i x i + b) i=0 i=1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 20 / 71

Το Perceptron Οι δύο τιμές εξόδου αντιστοιχούν στις κλάσεις των προτύπων προς ταξινόμηση Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 21 / 71

Το Perceptron Οι δύο τιμές εξόδου αντιστοιχούν στις κλάσεις των προτύπων προς ταξινόμηση Η έξοδος του perceptron είναι 1, όταν n w i x i + b > 0 0 ή -1 (ανάλογα με το είδος της βηματικής συνάρτησης), όταν i=1 n w i x i + b 0 i=1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 21 / 71

Το Perceptron Οι δύο τιμές εξόδου αντιστοιχούν στις κλάσεις των προτύπων προς ταξινόμηση Η έξοδος του perceptron είναι 1, όταν n w i x i + b > 0 0 ή -1 (ανάλογα με το είδος της βηματικής συνάρτησης), όταν Γεωμετρικά, η εξίσωση i=1 n w i x i + b 0 i=1 n w i x i + b = 0 ορίζει ένα υπερεπίπεδο που διαχωρίζει τις δύο κλάσεις i=1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 21 / 71

Perceptron - Παράδειγμα Perceptron με δύο εισόδους x 1 x 2 + y b w 1 w 2 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 22 / 71

Perceptron - Παράδειγμα Perceptron με δύο εισόδους x 1 w 1 + y w 2 x 2 b Η εξίσωση w 1 x 1 + w 2 x 2 + b = 0 χωρίζει το επίπεδο σε δύο μέρη 10 8 6 4 x 2 2 0-2 -4-6 -5 0 5 10 x 1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 22 / 71

Perceptron - Παράδειγμα (συνέχεια) Δεδομένα: 40 χαρακτηριστικά προτύπων και ετικέτες στόχων: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 23 / 71

Perceptron - Παράδειγμα (συνέχεια) Δεδομένα: 40 χαρακτηριστικά προτύπων και ετικέτες στόχων: i 1 2 3 20 21 22 23 40 p i,1 068 022 011 013 53 609 487 556 p i,2 026 052 021 03 62 464 573 466 t i 0 0 0 0 1 1 1 1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 23 / 71

Perceptron - Παράδειγμα (συνέχεια) Δεδομένα: 40 χαρακτηριστικά προτύπων και ετικέτες στόχων: i 1 2 3 20 21 22 23 40 p i,1 068 022 011 013 53 609 487 556 p i,2 026 052 021 03 62 464 573 466 t i 0 0 0 0 1 1 1 1 10 8 6 4 x 2 2 0-2 -4-6 -5 0 5 10 x 1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 23 / 71

Perceptron - Παράδειγμα (συνέχεια) Ζητούμενο εκπαίδευσης: Υπολογισμός των συναπτικών βαρών w 1, w 2 και της πόλωσης b, ώστε η ευθεία w 1 x 1 + w 2 x 2 + b = 0, να διαχωρίζει επιτυχώς τις δύο κλάσεις Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 24 / 71

Perceptron - Παράδειγμα (συνέχεια) Ζητούμενο εκπαίδευσης: Υπολογισμός των συναπτικών βαρών w 1, w 2 και της πόλωσης b, ώστε η ευθεία w 1 x 1 + w 2 x 2 + b = 0, να διαχωρίζει επιτυχώς τις δύο κλάσεις Πχ για w 1 = 3165, w 2 = 14027 και b = 9 έχουμε: 10 8 6 4 x 2 2 0-2 -4-6 -5 0 5 10 x 1 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 24 / 71

Perceptron - Παράδειγμα (συνέχεια) Ζητούμενο εκπαίδευσης: Υπολογισμός των συναπτικών βαρών w 1, w 2 και της πόλωσης b, ώστε η ευθεία w 1 x 1 + w 2 x 2 + b = 0, να διαχωρίζει επιτυχώς τις δύο κλάσεις Πχ για w 1 = 3165, w 2 = 14027 και b = 9 έχουμε: 10 8 6 4 x 2 2 0-2 -4-6 -5 0 5 10 x 1 Πειραματιστείτε με το demo nnd4db του Matlab Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 24 / 71

Perceptron - Αλγόριθμος εκπαίδευσης 1 Δεδομένα εισόδου: Εκτεταμένα πρότυπα εκπαίδευσης p i και στόχοι t i, για i = 1, 2,, N 2 Έξοδος: διάνυσμα βαρών w T = [ w 0 w 1 w n ] (υπενθ w0 = b) 3 Αρχικοποίηση: 1 Επιλέγουμε το συντελεστή εκπαίδευσης η > 0 (συνήθως 01 < η < 04) 2 Επιλέγουμε τυχαίο διάνυσμα w (μικρές τιμές) 3 Θέτουμε epoch 0 και μέγιστο αριθμό εποχών max_epoch (epoch = ένας κύκλος εκπαίδευσης με όλα τα πρότυπα) 4 Για κάθε i = 1, 2,, N 1 Υπολογίζουμε την έξοδο του δικτύου, y i, για το πρότυπο p i 2 Ενημερώνουμε τα βάρη w, σύμφωνα με τον κανόνα δέλτα: w w + η(t i y i )p i 5 Αν τα βάρη έχουν αλλάξει και epoch < max_epoch, τότε θέτουμε epoch epoch + 1 και επιστρέφουμε στο βήμα 4 6 Επιστρέφουμε το διάνυσμα των τελικών βαρών w Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 25 / 71

Perceptron Παράδειγμα Matlab net=perceptron; % Create a new perceptron N=40; % Number of training patterns dist=5; % Distance between classes p=[randn(2,n/2) randn(2,n/2)+dist]; % Features matrix 2xN t=[zeros(1,n/2) ones(1,n/2)]; % Targets matrix 1xN plotpv(p,t); % Plot the training patterns net=train(net,p,t); % train the perceptron view(net); % Show net diagram netiw{1} % show the weights netb{1} % show the bias plotpc(netiw{1,1}, netb{1}); % plot the boundary y=net(p) % Trainning patterns classes Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 26 / 71

Perceptron Παράδειγμα Matlab (συνέχεια) Τα αποτελέσματα των εντολών train() και plotpc() Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 27 / 71

Perceptron Ασκήσεις 1 Εκτελέστε ξανά τον κώδικα του προηγούμενου παραδείγματος θέτοντας dist=1 Τι παρατηρείτε; 2 Εκπαιδεύστε ένα perceptron δύο εισόδων ώστε να αναπαράγει τη λογική κάθε μιας από τις λογικές πύλες AND, OR, XOR, των οποίων οι πίνακες αληθείας είναι: AND x 1 x 2 y 0 0 0 0 1 0 1 0 0 1 1 1 OR x 1 x 2 y 0 0 0 0 1 1 1 0 1 1 1 1 XOR x 1 x 2 y 0 0 0 0 1 1 1 0 1 1 1 0 Εναλλακτικά μπορείτε να πειραματιστείτε με το demo nnd4pr του Matlab Τι παρατηρείτε; Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 28 / 71

Perceptron Παρατηρήσεις Το perceptron μπορεί να διαχωρίσει μόνο γραμμικά διαχωρίσιμα πρότυπα Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 29 / 71

Perceptron Παρατηρήσεις Το perceptron μπορεί να διαχωρίσει μόνο γραμμικά διαχωρίσιμα πρότυπα Αν τα πρότυπα εισόδου είναι γραμμικά διαχωρίσιμα, είναι εγγυημένο ότι ο αλγόριθμος εκπαίδευσης συγκλίνει (ο αριθμός βημάτων είναι προβλέψιμος) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 29 / 71

Perceptron Παρατηρήσεις Το perceptron μπορεί να διαχωρίσει μόνο γραμμικά διαχωρίσιμα πρότυπα Αν τα πρότυπα εισόδου είναι γραμμικά διαχωρίσιμα, είναι εγγυημένο ότι ο αλγόριθμος εκπαίδευσης συγκλίνει (ο αριθμός βημάτων είναι προβλέψιμος) Σε αντίθετη περίπτωση ο αλγόριθμος εκπαίδευσης δεν τερματίζει Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 29 / 71

Διαχωρισμός 4 κλάσεων με 2 Perceptron Για το διαχωρισμό τεσσάρων κλάσεων μπορούν να χρησιμοποιηθούν δυο νευρώνες perceptron, όπως στο σχήμα b 1 x 1 w 11 w 21 + y 1 x 2 w 22 w 12 + y 2 b 2 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 30 / 71

Διαχωρισμός 4 κλάσεων με 2 Perceptron Για το διαχωρισμό τεσσάρων κλάσεων μπορούν να χρησιμοποιηθούν δυο νευρώνες perceptron, όπως στο σχήμα b 1 x 1 w 11 w 21 + y 1 x 2 w 22 w 12 + y 2 b 2 Οι δύο νευρώνες έχουν κοινές εισόδους και μια έξοδο ο καθένας Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 30 / 71

Διαχωρισμός 4 κλάσεων με 2 Perceptron Για το διαχωρισμό τεσσάρων κλάσεων μπορούν να χρησιμοποιηθούν δυο νευρώνες perceptron, όπως στο σχήμα b 1 x 1 w 11 w 21 + y 1 x 2 w 22 w 12 + y 2 b 2 Οι δύο νευρώνες έχουν κοινές εισόδους και μια έξοδο ο καθένας Οι δύο έξοδοι μπορούν να σχηματίσουν 4 εξόδους (0, 0), (0, 1), (1, 0), (1, 1), δηλαδή να διαχωρίσουν τέσσερις κλάσεις Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 30 / 71

Perceptron 2x2 Παράδειγμα Matlab clear; clc; K = 10; % number of samples of each class q = 6; % offset of classes % define classes A = [rand(1,k) q; rand(1,k)+q]; B = [rand(1,k)+q; rand(1,k)+q]; C = [rand(1,k)+q; rand(1,k) q]; D = [rand(1,k) q; rand(1,k) q]; P = [A B C D]; % define output coding for classes a = [0 1]'; b = [1 1]'; c = [1 0]'; d = [0 0]'; T=[repmat(a,1,length(A)),repmat(b,1,length(B)) repmat(c,1,length(c)), repmat(d,1,length(d))]; plotpv(p,t); % Plot patterns Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 31 / 71

Perceptron 2x2 Παράδειγμα Matlab (συνέχεια) net = perceptron; % Define the perceptron E = 1; % Initial error linehandle = plotpc(netiw{1},netb{1}); % run first epoch n = 0; while (sse(e) & n<1000) n = n+1; [net,y,e] = adapt(net,p,t); % Update the net linehandle = plotpc(netiw{1},netb{1},linehandle); drawnow; % Refresh the plot pause; % Wait for keypress end Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 32 / 71

Perceptron 2x2 Παράδειγμα Matlab (συνέχεια) Το αποτέλεσμα της εκτέλεσης του perceptron2x2: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 33 / 71

Περιεχόμενα 1 Εισαγωγή στο Neural Networks Toolbox του Matlab 2 Perceptron 3 Adaptive Linear Neuron (ADALINE) 4 Multi Layer Perceptron (MLP) Backpropagation 5 Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) 6 Αυτο-οργανούμενοι Χάρτες (Self Organizing Maps SOM) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 34 / 71

Adaptive Linear Neuron (ADALINE) Το Adaptive Linear Neuron (ADALINE) είναι ένας νευρώνας παρόμοιος με το perceptron x 1 1 w 0 x 2 x 3 w 1 w 2 w 3 + y x n w n Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 35 / 71

Adaptive Linear Neuron (ADALINE) Το Adaptive Linear Neuron (ADALINE) είναι ένας νευρώνας παρόμοιος με το perceptron x 1 1 w 0 x 2 x 3 w 1 w 2 w 3 + y x n w n Η συνάρτηση ενεργοποίησης του ADALINE, είναι η γραμμική συνάρτηση Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 35 / 71

Χαρακτηριστικά του ADALINE Το ADALINE, όπως και το perceptron, μπορεί να χρησιμοποιηθεί για την ταξινόμηση μόνο γραμμικά διαχωρίσιμων προτύπων Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 36 / 71

Χαρακτηριστικά του ADALINE Το ADALINE, όπως και το perceptron, μπορεί να χρησιμοποιηθεί για την ταξινόμηση μόνο γραμμικά διαχωρίσιμων προτύπων Αντί της δυαδικής εξόδου (0/1 ή -1/1) του perceptron, το ADALINE επιστρέφει πραγματικούς αριθμούς Παρόλα αυτά, σε προβλήματα ταξινόμησης, η τελική απόφαση λαμβάνεται όπως και στο perceptron, εφαρμόζοντας τη βηματική συνάρτηση Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 36 / 71

Χαρακτηριστικά του ADALINE Το ADALINE, όπως και το perceptron, μπορεί να χρησιμοποιηθεί για την ταξινόμηση μόνο γραμμικά διαχωρίσιμων προτύπων Αντί της δυαδικής εξόδου (0/1 ή -1/1) του perceptron, το ADALINE επιστρέφει πραγματικούς αριθμούς Παρόλα αυτά, σε προβλήματα ταξινόμησης, η τελική απόφαση λαμβάνεται όπως και στο perceptron, εφαρμόζοντας τη βηματική συνάρτηση Η εκπαίδευση του ADALINE γίνεται με τον κανόνα Widrow Hoff ή LMS (Least Mean Squares), ο οποίος προσαρμόζει τα βάρη του δικτύου με στόχο να ελαχιστοποιήσει το μέσο τετραγωνικό σφάλμα: mse = 1 N N (t i y i ) 2, i=1 όπου N είναι το πλήθος των προτύπων εκπαίδευσης, y i είναι η έξοδος του δικτύου για το πρότυπο p i και t i είναι ο αντίστοιχος στόχος Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 36 / 71

ADALINE Αλγόριθμος εκπαίδευσης 1 Δεδομένα εισόδου: Εκτεταμένα πρότυπα εκπαίδευσης p i και στόχοι t i, για i = 1, 2,, N 2 Έξοδος: διάνυσμα βαρών w T = [ w 0 w 1 w n ] (υπενθ w0 = b) 3 Αρχικοποίηση: 1 Επιλέγουμε συν/στή εκπαίδευσης η > 0, τυχαίο διάνυσμα w και target_mse 2 Θέτουμε epoch 0 και μέγιστο αριθμό εποχών max_epoch 4 Θέτουμε mse = 0 5 Για κάθε i = 1, 2,, N 1 Υπολογίζουμε την έξοδο του δικτύου, y i, για το πρότυπο p i 2 Ενημερώνουμε τα βάρη w και το mse: w w + η(t i y i )p i mse mse + (t i y i ) 2 /N 6 Αν mse > target_mse και epoch < max_epoch, τότε θέτουμε epoch epoch + 1 και επιστρέφουμε στο βήμα 4 7 Επιστρέφουμε το διάνυσμα των τελικών βαρών w Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 37 / 71

ADALINE Παράδειγμα Matlab (συνέχεια) clear; clc; N=40; % Number of training patterns dist=5; % Distance between classes p=[randn(2,n/2) randn(2,n/2)+dist]; % Features matrix 2xN t=[ ones(1,n/2) ones(1,n/2)]; % Targets matrix 1xN plotpv(p,(t+1)/2); % Targets 1/1 mapped to 0/1 for plot lr = maxlinlr(p,'bias'); % max learning rate for given p net = linearlayer(0, lr); % create an ADALINE net = train(net,p,t); % train the ADALINE plotpc(netiw{1,1},netb{1}); % plot the decision boundary w=netiw{1,1} % the weights b=netb{1} % the bias y=net(p) % the outputs of patterns p Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 38 / 71

ADALINE Παράδειγμα Matlab Τα αποτελέσματα εκτέλεσης του προγράμματος Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 39 / 71

ADALINE Παρατηρήσεις Το ADALINE συγκλίνει πάντοτε (με κατάλληλη επιλογή συντελεστή εκπαίδευσης) σε μια επιλογή βαρών που ελαχιστοποιεί το μέσο τετραγωνικό σφάλμα Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 40 / 71

ADALINE Παρατηρήσεις Το ADALINE συγκλίνει πάντοτε (με κατάλληλη επιλογή συντελεστή εκπαίδευσης) σε μια επιλογή βαρών που ελαχιστοποιεί το μέσο τετραγωνικό σφάλμα Σε κάποιες περιπτώσεις το ADALINE μπορεί να αποτύχει στο διαχωρισμό γραμμικά διαχωρίσιμων προτύπων (πχ λόγω αργής σύγκλισης) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 40 / 71

ADALINE Παρατηρήσεις Το ADALINE συγκλίνει πάντοτε (με κατάλληλη επιλογή συντελεστή εκπαίδευσης) σε μια επιλογή βαρών που ελαχιστοποιεί το μέσο τετραγωνικό σφάλμα Σε κάποιες περιπτώσεις το ADALINE μπορεί να αποτύχει στο διαχωρισμό γραμμικά διαχωρίσιμων προτύπων (πχ λόγω αργής σύγκλισης) Δοκιμάστε το προηγούμενο παράδειγμα με πολύ μικρό συντελεστή εκπαίδευσης, πχ lr = maxlinlr(p,'bias')/100 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 40 / 71

ADALINE Παρατηρήσεις Το ADALINE συγκλίνει πάντοτε (με κατάλληλη επιλογή συντελεστή εκπαίδευσης) σε μια επιλογή βαρών που ελαχιστοποιεί το μέσο τετραγωνικό σφάλμα Σε κάποιες περιπτώσεις το ADALINE μπορεί να αποτύχει στο διαχωρισμό γραμμικά διαχωρίσιμων προτύπων (πχ λόγω αργής σύγκλισης) Δοκιμάστε το προηγούμενο παράδειγμα με πολύ μικρό συντελεστή εκπαίδευσης, πχ lr = maxlinlr(p,'bias')/100 Σε περίπτωση που τα πρότυπα δεν είναι γραμμικά διαχωρίσιμα, το ADALINE, δίνει κάποιο αποτέλεσμα που σε ορισμένες περιπτώσεις μπορεί να είναι ικανοποιητικό Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 40 / 71

ADALINE Παρατηρήσεις Το ADALINE συγκλίνει πάντοτε (με κατάλληλη επιλογή συντελεστή εκπαίδευσης) σε μια επιλογή βαρών που ελαχιστοποιεί το μέσο τετραγωνικό σφάλμα Σε κάποιες περιπτώσεις το ADALINE μπορεί να αποτύχει στο διαχωρισμό γραμμικά διαχωρίσιμων προτύπων (πχ λόγω αργής σύγκλισης) Δοκιμάστε το προηγούμενο παράδειγμα με πολύ μικρό συντελεστή εκπαίδευσης, πχ lr = maxlinlr(p,'bias')/100 Σε περίπτωση που τα πρότυπα δεν είναι γραμμικά διαχωρίσιμα, το ADALINE, δίνει κάποιο αποτέλεσμα που σε ορισμένες περιπτώσεις μπορεί να είναι ικανοποιητικό Δοκιμάστε το προηγούμενο παράδειγμα θέτοντας dist=2 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 40 / 71

ADALINE Παρατηρήσεις Το ADALINE συγκλίνει πάντοτε (με κατάλληλη επιλογή συντελεστή εκπαίδευσης) σε μια επιλογή βαρών που ελαχιστοποιεί το μέσο τετραγωνικό σφάλμα Σε κάποιες περιπτώσεις το ADALINE μπορεί να αποτύχει στο διαχωρισμό γραμμικά διαχωρίσιμων προτύπων (πχ λόγω αργής σύγκλισης) Δοκιμάστε το προηγούμενο παράδειγμα με πολύ μικρό συντελεστή εκπαίδευσης, πχ lr = maxlinlr(p,'bias')/100 Σε περίπτωση που τα πρότυπα δεν είναι γραμμικά διαχωρίσιμα, το ADALINE, δίνει κάποιο αποτέλεσμα που σε ορισμένες περιπτώσεις μπορεί να είναι ικανοποιητικό Δοκιμάστε το προηγούμενο παράδειγμα θέτοντας dist=2 Το βέλτιστα βάρη του δικτύου ADALINE μπορούν να υπολογιστούν άμεσα (χωρίς τον αλγόριθμο LMS) με την εντολή net = newlind(p,t) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 40 / 71

Περιεχόμενα 1 Εισαγωγή στο Neural Networks Toolbox του Matlab 2 Perceptron 3 Adaptive Linear Neuron (ADALINE) 4 Multi Layer Perceptron (MLP) Backpropagation 5 Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) 6 Αυτο-οργανούμενοι Χάρτες (Self Organizing Maps SOM) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 41 / 71

Multi Layer Perceptron (MLP) Το Multi Layer Perceptron (MLP) είναι ένα δίκτυο τεχνητών νευρώνων, τροφοδότησης προς τα εμπρός (feed-forward network) που είναι οργανωμένα σε στρώματα (layers) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 42 / 71

Multi Layer Perceptron (MLP) Το Multi Layer Perceptron (MLP) είναι ένα δίκτυο τεχνητών νευρώνων, τροφοδότησης προς τα εμπρός (feed-forward network) που είναι οργανωμένα σε στρώματα (layers) Οι είσοδοι του δικτύου αποτελούν το στρώμα εισόδου (input layer) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 42 / 71

Multi Layer Perceptron (MLP) Το Multi Layer Perceptron (MLP) είναι ένα δίκτυο τεχνητών νευρώνων, τροφοδότησης προς τα εμπρός (feed-forward network) που είναι οργανωμένα σε στρώματα (layers) Οι είσοδοι του δικτύου αποτελούν το στρώμα εισόδου (input layer) Οι νευρώνες που είναι συνδεδεμένοι με τις εξόδους αποτελούν το στρώμα εξόδου (output layer) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 42 / 71

Multi Layer Perceptron (MLP) Το Multi Layer Perceptron (MLP) είναι ένα δίκτυο τεχνητών νευρώνων, τροφοδότησης προς τα εμπρός (feed-forward network) που είναι οργανωμένα σε στρώματα (layers) Οι είσοδοι του δικτύου αποτελούν το στρώμα εισόδου (input layer) Οι νευρώνες που είναι συνδεδεμένοι με τις εξόδους αποτελούν το στρώμα εξόδου (output layer) Τα ενδιάμεσα στρώματα ονομάζονται κρυφά στρώματα (hidden layers) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 42 / 71

Χαρακτηριστικά των MLP Οι νευρώνες του στρώματος εξόδου χρησιμοποιούν ως συνάρτηση ενεργοποίησης τη γραμμική συνάρτηση: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 43 / 71

Χαρακτηριστικά των MLP Οι νευρώνες του στρώματος εξόδου χρησιμοποιούν ως συνάρτηση ενεργοποίησης τη γραμμική συνάρτηση: Οι νευρώνες των κρυφών στρωμάτων χρησιμοποιούν ως συνάρτηση ενεργοποίησης τη λογαριθμική σιγμοειδή συνάρτηση ή την υπερβολική εφαπτόμενη: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 43 / 71

Χαρακτηριστικά των MLP Οι νευρώνες του στρώματος εξόδου χρησιμοποιούν ως συνάρτηση ενεργοποίησης τη γραμμική συνάρτηση: Οι νευρώνες των κρυφών στρωμάτων χρησιμοποιούν ως συνάρτηση ενεργοποίησης τη λογαριθμική σιγμοειδή συνάρτηση ή την υπερβολική εφαπτόμενη: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 43 / 71

MLP ως Καθολικός Προσεγγιστής Αποδεικνύεται ότι ένα δίκτυο MLP με ένα κρυφό στρώμα που περιέχει ικανό αριθμό νευρώνων και ένα στρώμα εξόδου, μπορεί να λειτουργήσει ως Καθολικός Προσεγγιστής (Universal Approximator) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 44 / 71

MLP ως Καθολικός Προσεγγιστής Αποδεικνύεται ότι ένα δίκτυο MLP με ένα κρυφό στρώμα που περιέχει ικανό αριθμό νευρώνων και ένα στρώμα εξόδου, μπορεί να λειτουργήσει ως Καθολικός Προσεγγιστής (Universal Approximator) Θεώρημα Έστω Φ() μια συνεχής συνάρτηση της διανυσματικής μεταβλητής x = [x 1, x 2,, x n ] T και σ() μια συνεχής, φραγμένη και αύξουσα συνάρτηση Τότε, υπάρχει ακέραιος N και τιμές των παραμέτρων v i, w i και b i, i = 1, 2,, N, έτσι ώστε για κάθε ϵ > 0 και κάθε 0 x j 1, j = 1, 2,, n, για τη συνάρτηση F(x) = N v i σ(w T i x + b i ) i=1 να ισχύει F(x) Φ(x) < ϵ Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 44 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Το διάνυσμα x παριστάνει τις εισόδους του MLP Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Το διάνυσμα x παριστάνει τις εισόδους του MLP Το διάνυσμα w i και η παράμετρος b i, παριστάνουν αντίστοιχα τα βάρη και την πόλωση του νευρώνα i του κρυφού στρώματος Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Το διάνυσμα x παριστάνει τις εισόδους του MLP Το διάνυσμα w i και η παράμετρος b i, παριστάνουν αντίστοιχα τα βάρη και την πόλωση του νευρώνα i του κρυφού στρώματος Η συνάρτηση σ() είναι η σιγμοειδής συνάρτηση ενεργοποίησης των νευρώνων του κρυφού στρώματος Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Το διάνυσμα x παριστάνει τις εισόδους του MLP Το διάνυσμα w i και η παράμετρος b i, παριστάνουν αντίστοιχα τα βάρη και την πόλωση του νευρώνα i του κρυφού στρώματος Η συνάρτηση σ() είναι η σιγμοειδής συνάρτηση ενεργοποίησης των νευρώνων του κρυφού στρώματος Η ποσότητα σ(w T i x + b i ) δίνει την έξοδο, του νευρώνα i του κρυφού στρώματος Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Το διάνυσμα x παριστάνει τις εισόδους του MLP Το διάνυσμα w i και η παράμετρος b i, παριστάνουν αντίστοιχα τα βάρη και την πόλωση του νευρώνα i του κρυφού στρώματος Η συνάρτηση σ() είναι η σιγμοειδής συνάρτηση ενεργοποίησης των νευρώνων του κρυφού στρώματος Η ποσότητα σ(w T i x + b i ) δίνει την έξοδο, του νευρώνα i του κρυφού στρώματος Η παράμετρος v i αντιστοιχεί στο βάρος της σύνδεσης του νευρώνα i του κρυφού στρώματος με το νευρώνα εξόδου Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Το διάνυσμα x παριστάνει τις εισόδους του MLP Το διάνυσμα w i και η παράμετρος b i, παριστάνουν αντίστοιχα τα βάρη και την πόλωση του νευρώνα i του κρυφού στρώματος Η συνάρτηση σ() είναι η σιγμοειδής συνάρτηση ενεργοποίησης των νευρώνων του κρυφού στρώματος Η ποσότητα σ(w T i x + b i ) δίνει την έξοδο, του νευρώνα i του κρυφού στρώματος Η παράμετρος v i αντιστοιχεί στο βάρος της σύνδεσης του νευρώνα i του κρυφού στρώματος με το νευρώνα εξόδου Η F(x) εκφράζει την έξοδο του MLP για την είσοδο x Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Καθολικός Προσεγγιστής Ερμηνεία Σε ένα MLP με n εισόδους, ένα κρυφό στρώμα με N νευρώνες και ένα νευρώνα εξόδου: Το διάνυσμα x παριστάνει τις εισόδους του MLP Το διάνυσμα w i και η παράμετρος b i, παριστάνουν αντίστοιχα τα βάρη και την πόλωση του νευρώνα i του κρυφού στρώματος Η συνάρτηση σ() είναι η σιγμοειδής συνάρτηση ενεργοποίησης των νευρώνων του κρυφού στρώματος Η ποσότητα σ(w T i x + b i ) δίνει την έξοδο, του νευρώνα i του κρυφού στρώματος Η παράμετρος v i αντιστοιχεί στο βάρος της σύνδεσης του νευρώνα i του κρυφού στρώματος με το νευρώνα εξόδου Η F(x) εκφράζει την έξοδο του MLP για την είσοδο x Ερμηνεία: Οποιαδήποτε συνεχής συνάρτηση Φ() των μεταβλητών x 1, x 2,, x n, μπορεί να προσεγγιστεί με οσοδήποτε μεγάλη ακρίβεια, για 0 x i 1, από την έξοδο ενός MLP, αρκεί ο αριθμός των νευρώνων (N) στο κρυφό στρώμα να είναι αρκετά μεγάλος Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 45 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ο αλγόριθμος Backpropagation, αποτελεί μια γενίκευση του αλγορίθμου LMS που χρησιμοποιείται στο ADALINE, καθώς βασίζεται στην ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος (mean square error) της εξόδου Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ο αλγόριθμος Backpropagation, αποτελεί μια γενίκευση του αλγορίθμου LMS που χρησιμοποιείται στο ADALINE, καθώς βασίζεται στην ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος (mean square error) της εξόδου Σε γενικές γραμμές, ο αλγόριθμος Backpropagation, για κάθε ζεύγος προτύπου - στόχου εκπαίδευσης {p i, t i }, που δίνεται: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ο αλγόριθμος Backpropagation, αποτελεί μια γενίκευση του αλγορίθμου LMS που χρησιμοποιείται στο ADALINE, καθώς βασίζεται στην ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος (mean square error) της εξόδου Σε γενικές γραμμές, ο αλγόριθμος Backpropagation, για κάθε ζεύγος προτύπου - στόχου εκπαίδευσης {p i, t i }, που δίνεται: Υπολογίζει διαδοχικά τις εξόδους των στρωμάτων προς τα εμπρός (από το στρώμα εισόδου, στα κρυφά στρώματα και τελικά στο στρώμα εξόδου) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ο αλγόριθμος Backpropagation, αποτελεί μια γενίκευση του αλγορίθμου LMS που χρησιμοποιείται στο ADALINE, καθώς βασίζεται στην ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος (mean square error) της εξόδου Σε γενικές γραμμές, ο αλγόριθμος Backpropagation, για κάθε ζεύγος προτύπου - στόχου εκπαίδευσης {p i, t i }, που δίνεται: Υπολογίζει διαδοχικά τις εξόδους των στρωμάτων προς τα εμπρός (από το στρώμα εισόδου, στα κρυφά στρώματα και τελικά στο στρώμα εξόδου) Υπολογίζει το σφάλμα κάθε στρώματος ξεκινώντας από το στρώμα εξόδου Το σφάλμα «μεταδίδεται» προς τα πίσω στα κρυφά στρώματα Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ο αλγόριθμος Backpropagation, αποτελεί μια γενίκευση του αλγορίθμου LMS που χρησιμοποιείται στο ADALINE, καθώς βασίζεται στην ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος (mean square error) της εξόδου Σε γενικές γραμμές, ο αλγόριθμος Backpropagation, για κάθε ζεύγος προτύπου - στόχου εκπαίδευσης {p i, t i }, που δίνεται: Υπολογίζει διαδοχικά τις εξόδους των στρωμάτων προς τα εμπρός (από το στρώμα εισόδου, στα κρυφά στρώματα και τελικά στο στρώμα εξόδου) Υπολογίζει το σφάλμα κάθε στρώματος ξεκινώντας από το στρώμα εξόδου Το σφάλμα «μεταδίδεται» προς τα πίσω στα κρυφά στρώματα Διορθώνει κατάλληλα τα βάρη των νευρώνων όλων των στρωμάτων Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ο αλγόριθμος Backpropagation, αποτελεί μια γενίκευση του αλγορίθμου LMS που χρησιμοποιείται στο ADALINE, καθώς βασίζεται στην ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος (mean square error) της εξόδου Σε γενικές γραμμές, ο αλγόριθμος Backpropagation, για κάθε ζεύγος προτύπου - στόχου εκπαίδευσης {p i, t i }, που δίνεται: Υπολογίζει διαδοχικά τις εξόδους των στρωμάτων προς τα εμπρός (από το στρώμα εισόδου, στα κρυφά στρώματα και τελικά στο στρώμα εξόδου) Υπολογίζει το σφάλμα κάθε στρώματος ξεκινώντας από το στρώμα εξόδου Το σφάλμα «μεταδίδεται» προς τα πίσω στα κρυφά στρώματα Διορθώνει κατάλληλα τα βάρη των νευρώνων όλων των στρωμάτων Η διαδικασία επαναλαμβάνεται για κάθε πρότυπο εκπαίδευσης Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

Οπισθοδιάδοση Σφάλματος (Backpropagation) Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός MLP, ονομάζεται Οπισθοδιάδοση Σφάλματος (Backward Error Propagation ή απλά Backpropagation) Ο αλγόριθμος Backpropagation, αποτελεί μια γενίκευση του αλγορίθμου LMS που χρησιμοποιείται στο ADALINE, καθώς βασίζεται στην ελαχιστοποίηση του μέσου τετραγωνικού σφάλματος (mean square error) της εξόδου Σε γενικές γραμμές, ο αλγόριθμος Backpropagation, για κάθε ζεύγος προτύπου - στόχου εκπαίδευσης {p i, t i }, που δίνεται: Υπολογίζει διαδοχικά τις εξόδους των στρωμάτων προς τα εμπρός (από το στρώμα εισόδου, στα κρυφά στρώματα και τελικά στο στρώμα εξόδου) Υπολογίζει το σφάλμα κάθε στρώματος ξεκινώντας από το στρώμα εξόδου Το σφάλμα «μεταδίδεται» προς τα πίσω στα κρυφά στρώματα Διορθώνει κατάλληλα τα βάρη των νευρώνων όλων των στρωμάτων Η διαδικασία επαναλαμβάνεται για κάθε πρότυπο εκπαίδευσης Ο παραπάνω κύκλος (εποχή epoch) συνεχίζεται είτε μέχρι να επιτευχθεί ο στόχος του σφάλματος, είτε μέχρι να ξεπεραστεί το ο μέγιστος επιτρεπόμενος αριθμός εποχών Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 46 / 71

MLP Ταξινομητής XOR clear; clc; N=40; % Number of patterns per class dist=03; % Spacing between classes % Class A features A=[ rand(2,n/2) dist rand(2,n/2)+dist]; % Class B features B=[ 1 0; 0 1]*[ rand(2,n/2) dist rand(2,n/2)+dist]; p=[a B]; %All patterns t=[ ones(1,n) ones(1,n)]; % Targets matrix r=2; % plot range plotpv(p,(t+1)/2); % Targets 1/1 transformed to 0/1 xlim([ r,r]); ylim([ r,r]); hold on; net=feedforwardnet(2); % Define MLP with 2 hidden neurons [net, tr, y, err] = train(net,p,t); % Train the net Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 47 / 71

MLP Ταξινομητής XOR (συνέχεια) % generate a grid span= r:005:r; [P1,P2]=meshgrid(span,span); pp=[p1(:) P2(:)]'; aa=hardlims(net(pp)); % simulate neural network on a grid mesh(p1,p2,reshape(aa,length(span),length(span)) 5); colormap autumn; view(2); hold off; Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 48 / 71

MLP Ταξινομητής XOR (συνέχεια) Ένα πιθανό (καλό) αποτέλεσμα της εκτέλεσης του προγράμματος: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 49 / 71

MLP Ταξινομητής XOR (συνέχεια) Ένα πιθανό (καλό) αποτέλεσμα της εκτέλεσης του προγράμματος: Εκτελέστε το πρόγραμμα με τις παρακάτω αλλαγές: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 49 / 71

MLP Ταξινομητής XOR (συνέχεια) Ένα πιθανό (καλό) αποτέλεσμα της εκτέλεσης του προγράμματος: Εκτελέστε το πρόγραμμα με τις παρακάτω αλλαγές: Μεταβάλετε την απόσταση μεταξύ των κλάσεων, πχ dist = 01 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 49 / 71

MLP Ταξινομητής XOR (συνέχεια) Ένα πιθανό (καλό) αποτέλεσμα της εκτέλεσης του προγράμματος: Εκτελέστε το πρόγραμμα με τις παρακάτω αλλαγές: Μεταβάλετε την απόσταση μεταξύ των κλάσεων, πχ dist = 01 Αυξήστε το πλήθος των νευρώνων στο κρυφό στρώμα, πχ net=feedforwardnet(3)) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 49 / 71

MLP Ταξινομητής XOR (συνέχεια) Ένα πιθανό (καλό) αποτέλεσμα της εκτέλεσης του προγράμματος: Εκτελέστε το πρόγραμμα με τις παρακάτω αλλαγές: Μεταβάλετε την απόσταση μεταξύ των κλάσεων, πχ dist = 01 Αυξήστε το πλήθος των νευρώνων στο κρυφό στρώμα, πχ net=feedforwardnet(3)) Αυξήστε το πλήθος των κρυφών στρωμάτων, πχ net=feedforwardnet([3 2]) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 49 / 71

MLP Προσέγγιση συνάρτησης clear; clc; % generate data X = 0:01:10; Y = sin(x) + 01 * cos(10 * X) + 02 * X; Xtrain = [X(10:40) X(60:80)]; Ytrain = [Y(10:40) Y(60:80)]; net = feedforwardnet(12); % create a neural network netdivideparamtrainratio = 10; % training set [%] netdivideparamvalratio = 00; % validation set [%] netdivideparamtestratio = 00; % test set [%] net = train(net,xtrain,ytrain); % train a neural network Yout = net(x); % simulate the network plot(x,y,'r '); % original function plot hold on; plot(x,yout,'b '); % simulation plot plot(xtrain,ytrain,'g*'); % plot training points only legend('original function','mlp', 'training data','location','northwest') hold off; Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 50 / 71

MLP Προσέγγιση συνάρτησης (συνέχεια) Το αποτέλεσμα της εκτέλεσης του προγράμματος: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 51 / 71

MLP Προσέγγιση συνάρτησης (συνέχεια) Το αποτέλεσμα της εκτέλεσης του προγράμματος: Πειραματιστείτε με πλήθος των νευρώνων ή/και των κρυφών στρωμάτων Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 51 / 71

Περιεχόμενα 1 Εισαγωγή στο Neural Networks Toolbox του Matlab 2 Perceptron 3 Adaptive Linear Neuron (ADALINE) 4 Multi Layer Perceptron (MLP) Backpropagation 5 Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) 6 Αυτο-οργανούμενοι Χάρτες (Self Organizing Maps SOM) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 52 / 71

Δίκτυα Ακτινικής Βάσης (RBF) Τα Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) είναι δίκτυα νευρώνων, αποτελούμενα, όπως και το MLP, από το στρώμα εισόδου, το κρυφό στρώμα και το στρώμα εξόδου Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 53 / 71

Δίκτυα Ακτινικής Βάσης (RBF) Τα Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) είναι δίκτυα νευρώνων, αποτελούμενα, όπως και το MLP, από το στρώμα εισόδου, το κρυφό στρώμα και το στρώμα εξόδου Οι έξοδοι των νευρώνων του κρυφού στρώματος είναι το αποτέλεσμα της εφαρμογής μιας συνάρτησης ακτινικής βάσης Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 53 / 71

Δίκτυα Ακτινικής Βάσης (RBF) Τα Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) είναι δίκτυα νευρώνων, αποτελούμενα, όπως και το MLP, από το στρώμα εισόδου, το κρυφό στρώμα και το στρώμα εξόδου Οι έξοδοι των νευρώνων του κρυφού στρώματος είναι το αποτέλεσμα της εφαρμογής μιας συνάρτησης ακτινικής βάσης Οι νευρώνες του στρώματος εξόδου χρησιμοποιούν ως συνάρτηση ενεργοποίησης τη συνήθη γραμμική συνάρτηση Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 53 / 71

Δίκτυα Ακτινικής Βάσης (RBF) Βασική ιδέα: Οι είσοδοι που είναι αρκετά «κοντινές», πρέπει να παράγουν «παρόμοιες» εξόδους, άρα πρέπει να είναι το αποτέλεσμα της ενεργοποίησης του ίδιου νευρώνα Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 54 / 71

Δίκτυα Ακτινικής Βάσης (RBF) Βασική ιδέα: Οι είσοδοι που είναι αρκετά «κοντινές», πρέπει να παράγουν «παρόμοιες» εξόδους, άρα πρέπει να είναι το αποτέλεσμα της ενεργοποίησης του ίδιου νευρώνα Με την εκπαίδευση, τα βάρη των κρυφών νευρώνων αντιπροσωπεύουν τα κέντρα κλάσεων «κοντινών» εισόδων Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 54 / 71

Δίκτυα Ακτινικής Βάσης (RBF) Βασική ιδέα: Οι είσοδοι που είναι αρκετά «κοντινές», πρέπει να παράγουν «παρόμοιες» εξόδους, άρα πρέπει να είναι το αποτέλεσμα της ενεργοποίησης του ίδιου νευρώνα Με την εκπαίδευση, τα βάρη των κρυφών νευρώνων αντιπροσωπεύουν τα κέντρα κλάσεων «κοντινών» εισόδων Οι έξοδοι των νευρώνων του κρυφού στρώματος είναι το αποτέλεσμα της εφαρμογής μιας συνάρτησης ακτινικής βάσης, δηλαδή μια συνάρτησης της μορφής f i (x) = ϕ( x c i ), όπου x c i είναι η ευκλείδεια απόσταση της εισόδου x από το κέντρο c i, του νευρώνα i Η συνάρτηση ϕ() είναι συνήθως η Gaussian: ϕ(u) = exp( u 2 ) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 54 / 71

Δίκτυα RBF Χαρακτηριστικά Όπως και για το MLP, αποδεικνύεται ότι ένα δίκτυο RBF που περιέχει ικανό αριθμό νευρώνων και ένα στρώμα εξόδου, μπορεί να λειτουργήσει ως Καθολικός Προσεγγιστής (Universal Approximator) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 55 / 71

Δίκτυα RBF Χαρακτηριστικά Όπως και για το MLP, αποδεικνύεται ότι ένα δίκτυο RBF που περιέχει ικανό αριθμό νευρώνων και ένα στρώμα εξόδου, μπορεί να λειτουργήσει ως Καθολικός Προσεγγιστής (Universal Approximator) Τόσο το MLP όσο και το RBF εκπαιδεύονται με επίβλεψη, όμως: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 55 / 71

Δίκτυα RBF Χαρακτηριστικά Όπως και για το MLP, αποδεικνύεται ότι ένα δίκτυο RBF που περιέχει ικανό αριθμό νευρώνων και ένα στρώμα εξόδου, μπορεί να λειτουργήσει ως Καθολικός Προσεγγιστής (Universal Approximator) Τόσο το MLP όσο και το RBF εκπαιδεύονται με επίβλεψη, όμως: Όλα τα στρώματα του MLP εκπαιδεύονται μέσω του αλγορίθμου backpropagation με επίβλεψη Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 55 / 71

Δίκτυα RBF Χαρακτηριστικά Όπως και για το MLP, αποδεικνύεται ότι ένα δίκτυο RBF που περιέχει ικανό αριθμό νευρώνων και ένα στρώμα εξόδου, μπορεί να λειτουργήσει ως Καθολικός Προσεγγιστής (Universal Approximator) Τόσο το MLP όσο και το RBF εκπαιδεύονται με επίβλεψη, όμως: Όλα τα στρώματα του MLP εκπαιδεύονται μέσω του αλγορίθμου backpropagation με επίβλεψη Το κρυφό στρώμα του RBF είναι αυτο-οργανούμενο, δηλαδή εκπαιδεύεται χωρίς να λαμβάνονται υπόψη οι στόχοι των προτύπων Η εκπαίδευση του κρυφού στρώματος είναι αρκετά αργή (βλέπε k-means παρακάτω) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 55 / 71

Δίκτυα RBF Χαρακτηριστικά Όπως και για το MLP, αποδεικνύεται ότι ένα δίκτυο RBF που περιέχει ικανό αριθμό νευρώνων και ένα στρώμα εξόδου, μπορεί να λειτουργήσει ως Καθολικός Προσεγγιστής (Universal Approximator) Τόσο το MLP όσο και το RBF εκπαιδεύονται με επίβλεψη, όμως: Όλα τα στρώματα του MLP εκπαιδεύονται μέσω του αλγορίθμου backpropagation με επίβλεψη Το κρυφό στρώμα του RBF είναι αυτο-οργανούμενο, δηλαδή εκπαιδεύεται χωρίς να λαμβάνονται υπόψη οι στόχοι των προτύπων Η εκπαίδευση του κρυφού στρώματος είναι αρκετά αργή (βλέπε k-means παρακάτω) Αντίθετα, η εκπαίδευση του γραμμικού στρώματος εξόδου είναι αρκετά γρήγορη Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 55 / 71

Εκπαίδευση του δικτύου RBF Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός δικτύου RBF, λειτουργεί σε δύο στάδια: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 56 / 71

Εκπαίδευση του δικτύου RBF Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός δικτύου RBF, λειτουργεί σε δύο στάδια: Τοποθετούμε τα κέντρα των RBF του κρυφού στρώματος: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 56 / 71

Εκπαίδευση του δικτύου RBF Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός δικτύου RBF, λειτουργεί σε δύο στάδια: Τοποθετούμε τα κέντρα των RBF του κρυφού στρώματος: χρησιμοποιώντας τον αλγόριθμο k-means για την αρχικοποίηση των θέσεων των κέντρων, ή Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 56 / 71

Εκπαίδευση του δικτύου RBF Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός δικτύου RBF, λειτουργεί σε δύο στάδια: Τοποθετούμε τα κέντρα των RBF του κρυφού στρώματος: χρησιμοποιώντας τον αλγόριθμο k-means για την αρχικοποίηση των θέσεων των κέντρων, ή ταυτίζουμε τα κέντρα των RBF με κάποια τυχαία επιλεγμένα πρότυπα Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 56 / 71

Εκπαίδευση του δικτύου RBF Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός δικτύου RBF, λειτουργεί σε δύο στάδια: Τοποθετούμε τα κέντρα των RBF του κρυφού στρώματος: χρησιμοποιώντας τον αλγόριθμο k-means για την αρχικοποίηση των θέσεων των κέντρων, ή ταυτίζουμε τα κέντρα των RBF με κάποια τυχαία επιλεγμένα πρότυπα Υπολογίζουμε τις εξόδους του κρυφού στρώματος για κάθε πρότυπο και εκπαιδεύουμε τα βάρη του στρώματος εξόδου, λαμβάνοντας υπόψη τους στόχους των προτύπων εκπαίδευσης, χρησιμοποιώντας: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 56 / 71

Εκπαίδευση του δικτύου RBF Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός δικτύου RBF, λειτουργεί σε δύο στάδια: Τοποθετούμε τα κέντρα των RBF του κρυφού στρώματος: χρησιμοποιώντας τον αλγόριθμο k-means για την αρχικοποίηση των θέσεων των κέντρων, ή ταυτίζουμε τα κέντρα των RBF με κάποια τυχαία επιλεγμένα πρότυπα Υπολογίζουμε τις εξόδους του κρυφού στρώματος για κάθε πρότυπο και εκπαιδεύουμε τα βάρη του στρώματος εξόδου, λαμβάνοντας υπόψη τους στόχους των προτύπων εκπαίδευσης, χρησιμοποιώντας: τον κανόνα LMS του ADALINE ή Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 56 / 71

Εκπαίδευση του δικτύου RBF Ο αλγόριθμος εκπαίδευσης που χρησιμοποιείται για την εκπαίδευση ενός δικτύου RBF, λειτουργεί σε δύο στάδια: Τοποθετούμε τα κέντρα των RBF του κρυφού στρώματος: χρησιμοποιώντας τον αλγόριθμο k-means για την αρχικοποίηση των θέσεων των κέντρων, ή ταυτίζουμε τα κέντρα των RBF με κάποια τυχαία επιλεγμένα πρότυπα Υπολογίζουμε τις εξόδους του κρυφού στρώματος για κάθε πρότυπο και εκπαιδεύουμε τα βάρη του στρώματος εξόδου, λαμβάνοντας υπόψη τους στόχους των προτύπων εκπαίδευσης, χρησιμοποιώντας: τον κανόνα LMS του ADALINE ή την άμεση μέθοδο υπολογισμού των βαρών του ADALINE, Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 56 / 71

Ο αλγόριθμος k-means 1 Δεδομένα Εισόδου: Πλήθος κέντρων k και πρότυπα x i, i = 1, 2,, N 2 Έξοδος: Κέντρα c i, i = 1, 2,, k 3 Αρχικοποίηση: Θέτουμε τα κέντρα c i σε τυχαία σημεία 4 Για κάθε πρότυπο x i, i = 1, 2,, N, 1 Βρίσκουμε το κοντινότερο κέντρο c j από το x i, 2 Θέτουμε label(i) j 5 Για κάθε κέντρο c j, j = 1, 2,, k, 1 c j μέσος όρος των x i με label(i) = j 6 Αν υπήρξε μετακίνηση κάποιου κέντρου στα βήματα 4-5, τότε πήγαινε στο βήμα 4 7 Επέστρεψε τα κέντρα c i, i = 1, 2,, k Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 57 / 71

Ο αλγόριθμος k-means Το αποτέλεσμα της εκτέλεσης του αλγορίθμου k-means για k = 3 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 58 / 71

RBF Ταξινομητής XOR clear; clc; N=40; % Number of patterns per class dist=03; % Spacing between classes % Class A features A=[ rand(2,n/2) dist rand(2,n/2)+dist]; % Class B features B=[ 1 0; 0 1]*[ rand(2,n/2) dist rand(2,n/2)+dist]; p=[a B]; %All patterns t=[ ones(1,n) ones(1,n)]; % Targets matrix net = newrb(p,t); % Create and train the RBF Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 59 / 71

RBF Ταξινομητής XOR (συνέχεια) figure(1); r = 2; % plot range plotpv(p,(t+1)/2); % Targets 1/1 transformed to 0/1 xlim([ r,r]); ylim([ r,r]); hold on; span = r:005:r; % generate a grid [P1,P2] = meshgrid(span,span); pp = [P1(:) P2(:)]'; % simulate neural network on a grid aa = hardlims(net(pp)); mesh(p1,p2,reshape(aa,length(span),length(span)) 5); colormap autumn; view(2); hold off; Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 60 / 71

RBF Ταξινομητής XOR (συνέχεια) Ένα πιθανό αποτέλεσμα της εκτέλεσης του προγράμματος: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 61 / 71

RBF Ταξινομητής XOR (συνέχεια) Ένα πιθανό αποτέλεσμα της εκτέλεσης του προγράμματος: Εκτελέστε την εντολή view(net) Τι παρατηρείτε; Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 61 / 71

RBF Ταξινομητής XOR (συνέχεια) Ένα πιθανό αποτέλεσμα της εκτέλεσης του προγράμματος: Εκτελέστε την εντολή view(net) Τι παρατηρείτε; Αφού συμβουλευτείτε την τεκμηρίωση της εντολής newrb αντικαταστήστε την net = newrb(p,t) με net = newrb(p,t,001,10,80,1) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 61 / 71

RBF Προσέγγιση συνάρτησης clear; clc; % generate data X = 0:01:10; Y = sin(x) + 01 * cos(10 * X) + 02 * X; Xtrain = [X(10:40) X(60:80)]; Ytrain = [Y(10:40) Y(60:80)]; spread = 01; % choose a spread constant K = 80; % choose max number of neurons goal = 0001; % performance goal (SSE) net = newrb(xtrain,ytrain,goal,spread,k,5); % create RBF Yout = net(x); % simulate the network plot(x,y,'r '); % original function plot hold on; plot(x,yout,'b '); % simulation plot plot(xtrain,ytrain,'g*'); % plot training points only legend('original function','rbfn', 'training data','location','northwest'); hold off; Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 62 / 71

RBF Προσέγγιση (συνέχεια) Το αποτέλεσμα της εκτέλεσης του προγράμματος: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 63 / 71

RBF Προσέγγιση (συνέχεια) Το αποτέλεσμα της εκτέλεσης του προγράμματος: Πόσοι νευρώνες χρησιμοποιήθηκαν για την προσέγγιση; Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 63 / 71

RBF Προσέγγιση (συνέχεια) Το αποτέλεσμα της εκτέλεσης του προγράμματος: Πόσοι νευρώνες χρησιμοποιήθηκαν για την προσέγγιση; Πειραματιστείτε με τις παραμέτρους spread, K, goal Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 63 / 71

Περιεχόμενα 1 Εισαγωγή στο Neural Networks Toolbox του Matlab 2 Perceptron 3 Adaptive Linear Neuron (ADALINE) 4 Multi Layer Perceptron (MLP) Backpropagation 5 Δίκτυα Ακτινικής Βάσης (Radial Basis Function RBF) 6 Αυτο-οργανούμενοι Χάρτες (Self Organizing Maps SOM) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 64 / 71

Αυτο-οργανούμενοι χάρτες (SOM) Οι αυτο-οργανούμενοι χάρτες (Self Organizing Maps SOM ή Kohonen Maps) ανήκουν στην κατηγορία των νευρωνικών δικτύων που εκπαιδεύονται χωρίς επίβλεψη (δεν υπάρχουν στόχοι) Το αποτέλεσμα είναι η απεικόνιση του χώρου των προτύπων, σε ένα χώρο μικρής διάστασης (συνήθως 1 ή 2 διαστάσεων), που ονομάζεται χάρτης (map) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 65 / 71

Αυτο-οργανούμενοι χάρτες (SOM) Οι αυτο-οργανούμενοι χάρτες (Self Organizing Maps SOM ή Kohonen Maps) ανήκουν στην κατηγορία των νευρωνικών δικτύων που εκπαιδεύονται χωρίς επίβλεψη (δεν υπάρχουν στόχοι) Το αποτέλεσμα είναι η απεικόνιση του χώρου των προτύπων, σε ένα χώρο μικρής διάστασης (συνήθως 1 ή 2 διαστάσεων), που ονομάζεται χάρτης (map) Οι νευρώνες τοποθετούνται αρχικά σε κάποια γεωμετρική διάταξη Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 65 / 71

Αυτο-οργανούμενοι χάρτες (SOM) Οι αυτο-οργανούμενοι χάρτες (Self Organizing Maps SOM ή Kohonen Maps) ανήκουν στην κατηγορία των νευρωνικών δικτύων που εκπαιδεύονται χωρίς επίβλεψη (δεν υπάρχουν στόχοι) Το αποτέλεσμα είναι η απεικόνιση του χώρου των προτύπων, σε ένα χώρο μικρής διάστασης (συνήθως 1 ή 2 διαστάσεων), που ονομάζεται χάρτης (map) Οι νευρώνες τοποθετούνται αρχικά σε κάποια γεωμετρική διάταξη Κάθε νευρώνας συνδέεται με τις εισόδους μέσω αρχικά τυχαίων βαρών Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 65 / 71

Αυτο-οργανούμενοι χάρτες (SOM) Βασική ιδέα: Οι διεγέρσεις με παρόμοια χαρακτηριστικά διεγείρουν συγκεκριμένες περιοχές του δικτύου Κάτι αντίστοιχο συμβαίνει στα βιολογικά νευρικά δίκτυα, όπως στον οπτικό και στον ακουστικό φλοιό Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 66 / 71

Αυτο-οργανούμενοι χάρτες (SOM) Βασική ιδέα: Οι διεγέρσεις με παρόμοια χαρακτηριστικά διεγείρουν συγκεκριμένες περιοχές του δικτύου Κάτι αντίστοιχο συμβαίνει στα βιολογικά νευρικά δίκτυα, όπως στον οπτικό και στον ακουστικό φλοιό Κάθε διάνυσμα εισόδου συγκρίνεται με όλα τα βάρη και στη θέση που υπάρχει καλύτερο ταίριασμα, αναδεικνύεται ο νικητής νευρώνας (Best Matching Unit - BMU) Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 66 / 71

Αυτο-οργανούμενοι χάρτες (SOM) Βασική ιδέα: Οι διεγέρσεις με παρόμοια χαρακτηριστικά διεγείρουν συγκεκριμένες περιοχές του δικτύου Κάτι αντίστοιχο συμβαίνει στα βιολογικά νευρικά δίκτυα, όπως στον οπτικό και στον ακουστικό φλοιό Κάθε διάνυσμα εισόδου συγκρίνεται με όλα τα βάρη και στη θέση που υπάρχει καλύτερο ταίριασμα, αναδεικνύεται ο νικητής νευρώνας (Best Matching Unit - BMU) Για κάθε νευρώνα νικητή υπολογίζεται η ακτίνα της γειτονιάς του Σε κάθε βήμα της εκπαίδευσης η ακτίνα αυτή μικραίνει Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 66 / 71

Αυτο-οργανούμενοι χάρτες (SOM) Βασική ιδέα: Οι διεγέρσεις με παρόμοια χαρακτηριστικά διεγείρουν συγκεκριμένες περιοχές του δικτύου Κάτι αντίστοιχο συμβαίνει στα βιολογικά νευρικά δίκτυα, όπως στον οπτικό και στον ακουστικό φλοιό Κάθε διάνυσμα εισόδου συγκρίνεται με όλα τα βάρη και στη θέση που υπάρχει καλύτερο ταίριασμα, αναδεικνύεται ο νικητής νευρώνας (Best Matching Unit - BMU) Για κάθε νευρώνα νικητή υπολογίζεται η ακτίνα της γειτονιάς του Σε κάθε βήμα της εκπαίδευσης η ακτίνα αυτή μικραίνει Τα βάρη των νευρώνων στη γειτονιά του νικητή προσαρμόζονται ώστε να «πλησιάσουν» προς αντίστοιχο πρότυπο Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 66 / 71

SOM Εφαρμογές Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 67 / 71

Αλγόριθμος Εκπαίδευσης του SOM 1 Δεδομένα Εισόδου: Πρότυπα x i, i = 1, 2,, N, μέγεθος s και διάταξη του χάρτη 2 Έξοδος: Βάρη w i, i = 1, 2,, s 2 3 Αρχικοποίηση: Επιλέγουμε τυχαία βάρη w i, i = 1, 2,, s 2 4 Για κάθε πρότυπο x i, i = 1, 2,, N, 1 Επιλέγουμε το νευρώνα νικητή j 0, που είναι πλησιέστερος στο x i, δηλαδή το νευρώνα με βάρη w j, έτσι ώστε xi j 0 = arg min w T j 2 j 2 Ενημερώνουμε το βάρος των νευρώνων που ανήκουν στη γειτονιά του νικητή w T k w T k + η(t)(x i w T k ) όπου η(t) είναι ο ρυθμός εκπαίδευσης, εφόσον το k είναι δείκτης που αντιστοιχεί σε νευρώνα της γειτονιάς του j 0 5 Μειώνουμε κατάλληλα το ρυθμό εκπαίδευσης και την ακτίνα της γειτονιάς 6 Αν υπήρξε μεταβολή κάποιου βάρους στα βήματα 4-5, τότε πήγαινε στο βήμα 4 7 Επέστρεψε τα βάρη w i, i = 1, 2,, s 2 Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 68 / 71

SOM Παράδειγμα Συσταδοποίησης clear; clc; N=100; % Number of patterns per class dist=05; % Spacing between classes % Training vectors in 3D space p=[ rand(3,n/2) dist rand(3,n/2)+dist]; % Setup a 10x10 hexagonal grid net = selforgmap([10 10]); % train the SOM net = train(net,p); Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 69 / 71

SOM Παράδειγμα Συσταδοποίησης (συνέχεια) Ένα πιθανό αποτέλεσμα της εκτέλεσης του προγράμματος: Ε Αντωνίου (antoniou@itteithegr) Νευρωνικά Δίκτυα στο Matlab Ρ202 Μηχανική Ευφυΐα 70 / 71