Παρεμβολή συνάρτησης μιας μεταβλητής με την βοήθεια νευρωνικών δικτύων Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής και Επικοινωνιών Παρεμβολή συνάρτησης μιας μεταβλητής με την βοήθεια νευρωνικών δικτύων Πτυχιακή Εργασία Σκρέττα Ιωάννα Α.Μ. 2008 Επιβλέπων Καθηγητής Δημήτρης Βαρσάμης Σέρρες, Μάιος 2012
Νευρωνικά Δίκτυα (ΝΔ) Τα Τεχνητά Νευρωνικά Δίκτυα (ΤΝΔ) αποτελούν μια προσπάθεια προσέγγισης της λειτουργίας του ανθρώπινου εγκεφάλου Η αρχιτεκτονική τους βασίζεται στην αρχιτεκτονική των Βιολογικών Νευρωνικών Δικτύων Η εξέλιξή τους ξεκίνησε από την δεκαετία του ‘80 Τα ΤΝΔ έδωσαν το προνόμιο στους Η/Υ να επεξεργάζονται και να αναγνωρίζουν δεδομένα Τα Νευρωνικά Δίκτυα (ΝΔ) εκπαιδεύονται με ένα σύνολο παραδειγμάτων, έτσι ώστε να μάθουν το περιβάλλον τους και να μπορούν να επιλύουν παρόμοια προβλήματα με τα παραδείγματα που εκπαιδεύτηκαν
Διαφορές Συμβατικών Υπολογιστών με Νευρωνικά Δίκτυα Συμβατικοί Υπολογιστές Επεξεργάζονται την πληροφορία, όπως ο ανθρώπινος εγκέφαλος Χρησιμοποιούν αλγοριθμική προσέγγιση Πρέπει να γνωρίζουν τον τρόπο υλοποίησης κάθε προβλήματος για να το λύσουν Εκπαιδεύονται με ένα σύνολο παραδειγμάτων παρόμοιων του προβλήματος και το επιλύουν με τον ίδιο τρόπο Τα αποτελέσματά τους είναι προβλέψιμα Τα αποτελέσματά τους είναι μη προβλέψιμα
Το μοντέλο του Τεχνητού Νευρώνα Ένας νευρώνας είναι μια μονάδα επεξεργασίας πληροφορίας. Τα τρία βασικά στοιχεία αυτού του μοντέλου είναι: Ένα σύνολο από συνάψεις ή συνδετικούς κρίκους με άλλους νευρώνες Ένας αθροιστής συνάψεων Μια συνάρτηση ενεργοποίησης, μέσω της οποίας βγαίνει η έξοδος του νευρώνα w1 x1 x2 w2 Συνάρτηση ενεργοποίησης Σ Έξοδος :: : xn wn
Νευρωνικά Δίκτυα - Νευρώνας Τα ΤΝΔ είναι μια συλλογή από νευρώνες που συνδέονται μεταξύ τους Κάθε νευρωνικό δίκτυο αποτελείται από τρία βασικά στρώματα νευρώνων: Νευρώνες εισόδου Νευρώνες εξόδου Κρυμμένοι νευρώνες
Ορισμός Παρεμβολής Παρεμβολή: Εύρεση μιας συνάρτησης, η οποία προσεγγίζει ένα σύνολο δεδομένων έτσι ώστε η τιμή της συνάρτησης αυτής στα δεδομένα σημεία να είναι ίση με την αντίστοιχη δεδομένη τιμή. Τύπος Παρεμβολής (xi, yi) P(x) Tα (xi,yi) είναι σημεία μιας συνάρτησης f. Η P(x) είναι μια πολυωνυμική συνάρτηση η οποία προσεγγίζει αυτά τα σημεία. Δηλαδή ισχύει η συνθήκη Ρ(xi) = f(xi), i=0,1,..,n
Είδη παρεμβολής Πιο συνηθισμένοι τύποι παρεμβολής στην μαθηματική ανάλυση είναι: Lagrange Newton Μετασχηματισμός Fourier FFT (Fast Fourier Transform)
Σκοπός Πτυχιακής Ο σκοπός της πτυχιακής εργασίας είναι η δημιουργία ενός νευρωνικού δικτύου το οποίο να λύνει το πρόβλημα της παρεμβολής πολυωνυμικών συναρτήσεων. ΕΚΠΑΙΔΕΥΣΗ Είσοδος με πραγματικές τιμές Έξοδος νευρωνικού Νευρωνικό Δίκτυο Είσοδος με τυχαίες τιμές Έξοδος νευρωνικού Νευρωνικό Δίκτυο
Αρχιτεκτονικές Νευρωνικών Δικτύων Οι αρχιτεκτονικές που χρησιμοποιήθηκαν είναι δύο: Τεχνητά Νευρωνικά Δίκτυα Προώθησης με Ανάδραση (Backpropagation feed-forward Neural Networks) Τεχνητά Νευρωνικά Δίκτυα Ακτινικής Συνάρτησης Βάσης (Radial-basis Function Neural Networks)
Νευρωνικό Δίκτυο Back-Propagation Η εκπαίδευση του αλγορίθμου χωρίζεται σε δύο φάσεις: 1η φάση: εμπρόσθιο πέρασμα Αρχικοποιούνται τα βάρη Μεταδίδονται τα δεδομένα σε όλα τα στρώματα Δημιουργείται συνάρτηση ενεργοποίησης σε όλους τους νευρώνες xi y Επίπεδο εξόδου Επίπεδο εισόδου Κρυφά επίπεδα
Νευρωνικό Δίκτυο Back-Propagation 2η φάση: αντίστροφο πέρασμα Η διαδικασία ξεκινά από το επίπεδο εξόδου Υπολογίζεται η διαφορά της επιθυμητής εξόδου z με την έξοδο y Υπολογίζονται τα σφάλματα κάθε νευρώνα Αλλαγή συναπτικών βαρών xi y Δ=z-y
Ορίζεται ως ένα δίκτυο τριών στρωμάτων (Είσοδοι-Κρυφοί-Έξοδοι) Νευρωνικό Δίκτυο RBF Ορίζεται ως ένα δίκτυο τριών στρωμάτων (Είσοδοι-Κρυφοί-Έξοδοι) Δομή και Εκπαίδευση: Αποτελείται μόνο από ένα κρυφό στρώμα Το κρυφό στρώμα έχει μη-γραμμική συνάρτηση ενεργοποίησης (συνήθως Γκαουσιανή) Το στρώμα εξόδου έχει γραμμική συνάρτηση ενεργοποίησης : Επίπεδο εξόδου Επίπεδο εισόδου Κρυφοί νευρώνες
Δημιουργία ΝΔ Προώθησης με Ανάδραση (Back-Propagation) Συνάρτηση δημιουργίας ΝΔ: net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) Χρησιμοποιείται για την δημιουργία του νευρωνικού δικτύου Συνάρτηση αρχικοποίησης των συναπτικών βαρών Κάθε νευρωνικό δίκτυο, πρίν εκπαιδευτεί πρέπει να αρχικοποιεί τα συναπτικά του βάρη και τις πολώσεις. Αυτό γίνεται με την συνάρτηση init. Συνάρτηση εκπαίδευσης Ένα δίκτυο είναι απαραίτητο να εκπαιδεύεται με παραδείγματα για να είναι σε θέση να επιλύει παρόμοια προβλήματα. Έτσι σε αυτή την περίπτωση εκπαιδεύεται το δίκτυο με τα σημεία της πολυωνυμικής συνάρτησης και την επιθυμητή έξοδο. Αυτό γίνεται με την συνάρτηση train Συνάρτηση εξομοίωσης Η συνάρτηση αυτή παίρνει σαν είσοδο το νευρωνικό net και ένα διάνυσμα εισόδου, το οποίο μπορεί να είναι είτε κάποιο διάνυσμα πάνω σε αυτά που έχει εκπαιδευτεί το δίκτυο είτε τυχαία. Η έξοδος της συνάρτησης εξομοίωσης μας δείχνει την έξοδο του δικτύου. Η κλήση της, γίνεται με την συνάρτηση sim
Παρεμβολή 3ου βαθμού πολυώνυμο Για την παρεμβολή 3ου βαθμού συνάρτησης χρειάζονται 4 σημεία. Συνάρτηση Δημιουργίας net1=newff(p,v,[1 2 1],{'tansig','tansig','purelin'},'trainlm','learngdm','mse') όπου p, η είσοδος του νευρωνικού η οποία ισούται με 4 σημεία και όπου v, η επιθυμητή έξοδος, δηλαδή οι τιμές της πολυωνυμικής συνάρτησης 3ου βαθμού σε αυτά τα σημεία. Συνάρτηση ενεργοποίησης συναπτικών βαρών net1=init(net1) Συνάρτηση εκπαίδευσης net1=train(net1,p,v) Συνάρτηση εξομοίωσης ty=sim(net1,tx) Δομή ΝΔ:
Αποτελέσματα ΝΔ, για 3ου βαθμού πολυώνυμο Παρεμβολή νευρωνικού δικτύου σε 3ου βαθμού πολυώνυμο Παρεμβολή νευρωνικού δικτύου σε τυχαία σημεία
Αποτελέσματα ΝΔ, για 3ου βαθμού πολυώνυμο Το νευρωνικό παρεμβάλει πολύ καλά τις πραγματικές τιμές της πολυωνυμικής συνάρτησης
Αποτελέσματα ΝΔ, για 3ου βαθμού πολυώνυμο Δεν παρεμβάλει πολύ καλά τις τυχαίες τιμές της πολυωνυμικής συνάρτησης , όμως ακολουθεί επιτυχώς την καμπύλη της Το σφάλμα, δηλαδή η διαφορά μεταξύ των τιμών νευρωνικού δικτύου και τυχαίων τιμών του πολυωνύμου είναι, error=0.0687
Παρεμβολή 4ου βαθμού πολυώνυμο Είναι γνωστό από τον ορισμό της παρεμβολής ότι για την παρεμβολή πολυωνυμικής συνάρτησης 4ου βαθμού χρειάζονται 5 σημεία. Όμως, σύμφωνα με δοκιμές που πραγματοποιήθηκαν στο νευρωνικό δίκτυο, προκύπτει ότι για την καλύτερη προσέγγιση του νευρωνικού χρειάζονται 7 σημεία. Δημιουργία συνάρτησης νευρωνικού: net1=newff(p,v,[2 24 2],{'tansig','tansig','purelin'},'trainlm','learngdm','mse') Όπου p, η είσοδος του νευρωνικού το οποίο ισούται με 7 σημεία και όπου v η επιθυμητή έξοδος. Δομή ΝΔ:
Αποτελέσματα ΝΔ, για 4ου βαθμού πολυώνυμο Παρεμβολή νευρωνικού δικτύου σε 4ου βαθμού πολυώνυμο Παρεμβολή νευρωνικού δικτύου σε τυχαία σημεία
Αποτελέσματα ΝΔ, για 4ου βαθμού πολυώνυμο Το νευρωνικό παρεμβάλει πολύ καλά τις πραγματικές τιμές της πολυωνυμικής συνάρτησης
Αποτελέσματα ΝΔ, για 4ου βαθμού πολυώνυμο Παρεμβάλει αρκετά καλά τις τυχαίες τιμές της πολυωνυμικής συνάρτησης Το σφάλμα, σε αυτή την περίπτωση είναι, error=0.0026
Παρεμβολή 5ου βαθμού πολυώνυμο Είναι γνωστό από τον ορισμό της παρεμβολής ότι για την παρεμβολή πολυωνυμικής συνάρτησης 5ου βαθμού χρειάζονται 6 σημεία. Όμως, σύμφωνα με δοκιμές που πραγματοποιήθηκαν στο νευρωνικό δίκτυο, προκύπτει ότι για την καλύτερη προσέγγιση του νευρωνικού χρειάζονται 15 σημεία. Δημιουργία συνάρτησης νευρωνικού: net1=newff(p,v,[2 24 2],{'tansig','tansig','purelin'},'trainlm','learngdm','mse') Όπου p, η είσοδος του νευρωνικού, το οποίο ισούται με 15 σημεία και όπου v η επιθυμητή έξοδος. Δομή ΝΔ:
Αποτελέσματα ΝΔ, για 5ου βαθμού πολυώνυμο Παρεμβολή νευρωνικού δικτύου σε 5ου βαθμού πολυώνυμο Παρεμβολή νευρωνικού δικτύου σε τυχαία σημεία
Αποτελέσματα ΝΔ, για 5ου βαθμού πολυώνυμο Το νευρωνικό παρεμβάλει πολύ καλά τις πραγματικές τιμές της πολυωνυμικής συνάρτησης
Αποτελέσματα ΝΔ, για 5ου βαθμού πολυώνυμο Παρεμβάλει αρκετά καλά τις τυχαίες τιμές της πολυωνυμικής συνάρτησης Το σφάλμα, σε αυτή την περίπτωση είναι, error=0.0054
Δημιουργία ΝΔ Ακτινικής Συνάρτησης Βάσης (RBF) Η δημιουργία του ΝΔ γίνεται με την κλήση της συνάρτησης “newrb”. Πλεονέκτημα είναι ότι προσθέτει όσους νευρώνες χρειάζεται στο κρυφό επίπεδο έτσι ώστε να πετύχει το χαμηλότερο σφάλμα. Γι’ αυτό το λόγο ορίζουμε έναν μεγάλο αριθμό νευρώνων που να καλύπτει και τις τρείς περιπτώσεις. Συνάρτηση δημιουργίας ΝΔ: net = newrb( P, T, goal, spread, MN, DF ) net= newrb(p,v,0,1,30,25) Όπου p, η είσοδος του ΝΔ και όπου v, οι τιμές της πολυωνυμικής συνάρτησης Συνάρτηση Εξομοίωσης: Είναι απαραίτητη σε κάθε νευρωνικό δίκτυο γιατί δίνει τα αποτελέσματα του νευρωνικού για καινούριες τιμές Δομή ΝΔ: Επίπεδο εισόδου (xi): Για 3ου βαθμού 4 σημεία Για 4ου βαθμού, 5 σημεία Για 5ου βαθμού, 6 σημεία yi xi :
Αποτελέσματα “newrb” Παρεμβολή νευρωνικού δικτύου σε πολυωνυμικές συναρτήσεις Παρεμβολή νευρωνικού δικτύου σε τυχαία σημεία πολυωνυμικής συνάρτησης
Αποτελέσματα “newrb” Το νευρωνικό παρεμβάλει πολύ καλά τις πραγματικές τιμές της πολυωνυμικής συνάρτησης
Αποτελέσματα “newrb” Παρεμβάλει πολύ καλά τις τυχαίες τιμές της πολυωνυμικής συνάρτησης Το σφάλμα, σε αυτή την περίπτωση είναι, error=4.4405e-005
Συμπεράσματα Παρεμβολή μιας πολυωνυμικής συνάρτησης μπορεί να πραγματοποιηθεί με τη βοήθεια νευρωνικών δικτύων. Παρεμβάλουν και οι δυο αρχιτεκτονικές νευρωνικών δικτύων. Μειονεκτήματα αρχιτεκτονικής ΝΔ Προώθηση με Ανάδραση: Δεν παρεμβάλει πολύ καλά τις πολυωνυμικές συναρτήσεις. Χρειάζεται περισσότερα σημεία απ’ ότι απαιτεί ο ορισμός της παρεμβολής μιας πολυωνυμικής συνάρτησης. Ως καταλληλότερη κρίνεται η αρχιτεκτονική Ακτινικής Συνάρτησης Βάσης, γιατί παρεμβάλει καλύτερα τις πολυωνυμικές συναρτήσεις και με όσα σημεία απαιτεί ο ορισμός της παρεμβολής.