ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΔΗΜΟΚΡΙΤΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΡΑΚΗΣ Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών Βασ. Σοφίας 12 67100 Ξάνθη HELLENIC REPUBLIC DEMOCRITUS UNIVERSITY OF THRACE SCHOOL OF ENGINEERING Department of Civil Engineering 12. Vas. Sofias Str 67100 Xanthi ANFIS(Από την Θεωρία στην Πράξη) Καθηγητής: κ. Παπαδόπουλος Βασίλειος Φοιτητές: Γκαραλέας Άγγελος Σεραφείμ Αθανάσιος Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 1
Τι ονομάζεται "ΑNFIS" Adaptive Network based Fuzzy Inferencee System (ANFIS). Ένα από τα πρώτα υβριδικά νεύρο-ασαφή συστήματα. Αναπαριστά ένα ασαφές σύστημα τύπου Sugeno σχεδιασμένο με μια ειδική αρχιτεκτονική νευρωνικού δικτύου 5 επιπέδων το οποίο έχει την δυνατότητα να παρέχει τα θετικά στοιχεία και των δύο σε μοναδικό πλαίσιο (Nedjah, Nadia). Το σύστημα επαγωγών ανταποκρίνεται σε ένα σύνολοο κανόνωνν IF-THEN ( Εάν-Τότε ) οι οποίοι διαθέτουν ικανότητα εκμάθησης έτσι ώστε να ανταποκρίνονται σε μη-γραμμικές συναρτήσεις. Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 2
Περιγραφή αρχιτεκτονικής πενταεπίπεδης λειτουργίας του ANFIS: Επίπεδο 1: Κάθε κόμβος i σε αυτό το επίπεδο είναι ένας προσαρμόσιμος κόμβος με μία συνάρτηση κόμβου O i 1 (x) = μ Ai (x) όπου: x η είσοδος στον κόμβο i A i - γλωσσική ταμπέλα (small, large,κλπ.)που σχετίζεται με τη συνάρτηση του κόμβου. Με άλλα λόγια, το O i 1 είναι ο βαθμός συμμετοχής του Ai και καθορίζει το βαθμό στον οποίο η είσοδος x ικανοποιεί την A i Επίπεδο 2: Κάθε κόμβος σε αυτό το επίπεδο είναι ένας σταθερός (fixed) κόμβος Π, του οποίου η έξοδος είναι το γινόμενο όλων των εισερχόμενων σημάτων. Επίπεδο 3: Κάθε κόμβος σε αυτό το επίπεδο είναι ένας σταθερός κόμβος Ν. Ο i-ιστός κόμβος υπολογίζει το λόγο του βαθμού ενεργοποίησης (firing strength) του i-οστού κανόνα στο άθροισμα των βαθμών ενεργοποίησης όλων των κανόνων: i 1,2 Oι έξοδοι αυτού του επιπέδου ονομάζονται κοινωνικοποιημένοι βαθμοί ενεργοποίησης (normalized firing strengths) Επίπεδο 4: Κάθε κόμβος i σε αυτό το επίπεδο είναι ένας προσαρμόσιμος κόμβος με μία συνάρτηση κόμβου., όπου: - η έξοδος του επιπέδου 3 {p i, q i, r i }- το σύνολο παραμέτρων. Οι παράμετροι σε αυτό το επίπεδο αναφέρονται ως επακόλουθοι (consequent parameters). Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 3
Επίπεδο 5: Ο μοναδικός κόμβος σε αυτό το επίπεδο είναι ένας σταθερός κόμβος Σ που υπολογίζει τη συνολική έξοδο σαν το ολικό άθροισμα όλων των εισερχόμενων σημάτωνσυναρτήσεων:, Πρόκειται για ένα δικτύου με προσαρμοζόμενες παραμέτρους το οποίο είναι ισοδύναμο με σύστημα ασαφούς συλλογιστικής Sugeno. Ιδιότητες νευρωνικών δικτύων: Μπορούν και εκπαιδεύονται, π.χ. ένα νευρωνικό μπορεί να εκπαιδευτεί να αναγνωρίζει ένα «σήμα» στην είσοδο του. Μπορούν και γενικεύουν π.χ. μπορούν να εκπαιδευτούν ώστε να μάθουν κάποιους κανόνες. Το νευρωνικό μπορεί να γενικεύσει (μέσα σε κάποια όρια) τους κανόνες αυτούς όπως ακριβώς κάνει ο άνθρωπος. Έχουν ανοχή στο θόρυβο. Ως θόρυβος ορίζεται μια συνάρτηση (τυχαία ή γνωστή) ή οποία επηρεάζει την συνάρτηση (ή τις συναρτήσεις) με την οποία εργαζόμαστε και έχει ως αποτέλεσμα την αλλοίωσή της. Αν π.χ. το νευρωνικό εκπαιδευτεί να αναγνωρίζει κάποια πρότυπα (π.χ. κάποια εικόνα), τότε αν παρουσιαστεί η εικόνα αυτή στην είσοδο του αλλοιωμένη (δηλαδή με θόρυβο), τότε το νευρωνικό θα την αναγνωρίζει και πάλι. Τα νευρωνικά δίκτυα ονομάζονται και «παγκόσμιοι προσεγγιστές» (universal approximators) γιατί μπορούν να προσεγγίσουν οποιαδήποτε συνάρτηση (data fitting) Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 4
Περιορισμοί του ANFIS Οι κυριότεροι περιορισμοί του ANFIS που αναφέρονται στην διεθνή βιβλιογραφία είναι: Βασίζεται σε ένα FIS τύπου Sugeno. Έχει μια έξοδο, που λαμβάνεται με τη μέθοδο αποσαφοποίησης σταθμισμένου μέσου. Όλες οι συναρτήσεις συμμετοχής εξόδου πρέπει να είναι ίδιου τύπου, είτε γραμμικές είτε σταθερές. Δεν μπορεί να γίνεται κοινή χρήση κανόνων. Διαφορετικοί κανόνες δεν μπορούν να έχουν την ίδια συνάρτηση συμμετοχής εξόδου. Πρέπει να υπάρχουν βάρη σε κάθε κανόνα. Δεν μπορεί να χρησιμοποιηθεί οποιαδήποτε συνάρτηση συμμετοχής, παρά μόνο προκαθορισμένες που επιβάλλουν οι ορισμοί του ANFIS. Ο κάθε κανόνας να είναι αυτοτελής. Παρουσιάζεται σφάλμα αν το μοντέλο του Ασαφούς Συμπερασματικού Συνόλου (F.I.S.) που έχουμε δημιουργήσει δεν συνάδει με τους περιορισμούς αυτούς. Επιπλέον δεν μπορεί να δεχθεί όλες τις προσαρμοσμένες επιλογές που επιτρέπουν τα ασαφή συμπεράσματα. Δηλαδή δεν μπορούμε να φτιάξουμε τις δικές μας συναρτήσεις μελών και άλλες ασαφείς συναρτήσεις. Μπορούμε μόνο να χρησιμοποιήσουμε αυτές που διαθέτει το πρόγραμμα. Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 5
The ANFIS Editor GUI (Γραφικό Περιβάλλον ANFIS) Για την εκκίνηση του γραφικού προβάλλοντος, πληκτρολογούμε την εντολή: anfisedit Το παραπάνω γραφικό περιβάλλον του ANFIS εμφανίζεται στην οθόνη Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 6
1. Φόρτωση ή αποθήκευση ενός ασαφούς συστήματος τύπου Sugeno. 2. Undo και προβολή των κανόνων, των βαθμών συμμετοχής και των χαρακτηριστικών του FIS που το ANFIS έχει δημιουργήσει μόνο του 3. Άνοιγμα και προβολή ή εξαγωγή ενός FIS μες κάποιο άλλο GUI 4. Περιοχή σχεδίασης και προβολής δεδομένων 5. Πλήθος και κατάσταση των μεταβλητών εισόδου-εξόδου καθώς και του βαθμού συμμετοχής τους 6. Μετά τη δημιουργία ή τη φόρτωση ενός FIS μας επιτρέπει να έχουμε μια γραφική απεικόνιση της δομής των σχέσεων μεταξύ των δεδομένων εισόδου- εξόδου 7. Έλεγχος αποτελεσμάτων από ένα Μοντέλο FIS το οποίο έχουμε φορτώσει προηγουμένως. Το αποτέλεσμα θα εμφανιστεί στην περιοχή σχεδίασης 8. "Εκπαίδευση" FIS αφού έχουμε θέσει μέθοδο βελτιστοποίησης, ποσοστό αποδεκτής απόκλισης και πλήθος επαναλήψεων 9. Φόρτωση FIS ή δημιουργία FIS από φορτωμένα δεδομένα χρησιμοποιώντας τον αριθμό των MFs και τους ορισμούς και τα χαρακτηριστικά που θέλουμε να έχει το FIS που θα δημιουργήσουμε 10. Διαγραφή δεδομένων που έχουν φορτωθεί μέχρι στιγμής και καθαρισμός περιοχής σχεδίασης( Διαφορά από κουμπί "clear plot" ότι το δεύτερο καθαρίζει μόνο την περιοχή σχεδίασης 11. Φόρτωση δεδομένων εκπαίδευσης, ελέγχου και μοντέλου FIS από το δίσκο ή από το workspace ή demo δεδομένα. Τα δεδομένα θα εμφανιστούν στην περιοχή σχεδίασης 12. Δεδομένα εκπαίδευσης εμφανίζονται ως Ο Ο Δεδομένα ελέγχου εμφανίζονται ως + + Δεδομένα εξόδου του FIS εμφανίζονται ως * * Για τις demo βάσεις δεδομένων που έχει το Matlab εργαζόμαστε ως εξής: Πληκτρολογούμε τις ακόλουθες εντολές στην γραμμή εντολών του Matlab για να φορτώσουμε τις βάσεις δεδομένων από τον φάκελο fuzzydemo στην επιφάνεια εργασίας του Matlab(workspace): loadfuzex1trndata.dat loadfuzex2trndata.dat loadfuzex1chkdata.dat loadfuzex2chkdata.dat Στην συνέχεια ανοίγουμε τον ANFIS Editor και εργαζόμαστε όπως στο παράδειγμα που ακλουθεί. Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 7
Παράδειγμα χρήσης του ANFIS στο matlab Στο παράδειγμα μας χρησιμοποιούμε το ANFIS στην περίπτωση ενός συστήματος φρένων. Κατ αρχήν χρειαζόμαστε μία βάση δεδομένων. Υποθέτουμε πως η διανυόμενη απόσταση ενός αυτοκίνητου μέχρι την πλήρη ακινητοποίηση του εξαρτάται από 2 παράγοντες: το βαθμό ολισθηρότητας του οδοστρώματος (παίρνει τιμές από 0 μέχρι 1, 1 στην περίπτωση που ο δρόμος είναι ολισθηρός) και της ταχύτητας που κινείται το αυτοκίνητο. Έτσι, γνωρίζοντας πως η διανυόμενη απόσταση προκύπτει από τον αλγόριθμο επιβράδυνσης (π.χ. αν ένα αυτοκίνητο κινείται με 100 km/h, τότε η διανυόμενη απόσταση που θα σταματήσει προκύπτει αν τα 100 km/h τα διαιρέσουμε με το 10 και το πηλίκο υψωθεί στο τετράγωνο. Αν ο καιρός είναι βροχερός τότε η διανυόμενη απόσταση τριπλασιάζεται. Σε αυτήν την απόσταση πρέπει να προστεθεί και η απόσταση η οποία διανύει το αυτοκίνητο μέχρι ο οδηγός να διαπιστώσει την ύπαρξη εμποδίου και να πατήσει φρένο, ο λεγόμενος χρόνος απόκρισης. Η απόσταση εξ αιτίας του χρόνου απόκρισης υπολογίζεται αν διαιρεθεί η ταχύτητα του αυτοκινήτου δια 3,6), δημιουργούμε την παρακάτω βάση δεδομένων με τυχαίες τιμές ολισθηρότητας και ταχύτητας, από τις οποίες προκύπτει η διανυομένη απόσταση του οχήματος: Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 8
Στη συνέχεια πρέπει να εισάγουμε τη βάση δεδομένων στο Matlab. Αφού ανοίξουμε το Matlab, πηγαίνουμε στο παράθυρο workspace δεξιά, κάνουμε δεξί κλικ και δημιουργούμε μια νέα μεταβλητή που στο παράδειγμα μας την μετονομάζουμε σε abs. Μετά, κάνουμε διπλό κλικ στην abs και μόλις ανοίξει επικολλούμε τη βάση δεδομένων που δημιουργήσαμε. Ανοίγουμε το παράθυρο του Anfis πληκτρολογώντας anfisedit Επιλεγούμε την επιλογή worksp. Για να φορτώσει τα δεδομένα και το training γιατί ακόμα βρισκόμαστε στη φάση <<εκπαίδευσης>> του anfis και πατάμε Load Data Στο παράθυρο που άνοιξε πληκτρολογούμε abs όποτε η οθόνη πρέπει να μοιάζει κάπως έτσι: Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 9
Τώρα πρέπει να δημιουργήσουμε ένα FIS οπότε κάνουμε κλικ στο Generate FIS Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 10
Στο πλαίσιο Number of MFs πληκτρολογούμε 3 3 προκειμένου οι γλωσσικές μας μεταβλητές να έχουν 3 επίπεδα (Low, Medium, High), επιλέγουμε trapmf για την τραπεζοειδή μορφή και linear και πατάμε ΟΚ. Στην αρχική οθόνη του Anfis αν επιλέξουμε Structure μπορούμε να δούμε τη δομή του ασαφούς μοντέλου μας. Οι 2 μαύρες κουκίδες στο input είναι οι μεταβλητές ολισθηρότητας και ταχύτητας. Δεξιά, οι 3 λεύκες κουκίδες που αντιστοιχούν σε κάθε μεταβλητή δηλώνουν την βαθμίδα κάθε μεταβλητής (low, medium,high). Οι μπλε κουκίδες είναι οι κανόνες τους οποίους βγάζει μόνο του το anfis και μας οδηγούν στην τελευταία μαύρη κουκίδα, που είναι η διανυόμενη απόσταση. Τώρα πρέπει να <<εκπαιδεύσουμε>> το πρόγραμμα. Στην αρχική οθόνη στο πεδίο train FIS επιλεγούμε τη μέθοδο hybrid και στο πλαίσιο epoch πληκτρολογούμε 50 επαναλήψεις και πατάμε train now: Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 11
Βλέπουμε πως το σφάλμα είναι 0,30629 πράγμα το όποιο είναι αρκετά καλή προσέγγιση. Κανονικά θα έπρεπε να εισάγουμε μια ακόμα βάση δεδομένων για έλεγχο των αποτελεσμάτων. Στην προκειμένη περίπτωση θα χρησιμοποιήσουμε την ίδια βάση δεδομένων που χρησιμοποιήσαμε για την εισαγωγή των δεδομένων. Στο πεδίο Test FIS επιλέγουμε training data και πατάμε test now. Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 12
Παρατηρούμε πως τα κόκκινα σημεία του ελέγχου συμπίπτουν με τους κύκλους των δεδομένων. Στη συνέχεια αν πατήσουμε view -> Rules μπορούμε να πειραματιστούμε για οποιαδήποτε τιμή ταχύτητας και βαθμού ολισθηρότητας του οδοστρώματος. Παρατηρούμε πως με σταθερή την ταχύτητα και αυξημένη ολισθηρότητα η διανυόμενη απόσταση μέχρι την πλήρη ακινητοποίηση του αυτοκινήτου αυξάνεται, ενώ όσο μειώνεται η ταχύτητα η διανυόμενη απόσταση με σταθερή ολισθηρότητα μειώνεται. Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 13
Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 14
Αν πατήσουμε view -> Surface μπορούμε να δούμε σε 3 άξονες όλα τα εισαγόμενα και εξαγόμενα δεδομένα Πολιτικοί Μηχανικοί ΔΠΘ Σελίδα 15