ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Διπλωματική Εργασία της Ηροδότου Αναστασίας υπό την επίβλεψη του Eπίκουρου Kαθηγητή κ. Συμεωνίδη Ανδρέα και του Υποψήφιου Διδάκτορα Αλλαμανή Μίλτου Ανίχνευση αποκλίνουσας συμπεριφοράς συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Θεσσαλονίκη 2013
Ευχαριστίες Σε αυτό το σημείο θα ήθελα να ευχαριστήσω τους ανθρώπους που συνέβαλαν στην πραγματοποίηση αυτής της διπλωματικής εργασίας. Ευχαριστώ θερμά τον επιβλέποντα καθηγητή μου, κ. Συμεωνίδη Ανδρέα για την εμπιστοσύνη που μου έδειξε στην ανάθεση της παρούσας διπλωματικής εργασίας, καθώς επίσης και για τη συνεχή υποστήριξη που μου παρείχε με συμβουλές και υποδείξεις καθ όλη την διάρκεια της εκπόνησης της. Θα ήθελα επίσης να ευχαριστήσω ιδιαίτερα τον κ. Αλλαμανή Μίλτο, υποψήφιο διδάκτορα του Πανεπιστημίου του Εδιμβούργου για την υποστήριξη και την τεράστια βοήθεια που μου παρείχε κατά την διάρκεια της συνεργασίας μας. Ακολούθως θα ήθελα να ευχαριστήσω τον αδερφό μου Μάριο, για τις συμβουλές και τη βοήθεια του κατά τη διάρκεια της συγγραφής της εργασίας, και για τη συνεχή του υποστήριξη σε όλους τους τομείς της ζωής μου. Τέλος θα ήθελα να ευχαριστήσω την υπόλοιπη οικογένεια και τους αγαπημένους μου φίλους, που είναι πάντα δίπλα μου και χωρίς τη συμπαράσταση τους, καμία από τις επιτυχίες μου δεν θα ήταν εφικτή.
Εισαγωγή Η ανίχνευση ανωμαλιών αποτελεί ένα πολύ σημαντικό υποκλάδο του ελέγχου συστημάτων, καθώς όλοι οι τομείς ανθρωπίνων δραστηριοτήτων, από τις πιο απλές καθημερινές μας ασχολίες μέχρι τις πιο πολύπλοκες λειτουργίες του κλάδου των επιχειρήσεων έως και το ζωτικό κλάδο της δημόσιας υγείας, είναι ολοένα και περισσότερο αυτοματοποιημένοι. Γι αυτό και η ανίχνευση ανωμαλιών αποτελεί συνεχές αντικείμενο διερεύνησης για τους επιστήμονες, που προσπαθούν, αξιοποιώντας τα αποτελέσματα της, να ελαττώσουν τις «αστοχίες» των συστημάτων στο ελάχιστο, καθιστώντας την ανθρώπινη παρέμβαση όσο το δυνατό μικρότερη. Η ελαχιστοποίηση της ανθρώπινης παρέμβασης βασίζεται στο σκεπτικό ότι, με σωστό σχεδιασμό, μια μηχανή μπορεί να λειτουργεί με τη μέγιστη δυνατή ακρίβεια σε αντίθεση με τον άνθρωπο ο οποίος είναι επιρρεπής σε απροσεξίες και λάθη. Σε αυτή τη διπλωματική εργασία επιχειρούμε, αξιοποιώντας τεχνικές μηχανικής μάθησης και συγκεκριμένα τεχνικές ταξινόμησης, να δημιουργήσουμε ένα σύστημα ανίχνευσης ανωμαλιών για λογισμικό που είναι ανεπτυγμένο σε ROS. Το πρόβλημα στο οποίο επιλέχθηκε η μελέτη των τεχνικών ανίχνευσης ανωμαλιών είναι το γνωστό (από τη θεωρία των λειτουργικών συστημάτων) πρόβλημα των «συνδαιτυμόνων φιλοσόφων», το οποίο να περιλαμβάνει ταυτοχρονισμό και κοινόχρηστους πόρους. Αρχικά, επιχειρείται μια αναλυτική περιγραφή των μεθόδων ανίχνευσης ανωμαλιών και έπειτα εξετάζονται διεξοδικά οι ταξινομητές SVM (Support Vector Machines) και GMM (Gaussian Mixture Models). Στη συνέχεια, αναλύεται το πρόβλημα των «συνδαιτυμόνων φιλοσόφων» και αναπτύσσεται η μεθοδολογία που εφαρμόστηκε για την ανίχνευση των ανωμαλιών στη συμπεριφορά των φιλοσόφων. Τέλος, παρατίθενται τα αποτελέσματα των πειραμάτων τα οποία πραγματοποιήθηκαν και γίνεται σχολιασμός της απόδοσης των ταξινομητών.
Abstract Applying machine learning techniques on software systems for fault diagnosis and anomaly detection Anomaly detection is a very important aspect of contemporary systems, since all areas of human activity, from simple everyday activities to the most complex businesses and industry workflows, are becoming more and more automated. In this context, the detection of anomalies in the behavior of the systems is an intriguing research topic, where researchers are striving to reduce system "failures" to a minimum, thus requesting as little as human intervention as possible. Through proper design, a system should operate with the maximum possible accuracy, while humans are prone to inadvertent errors. Within the context of this dissertation we employ machine learning techniques and specifically classification in order to assess the ability to detection deviation in behavior on a system setup on ROS, a popular middleware framework for robotics. The system implements the (well-known in Operating systems) "dining philosophers" problem, which inherently supports concurrency and shared resources. Initially, an in-depth discussion on anomaly detection methods is performed and then a thorough examination of SVM (Support Vector Machines) and GMM (Gaussian Mixture Models) classifiers is provided. Next the developed dining philosophers system is analyzed, as well as the developed methodology for the detection of abnormalities in the behaviors of the philosophers. Finally, the results of the experiments that were performed are presented followed by a commentary on the performance of the two classifiers. Anastasia Herodotou Electrical and Computer Engineer Aristotle University of Thessaloniki
Περιεχόμενα Ευχαριστίες... 3 Εισαγωγή... 4 Abstract... 6 Περιεχόμενα... 7 Λίστα πινάκων... 13 Λίστα σχημάτων-εικόνων... 20 Κεφάλαιο 1. Εισαγωγή... 24 1.1. Αντικείμενο της διπλωματικής εργασίας... 24 1.2. Στόχοι της διπλωματικής εργασίας... 25 1.3. Δομή της διπλωματικής εργασίας... 25 Κεφάλαιο 2. Μηχανική μάθηση και ανίχνευση ανωμαλιών... 26 2.1. Μηχανική μάθηση... 26 2.2. Ανίχνευση ανωμαλιών... 26 2.2.1. Διαφορετικές πτυχές ανίχνευσης ανωμαλιών... 27 Η φύση των δεδομένων... 28 Ο τύπος της ανωμαλίας... 28 Ετικέτες δεδομένων... 29 Ο τύπος των αποτελεσμάτων... 30 2.2.2. Τεχνικές Ανίχνευσης Ανωμαλιών... 30 Τεχνικές ταξινόμησης... 30 Τεχνικές πλησιέστερου γείτονα... 34 Τεχνικές Ομαδοποίησης... 36 Στατιστικές τεχνικές... 38 Τεχνικές με βάση την πληροφορία... 43 Τεχνικές με βάση το φάσμα... 43 2.2.3. Εφαρμογές των τεχνικών ανίχνευσης ανωμαλιών... 44 2.3. Ανίχνευση ανωμαλιών σε ρομποτικούς αισθητήρες... 46 2.3.1. Αναλυτικός πλεονασμός (Analytical redundancy)... 46 2.3.2. Μοντελοποίηση αβεβαιότητας Όρια ανίχνευσης ανωμαλιών... 47 Κεφάλαιο 3. Αναλυτική περιγραφή τεχνικών ανίχνευσης ανωμαλιών... 50 3.1. Support Vector Machines (μηχανές διανυσμάτων υποστήριξης) για ανίχνευση ανωμαλιών... 50 3.2 Gaussian Mixture Models για ανίχνευση ανωμαλιών... 54 Αλγόριθμος Μεγιστοποίησης Προσδοκίας... 55 Κεφάλαιο 4. Πειραματική Επαλήθευση μεθόδων σε Εικονικό Περιβάλλον... 57
4.1. Περιγραφή του συστήματος... 57 4.1.1. Ο κώδικας των συνδαιτυμόνων φιλοσόφων... 58 4.1.2. Τα συστατικά του κώδικα:... 59 Ο κόμβος philosopher:... 59 Ο κόμβος ErraticStateChanger... 61 Ο κόμβος remotemutex... 61 Ο κόμβος Remote Counter... 63 4.2. Περιγραφή συστήματος ανίχνευσης ανωμαλιών... 64 4.3. Περιγραφή σεναρίων σφάλματος και κανονικής λειτουργίας... 66 Κεφάλαιο 5. Πειραματική αξιολόγηση μεθόδων... 74 5.1. Αποτελέσματα φυσιολογικού φιλόσοφου... 75 5.1.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 76 5.1.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 76 5.1.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 77 5.1.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 78 5.1.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φυσιολογικού φιλόσοφου... 78 5.2. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 1... 78 5.2.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 79 5.2.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 80 5.2.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 80 5.2.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 81 5.2.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 1... 81 5.3. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 2... 81 5.3.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 82 5.3.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 83 5.3.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 83 5.3.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 84 5.3.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 2... 84 5.4. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 3... 84 5.4.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 85 5.4.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 86 5.4.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 86 5.4.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 87 5.4.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 3... 87 5.5. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 4... 87
5.5.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 88 5.5.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 89 5.5.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 89 5.5.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 90 5.5.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 4... 90 5.6. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 5... 90 5.6.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 91 5.6.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 92 5.6.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 92 5.6.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 93 5.6.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 5... 93 5.7. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 6... 93 5.7.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 94 5.7.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 95 5.7.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 95 5.7.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 96 5.7.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 6... 96 5.8. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 7... 96 5.8.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 97 5.8.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 98 5.8.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 98 5.8.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 99 5.8.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 7... 99 5.9. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 8... 99 5.9.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 100 5.9.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 101 5.9.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 101 5.9.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 102 5.9.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 8... 102 5.10. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 9... 102 5.10.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 103 5.10.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 104 5.10.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 104 5.10.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 105
5.10.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 9... 105 5.11. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 10... 105 5.11.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 106 5.11.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 107 5.11.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 107 5.11.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 108 5.11.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 10... 108 5.12. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 11... 108 5.12.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 109 5.12.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 110 5.12.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 110 5.12.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 111 5.12.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 11... 111 5.13. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 12... 111 5.13.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 112 5.13.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 113 5.13.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 113 5.13.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 114 5.13.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 12... 114 5.14. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 13... 114 5.14.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 115 5.14.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 116 5.14.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 116 5.14.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 117 5.14.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 13... 117 5.15. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 14... 117 5.15.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 118 5.15.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 119 5.15.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 119 5.15.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 120 5.15.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 14... 120 5.16. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 15... 120 5.16.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 121 5.16.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 122
5.16.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 122 5.16.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 123 5.16.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 15... 123 5.17. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 16... 123 5.17.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 124 5.17.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 125 5.17.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 125 5.17.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 126 5.17.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 16... 126 5.18. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 17... 126 5.18.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 127 5.18.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 128 5.18.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 128 5.18.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 129 5.18.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 17... 129 5.19. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 18... 129 5.19.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 130 5.19.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 131 5.19.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 131 5.19.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 132 5.19.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 18... 132 5.20. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 19... 132 5.20.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 133 5.20.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 134 5.20.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 134 5.20.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 135 5.20.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 19... 135 5.21. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 20... 135 5.21.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 136 5.21.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 137 5.21.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 137 5.21.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 138 5.21.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 20... 138 5.22. Αποτελέσματα φιλόσοφου με ιδιάζουσα συμπεριφορά 21... 138
5.22.1. Πείραμα 1: 1 Φιλόσοφος-30 λεπτά εκπαίδευσης... 139 5.22.2. Πείραμα 2: 2 Φιλόσοφοι-30 λεπτά εκπαίδευσης... 140 5.22.3. Πείραμα 3: 1 Φιλόσοφος-60 λεπτά εκπαίδευσης... 140 5.22.4. Πείραμα 4: 2 Φιλόσοφοι-60 λεπτά εκπαίδευσης... 141 5.22.5. Γενικές παρατηρήσεις για τα αποτελέσματα των πειραμάτων του φιλόσοφου με ιδιάζουσα συμπεριφορά 21... 141 5.23. Γενικά αποτελέσματα πειραμάτων... 141 Κεφάλαιο 6. Συμπεράσματα και Μελλοντικές Επεκτάσεις... 143 6.1. Σύνοψη-Συμπεράσματα... 143 6.2. Μελλοντικές Επεκτάσεις... 144 Βιβλιογραφία... 148
Λίστα πινάκων Πίνακας 1 Εσωτερικές και εξωτερικές καταστάσεις φιλόσοφου... 60 Πίνακας 2 Περιγραφή σεναρίων σφάλματος... 66 Πίνακας 3 Γραφικές παραστάσεις φιλοσόφων με ιδιάζουσες συμπεριφορές... 68 Πίνακας 4 Πίνακας πειραμάτων... 75 Πίνακας 5 Αποτελέσματα πρώτου πειράματος (normal)... 76 Πίνακας 6 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (normal)... 76 Πίνακας 7 Αποτελέσματα δεύτερου πειράματος (normal)... 76 Πίνακας 8 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (normal)... 77 Πίνακας 9 Αποτελέσματα τρίτου πειράματος (normal)... 77 Πίνακας 10 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (normal)... 77 Πίνακας 11 Αποτελέσματα τέταρτου πειράματος (normal)... 78 Πίνακας 12 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (normal)... 78 Πίνακας 13 Αποτελέσματα πρώτου πειράματος (faulty 1)... 79 Πίνακας 14 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 1)... 79 Πίνακας 15 Αποτελέσματα δεύτερου πειράματος (faulty 1)... 80 Πίνακας 16 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 1)... 80 Πίνακας 17 Αποτελέσματα τρίτου πειράματος (faulty 1)... 80 Πίνακας 18 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 1)... 80 Πίνακας 19 Αποτελέσματα τέταρτου πειράματος (faulty 1)... 81 Πίνακας 20 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 1)... 81
Πίνακας 21 Αποτελέσματα πρώτου πειράματος (faulty 2)... 82 Πίνακας 22 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 2)... 82 Πίνακας 23 Αποτελέσματα δεύτερου πειράματος (faulty 2)... 83 Πίνακας 24 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 2)... 83 Πίνακας 25 Αποτελέσματα τρίτου πειράματος (faulty 2)... 83 Πίνακας 26 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 2)... 83 Πίνακας 27 Αποτελέσματα τέταρτου πειράματος (faulty 2)... 84 Πίνακας 28 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 2)... 84 Πίνακας 29 Αποτελέσματα πρώτου πειράματος (faulty 3)... 85 Πίνακας 30 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 3)... 85 Πίνακας 31 Αποτελέσματα δεύτερου πειράματος (faulty 3)... 86 Πίνακας 32 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 3)... 86 Πίνακας 33 Αποτελέσματα τρίτου πειράματος (faulty 3)... 86 Πίνακας 34 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 3)... 86 Πίνακας 35 Αποτελέσματα τέταρτου πειράματος (faulty 3)... 87 Πίνακας 36 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 3)... 87 Πίνακας 37 Αποτελέσματα πρώτου πειράματος (faulty 4)... 88 Πίνακας 38 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 4)... 88 Πίνακας 39 Αποτελέσματα δεύτερου πειράματος (faulty 4)... 89 Πίνακας 40 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 4)... 89 Πίνακας 41 Αποτελέσματα τρίτου πειράματος (faulty 4)... 89 Πίνακας 42 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 4)... 89 Πίνακας 43 Αποτελέσματα τέταρτου πειράματος (faulty 4)... 90 Πίνακας 44 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 4)... 90 Πίνακας 45 Αποτελέσματα πρώτου πειράματος (faulty 5)... 91 Πίνακας 46 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 5)... 91 Πίνακας 47 Αποτελέσματα δεύτερου πειράματος (faulty 5)... 92 Πίνακας 48 Αποτελέσματα δεύτερου πειράματος (faulty 5)... 92 Πίνακας 49 Αποτελέσματα τρίτου πειράματος (faulty 5)... 92 Πίνακας 50 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 5)... 92 Πίνακας 51 Αποτελέσματα τέταρτου πειράματος (faulty 5)... 93 Πίνακας 52 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 5)... 93 Πίνακας 53 Αποτελέσματα πρώτου πειράματος (faulty 6)... 94 Πίνακας 54 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 6)... 94
Πίνακας 55 Αποτελέσματα δεύτερου πειράματος (faulty 6)... 95 Πίνακας 56 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 6)... 95 Πίνακας 57 Αποτελέσματα τρίτου πειράματος (faulty 6)... 95 Πίνακας 58 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 6)... 95 Πίνακας 59 Αποτελέσματα τέταρτου πειράματος (faulty 6)... 96 Πίνακας 60 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 6)... 96 Πίνακας 61 Αποτελέσματα πρώτου πειράματος (faulty 7)... 97 Πίνακας 62 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 7)... 97 Πίνακας 63 Αποτελέσματα δεύτερου πειράματος (faulty 7)... 98 Πίνακας 64 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 7)... 98 Πίνακας 65 Αποτελέσματα τρίτου πειράματος (faulty 7)... 98 Πίνακας 66 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 7)... 98 Πίνακας 67 Αποτελέσματα τέταρτου πειράματος (faulty 7)... 99 Πίνακας 68 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 7)... 99 Πίνακας 69 Αποτελέσματα πρώτου πειράματος (faulty 8)... 100 Πίνακας 70 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 8)... 100 Πίνακας 71 Αποτελέσματα δεύτερου πειράματος (faulty 8)... 101 Πίνακας 72 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 8)... 101 Πίνακας 73 Αποτελέσματα τρίτου πειράματος (faulty 8)... 101 Πίνακας 74 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 8)... 101 Πίνακας 75 Αποτελέσματα τέταρτου πειράματος (faulty 8)... 102 Πίνακας 76 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 8)... 102 Πίνακας 77 Αποτελέσματα πρώτου πειράματος (faulty 9)... 103 Πίνακας 78 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 9)... 103 Πίνακας 79 Αποτελέσματα δεύτερου πειράματος (faulty 9)... 104 Πίνακας 80 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 9)... 104 Πίνακας 81 Αποτελέσματα τρίτου πειράματος (faulty 9)... 104 Πίνακας 82 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 9)... 104 Πίνακας 83 Αποτελέσματα τέταρτου πειράματος (faulty 9)... 105 Πίνακας 84 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 9)... 105 Πίνακας 85 Αποτελέσματα πρώτου πειράματος (faulty 10)... 106 Πίνακας 86 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 10)... 106 Πίνακας 87 Αποτελέσματα δεύτερου πειράματος (faulty 10)... 107 Πίνακας 88 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 10)... 107
Πίνακας 89 Αποτελέσματα τρίτου πειράματος (faulty 10)... 107 Πίνακας 90 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 10)... 107 Πίνακας 91 Αποτελέσματα τέταρτου πειράματος (faulty 10)... 108 Πίνακας 92 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 10)... 108 Πίνακας 93 Αποτελέσματα πρώτου πειράματος (faulty 11)... 109 Πίνακας 94 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 11)... 109 Πίνακας 95 Αποτελέσματα δεύτερου πειράματος (faulty 11)... 110 Πίνακας 96 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 11)... 110 Πίνακας 97 Αποτελέσματα τρίτου πειράματος (faulty 11)... 110 Πίνακας 98 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 11)... 110 Πίνακας 99 Αποτελέσματα τέταρτου πειράματος (faulty 11)... 111 Πίνακας 100 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 11).. 111 Πίνακας 101 Αποτελέσματα πρώτου πειράματος (faulty 12)... 112 Πίνακας 102 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 12)... 112 Πίνακας 103 Αποτελέσματα δεύτερου πειράματος (faulty 12)... 113 Πίνακας 104 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 12).. 113 Πίνακας 105 Αποτελέσματα τρίτου πειράματος (faulty 12)... 113 Πίνακας 106 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 12)... 113 Πίνακας 107 Αποτελέσματα τέταρτου πειράματος (faulty 12)... 114 Πίνακας 108 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 12).. 114 Πίνακας 109 Αποτελέσματα πρώτου πειράματος (faulty 13)... 115 Πίνακας 110 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 13)... 115 Πίνακας 111 Αποτελέσματα δεύτερου πειράματος (faulty 13)... 116 Πίνακας 112 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 13).. 116 Πίνακας 113 Αποτελέσματα τρίτου πειράματος (faulty 13)... 116 Πίνακας 114 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 13)... 116 Πίνακας 115 Αποτελέσματα τέταρτου πειράματος (faulty 13)... 117 Πίνακας 116 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 13).. 117 Πίνακας 117 Αποτελέσματα πρώτου πειράματος (faulty 14)... 118 Πίνακας 118 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 14)... 118 Πίνακας 119 Αποτελέσματα δεύτερου πειράματος (faulty 14)... 119 Πίνακας 120 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 14).. 119 Πίνακας 121 Αποτελέσματα τρίτου πειράματος (faulty 14)... 119 Πίνακας 122 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 14)... 119
Πίνακας 123 Αποτελέσματα τέταρτου πειράματος (faulty 14)... 120 Πίνακας 124 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 14).. 120 Πίνακας 125 Αποτελέσματα πρώτου πειράματος (faulty 15)... 121 Πίνακας 126 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 15)... 121 Πίνακας 127 Αποτελέσματα δεύτερου πειράματος (faulty 15)... 122 Πίνακας 128 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 15).. 122 Πίνακας 129 Αποτελέσματα τρίτου πειράματος (faulty 15)... 122 Πίνακας 130 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 15)... 122 Πίνακας 131 Αποτελέσματα τέταρτου πειράματος (faulty 15)... 123 Πίνακας 132 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 15).. 123 Πίνακας 133 Αποτελέσματα πρώτου πειράματος (faulty 16)... 124 Πίνακας 134 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 16)... 124 Πίνακας 135 Αποτελέσματα δεύτερου πειράματος (faulty 16)... 125 Πίνακας 136 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 16).. 125 Πίνακας 137 Αποτελέσματα τρίτου πειράματος (faulty 16)... 125 Πίνακας 138 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 16)... 125 Πίνακας 139 Αποτελέσματα τέταρτου πειράματος (faulty 16)... 126 Πίνακας 140 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 16).. 126 Πίνακας 141 Αποτελέσματα πρώτου πειράματος (faulty 17)... 127 Πίνακας 142 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 17)... 127 Πίνακας 143 Αποτελέσματα δεύτερου πειράματος (faulty 17)... 128 Πίνακας 144 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 17).. 128 Πίνακας 145 Αποτελέσματα τρίτου πειράματος (faulty 17)... 128 Πίνακας 146 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 17)... 128 Πίνακας 147 Αποτελέσματα τέταρτου πειράματος (faulty 17)... 129 Πίνακας 148 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 17).. 129 Πίνακας 149 Αποτελέσματα πρώτου πειράματος (faulty 18)... 130 Πίνακας 150 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 18)... 130 Πίνακας 151 Αποτελέσματα δεύτερου πειράματος (faulty 18)... 131 Πίνακας 152 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 18).. 131 Πίνακας 153 Αποτελέσματα τρίτου πειράματος (faulty 18)... 131 Πίνακας 154 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 18)... 131 Πίνακας 155 Αποτελέσματα τέταρτου πειράματος (faulty 18)... 132 Πίνακας 156 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 18).. 132
Πίνακας 157 Αποτελέσματα πρώτου πειράματος (faulty 19)... 133 Πίνακας 158 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 19)... 133 Πίνακας 159 Αποτελέσματα δεύτερου πειράματος (faulty 19)... 134 Πίνακας 160 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 19).. 134 Πίνακας 161 Αποτελέσματα τρίτου πειράματος (faulty 19)... 134 Πίνακας 162 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 19)... 134 Πίνακας 163 Αποτελέσματα τέταρτου πειράματος (faulty 19)... 135 Πίνακας 164 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 19).. 135 Πίνακας 165 Αποτελέσματα πρώτου πειράματος (faulty 20)... 136 Πίνακας 166 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 20)... 136 Πίνακας 167 Αποτελέσματα δεύτερου πειράματος (faulty 20)... 137 Πίνακας 168 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 20).. 137 Πίνακας 169 Αποτελέσματα τρίτου πειράματος (faulty 20)... 137 Πίνακας 170 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 20)... 137 Πίνακας 171 Αποτελέσματα τέταρτου πειράματος (faulty 20)... 138 Πίνακας 172 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 20).. 138 Πίνακας 173 Αποτελέσματα πρώτου πειράματος (faulty 21)... 139 Πίνακας 174 Μέσος όρος αποτελεσμάτων πρώτου πειράματος (faulty 21)... 139 Πίνακας 175 Αποτελέσματα δεύτερου πειράματος (faulty 21)... 140 Πίνακας 176 Μέσος όρος αποτελεσμάτων δεύτερου πειράματος (faulty 21).. 140 Πίνακας 177 Αποτελέσματα τρίτου πειράματος (faulty 21)... 140 Πίνακας 178 Μέσος όρος αποτελεσμάτων τρίτου πειράματος (faulty 21)... 140 Πίνακας 179 Αποτελέσματα τέταρτου πειράματος (faulty 21)... 141 Πίνακας 180 Μέσος όρος αποτελεσμάτων τέταρτου πειράματος (faulty 21).. 141 Πίνακας 181 Μέσος όρος αποτελεσμάτων πειράματος 1... 141 Πίνακας 182 Μέσος όρος αποτελεσμάτων πειράματος 2... 142 Πίνακας 183 Μέσος όρος αποτελεσμάτων πειράματος 3... 142 Πίνακας 184 Μέσος όρος αποτελεσμάτων πειράματος 4... 142
Λίστα σχημάτων-εικόνων Εικόνα 1 Τα βασικά στοιχεία που σχετίζονται με μια τεχνική ανίχνευσης ανωμαλιών [SIN12].... 27 Εικόνα 2 Παράδειγμα Βayesian δικτύου. Η βροχή επηρεάζει τη λειτουργία του ψεκαστήρα, και ταυτόχρονα η βροχή και ο ψεκαστήρας επηρεάζουν κατά πόσο το γρασίδι είναι βρεγμένο [URL5]... 31 Εικόνα 3 Παράδειγμα ταξινομητών SVM. Ο Η3 είναι ο καλύτερος ταξινομητής, διότι χωρίζει τις δύο κατηγορίες με τέτοιο τρόπο, ώστε το διάκενο μεταξύ τους να είναι ευρύτερο.[url7]... 32 Εικόνα 4 Παράδειγμα θηκογράμματος [URL6]... 39 Εικόνα 5 Τα παραδείγματα των επιμέρους κατηγοριών χωρίζονται από ένα όριο-γραμμή με περιθώριο που είναι το ευρύτερο δυνατόν [URL4]... 51 Εικόνα 6 Μερικές φορές ο διαχωρισμός είναι ευκολότερος χρησιμοποιώντας ένα χώρο μεγαλύτερων διαστάσεων. [URL4]... 52 Εικόνα 7 Εικονογράφηση του προβλήματος των συνδαιτυμόνων φιλοσόφων [URL9]... 59 Εικόνα 8 Παράδειγμα κυλιόμενου παραθύρου με πλάτος ίσο με 5 σε πίνακα δεδομένων [URL8]... 66 Εικόνα 9 Παράδειγμα συμπεριφοράς φυσιολογικού φιλόσοφου (αλλαγή σε faulty μετά από 50 κύκλους)... 75
Εικόνα 10 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 1 (αλλαγή σε faulty μετά από 50 κύκλους)... 79 Εικόνα 11 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 2 (αλλαγή σε faulty μετά από 50 κύκλους)... 82 Εικόνα 12 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 3 (αλλαγή σε faulty μετά από 50 κύκλους)... 85 Εικόνα 13 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 4 (αλλαγή σε faulty μετά από 50 κύκλους)... 88 Εικόνα 14 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 5 (αλλαγή σε faulty μετά από 50 κύκλους)... 91 Εικόνα 15 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 6 (αλλαγή σε faulty μετά από 50 κύκλους)... 94 Εικόνα 16 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 7 (αλλαγή σε faulty μετά από 50 κύκλους)... 97 Εικόνα 17 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 8 (αλλαγή σε faulty μετά από 50 κύκλους)... 100 Εικόνα 18 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 9 (αλλαγή σε faulty μετά από 50 κύκλους)... 103 Εικόνα 19 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 10 (αλλαγή σε faulty μετά από 50 κύκλους)... 106 Εικόνα 20 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 11 (αλλαγή σε faulty μετά από 50 κύκλους)... 109 Εικόνα 21 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 12 (αλλαγή σε faulty μετά από 50 κύκλους)... 112 Εικόνα 22 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 13 (αλλαγή σε faulty μετά από 50 κύκλους)... 115 Εικόνα 23 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 14 (αλλαγή σε faulty μετά από 50 κύκλους)... 118 Εικόνα 24 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 15 (αλλαγή σε faulty μετά από 50 κύκλους)... 121 Εικόνα 25 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 16 (αλλαγή σε faulty μετά από 50 κύκλους)... 124
Εικόνα 26 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 17 (αλλαγή σε faulty μετά από 50 κύκλους)... 127 Εικόνα 27 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 18 (αλλαγή σε faulty μετά από 50 κύκλους)... 130 Εικόνα 28 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 19 (αλλαγή σε faulty μετά από 50 κύκλους)... 133 Εικόνα 29 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 20 (αλλαγή σε faulty μετά από 50 κύκλους)... 136 Εικόνα 30 Παράδειγμα συμπεριφοράς φιλόσοφου με ιδιάζουσα συμπεριφορά 21 (αλλαγή σε faulty μετά από 50 κύκλους)... 139
Διπλωματική εργασία - Ηροδότου Αναστασία 23
24 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Κεφάλαιο 1. Εισαγωγή 1.1. Αντικείμενο της διπλωματικής εργασίας Η Μηχανική Μάθηση θέτει το ερώτημα "Πώς μπορούμε να προγραμματίσουμε συστήματα, ώστε να μαθαίνουν αυτόνομα και να βελτιώνονται με την εμπειρία;" Στην καθημερινή ζωή υπάρχουν πολλές περιπτώσεις στις οποίες μπορούμε να αποκομίσουμε γνώση από την εμπειρική παρατήρηση. Για παράδειγμα, μπορούμε να προβλέψουμε ποιοί ασθενείς θα ανταποκριθούν και σε ποιές θεραπείες, αναλύοντας τις εμπειρικές παρατηρήσεις οι οποίες συλλέγονται σε βάσεις δεδομένων των online ιατρικών αρχείων. Ή να μελετάμε κινούμενα ρομπότ τα οποία έχουν τη δυνατότητα να μαθαίνουν πώς να πλοηγούνται με επιτυχία, αξιοποιώντας την εμπειρία την οποία συγκεντρώνουν από τους αισθητήρες τους, καθώς περιφέρονται στο περιβάλλον τους. Ακόμη, τεχνικές μηχανικής μάθησης μπορούν να συνδυάσουν αρχικές επιστημονικές υποθέσεις με νέα πειραματικά δεδομένα, να παράγουν αυτόματα βελτιωμένες επιστημονικές υποθέσεις οι οποίες ταιριάζουν καλύτερα στα παρατηρούμενα δεδομένα. Για τις παραπάνω απαιτήσεις έχουν αναπτυχθεί αλγόριθμοι οι οποίοι αποκομίζουν «γνώση», κυρίως βασιζόμενοι στη στατιστική. Επιπλέον, έχουν αναπτυχθεί θεωρίες διαδικασιών μάθησης οι οποίες αποτελούν βάση για τη Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 25 θεμελιώδη φύση των υπολογισμών, έχοντας επαρκή εμπειρία για επιτυχή εκμάθηση (εκπαίδευση) σε μηχανές αλλά και σε ανθρώπους. Οι μέθοδοι ανίχνευσης σφαλμάτων και απομόνωσης ουσιαστικά προσπαθούν να αναγνωρίσουν ανωμαλίες στα δεδομένα. Βασίζονται σε μηχανική μάθηση και στηρίζονται σε ποιοτικές περιγραφές μοντέλων με τη μορφή νευρωνικών δικτύων, πιθανοτικών ταξινομητών, τεχνικών ασαφούς λογικής και γραμμικών/ μη-γραμμικών ταξινομητών. 1.2. Στόχοι της διπλωματικής εργασίας Στόχος της παρούσας διπλωματικής εργασίας είναι ανίχνευση ανωμαλιών (σφαλμάτων) με τη βοήθεια μεθόδων μηχανικής μάθησης. Συγκεκριμένα γίνεται χρήση ταξινομητών SVM και GMM οι οποίοι εκπαιδεύονται με δεδομένα προερχόμενα από τη φυσιολογική λειτουργία του συστήματος. Ακολούθως, χρησιμοποιώντας τη «γνώση» αυτή, επιχειρείται η ανίχνευση ανωμαλιών σε καινούρια δεδομένα. 1.3. Δομή της διπλωματικής εργασίας Στο Κεφάλαιο 2, γίνεται ανασκόπηση της σχετικής βιβλιογραφίας. Διευκρινίζονται οι έννοιες της Μηχανικής Μάθησης και Ανίχνευσης Ανωμαλιών και περιγράφονται οι υπάρχουσες τεχνικές. Στο Κεφάλαιο 3, αναπτύσσεται το θεωρητικό υπόβαθρο της μεθοδολογίας η οποία αποσκοπεί στην εκπαίδευση δεδομένων με χρήση ταξινομητών SVM και GMM. Στο Κεφάλαιο 4 παρουσιάζεται το σύστημα που αναπτύχθηκε με σκοπό την παραγωγή δεδομένων για την εκπαίδευση των ταξινομητών και περιγράφεται η μεθοδολογία ανίχνευσης ανωμαλιών. Τέλος, διασαφηνίζονται οι έννοιες κανονική και ιδιάζουσα συμπεριφορά. Στο Κεφάλαιο 5, αφού παρουσιάζονται τα πειράματα τα οποία πραγματοποιήθηκαν, σχολιάζεται η αποτελεσματικότητα των μεθόδων που αξιοποιήθηκαν. Τέλος, στο Κεφάλαιο 6, εξάγονται γενικά συμπεράσματα από τα οποία προκύπτουν καινούργιες υποθέσεις για πιθανές μελλοντικές επεκτάσεις και χρήσεις.
26 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Κεφάλαιο 2. Μηχανική μάθηση και ανίχνευση ανωμαλιών 2.1. Μηχανική μάθηση Η μηχανική μάθηση (machine learning) αποτελεί ένα κλάδο της τεχνητής νοημοσύνης, ο οποίος στοχεύει στη δημιουργία μηχανών ικανών να «μαθαίνουν». Οι μηχανές αυτές πρέπει να έχουν τη δυνατότητα να βελτιώνουν συνεχώς την απόδοσή τους σε κάποια σαφώς ορισμένη εργασία, αξιοποιώντας την προηγούμενη γνώση και εμπειρία τους. Η μηχανική μάθηση έχει πολλές εφαρμογές ανάμεσα στις οποίες περιλαμβάνονται: η ιατρική διάγνωση, η βιοπληροφορική, οι μηχανές αναζήτησης, η εξόρυξη ακολουθιών, η ανάλυση ομιλίας και εικόνας, η ρομποτική κλπ. 2.2. Ανίχνευση ανωμαλιών Ανωμαλία (anomaly/fault) θεωρείται το αποτέλεσμα μιας παρατήρησης, το οποίο αποκλίνει σημαντικά από τα αποτελέσματα για τα υπόλοιπα μέλη ενός δείγματος. Σύμφωνα με τον Hawkins ανωμαλία είναι μια παρατήρηση η οποία αποκλίνει τόσο πολύ από τις άλλες παρατηρήσεις ώστε να κινήσει υποψίες ότι προήλθε από ένα διαφορετικό μηχανισμό [HAW80]. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 27 Οι ανωμαλίες μπορεί να προκληθούν από ανθρώπινο λάθος, σφάλμα μετρήσεων, φυσικές αποκλίσεις σε διάφορους πληθυσμούς, αλλαγές στη συμπεριφορά συστημάτων ή και από σφάλματα συστημάτων. Παρόλο που οι ανωμαλίες μπορεί να υποδείξουν ελαττωματικά δεδομένα, εσφαλμένες διαδικασίες ή περιοχές όπου κάποια θεωρία μπορεί να μην είναι έγκυρη, σε μεγάλα δείγματα, ένας μικρός αριθμός ανωμαλιών πρέπει να αναμένεται (και δεν οφείλεται σε οποιαδήποτε ανώμαλη κατάσταση). Η διαδικασία ανίχνευσης ανωμαλιών (fault/anomaly detection) αναφέρεται στο πρόβλημα της αναγνώρισης των δεδομένων τα οποία δεν ακολουθούν την αναμενόμενη συμπεριφορά [CHA 07]. Εικόνα 1 Τα βασικά στοιχεία που σχετίζονται με μια τεχνική ανίχνευσης ανωμαλιών [SIN12]. 2.2.1. Διαφορετικές πτυχές ανίχνευσης ανωμαλιών Κάθε πρόβλημα ανίχνευσης ανωμαλιών είναι διαφορετικό και καθορίζεται από διάφορους παράγοντες οι οποίοι δικαιολογούν την ανάγκη για το ευρύ φάσμα των τεχνικών οι οποίες υπάρχουν. Μερικοί παράγοντες είναι:
28 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Η φύση των δεδομένων Ως είσοδο θεωρούμε μια συλλογή από στιγμιότυπα δεδομένων. Κάθε στιγμιότυπο δεδομένων μπορεί να περιγραφεί κάνοντας χρήση ένα σύνολο από χαρακτηριστικά γνωρίσματα. Υπάρχουν τρείς τύποι τέτοιων γνωρισμάτων: δυαδικά (binary), κατηγορηματικά (categorical) και συνεχή (continuous). Επίσης, κάθε στιγμιότυπο δεδομένων μπορεί να αποτελείται είτε από ένα χαρακτηριστικό γνώρισμα, οπότε και λέγεται μονοπαραγοντικό (univariate), είτε από πολλά, οπότε και λέγεται πολυπαραγοντικό (multivariate). Είναι η φύση των χαρακτηριστικών γνωρισμάτων αυτή η οποία καθορίζει τη δυνατότητα εφαρμογής των διαφόρων τεχνικών ανίχνευσης ανωμαλιών. Τα δεδομένα εισόδου μπορούν, επίσης, να κατηγοριοποιηθούν με βάση τις σχέσεις ανάμεσα στα στιγμιότυπα δεδομένων. Οι περισσότερες τεχνικές ασχολούνται με σημειακά δεδομένα (point data), στα οποία δεν θεωρείται ότι υπάρχει κάποια συσχέτιση ανάμεσα στα στιγμιότυπα δεδομένων. Αντίθετα, στα δεδομένα αλληλουχίας (sequence data) τα στιγμιότυπα δεδομένων είναι ταξινομημένα γραμμικά. Στα χωρικά δεδομένα (spatial data) το κάθε στιγμιότυπο σχετίζεται με τα γειτονικά του, ενώ στα γραφικά δεδομένα (graph data) τα στιγμιότυπα αντιπροσωπεύονται ως κορυφές ενός γράφου και συνδέονται με άλλες κορυφές μέσω ακμών που έχουν βάρη. Ο τύπος της ανωμαλίας Υπάρχουν διάφοροι τύποι ανωμαλιών: Σημειακές ανωμαλίες (point anomalies): Αν ένα απομονωμένο στιγμιότυπο δεδομένων μπορεί να θεωρηθεί ανώμαλο σε σχέση με τα υπόλοιπα δεδομένα, τότε αυτό το στιγμιότυπο καλείται σημειακή ανωμαλία. Συναφείς ανωμαλίες (contextual anomalies): Αν ένα στιγμιότυπο δεδομένων είναι ανώμαλο σε ένα συγκεκριμένο πλαίσιο-γειτονιά, τότε καλείται συναφής ανωμαλία. Η έννοια του πλαισίου επάγεται από τη δομή του συνόλου δεδομένων και πρέπει να καθορίζεται ως μέρος του διατυπωμένου προβλήματος. Στην περίπτωση αυτή, κάθε στιγμιότυπο δεδομένων καθορίζεται κάνοντας χρήση 2 ομάδων χαρακτηριστικών: Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 29 1. εξαρτώμενα χαρακτηριστικά (contextual attributes)- χρησιμοποιούνται για τον καθορισμό της γειτονιάς του στιγμιότυπου. 2. χαρακτηριστικά συμπεριφοράς (behavioral attributes)- καθορίζουν τα μη συναφή χαρακτηριστικά ενός στιγμιότυπου. Συσχετιζόμενες ανωμαλίες (collective anomalies): Αν μια συλλογή από συσχετιζόμενα δεδομένα αποτελεί ανωμαλία σε σχέση με ολόκληρο το σύνολο δεδομένων, τότε αυτή ταυτοποιείται ως συσχετιζόμενη ανωμαλία. Τα μεμονωμένα στιγμιότυπα δεδομένων σε μια συσχετιζόμενη ανωμαλία μπορεί να μην αποτελούν ανωμαλίες από μόνα τους, αλλά η εμφάνιση τους με ομαδικό τρόπο, σαν συλλογή, να είναι ανώμαλη. Ετικέτες δεδομένων Ένα στιγμιότυπο δεδομένων μπορεί να συσχετίζεται με ετικέτες/κλάσεις οι οποίες να υποδηλώνουν αν αυτό είναι ομαλό ή ανώμαλο. Με βάση τη διαθεσιμότητα των ετικετών, οι τεχνικές ανίχνευσης ανωμαλιών έχουν τη δυνατότητα να λειτουργήσουν με τους ακόλουθους τρεις τρόπους: Εποπτευόμενη ανίχνευση ανωμαλιών (Supervised): Οι τεχνικές οι οποίες λειτουργούν με αυτό τον τρόπο θέτουν ως βάση το ότι υπάρχει διαθέσιμο ένα σύνολο δεδομένων για εκπαίδευση, στο οποίο επισημαίνονται στιγμιότυπα τόσο για ομαλές, όσο και για ανώμαλες κλάσεις [SMI11]. Ημι-εποπτευόμενη ανίχνευση ανωμαλιών (Semi-Supervised): Οι τεχνικές οι οποίες λειτουργούν με αυτό τον τρόπο θέτουν ως βάση το ότι στο σύνολο δεδομένων για εκπαίδευση επισημαίνονται στιγμιότυπα μόνο για ομαλές κλάσεις. H τυπική προσέγγιση η οποία χρησιμοποιείται σε αυτές τις τεχνικές είναι η οικοδόμηση ενός μοντέλου για την κατηγορία η οποία αντιστοιχεί στην κανονική συμπεριφορά, και, ακολούθως, η χρήση αυτού του μοντέλου για τον προσδιορισμό ανωμαλιών στα δεδομένα ελέγχου. Ανίχνευση ανωμαλιών χωρίς επίβλεψη (Unsupervised): Οι τεχνικές που λειτουργούν με αυτό τον τρόπο δεν απαιτούν δεδομένα εκπαίδευσης, αλλά κάνουν την παραδοχή ότι οι κανονικές περιπτώσεις εμφανίζονται πιο συχνά από τις ανωμαλίες στα δεδομένα ελέγχου.
30 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Ο τύπος των αποτελεσμάτων Βαθμολόγηση: Οι τεχνικές βαθμολόγησης εκχωρούν μια βαθμολογίασκορ ανωμαλίας σε κάθε στιγμιότυπο στα δεδομένα δοκιμής, με τρόπο ανάλογο με το βαθμό στον οποίο το στιγμιότυπο θεωρείται ανωμαλία. Για αυτό, το αποτέλεσμα αυτών των τεχνικών είναι ένας ιεραρχημένος κατάλογος των ανωμαλιών. Ετικέτες: Οι τεχνικές σε αυτή την κατηγορία αντιστοιχούν μια ετικέτα (ομαλό ή ανώμαλο) σε κάθε στιγμιότυπο δοκιμής. Αυτές οι τεχνικές επιτρέπουν στον αναλυτή να χρησιμοποιήσει ένα κατώφλι, για να επιλέξει τις πιο σημαντικές ανωμαλίες [KRI09] [SIN12]. 2.2.2. Τεχνικές Ανίχνευσης Ανωμαλιών Τεχνικές ταξινόμησης Ταξινόμηση (classification) εφαρμόζονται ώστε να μάθει ένα μοντέλο (ταξινομητής) από ένα σύνολο στιγμιότυπων δεδομένων τα οποία έχουν επισημανθεί ως ομαλά ή όχι (φάση της εκπαίδευσης). Στη συνέχεια ο ταξινομητής ταξινομεί ένα στιγμιότυπο ελέγχου σε μία από τις κατηγορίες χρησιμοποιώντας το μοντέλο αυτό (φάση ελέγχου). Οι τεχνικές ανίχνευσης ανωμαλιών, με βάση την ταξινόμηση, μπορούν να ομαδοποιηθούν σε δύο μεγάλες κατηγορίες: Η πολλαπλής τάξης (multi-class) ταξινόμηση είναι αυτή στην οποία υποθέτουμε ότι τα δεδομένα εκπαίδευσης περιέχουν επισημασμένες περιπτώσεις και ανήκουν σε πολλαπλές κανονικές τάξεις. Τέτοιες τεχνικές ανίχνευσης ανωμαλιών «διδάσκουν» τον ταξινομητή να διακρίνει κάθε κανονική τάξη από τις υπόλοιπες τάξεις. Ένα στιγμιότυπο ελέγχου θεωρείται ανώμαλο εάν δεν ταξινομηθεί ως κανονικό από οποιονδήποτε από τους ταξινομητές. Η μιας τάξης (one-class) ταξινόμηση θέτει ως προϋπόθεση ότι όλες οι περιπτώσεις εκπαίδευσης έχουν μόνο μία ετικέτα κλάσης. Τέτοιες τεχνικές «διδάσκουν» τον ταξινομητή να διακρίνει ένα όριο γύρω από τις ομαλές περιπτώσεις χρησιμοποιώντας ένα αλγόριθμο ταξινόμησης μιας τάξης. Κάθε στιγμιότυπο ελέγχου το οποίο δεν εμπίπτει εντός του ορίου διάκρισης θεωρείται ανώμαλο. Οι βασικές μέθοδοι που χρησιμοποιούνται σε αναγνώριση ανωμαλιών είναι: Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 31 Τεχνικές ανίχνευσης ανωμαλιών βασισμένες σε νευρωνικά δίκτυα (neural networks): Τα νευρωνικά δίκτυα αποτελούνται από τη διασύνδεση τεχνητών νευρώνων και έχουν στόχο την επίλυση προβλημάτων τεχνητής νοημοσύνης, χωρίς να δημιουργούν μοντέλα του πραγματικού συστήματος. Αρχικά το νευρωνικό δίκτυο μαθαίνει. Η μάθηση επιτυγχάνεται μέσω μιας επαναληπτικής διαδικασίας εκπαίδευσης η οποία, σταδιακά, προσαρμόζει τις παραμέτρους του δικτύου σε τιμές κατάλληλες, ώστε να επιλύεται με επαρκή επιτυχία το προς εξέταση πρόβλημα. Αφού ένα δίκτυο εκπαιδευτεί, οι παράμετροι του συνήθως παγώνουν στις κατάλληλες τιμές και από εκεί και έπειτα μπαίνουν σε λειτουργική κατάσταση. Το ζητούμενο είναι το λειτουργικό δίκτυο να χαρακτηρίζεται από μια ικανότητα γενίκευσης την ικανότητα, δηλαδή, να δίνει ορθές εξόδους για εισόδους καινοφανείς και διαφορετικές από αυτές με τις οποίες εκπαιδεύτηκε [URL 1]. Τεχνικές ανίχνευσης ανωμαλιών βασισμένες σε δίκτυα Bayes (Bayesian networks): Ένα δίκτυο Bayes είναι ένα πιθανοτικό γραφικό μοντέλο (ένα είδος στατιστικού μοντέλου), το οποίο αντιπροσωπεύει ένα σύνολο τυχαίων μεταβλητών, όπως και τις εξαρτήσεις τους, μέσω ενός άκυκλου κατευθυνόμενου γράφου. Σε αυτούς τους άκυκλους κατευθυνόμενους γράφους, οι κόμβοι αποτελούν τυχαίες μεταβλητές στην Bayesian λογική: μπορεί να είναι παρατηρήσιμες ποσότητες, λανθάνουσες μεταβλητές, άγνωστες παράμετροι ή υποθέσεις. Οι ακμές αντιπροσωπεύουν τις εξαρτήσεις, ενώ οι κόμβοι οι οποίοι δεν είναι συνδεδεμένοι αντιπροσωπεύουν μεταβλητές οι οποίες είναι δυνητικά ανεξάρτητες μεταξύ τους. Κάθε κόμβος συνδέεται με μια συνάρτηση πιθανότητας η οποία λαμβάνει ως είσοδο ένα συγκεκριμένο σύνολο τιμών για τις μεταβλητές του γονέα του κόμβου και δίνει την πιθανότητα της μεταβλητής η οποία αντιπροσωπεύεται από τον κόμβο. Εικόνα 2 Παράδειγμα Βayesian δικτύου. Η βροχή επηρεάζει τη λειτουργία του ψεκαστήρα, και ταυτόχρονα η βροχή και ο ψεκαστήρας επηρεάζουν κατά πόσο το γρασίδι είναι βρεγμένο [URL5].
32 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Mια βασική τεχνική που χρησιμοποιεί ένα δίκτυο Bayes για ένα μονοπαραγοντικό σετ κατηγορικών δεδομένων, υπολογίζει την μεταγενέστερη πιθανότητα παρατήρησης μιας κλάσης (από ένα σύνολο κανονικών κλάσεων και την ανώμαλη κλάση), εφόσον έχει πάρει προηγουμένως ένα στιγμιότυπο από τα δεδομένα δοκιμής. Η κλάση με τη μεγαλύτερη μεταγενέστερη πιθανότητα επιλέγεται ως η προβλεπόμενη για το δεδομένο στιγμιότυπο δοκιμής. Η πιθανότητα παρατήρησης του στιγμιότυπου, δεδομένης μιας κλάσης και οι προηγούμενες πιθανότητες της κλάσης, υπολογίζονται από το σύνολο δεδομένων εκπαίδευσης. Τεχνικές ανίχνευσης ανωμαλιών βασισμένες σε Support Vector Machines (SVM): Ο βασικός SVM, αφού πάρει ένα σύνολο δεδομένων εισόδου, προβλέπει, για κάθε είσοδο, ποιά από τις δύο δυνατές τάξεις αποτελεί την έξοδο, καθιστώντας τον ως ένα γραμμικό δυαδικό ταξινομητή. Λαμβάνοντας υπόψη ένα σύνολο στιγμιότυπων εκπαίδευσης, κάθε ένα από τα οποία ανήκει σε μία από τις δύο κατηγορίες, ένα SVM χτίζει ένα μοντέλο το οποίο εκχωρεί νέα παραδείγματα στη μία κατηγορία ή την άλλη. Ένα μοντέλο SVM αποτελεί μια αναπαράσταση των παραδειγμάτων ως σημεία στο χώρο, τα οποία χαρτογραφούνται, έτσι ώστε τα παραδείγματα των ξεχωριστών κατηγοριών να χωρίζονται από ένα σαφές κενό το οποίο είναι όσο το δυνατόν ευρύτερο. Τα νέα παραδείγματα στη συνέχεια χαρτογραφούνται στον ίδιο χώρο. Επιπλέον, προβλέπεται αν ανήκουν σε μια κατηγορία με βάση την πλευρά του διακένου στην οποία «πέφτουν». Εικόνα 3 Παράδειγμα ταξινομητών SVM. Ο Η3 είναι ο καλύτερος ταξινομητής, διότι χωρίζει τις δύο κατηγορίες με τέτοιο τρόπο, ώστε το διάκενο μεταξύ τους να είναι ευρύτερο.[url7] Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 33 Εκτός από γραμμική ταξινόμηση, τα SVMs μπορούν να εκτελέσουν αποτελεσματικά και μη-γραμμική ταξινόμηση, χρησιμοποιώντας το τέχνασμα του πυρήνα, με το οποίο, εμμέσως, χαρτογραφούν τις εισόδους τους σε μεγάλων διαστάσεων χώρους χαρακτηριστικών. Τεχνικές ανίχνευσης ανωμαλιών βασισμένες σε κανόνες (Rule based): Οι βασισμένες σε κανόνες τεχνικές ανίχνευσης ανωμαλιών, μαθαίνουν κανόνες οι οποίοι απεικονίζουν την κανονική συμπεριφορά ενός συστήματος. Κάποιο στιγμιότυπο το οποίο δεν καλύπτεται από τους εν λόγω κανόνες θεωρείται ανωμαλία. Οι τεχνικές αυτές έχουν εφαρμοστεί σε multi-class καθώς και σε one-class περιπτώσεις. Στην περίπτωση multi-class η τεχνική αποτελείται από δύο βήματα. Στο πρώτο βήμα συντελείται η μάθηση των κανόνων από τα δεδομένα εκπαίδευσης χρησιμοποιώντας έναν αλγόριθμο μάθησης όπως ο RIPPER, τα δέντρα αποφάσεων, κλπ. Κάθε κανόνας έχει μια σχετική τιμή εμπιστοσύνης η οποία είναι ανάλογη με το λόγο του αριθμού των περιπτώσεων εκπαίδευσης οι οποίες ταξινομούνται ορθώς από τον κανόνα, και του συνολικού αριθμού περιπτώσεων εκπαίδευσης. Στο δεύτερο βήμα επιχειρείται η εύρεση, για κάθε παράδειγμα δοκιμής, του κανόνα ο οποίος συλλαμβάνει καλύτερα το παράδειγμα δοκιμής, έτσι ώστε το αντίστροφο της εμπιστοσύνης η οποία συνδέεται με τον καλύτερο κανόνα να είναι το σκορ ανωμαλίας του παραδείγματος δοκιμής. Πλεονεκτήματα και Μειονεκτήματα Τεχνικών Ταξινόμησης στην Ανίχνευση Ανωμαλιών Πλεονεκτήματα: 1. Οι τεχνικές ταξινόμησης, και ειδικότερα οι multi-class ταξινομητές, κάνουν χρήση ισχυρών αλγορίθμων οι οποίοι μπορούν να διακρίνουν μεταξύ των περιπτώσεων διαφορετικών τάξεων. 2. H φάση ελέγχου των τεχνικών με βάση την ταξινόμηση, είναι γρήγορη, δεδομένου ότι κάθε περίπτωση δοκιμής πρέπει να συγκρίνεται με το προυπολογιζόμενο μοντέλο. Μειονεκτήματα: 1. Οι multi-class τεχνικές, βασίζονται στην ύπαρξη ακριβών ετικετών για διάφορες κανονικές τάξεις, το οποίο συχνά δεν είναι δυνατόν.
34 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης 2. Οι τεχνικές οι οποίες έχουν βάση την ταξινόμηση, αντιστοιχούν μια ετικέτα σε κάθε περίπτωση δοκιμής πράγμα το οποίο μπορεί επίσης να γίνει μειονέκτημα, όταν είναι επιθυμητό ένα ουσιαστικό αποτέλεσμα ανωμαλίας για τις περιπτώσεις δοκιμής. Ορισμένες τεχνικές ταξινόμησης οι οποίες αποκτούν μια πιθανολογική πρόβλεψη βαθμολόγησης από την έξοδο του ταξινομητή, μπορούν να χρησιμοποιηθούν για την αντιμετώπιση αυτού του ζητήματος. Τεχνικές πλησιέστερου γείτονα Οι τεχνικές ανίχνευσης ανωμαλιών με βάση τον πλησιέστερο γείτονα απαιτούν ένα μέτρο απόστασης ή ομοιότητας που ορίζεται μεταξύ δύο στιγμιότυπων δεδομένων. Η απόσταση (ή ομοιότητα) μεταξύ δύο στιγμιότυπων δεδομένων μπορεί να υπολογιστεί με διάφορους τρόπους. Για συνεχή χαρακτηριστικά γνωρίσματα, η Ευκλείδεια απόσταση είναι μια δημοφιλής επιλογή. Για τα κατηγορικά χαρακτηριστικά γνωρίσματα χρησιμοποιείται συχνά απλός συντελεστής αντιστοιχίας, αλλά μπορεί να χρησιμοποιηθούν και πιο πολύπλοκα μέτρα απόστασης. Για περιπτώσεις πολυπαραγοντικών δεδομένων, η απόσταση ή ομοιότητα συνήθως υπολογίζεται για κάθε χαρακτηριστικό και στη συνέχεια συνδυάζονται [BRE00]. Οι τεχνικές ανίχνευσης ανωμαλιών με βάση τον πλησιέστερο γείτονα μπορούν γενικά να ταξινομηθούν σε δύο κατηγορίες: 1. Τις τεχνικές που χρησιμοποιούν την απόσταση ενός στιγμιότυπου δεδομένων από τον k-οστό πλησιέστερο γείτονα του, ως το σκορ ανωμαλίας. 2. Τις τεχνικές που υπολογίζουν τη σχετική πυκνότητα πιθανότητας του κάθε στιγμιότυπου δεδομένων για να υπολογίσουν το σκορ ανωμαλίας του. Απόσταση από τους k πλησιέστερους γείτονες Το σκορ ανωμαλίας του στιγμιότυπου δεδομένων ορίζεται ως η απόστασή του από τον k-οστό γείτονά του σε ένα δοσμένο σύνολο δεδομένων. Συνήθως εφαρμόζεται στη συνέχεια ένα όριο στο σκορ ανωμαλίας για να προσδιοριστεί αν ένα στιγμιότυπο ελέγχου είναι ανώμαλο ή όχι. Ένας διαφορετικός τρόπος υπολογισμού του σκορ ανωμαλίας ενός στιγμιότυπου δεδομένων είναι με τη μέτρηση του αριθμού των πλησιέστερων γειτόνων που δεν είναι πιο απομακρυσμένοι από μια απόσταση d από το δεδομένο στιγμιότυπο δεδομένων. Η μέθοδος αυτή μπορεί επίσης να θεωρηθεί ως εκτίμηση της ολικής Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 35 πυκνότητας πιθανότητας για κάθε στιγμιότυπο δεδομένων, διότι πρόκειται για μέτρηση του αριθμού των γειτόνων σε μια υπερ-σφαίρα ακτίνας d. Σχετική πυκνότητα Οι τεχνικές ανίχνευσης ανωμαλιών με βάση την πυκνότητα εκτιμούν την πυκνότητα πιθανότητας της γειτονιάς κάθε στιγμιότυπου δεδομένων. Ένα στιγμιότυπο που βρίσκεται σε μια γειτονιά με χαμηλή πυκνότητα δηλώνεται ως ανώμαλο, ενώ ένα στιγμιότυπο που βρίσκεται σε μια πυκνή γειτονιά δηλώνεται ως φυσιολογικό. Για ένα δεδομένο στιγμιότυπο δεδομένων, η απόσταση προς τον k-οστό πλησιέστερο γείτονα είναι ισοδύναμη με την ακτίνα μιας υπερ-σφαίρας, με κέντρο το δεδομένο στιγμιότυπο, η οποία σφαίρα περιέχει επιπλέον k στιγμιότυπα. Έτσι, η απόσταση από το πλησιέστερο k-οστό γείτονα για ένα δεδομένο στιγμιότυπο μπορεί να προβληθεί ως μια εκτίμηση του αντιστρόφου της πυκνότητας του στιγμιότυπου στο σύνολο δεδομένων. Επομένως η τεχνική που βασίζεται στον πλησιέστερο γείτονα μπορεί να θεωρηθεί ως μία τεχνική ανίχνευσης ανωμαλιών με βάση την πυκνότητα. Για να αντιμετωπιστεί το πρόβλημα των περιπτώσεων όπου υπάρχουν διάφορες πυκνότητες στο σύνολο δεδομένων, έχει προταθεί μία σειρά από τεχνικές για να υπολογίζεται η πυκνότητα των στιγμιότυπων σε σχέση με την πυκνότητα των γειτόνων τους. Πλεονεκτήματα και Μειονεκτήματα Τεχνικών Ανίχνευσης Ανωμαλιών με βάση τον Πλησιέστερο Γείτονα Πλεονεκτήματα: 1. Ένα βασικό πλεονέκτημα των τεχνικών με βάση την απόσταση από τον πλησιέστερο γείτονα είναι ότι είναι στη φύση χωρίς επίβλεψη και δεν κάνουν καμία παραδοχή σχετικά με την παραγωγική διανομή των δεδομένων. Αντ' αυτού, οδηγούνται καθαρά από τα δεδομένα. 2. Οι ημι-εποπτευόμενες τεχνικές αποδίδουν καλύτερα από τις χωρίς επίβλεψη τεχνικές όσον αφορά την παράλειψη ανωμαλιών, αφού η πιθανότητα μια ανωμαλία να σχηματίσει μια πυκνή γειτονιά στο σύνολο δεδομένων εκπαίδευσης είναι πολύ χαμηλή. 3. Η προσαρμογή των τεχνικών με βάση τον πλησιέστερο γείτονα σε διαφορετικό τύπο δεδομένων μπορεί να γίνει κατ' ευθείαν, και κυρίως
36 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης απαιτεί τον καθορισμό κατάλληλου μέτρου απόστασης για τα δεδομένα στοιχεία. Μειονεκτήματα: 1. Για τις χωρίς επίβλεψη τεχνικές, εάν τα δεδομένα έχουν ομαλά στιγμιότυπα που δεν έχουν αρκετούς κοντινούς γείτονες ή αν τα δεδομένα έχουν ανωμαλίες που έχουν αρκετούς κοντινούς γείτονες, η τεχνική αποτυγχάνει να τα καθορίσει σωστά, με αποτέλεσμα να χάνει ανωμαλίες. 2. Για τις ημι-εποπτευόμενες τεχνικές, αν οι κανονικές περιπτώσεις στα δεδομένα δοκιμής δεν έχουν αρκετές παρόμοιες κανονικές περιπτώσεις στα δεδομένα εκπαίδευσης, το ποσοστό ψευδώς θετικών αποτελεσμάτων για τέτοιες τεχνικές είναι υψηλό. 3. H υπολογιστική πολυπλοκότητα της φάσης του ελέγχου αποτελεί επίσης μια σημαντική πρόκληση, δεδομένου ότι περιλαμβάνει τον υπολογισμό της απόστασης κάθε στιγμιότυπου δοκιμής με όλα τα στιγμιότυπα που ανήκουν είτε στα δεδομένα δοκιμής τα ίδια, ή στα δεδομένα εκπαίδευσης, για να υπολογίσει τους πλησιέστερους γείτονες. 4. Η απόδοση μιας τεχνικής βασισμένη στον πλησιέστερο γείτονα βασίζεται σε μεγάλο βαθμό σε ένα μέτρο απόστασης, που ορίζεται μεταξύ ενός ζεύγους περιπτώσεων δεδομένων, που μπορεί αποτελεσματικά να διακρίνει μεταξύ φυσιολογικών και ανώμαλων περιπτώσεων. Ο καθορισμός αυτού του μέτρου απόστασης μεταξύ περιπτώσεων μπορεί να είναι δύσκολος όταν τα δεδομένα είναι σύνθετα, π.χ. γραφήματα, αλληλουχίες, κλπ [ΚΥΡ10]. Τεχνικές Ομαδοποίησης H ομαδοποίηση χρησιμοποιείται για να συγκεντρώνει παρόμοιες περιπτώσεις δεδομένων σε συστάδες. Ακόμα κι αν η ομαδοποίηση και η ανίχνευση ανωμαλιών φαίνονται να είναι ουσιαστικά διαφορετικές ενέργειες, πολλές τεχνικές ανίχνευσης ανωμαλιών με βάση την ομαδοποίηση έχουν αναπτυχθεί και μπορούν να ομαδοποιηθούν σε τρεις κατηγορίες: 1. Τεχνικές που βασίζονται στο γεγονός ότι οι κανονικές περιπτώσεις δεδομένων ανήκουν σε κάποια συστάδα δεδομένων, ενώ οι ανωμαλίες δεν ανήκουν σε καμία συστάδα. Οι τεχνικές αυτές εφαρμόζουν κάποιο γνωστό αλγόριθμο ομαδοποίησης στα στοιχεία, και δηλώνουν κάθε Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 37 περίπτωση δεδομένων που δεν ανήκει σε καμία συστάδα ως ανώμαλη. Ένα μειονέκτημα αυτών των τεχνικών είναι ότι δεν έχουν βελτιστοποιηθεί για να βρίσκουν ανωμαλίες, δεδομένου ότι ο κύριος στόχος του συγκεκριμένου αλγόριθμου ομαδοποίησης είναι να βρίσκει συστάδες. 2. Τεχνικές που βασίζονται στην παραδοχή ότι «στις φυσιολογικές περιπτώσεις τα δεδομένα βρίσκονται κοντά στη συστάδα με βάση το κέντρο βάρους τους, ενώ οι ανωμαλίες είναι πολύ μακριά από την πλησιέστερη συστάδα με βάση το κέντρο βάρους τους» και αποτελούνται από δύο στάδια. Στο πρώτο στάδιο τα δεδομένα ομαδοποιούνται χρησιμοποιώντας ένα αλγόριθμο ομαδοποίησης. Στο δεύτερο στάδιο, για κάθε στιγμιότυπο δεδομένων, η απόσταση του από την πλησιέστερη κεντροειδή ομάδα υπολογίζεται και ως η βαθμολογία ανωμαλίας του. Τεχνικές που βασίζονται στην παραπάνω υπόθεση μπορούν επίσης να λειτουργήσουν και σε ημι-εποπτευόμενη λειτουργία, στην οποία τα δεδομένα εκπαίδευσης είναι συγκεντρωμένα σε συστάδες και οι περιπτώσεις που ανήκουν στα δεδομένα δοκιμής συγκρίνονται με τις συστάδες για να ληφθεί ένα σκορ ανωμαλίας για την κάθε περίπτωση. Αν οι ανωμαλίες στα δεδομένα δημιουργούν συστάδες από μόνες τους, οι παραπάνω τεχνικές δεν είναι σε θέση να ανιχνεύσουν αυτές τις ανωμαλίες. 3. Τεχνικές που βασίζονται στην υπόθεση ότι οι κανονικές περιπτώσεις δεδομένων ανήκουν σε μεγάλες και πυκνές συστάδες, ενώ οι ανωμαλίες είτε ανήκουν σε μικρές είτε σε αραιές συστάδες. Οι τεχνικές με βάση την παραπάνω υπόθεση δηλώνουν ότι οι περιπτώσεις που ανήκουν σε συστάδες των οποίων το μέγεθος και / ή η πυκνότητα είναι κάτω από ένα όριο είναι ανώμαλες. Πλεονεκτήματα και Μειονεκτήματα Τεχνικών Ανίχνευσης Ανωμαλιών με βάση την Ομαδοποίηση Πλεονεκτήματα: 1. Οι τεχνικές με βάση την ομαδοποίηση μπορούν να λειτουργήσουν σε μη εποπτευόμενη λειτουργία.
38 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης 2. Τέτοιες τεχνικές μπορούν εύκολα να προσαρμοστούν σε άλλους σύνθετους τύπους δεδομένων, απλά συνδέοντας ένα αλγόριθμο ομαδοποίησης που μπορεί να χειριστεί το συγκεκριμένο τύπο δεδομένων. 3. Η φάση δοκιμών για τις τεχνικές με βάση την ομαδοποίηση είναι γρήγορη δεδομένου ότι ο αριθμός των συστάδων με τις οποίες χρειάζεται να συγκριθεί κάθε παράδειγμα δοκιμής είναι μια μικρή σταθερά. Μειονεκτήματα: 1. H απόδοση των τεχνικών με βάση την ομαδοποίηση εξαρτάται σε μεγάλο βαθμό από την αποτελεσματικότητα του αλγορίθμου ομαδοποίησης να συλλάβει τη δομή της συστάδας των κανονικών περιπτώσεων. 2. Πολλές τεχνικές ανιχνεύουν ανωμαλίες ως ένα παραπροϊόν της ομαδοποίησης, και επομένως δεν έχουν βελτιστοποιηθεί για την ανίχνευση ανωμαλιών. 3. Αρκετοί αλγόριθμοι ομαδοποίησης αναγκάζουν κάθε περίπτωση να αντιστοιχηθεί σε κάποια συστάδα. Αυτό μπορεί να οδηγήσει στο να ανατεθούν ανωμαλίες σε μια μεγάλη συστάδα, και έτσι να θεωρούνται ως κανονικές περιπτώσεις με τεχνικές που λειτουργούν με βάση την υπόθεση ότι οι ανωμαλίες δεν ανήκουν σε καμία συστάδα. 4. Διάφορες τεχνικές βασιζόμενες στην ομαδοποίηση είναι αποτελεσματικές μόνο όταν οι ανωμαλίες δεν σχηματίζουν σημαντικές συστάδες μεταξύ τους. 5. Η υπολογιστική πολυπλοκότητα για την ομαδοποίηση των δεδομένων είναι συχνά ένα εμπόδιο. Στατιστικές τεχνικές Οι στατιστικές τεχνικές ανίχνευσης ανωμαλιών βασίζονται στην υπόθεση ότι οι κανονικές περιπτώσεις δεδομένων συμβαίνουν σε περιοχές υψηλής πιθανότητας ενός στοχαστικού μοντέλου, ενώ οι ανωμαλίες εμφανίζονται σε περιοχές χαμηλής πιθανότητας του στοχαστικού μοντέλου. Εφαρμόζουν ένα στατιστικό μοντέλο (συνήθως για τη φυσιολογική συμπεριφορά) στα δεδομένα στοιχεία και στη συνέχεια εφαρμόζουν μια στατιστική δοκιμή συμπεράσματος για να καθορίσουν εάν ένα Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 39 καινούριο στιγμιότυπο ανήκει σε αυτό το μοντέλο ή όχι. Οι περιπτώσεις που έχουν χαμηλή πιθανότητα να έχουν παραχθεί από το δεδομένο μοντέλο, με βάση την εφαρμοζόμενη στατιστική δοκιμή, δηλώνονται ως ανωμαλίες. Υπάρχουν παραμετρικές καθώς και μη-παραμετρικές τεχνικές για την εφαρμογή ενός στατιστικού μοντέλου. Παραμετρικές τεχνικές: Θεωρούν ότι τα φυσιολογικά δεδομένα παράγονται από μια παραμετρική κατανομή. 1. Βασισμένες σε Gaussian μοντέλα Αυτές οι τεχνικές προϋποθέτουν ότι τα δεδομένα παράγονται από μια κατανομή Gaussian. Οι παράμετροι υπολογίζονται με τη χρήση εκτιμητών μέγιστης πιθανότητας (Maximum Likelihood Estimates-MLE). H απόσταση ενός στιγμιότυπου δεδομένων από την εκτιμώμενη μέση τιμή είναι η βαθμολογία ανωμαλίας για το εν λόγω στιγμιότυπο. Ακολούθως εφαρμόζεται ένα όριο στα αποτελέσματα για να καθοριστούν οι ανωμαλίες. Υπάρχουν διαφορετικές τεχνικές σε αυτή την κατηγορία που υπολογίζουν την απόσταση από το μέσο και το όριο με διαφορετικούς τρόπους. Ο κανόνας του θηκογράμματος είναι η πιο απλή στατιστική τεχνική που έχει εφαρμοστεί για την ανίχνευση μονοπαραγοντικών και πολυπαραγοντικών ανωμαλιών σε ιατρικά δεδομένα. Το θηκόγραμμα απεικονίζει γραφικά τα δεδομένα χρησιμοποιώντας χαρακτηριστικά όπως η μικρότερη παρατηρήσιμη ανωμαλία (min), το πρώτο τεταρτημόριο (Q1), ο μέσος, το τρίτο τεταρτημόριο (Q3), και η μεγαλύτερη παρατηρήσιμη μη-ανωμαλία (max). Η ποσότητα Q3-Q1 ονομάζεται ενδοτεταρτομοριακό εύρος. Το θηκόγραμμα δείχνει, επίσης, τα όρια πέρα από τα οποία κάθε παρατήρηση θα θεωρείται ανωμαλία. Ένα παράδειγμα δεδομένων που βρίσκεται πάνω από 1,5*IQR χαμηλότερα από το Q1 ή 1,5 * IQR υψηλότερα από το Q3 κηρύσσεται ως ανωμαλία. Εικόνα 4 Παράδειγμα θηκογράμματος [URL6]
40 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης 2. Βασισμένες σε μοντέλα παλινδρόμησης (Regression) Στη στατιστική, η ανάλυση παλινδρόμησης είναι μία τεχνική για την εκτίμηση των σχέσεων μεταξύ των μεταβλητών. Πιο συγκεκριμένα, εστιάζει στη σχέση μεταξύ μιας εξαρτημένης μεταβλητής και μίας ή περισσότερων ανεξάρτητων μεταβλητών. Η ανάλυση παλινδρόμησης βοηθά κάποιον να κατανοήσει πώς η τυπική τιμή των εξαρτώμενων μεταβλητών αλλάζει όταν οποιαδήποτε από τις ανεξάρτητες μεταβλητές μεταβάλλεται, ενώ οι υπόλοιπες ανεξάρτητες μεταβλητές παραμένουν σταθερές. Σε όλες τις περιπτώσεις, ο εκτιμητής είναι μία συνάρτηση των ανεξάρτητων μεταβλητών η οποία ονομάζεται συνάρτηση παλινδρόμησης. Η βασική τεχνική ανίχνευσης ανωμαλιών με βάση το μοντέλο παλινδρόμησης αποτελείται από δύο βήματα. Στο πρώτο στάδιο, ένα μοντέλο παλινδρόμησης εκπαιδεύεται με τα δεδομένα. Στο δεύτερο στάδιο, για κάθε στιγμιότυπο δοκιμής, το υπόλοιπο (residual) του στιγμιότυπου δοκιμής χρησιμοποιείται για τον προσδιορισμό του σκορ ανωμαλίας. Το υπόλοιπο είναι το κομμάτι της εξαρτημένης μεταβλητής που δεν εξηγείται από το μοντέλο παλινδρόμησης. Το μέγεθος του υπολοίπου μπορεί να χρησιμοποιηθεί ως σκορ ανωμαλίας για την περίπτωση, αν και έχουν προταθεί στατιστικά τεστ για τον προσδιορισμό ανωμαλιών με συγκεκριμένη εμπιστοσύνη [ANS60], [BEC83], [HAW80], [TOR93]. Η παρουσία των ανωμαλιών στα δεδομένα εκπαίδευσης μπορεί να επηρεάσει τις παραμέτρους παλινδρόμησης και ως εκ τούτου, το μοντέλο παλινδρόμησης δεν μπορεί να παράγει ακριβή αποτελέσματα. Μια δημοφιλής τεχνική η οποία χειρίζεται αυτές τις ανωμαλίες, ενώ χρησιμοποιεί μοντέλα παλινδρόμησης ονομάζεται ισχυρή παλινδρόμηση (robust regression). 3. Μείγμα παραμετρικών διανομών Τέτοιες τεχνικές χρησιμοποιούν ένα μείγμα από παραμετρικές στατιστικές κατανομές για τη μοντελοποίηση των δεδομένων. Οι τεχνικές σε αυτή την κατηγορία μπορούν να διαχωριστούν σε δύο υπο-κατηγορίες. Η πρώτη υποκατηγορία μοντελοποιεί τις κανονικές περιπτώσεις και τις ανωμαλίες ως ξεχωριστές παραμετρικές διανομές, ενώ η δεύτερη υποκατηγορία των τεχνικών μοντελοποιεί μόνο τις κανονικές περιπτώσεις ως ένα μίγμα παραμετρικών κατανομών. Για την πρώτη υποκατηγορία των τεχνικών, το δοκιμαστικό στάδιο περιλαμβάνει τον καθορισμό της διανομής -κανονική ή ανώμαλη- στην οποία ανήκει η δοκιμαστική περίπτωση. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 41 Για τη δεύτερη υποκατηγορία μια δοκιμαστική περίπτωση η οποία δεν ανήκει σε κανένα από τα δεδομένα μοντέλα κηρύσσεται ως ανωμαλία. Ως επί το πλείστον χρησιμοποιούνται για τέτοιες τεχνικές τα Gaussian Mixture Models. Μη-παραμετρικές τεχνικές: Αυτές οι τεχνικές χρησιμοποιούν μη-παραμετρικά στατιστικά μοντέλα, έτσι ώστε η δομή του μοντέλου δεν ορίζεται εκ των προτέρων, αλλά αντ' αυτού καθορίζεται από τα δεδομένα στοιχεία. Τέτοιες τεχνικές κάνουν συνήθως λιγότερες υποθέσεις όσον αφορά τα δεδομένα, σε σχέση με τις παραμετρικές τεχνικές. 1. Με βάση ιστογράμματα H απλούστερη μη παραμετρική στατιστική τεχνική είναι η χρήση ιστογραμμάτων για τη διατήρηση ενός προφίλ των κανονικών δεδομένων. Οι τεχνικές αυτές αναφέρονται ως βασισμένες στη συχνότητα ή βασισμένες στην καταμέτρηση. Μια βασική τεχνική ανίχνευσης ανωμαλιών με βάση ένα ιστόγραμμα για μονοδιάστατα δεδομένα αποτελείται από δύο βήματα. Το πρώτο βήμα περιλαμβάνει την κατασκευή ενός ιστογράμματος με βάση τις τιμές που λαμβάνονται από κάποιο χαρακτηριστικό γνώρισμα στα δεδομένα εκπαίδευσης. Στο δεύτερο στάδιο, ελέγχεται αν μια δοκιμαστική περίπτωση εμπίπτει σε οποιοδήποτε από τα δοχεία του ιστογράμματος. Αν το κάνει είναι φυσιολογική, αλλιώς είναι ανωμαλία. Το μέγεθος των δοχείων που χρησιμοποιούνται κατά την οικοδόμηση του ιστογράμματος είναι το κλειδί για την ανίχνευση ανωμαλίας. Αν τα δοχεία είναι μικρά, πολλές φυσιολογικές περιπτώσεις θα πέσουν στο κενό ή σε σπάνια δοχεία, με αποτέλεσμα ένα υψηλό ποσοστό λανθασμένων αποδοχών (false positive). Αν τα δοχεία είναι μεγάλα, πολλές ανώμαλες περιπτώσεις δοκιμής θα πέσουν σε συχνά δοχεία, με αποτέλεσμα μια μεγάλη πιθανότητα εσφαλμένα αρνητικών (false negative) αποτελεσμάτων. Κατά συνέπεια, βασική πρόκληση για τις τεχνικές με βάση τα ιστογράμματα είναι να καθοριστεί ένα βέλτιστο μέγεθος δοχείων για την κατασκευή του ιστογράμματος ώστε να διατηρεί χαμηλό ποσοστό ψεύτικων συναγερμών και χαμηλό ποσοστό ψευδώς αρνητικών αποτελεσμάτων. 2. Βασισμένες σε συναρτήσεις πυρήνα (kernel function) Μία μη-παραμετρική τεχνική για την εκτίμηση πυκνότητας πιθανότητας είναι τα παράθυρα εκτίμησης Parzen. Αυτά περιλαμβάνουν τη χρήση συναρτήσεων πυρήνα για την προσέγγιση της πραγματικής πυκνότητας. Οι τεχνικές αυτές είναι παρόμοιες
42 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης με τις τεχνικές με παραμετρικές μεθόδους που περιγράφονται προηγουμένως. Η μόνη διαφορά είναι η τεχνική που χρησιμοποιείται για την εκτίμηση πυκνότητας. Πλεονεκτήματα και μειονεκτήματα Τεχνικών Ανίχνευσης Ανωμαλιών με βάση τη Στατιστική Πλεονεκτήματα: 1. Εάν οι παραδοχές σχετικά με την κατανομή των δεδομένων ισχύουν, οι στατιστικές τεχνικές παρέχουν στατιστικά μια καλή λύση για την ανίχνευση ανωμαλιών. 2. Η βαθμολογία ανωμαλίας που παρέχεται από μία στατιστική τεχνική σχετίζεται με ένα διάστημα εμπιστοσύνης, το οποίο μπορεί να χρησιμοποιηθεί ως συμπληρωματική πληροφορία κατά τη διάρκεια που λαμβάνεται μια απόφαση σχετικά με κάθε περίπτωση δοκιμής. 3. Αν το βήμα εκτίμησης της διανομής είναι ανθεκτικό σε ανωμαλίες των δεδομένων, οι στατιστικές τεχνικές μπορούν να λειτουργήσουν σε ένα περιβάλλον χωρίς επίβλεψη, χωρίς να υπάρχει ανάγκη για σήμανση των δεδομένων εκπαίδευσης. Μειονεκτήματα: 1. Το βασικό μειονέκτημα των στατιστικών τεχνικών είναι ότι βασίζονται στην υπόθεση ότι τα δεδομένα παράγονται από μια συγκεκριμένη κατανομή. Η υπόθεση αυτή συχνά δεν ισχύει και ειδικά για σύνολα δεδομένων υψηλών διαστάσεων. 2. Ακόμα και όταν η στατιστική παραδοχή μπορεί λογικά να δικαιολογηθεί, υπάρχουν στατιστικά τεστ που μπορούν να εφαρμοστούν για την ανίχνευση ανωμαλιών. Όμως η επιλογή της καλύτερης στατιστικής δεν είναι απλή. Ειδικότερα, η κατασκευή ελέγχων στατιστικών υποθέσεων για πολύπλοκες κατανομές πολλών διαστάσεων είναι προβληματική. 3. Οι τεχνικές με βάση ιστογράμματα είναι σχετικά απλές στην εφαρμογή τους, αλλά ένα βασικό μειονέκτημα αυτών των τεχνικών για πολυπαραγοντικά δεδομένα είναι ότι δεν είναι σε θέση να συλλάβουν τις αλληλεπιδράσεις μεταξύ των διαφορετικών χαρακτηριστικών. Μια ανωμαλία μπορεί να έχει τιμές στα χαρακτηριστικά της που να είναι Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 43 μεμονωμένα πολύ συχνές, αλλά ο συνδυασμός τους να είναι πολύ σπάνιος. Μια τεχνική με βάση ένα ιστόγραμμα χαρακτηριστικών δεν θα είναι σε θέση να ανιχνεύσει αυτές τις ανωμαλίες. Τεχνικές με βάση την πληροφορία Οι τεχνικές με βάση την πληροφορία αναλύουν το περιεχόμενο των πληροφοριών από ένα σύνολο δεδομένων με τη χρήση διαφόρων μέτρων όπως η πολυπλοκότητα Kolomogorov, η εντροπία, η σχετική εντροπία, κλπ. Τέτοιες τεχνικές βασίζονται στην υπόθεση ότι οι ανωμαλίες στα δεδομένα προκαλούν ανωμαλίες στο περιεχόμενο των πληροφοριών του συνόλου δεδομένων. Έστω C(D) το οποίο χαρακτηρίζει την πολυπλοκότητα σε ένα δοσμένο σύνολο δεδομένων, D. Μια βασική τεχνική πληροφοριών μπορεί να περιγραφεί ως εξής. Δεδομένου ενός συνόλου δεδομένων D, να βρεθεί το ελάχιστο υποσύνολο περιπτώσεων, Ι, έτσι ώστε η ποσότητα C(D)-C(D-I) να είναι μέγιστη. Όλες οι περιπτώσεις στο υποσύνολο που λαμβάνεται, θεωρούνται ως ανώμαλες. Πλεονεκτήματα και μειονεκτήματα Τεχνικών Ανίχνευσης Ανωμαλιών με βάση την Πληροφορία Πλεονεκτήματα: 1. Μπορούν να λειτουργούν σε περιβάλλον χωρίς επίβλεψη. 2. Δεν κάνουν καμία υπόθεση για τη στατιστική κατανομή των δεδομένων. Μειονεκτήματα: 1. Η απόδοση τέτοιων τεχνικών εξαρτάται σε μεγάλο βαθμό από την επιλογή του μέτρου θεωρίας πληροφοριών. Συχνά, τέτοια μέτρα μπορούν να ανιχνεύσουν την παρουσία των ανωμαλιών μόνον όταν υπάρχει σημαντικά μεγάλος αριθμός των ανωμαλιών στα δεδομένα. 2. Οι τεχνικές θεωρίας πληροφοριών που εφαρμόζονται σε αλληλουχίες και χωρικά σύνολα δεδομένων βασίζονται στο μέγεθος της υποκατασκευής, το οποίο είναι συχνά προβληματικό να ληφθεί. 3. Είναι δύσκολο να συνδεθεί ένα σκορ ανωμαλίας με μια περίπτωση δοκιμής χρησιμοποιώντας τεχνικές θεωρίας πληροφοριών. Τεχνικές με βάση το φάσμα Οι τεχνικές με βάση το φάσμα προσπαθούν να βρουν μια προσέγγιση των δεδομένων χρησιμοποιώντας ένα συνδυασμό των χαρακτηριστικών που
44 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης συλλαμβάνουν το μεγαλύτερο μέρος της μεταβλητότητας στα δεδομένα. Οι τεχνικές αυτές βασίζονται στην παραδοχή ότι τα δεδομένα μπορούν να ενσωματωθούν σε έναν χαμηλότερων διαστάσεων υποχώρο στον οποίο οι κανονικές περιπτώσεις και οι ανωμαλίες εμφανίζονται σημαντικά διαφορετικές. Έτσι η γενική προσέγγιση που υιοθετήθηκε από τις φασματικές τεχνικές ανίχνευσης ανωμαλιών είναι να καθορίσουν τέτοιους υποχώρους στους οποίους οι ανώμαλες περιπτώσεις μπορούν να προσδιοριστούν εύκολα. Πλεονεκτήματα και μειονεκτήματα Τεχνικών Ανίχνευσης Ανωμαλιών με βάση το Φάσμα Πλεονεκτήματα: 1. Οι φασματικές τεχνικές εκτελούν αυτόματα μείωση των διαστάσεων και ως εκ τούτου είναι κατάλληλες για το χειρισμό συνόλων δεδομένων υψηλών διαστάσεων. Επιπλέον, μπορούν να χρησιμοποιηθούν ως ένα στάδιο προεπεξεργασίας ακολουθούμενης από την εφαρμογή οποιασδήποτε υπάρχουσας τεχνικής ανίχνευσης ανωμαλιών στο μετασχηματισμένο χώρο. 2. Οι φασματικές τεχνικές μπορούν να χρησιμοποιηθούν σε περιβάλλοντα χωρίς επιτήρηση. Μειονεκτήματα: 1. Οι φασματικές τεχνικές είναι χρήσιμες μόνο εάν οι κανονικές και ανώμαλες περιπτώσεις είναι διαχωρίσιμες στην κατώτερων διαστάσεων ενσωμάτωση των δεδομένων. 2. Οι φασματικές τεχνικές έχουν συνήθως υψηλή υπολογιστική πολυπλοκότητα. 2.2.3. Εφαρμογές των τεχνικών ανίχνευσης ανωμαλιών Οι τεχνικές ανίχνευσης ανωμαλιών χρησιμοποιούνται ευρύτατα στην καθημερινότητα μας, προσφέροντας ασφάλεια σε πολλές περιπτώσεις όπως: Ανίχνευση απάτης: ανίχνευση απάτης αιτήσεων για πιστωτικές κάρτες, εντοπισμός κατάστασης δόλιας χρήσης πιστωτικών καρτών ή κινητών τηλεφώνων. Επεξεργασία αιτήσεων δανείων: για τον εντοπισμό καταχρηστικών αιτήσεων από δυνητικά προβληματικούς πελάτες. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 45 Ανίχνευση παρείσφρησης: ανίχνευση μη εξουσιοδοτημένης πρόσβασης σε δίκτυα υπολογιστών. Παρακολούθηση δραστηριοτήτων: ανίχνευση απάτης κινητών τηλεφώνων με παρακολούθηση της δραστηριότητας του τηλεφώνου ή ύποπτων συναλλαγών στο χρηματιστήριο. Επιδόσεις δικτύων: παρακολούθηση της απόδοσης των δικτύων υπολογιστών, για παράδειγμα, για τον εντοπισμό των σημείων συμφόρησης. Διάγνωση σφαλμάτων: παρακολούθηση των διαδικασιών για την ανίχνευση βλαβών σε κινητήρες, γεννήτριες, αγωγούς ή μέσα σε διαστημικά λεωφορεία για παράδειγμα. Ανίχνευση δομικών ελαττωμάτων: παρακολούθηση γραμμών κατασκευής για τον εντοπισμό ελαττωματικών βημάτων παραγωγής, για παράδειγμα ραγισμένα δοκάρια. Δορυφορική ανάλυση: αναγνώριση νέων χαρακτηριστικών ή εσφαλμένα ταξινομημένων χαρακτηριστικών. Ανίχνευση καινοτομιών στις εικόνες: για ρομπότ ή συστήματα επιτήρησης. Κατάτμηση κίνησης: ανίχνευση χαρακτηριστικών εικόνας που κινούνται ανεξάρτητα από το υπόβαθρο. Παρακολούθηση χρονοσειρών : έλεγχος της ασφάλειας κρίσιμων εφαρμογών. Παρακολούθηση της ιατρικής κατάστασης: όπως οθόνες καρδιακού ρυθμού. Φαρμακευτική έρευνα: εντοπισμός νέων μοριακών δομών. Ανίχνευση καινοτομίας σε κείμενο: εντοπισμός της έναρξης των ειδήσεων, ανίχνευση και εντοπισμός θέματος ή εντοπισμός κεφαλαίων για τους εμπόρους. Ανίχνευση απρόσμενων καταχωρήσεων σε βάσεις δεδομένων: για την εξόρυξη δεδομένων, τον εντοπισμό σφαλμάτων, απάτες ή έγκυρες αλλά απροσδόκητες καταχωρήσεις. Ανίχνευση λάθος επισημασμένων δεδομένων σε ένα σύνολο εκπαίδευσης [HOD04].
46 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης 2.3. Ανίχνευση ανωμαλιών σε ρομποτικούς αισθητήρες Τα συστήματα διάγνωσης βλαβών είναι σημαντικά για τα βιομηχανικά ρομπότ, ιδίως για εκείνα που λειτουργούν σε απομακρυσμένα και επικίνδυνα περιβάλλοντα. Οι βλάβες σε κάποιο ρομποτικό βραχίονα μπορεί να προκαλέσουν οικονομικές και άλλες σοβαρές ζημιές. Έτσι, τα ρομπότ χρειάζονται τη δυνατότητα να ανιχνεύουν και να ανέχονται εσωτερικές αποτυχίες ανεξάρτητα και αποτελεσματικά προκειμένου να μπορούν να συνεχίζουν την εκτέλεση των καθηκόντων τους, χωρίς την ανάγκη για άμεση ανθρώπινη παρέμβαση [VIS91]. Αυτό εξοικονομεί χρόνο και κόστος για την επισκευή του ρομπότ. Έτσι, γίνεται προσπάθεια να αναπτυχθεί ένα ισχυρό σύστημα ανίχνευσης σφαλμάτων για τον εντοπισμό και την απομόνωση των ανωμαλιών στα ρομπότ [DEV08]. Ενώ οι μέθοδοι από άλλους τομείς δίνουν πιθανές προσεγγίσεις για την ανίχνευση σφαλμάτων, η ανάπτυξη μεθόδων ειδικά για τη ρομποτική παρεμποδίζεται από τους περιορισμούς και τις ιδιαιτερότητες του ρομπότ. Στη ρομποτική μπορεί να γίνει χρήση του κάθε περιττού στοιχείου τόσο στην ανίχνευση βλαβών και την ανοχή σε σφάλματα, αλλά το επίπεδο του πλεονασμού συνήθως περιορίζεται από ειδικές εκτιμήσεις. Ενώ ένας άνθρωπος χειριστής μπορεί να χρησιμοποιηθεί για να χειριστεί ρουτίνες ανίχνευσης βλάβης, ο άνθρωπος αποκρίνεται τυπικά αργά, μπορεί να απομονώσει μόνον αποτυχίες που επηρεάζουν δραστικά την απόδοση του ρομπότ, και έχει δυσκολία στην παρακολούθηση μεγάλων ρομπότ με πολλούς βαθμούς ελευθερίας [ESK10]. Για την ανίχνευση αστοχιών γρήγορα, χωρίς την εξάρτηση από τις αισθήσεις ενός ανθρώπου, το ρομπότ πρέπει να στηριχθεί μόνο στις πληροφορίες που μπορεί να συγκεντρώσει από τους αισθητήρες του. Εκτός του ότι είναι δυναμικά, τα ρομπότ είναι δύσκολο να μοντελοποιηθούν επακριβώς [SOF11]. Οι ανακρίβειες στη μοντελοποίηση περιπλέκονται ακόμη περισσότερο από το θόρυβο και τις αλλαγές που οφείλονται στο περιβάλλον. Νέες μέθοδοι αναπτύσσονται για να γίνει δυνατή η ανίχνευση και ταυτοποίηση των αποτυχιών ρομπότ όπως: 2.3.1. Αναλυτικός πλεονασμός (Analytical redundancy) Ο αναλυτικός πλεονασμός είναι μια έννοια που σχετίζεται με την ανίχνευση και την απομόνωση βλαβών, η οποία χρησιμοποιεί μόνο τα διαθέσιμα εξαρτήματα των αισθητήρων ενός συστήματος για να παράγει υπόλοιπα (residuals) μέσω των οποίων μπορούν να ταυτοποιηθούν αποτυχίες. Συγκρίνοντας τα ιστορικά των εξόδων Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 47 των αισθητήρων έναντι των εισόδων του ενεργοποιητή, τα αποτελέσματα από ανόμοιους αισθητήρες μπορούν να συγκριθούν σε διαφορετικούς χρόνους με σκοπό τον έλεγχο για αποτυχίες. Ο αναλυτικός πλεονασμός αποτελεί μια χρήσιμη μαθηματική προσέγγιση για τον προσδιορισμό των διαφόρων πλεονασμών που είναι σχετικοί με τις αποτυχίες υπό εξέταση. Οι μέθοδοι που χρησιμοποιούν αναλυτικό πλεονασμό μπορούν να εφαρμοστούν σε ρομποτικά συστήματα για την ανάπτυξη των δοκιμών που απαιτούνται για την ανίχνευση σφαλμάτων. Ο αναλυτικός πλεονασμός χρησιμοποιεί το διαθέσιμο πλεονασμό (είτε πλεονασμό υλικού ή λειτουργικό πλεονασμό) του συστήματος για να παράγει τεστ ανίχνευσης σφαλμάτων [CHR08]. Δύο εμφανή προβλήματα με τα αναλυτικά τεστ πλεονασμού είναι ότι οι αισθητήρες δεν είναι τέλειοι και μερικές ανιχνευόμενες τιμές πρέπει να διαφοροποιούνται για να συγκρίνονται με αυτές των λειτουργικά ισοδύναμων αισθητήρων. Η έμφυτη απώλεια της ακρίβειας και του θορύβου στους αισθητήρες συνδυάζονται μέσω της διαφοροποίησης. Επειδή οι ελεγκτές ρομπότ γενικά σχεδιάζονται για να προσαρμόζονται σε μικρά λάθη στο σύστημα, οι σχεδιαστές ανοχής βλαβών δέχονται τυπικά την ελαφρά αύξηση του θορύβου που προκαλείται από τη διαφοροποίηση, προκειμένου να αποφευχθούν οι καταστροφικές συνέπειες των επιτρεπόμενων ελαττωματικών στοιχείων στο σύστημα. 2.3.2. Μοντελοποίηση αβεβαιότητας Όρια ανίχνευσης ανωμαλιών Στην καθαρή τους μορφή, τα ιδανικά τεστ που βασίζονται στον αναλυτικό πλεονασμό προκαλούν έναν απαράδεκτο αριθμό από λανθασμένους συναγερμούς στη ρομποτική ανίχνευση ανωμαλιών λόγω λαθών στους αισθητήρες και λόγω λαθών στη μοντελοποίηση του συστήματος, τα οποία λάθη προκύπτουν, για παράδειγμα, από την γραμμικοποίηση των εξισώσεων του ρομπότ και από ανακρίβειες στις παραμέτρους του μοντέλου (όπως στην αδράνεια των συνδέσμων ή τη μάζα). Ένα αποδεκτό όριο για τη διαφορά μεταξύ της επιθυμητής τιμής και της τιμής που διαβάζεται από τον αισθητήρα πρέπει να επιλέγεται για να καλύψει αυτές τις ανακρίβειες. Τυπικά, στη ρομποτική, τα όρια καθορίζονται εμπειρικά από την παρακολούθηση μιας αλάνθαστης λειτουργίας και θέτοντας το όριο μεγαλύτερο από τη μέγιστη απόκλιση που έχει παρατηρηθεί από την επιθυμητή λειτουργία. Οι επιδράσεις των σφαλμάτων μοντελοποίησης και του θορύβου των αισθητήρων διακυμαίνονται δυναμικά καθώς
48 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης το ρομπότ κινείται και προκύπτουν βλάβες. Η εφαρμογή κάποιου σταθερού ορίου μπορεί να οδηγήσει σε πολλούς ψευδείς συναγερμούς σε αυτή τη δυναμική κατάσταση. Τα όρια ως εκ τούτου θα πρέπει να είναι δυναμικά, ώστε να αντιμετωπίζουν τη συνεχώς μεταβαλλόμενη κατάσταση του ρομπότ, και ταυτόχρονα να παραμένουν αρκετά μικρά για να μπορούν να αντιλαμβάνονται οποιαδήποτε αποτυχία που ο ελεγκτής ανατροφοδότησης δεν είναι σε θέση να χειριστεί. Υπάρχει μια ποικιλία από αλγόριθμους που επικεντρώνονται στα όρια για την ανίχνευση σφαλμάτων σε αβέβαια δυναμικά συστήματα. Μία τέτοια μέθοδος είναι η ο αλγόριθμος Μέτρησης Προσβάσιμων Διαστημάτων (Reachable Measurement Intervals-RMI) [HOR88]. Ο RMI παρέχει συνθήκες για την εύρεση ακραίων πιθανών εξόδων y(t) του συστήματος, κάτω από απρόσκοπτες συνθήκες για κάθε είσοδο u(t) και κατάσταση x(t) στις οποίες δίνονται οριοθετημένες παράμετροι των πινάκων συντελεστών των δυναμικών εξισώσεων: όπου Α: πίνακας δυναμικού συστήματος, B: πίνακας κατανομής εισόδου και W: διάνυσμα θορύβου εισόδου. Η διαδικασία αυτή ξεκινά από μια γνωστή κατάσταση του ιστορικού της πορείας και τρέχει για ένα συγκεκριμένο αριθμό επαναλήψεων μέχρι να φτάσει την τρέχουσα χρονική στιγμή. Αυτό επιτρέπει στον RMI να λαμβάνει υπόψη τις συνολικές επιπτώσεις της αβεβαιότητας των παραμέτρων. Ένας άλλος αλγόριθμος που αναπτύχθηκε ως εναλλακτική λύση στον RMI είναι ο Αλγόριθμος Κατωφλίου που βασίζεται σε Μοντέλα (Model-base Threshold-ThMB) ο οποίoς επίσης χρησιμοποιεί την ιδέα της εύρεσης της μέγιστης πιθανής διακύμανσης που προκαλείται από λανθασμένα οριοθετημένες παραμέτρους σε κάθε επαναληπτική κατάσταση [VIS94b]. Αυτή η νέα μέθοδος εκμεταλλεύτηκε τις ομοιότητες μεταξύ RMI και αναλυτικού πλεονασμού. Με τον ThMB, ήταν αναγκαία μόνο δύο βήματα στο ιστορικό για την κατάλληλη ανίχνευση σφαλμάτων σε ρομπότ. Ο ThMB αποτελεί, συνεπώς, μία τοπική βελτιστοποίηση σε σχέση με τη συνολική βελτιστοποίηση της μεθόδου RMI. Είναι πιθανό ότι ένα μικρό σφάλμα κατά την τρέχουσα επανάληψη τελικά να οδηγήσει σε μεγαλύτερο σφάλμα αργότερα, από το σφάλμα που χρησιμοποιείται τώρα στους υπολογισμούς. Παρά το πρόβλημα αυτό, η Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 49 χρήση μόνο τοπικού ιστορικού επιτρέπει στον ThMB να εκτελεί σημαντικά λιγότερους υπολογισμούς σε κάθε επανάληψη και συνεπώς είναι σε θέση να παράγει ένα όριο πολύ γρηγορότερα από τον RMI. Αυτή η γρήγορη αντίδραση είναι απαραίτητη για την ανίχνευση σφαλμάτων στα ρομπότ [VIS94a].
50 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Κεφάλαιο 3. Αναλυτική περιγραφή τεχνικών ανίχνευσης ανωμαλιών Σε αυτό το κεφάλαιο γίνεται αναλυτική περιγραφή των δύο τεχνικών ανίχνευσης ανωμαλιών που χρησιμοποιήθηκαν στη συνέχεια της διπλωματικής. Στο τέλος της περιγραφής κάθε τεχνικής αναφέρεται ακριβώς ο τύπος του ταξινομητή που επιλέχθηκε για τα πειράματα. 3.1. Support Vector Machines (μηχανές διανυσμάτων υποστήριξης) για ανίχνευση ανωμαλιών Ο βασικός αλγόριθμος SVM ταξινομεί ένα δεδομένο δείγμα εισόδου σε μια από δύο πιθανές κατηγορίες/κλάσεις, καθιστώντας τον ένα μη πιθανολογικό δυαδικό γραμμικό ταξινομητή. Λαμβάνοντας υπόψη ένα σύνολο παραδειγμάτων εκπαίδευσης, όπου το καθένα ανήκει σε μία από τις δύο κατηγορίες, ένας αλγόριθμος εκπαίδευσης SVM χτίζει ένα μοντέλο που ταξινομεί νέα παραδείγματα στη μία ή στην άλλη κατηγορία. Ένα μοντέλο SVM είναι μια αναπαράσταση των παραδειγμάτων ως σημεία στο χώρο, που χαρτογραφούνται έτσι ώστε τα παραδείγματα των επιμέρους κατηγοριών να χωρίζονται από ένα υπερεπίπεδο που έχει το μέγιστο δυνατό Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 51 περιθώριο (margin) από τα δεδομένα εκπαίδευσης. Στη συνέχεια νέα παραδείγματα χαρτογραφούνται στον ίδιο χώρο και προβλέπεται αν ανήκουν σε μια κατηγορία με βάση σε ποια πλευρά του υπερεπιπέδου βρίσκονται. Εικόνα 5 Τα παραδείγματα των επιμέρους κατηγοριών χωρίζονται από ένα όριογραμμή με περιθώριο που είναι το ευρύτερο δυνατόν [URL4] Στις μηχανές διανυσμάτων υποστήριξης, ένα δείγμα θεωρείται ως ένα p-διάστατο διάνυσμα. Θέλουμε να διαχωρίσουμε τέτοια σημεία με ένα (p 1) διαστάσεων υπερεπίπεδο. Αυτό ονομάζεται γραμμικός ταξινομητής. Υπάρχουν πολλά υπερεπίπεδα που θα μπορούσαν να ταξινομήσουν τα δεδομένα. Το καλύτερο υπερεπίπεδο είναι αυτό που πραγματοποιεί το μεγαλύτερο διαχωρισμό, ή έχει μεγαλύτερο περιθώριο, μεταξύ των δύο κατηγοριών. Έτσι, επιλέγουμε το υπερεπίπεδο, του οποίου η απόσταση από το πλησιέστερο σημείο των δεδομένων σε κάθε πλευρά είναι μεγιστοποιημένη.
52 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Εικόνα 6 Μερικές φορές ο διαχωρισμός είναι ευκολότερος χρησιμοποιώντας ένα χώρο μεγαλύτερων διαστάσεων. [URL4] Παρόλο που το αρχικό πρόβλημα μπορεί να αναφέρεται σε έναν πεπερασμένων διαστάσεων χώρο, συμβαίνει συχνά τα σύνολα προς διάκριση να μην είναι γραμμικά διαχωρίσιμα σε αυτό το χώρο. Για το λόγο αυτό, μπορεί ο αρχικός πεπερασμένων διαστάσεων χώρος να χαρτογραφηθεί σε ένα πολύ υψηλότερων διαστάσεων χώρο, καθιστώντας ευκολότερο τον διαχωρισμό σε αυτό το χώρο. Για να κρατηθεί το υπολογιστικό φορτίο λογικό, οι αντιστοιχίσεις που χρησιμοποιούνται από τα SVM συστήματα έχουν σχεδιαστεί για να εξασφαλιστεί ότι τα εσωτερικά γινόμενα μπορούν να υπολογίζονται εύκολα από την άποψη των μεταβλητών στον αρχικό χώρο, καθορίζοντας τους όρους μιας συνάρτησης πυρήνα Κ(x,y) που επιλέγεται για να ταιριάξει στο πρόβλημα. Τα υπερεπίπεδα στον υψηλότερων διαστάσεων χώρο ορίζονται ως το σύνολο των σημείων των οποίων το εσωτερικό γινόμενο με ένα διάνυσμα σε αυτό το χώρο είναι σταθερό. Οι συναρτήσεις για τον καθορισμό των υπερεπιπέδων μπορούν να επιλεγούν ώστε να είναι γραμμικοί συνδυασμοί με παραμέτρους των a i εικόνων των διανυσμάτων χαρακτηριστικών. Με αυτή την επιλογή υπερεπιπέδου, τα x σημεία στο χώρο των χαρακτηριστικών που έχουν αντιστοιχιστεί στο υπερεπίπεδο ορίζονται από τη σχέση: Σημειωτέον ότι αν το K(x, y) γίνεται μικρό καθώς το y απομακρύνεται από το Χ, κάθε όρος στο άθροισμα μετρά το βαθμό της εγγύτητας του σημείου δοκιμής x με το αντίστοιχο σημείο δεδομένων βάσης x i. Με τον τρόπο αυτό, το άθροισμα των Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 53 πυρήνων παραπάνω μπορεί να χρησιμοποιηθεί για να μετρηθεί η σχετική εγγύτητα κάθε σημείου δοκιμής με τα σημεία δεδομένων που προέρχονται από το ένα ή το άλλο από τα σύνολα προς διάκριση. Στη δικιά μας περίπτωση για την ανίχνευση ανωμαλιών χρησιμοποιήθηκε Oneclass SVM με μη-γραμμικό πυρήνα. Ο One-class SVM χρησιμοποιείται για την ανίχνευση σφαλμάτων, δηλαδή, δεδομένου ενός συνόλου δειγμάτων εκπαίδευσης, θα ανιχνεύσει το χαλαρό όριο αυτού του συνόλου, έτσι ώστε να ταξινομηθούν τα νέα σημεία, ως ανήκοντα στο εν λόγω σύνολο ή όχι. Σε αυτή την περίπτωση, δεδομένου ότι είναι ένα είδος μάθησης χωρίς επίβλεψη, η μέθοδος εκπαίδευσης (fit) θα λαμβάνει ως είσοδο ένα πίνακα X με τα δείγματα εκπαίδευσης, καθώς δεν υπάρχουν ετικέτες κατηγορίας. Ο πυρήνας που χρησιμοποιήθηκε είναι (Gaussian) Radial Basis Function (RBF). Ο πυρήνας RBF σε δύο δείγματα Χ και Χ', που ορίζονται ως φορείς χαρακτηριστικών εισόδου, ορίζεται ως όπου είναι το τετράγωνο της Ευκλείδειας απόστασης των δύο διανυσμάτων χαρακτηριστικών. Ένας ισοδύναμος, αλλά απλούστερος ορισμός περιλαμβάνει μια παράμετρο οπότε ο πυρήνας ορίζεται ως Στην περίπτωση μας επιλέχθηκε γάμμα=0.1. Δεδομένου ότι η τιμή του πυρήνα RBF μειώνεται με την απόσταση και κυμαίνεται μεταξύ μηδέν (στο όριο) και ένα (όταν Χ = x '), είναι εμφανώς ένα μέτρο ομοιότητας. [COR95] [HSU10] [URL4]
54 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης 3.2 Gaussian Mixture Models για ανίχνευση ανωμαλιών Η μίξη Γκαουσιανών μοντέλων (GMM-Gaussian Mixture Models) είναι μια παραμετρική συνάρτηση πυκνότητας πιθανότητας που αναπαρίσταται ως ένα σταθμισμένο άθροισμα από Gaussian κατανομές. Τα GMMs χρησιμοποιούνται συνήθως ως ένα παραμετρικό μοντέλο της κατανομής πιθανοτήτων για συνεχείς μετρήσεις ή χαρακτηριστικά σε κάποιο βιομετρικό σύστημα. Οι GMM παράμετροι υπολογίζονται από τα δεδομένα εκπαίδευσης, χρησιμοποιώντας τον επαναληπτικό αλγόριθμο Μεγιστοποίησης Προσδοκίας (Expectation-Maximization,EM) ή της καλύτερης εκ των υστέρων (MAP- Maximum A Posteriori) εκτίμησης από ένα εκπαιδευμένο μοντέλο. Τα GMM αποτελούνται από έναν σταθμισμένο γραμμικό συνδυασμό (μίξη) Γκαουσιανών κατανομών. Μια Γκαουσιανη συνάρτηση πυκνότητας πιθανότητας έχει τη μορφή: όπου μ είναι η μέση τιμή της κατανομής και σ 2 είναι το μέτρο διακύμανσης ή διασποράς. Για συντομία μια κανονική ή Γκαουσιανή συνάρτηση πυκνότητας πιθανότητας συμβολίζεται με p(x) =Ν(μ,σ 2 ), αφού μια Γκαουσιανή κατανομή μπορεί να καθοριστεί πλήρως από δύο παραμέτρους που είναι η μέση τιμή μ και το μέτρο διασποράς σ 2. Όσον αφορά τη στατιστική, ένα μοντέλο μίξης είναι μια κατανομή πιθανοτήτων που θεωρεί ότι τα δεδομένα προς παρατήρηση ανήκουν σε μια από τις κατανομές υπό μίξη. Σε μια κατανομή μίξης, η συνάρτηση πυκνότητας της είναι απλώς ένας κυρτός συνδυασμός (ένας γραμμικός συνδυασμός στον οποίο όλοι οι συντελεστές ή τα βάρη έχουν άθροισμα ένα) από άλλες συναρτήσεις πυκνότητας πιθανότητας: Οι επιμέρους p i (x) συναρτήσεις πυκνότητας που συνδυάζονται για να κάνουν την πυκνότητα μίξης p(x) ονομάζονται τα συστατικά (components) της μίξης, και τα βάρη w 1, w 2,..., w n σχετίζονται με κάθε συστατικό και ονομάζονται βάρη μίξης ή συντελεστές μίξης. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 55 Η πιο κοινή κατανομή μίγματος είναι η Gaussian (κανονική) συνάρτηση πυκνότητας, στην οποία κάθε ένα από τα συστατικά της μίξης είναι Gaussian κατανομές, το καθένα με το δικό του μέσο και παραμέτρους διασποράς. Η κανονική (ή Gaussian) πολυμεταβλητή κατανομή είναι μια πολυμεταβλητή κατανομή των οποίων οι παράμετροι είναι η μέση τιμή μ και ένας πίνακας διακύμανσης-συνδιακύμανσης Σ. Η συνάρτηση της πυκνότητας δίνεται από [REY09]: Αλγόριθμος Μεγιστοποίησης Προσδοκίας Ο αλγόριθμος Μεγιστοποίησης Προσδοκίας (ΜΠ) (EM-Expectation Maximization) είναι ένας καθιερωμένος αλγόριθμος μέγιστης πιθανότητας για την δημιουργία ενός μοντέλου μίξης από ένα σύνολο δεδομένων εκπαίδευσης. Θα πρέπει να σημειωθεί ότι ο ΜΠ απαιτεί μια επιλογή εκ των προτέρων του προκειμένου μοντέλου, δηλαδή, τον αριθμό των Μ συστατικών που πρόκειται να ενσωματωθούν στο μοντέλο. Ο γενικός αλγόριθμος ΜΠ αποτελείται από τα παρακάτω απλά βήματα: Αρχικοποίηση Αρχικοποίηση των παραμέτρων της κατανομής, όπως τους μέσους, τους συντελεστές διακύμανσης και ανάμειξης και τον υπολογισμό της αρχικής τιμής της log-πιθανοφάνειας. Προσδοκία - Ε step Αξιολόγηση των ευθυνών (δηλ. των παραγόντων βάρους w i του κάθε δείγματος), με βάση τις τρέχουσες τιμές των παραμέτρων. Μεγιστοποίηση - M step Επανεκτίμηση των παραμέτρων χρησιμοποιώντας τις ευθύνες που βρέθηκαν στο προηγούμενο βήμα. Επανάληψη Επαναξιολόγηση της log-πιθανοφάνειας και έλεγχος αν έχει αλλάξει. Αν έχει αλλάξει λιγότερο από ένα συγκεκριμένο όριο, ο αλγόριθμος έχει συγκλίνει [MOO04] [URL2] [URL3].
56 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Μετά τον υπολογισμό των παραμέτρων από τον παραπάνω αλγόριθμο, εκπαιδεύεται το μοντέλο από κάποια δεδομένα εισόδου. Στη συνέχεια, καινούρια δεδομένα τροφοδοτούν τον ταξινομητή ο οποίος υπολογίζει τη log-πιθανότητα που αποτελεί τη βαθμολογία ανωμαλίας για το κάθε στιγμιότυπο. Ακολούθως, εφαρμόζεται ένα όριο στα αποτελέσματα για να καθοριστεί τι αποτελεί ανωμαλία και τι όχι. Δεδομένου ότι τα GMMs μοντελοποιούν την πυκνότητα πιθανότητας των δεδομένων, το όριο-κατώφλι δείχνει πόσο μη πιθανό είναι ένα συγκεκριμένο δείγμα δεδομένης της πυκνότητας πιθανότητας για να θεωρηθεί ανωμαλία. Στην περίπτωση μας χρησιμοποιήθηκε μοντέλο με 10 συστατικά μίξης (n_components=10) και πλήρεις πίνακες συνδιακύμανσης (cvtype= full ) από το πακέτο scikit-learn ( 4.1). Το όριο που χρησιμοποιήθηκε, αποφασίστηκε να είναι στο 90% του μεγέθους όλων των μετρήσεων. Δηλαδή, εφόσον αποφασιστούν όλες οι log-πιθανότητες που συμβολίζουν «πόσο κάτι θεωρείται ομαλό», γίνεται μια αύξουσα ταξινόμηση και ως όριο χρησιμοποιείται η τιμή που βρίσκεται στη θέση που αντιστοιχεί το 90% των ταξινομημένων αποτελεσμάτων. Έπειτα, κάθε ένα από τα προηγούμενα αποτελέσματα, συγκρίνεται με αυτή την τιμή. Εάν είναι μικρότερο τότε θεωρείται ανωμαλία, αλλιώς είναι ομαλό. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 57 Κεφάλαιο 4. Πειραματική Επαλήθευση μεθόδων σε Εικονικό Περιβάλλον 4.1. Περιγραφή του συστήματος Το σύστημα μας αφορά στη χρήση 2 ταξινομητών για την εκπαίδευση δεδομένων και την ορθή κατάταξη καινούριων δεδομένων σε κατηγορίες, με σκοπό την αναγνώριση ανωμαλιών. Το σύστημα έχει αναπτυχθεί σε ROS (Robot Operating System), ένα ιδιαίτερα διαδεδομένο σύστημα για την ανάπτυξη εφαρμογών ρομποτικής. Το ROS είναι μια βοηθητική πλατφόρμα που υλοποιεί ένα δίκτυο κόμβων peer-topeer. Οι κόμβοι λειτουργούν ως διαδικασίες και επικοινωνούν χρησιμοποιώντας το πρωτόκολλο TCP ή UDP. Η επικοινωνία των κόμβων γίνεται μέσω υπηρεσιών, οι οποίες ονομάζονται services και μέσω μηνυμάτων (messages) τα οποία στέλνονται και παραλαμβάνονται μέσα από δίαυλους, οι οποίοι ονομάζονται topics. Παράμετροι μορφοποίησης (Configuration Parameters) μπορούν να αποθηκευτούν και να ανακτηθούν από τον διακομιστή παραμέτρων (Parameter Server). Πέρα από όλες τις βασικές λειτουργίες του ROS, υλοποιεί τη βιβλιοθήκη actionlib η οποία παρέχει μια διεπαφή για περιοδικές λειτουργίες για την καταγραφή (logging) και τον εντοπισμό σφαλμάτων (debugging) του κώδικα. Επιπλέον, το ROS οργανώνει τα περιεχόμενα του σε στοίβες και πακέτα
58 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης ενισχύοντας έτσι μια υποδομή για την επαναχρησιμοποίηση στοιχείων λογισμικού.[all13] Το σύστημα που δημιουργήθηκε για την ανίχνευση των ανωμαλιών γράφτηκε σε Python, η οποία είναι μια ευρέως χρησιμοποιούμενη γλώσσα προγραμματισμού υψηλού επιπέδου. Δίνει έμφαση στην αναγνωσιμότητα του κώδικα και η σύνταξη της επιτρέπει στους προγραμματιστές να εκφράσουν έννοιες σε λιγότερες γραμμές κώδικα από ό, τι θα ήταν δυνατό σε γλώσσες όπως η γλώσσα C ή η C++. Επιπρόσθετα παρέχει δομές που επιτρέπουν τη δημιουργία σαφών προγραμμάτων τόσο σε μικρή όσο και σε μεγάλη κλίμακα. Η Python υποστηρίζει πολλαπλά πρότυπα προγραμματισμού και διαθέτει αυτόματη διαχείριση μνήμης και μεγάλη standard βιβλιοθήκη. [URL10][KUH12][MCC04] Δημιουργήθηκαν δύο μοντέλα για την ανίχνευση, ένα βασισμένο σε μηχανή διανυσμάτων υποστήριξης (Support Vector Machine-SVM) και ένα σε μοντέλο μίξης Gaussian (Gaussian Mixture Model-GMM). Ο τελικός στόχος είναι η ανίχνευση ανωμαλιών σε ρομποτικούς αισθητήρες και με τα δύο μοντέλα και η σύγκριση της απόδοσής τους. Οι αλγόριθμοι για τους δύο ταξινομητές που χρησιμοποιήθηκαν προήλθαν από τη scikit-learn, η οποία είναι μια open source βιβλιοθήκη μηχανικής μάθησης για τη γλώσσα προγραμματισμού Python. Διαθέτει διάφορους αλγόριθμους ταξινόμησης, παλινδρόμησης και ομαδοποίησης και είναι σχεδιασμένη για να διαλειτουργεί με τις βιβλιοθήκες τις Python, NumPy και SciPy. 4.1.1. Ο κώδικας των συνδαιτυμόνων φιλοσόφων Σύμφωνα με το πρόβλημα των συνδαιτυμόνων φιλοσόφων (dining philosophers), Ν φιλόσοφοι κάθονται για να φάνε μακαρόνια. Κάθε φιλόσοφος ξοδεύει κάποιο χρόνο t για ποιοτική φιλοσοφική σκέψη και κάποιο χρόνο e για να φάει τα μακαρόνια του. Ωστόσο, κάθε φιλόσοφος χρειάζεται k πιρούνια για να φάει τα μακαρόνια του. Το πρόβλημα προκύπτει λόγω των περιορισμένων πόρων: προκειμένου ένας φιλόσοφος να φάει χρειάζεται k πιρούνια, ενώ συνολικά υπάρχουν μόνο F πιρούνια. Για ορισμένες τιμές του λόγου r =e/( t + e), ορισμένοι φιλόσοφοι θα λιμοκτονήσουν (δηλαδή να υπάρχει μεγάλο χρονικό διάστημα που ο φιλόσοφος δεν είναι σε θέση να φάει). Είναι προφανές λοιπόν, ότι εάν F <rkn τότε κάποιοι φιλόσοφοι τελικά θα λιμοκτονήσουν. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 59 Εικόνα 7 Εικονογράφηση του προβλήματος των συνδαιτυμόνων φιλοσόφων [URL9] Στην δικιά μας εκδοχή του προβλήματος κάθε φιλόσοφος είναι ένας ξεχωριστός κόμβος ROS, που προσπαθεί να αποκτήσει k πιρούνια ταυτόχρονα όταν είναι πεινασμένος. Επιπλέον, κάθε φιλόσοφος στέλνει περιοδικά μηνύματα της στάθμης της πείνας του σε ένα συγκεκριμένο topic. Το επίπεδο πείνας είναι ένας μη αρνητικός αριθμός που υποδηλώνει την πείνα κάθε φιλοσόφου (σε μονάδες πείνας). Όταν ένας φιλόσοφος i ξεκινά, του αντιστοιχείται τυχαία ένα επίπεδο πείνας h 0 από μια κανονική κατανομή N(2, 1). Αν h 0 <0, τότε το επίπεδο πείνας περικόπτεται στο μηδέν. Η ποσότητα F = rkn, η οποία είναι η κρίσιμη ποσότητα πιρουνιών, επιτρέπει στο σύστημα να αποφύγει τη λιμοκτονία. Για να μιμηθεί το σύστημα την αβεβαιότητα του χρόνου σκέψης και φαγητού, κάθε φιλόσοφος επιλέγει τυχαία και ομοιόμορφα πρώτα το χρόνο σκέψης t (0, t max ) και στη συνέχεια το χρόνο φαγητού e (0, t max ). Το επίπεδο της πείνας αυξάνεται/μειώνεται ανάλογα με το χρόνο σκέψης /φαγητού. Ορίζουμε ότι ένας φιλόσοφος λιμοκτονεί όταν το επίπεδο της πείνας του είναι μεγαλύτερο από το όριο πείνας s (hi>s). Τέλος, το σύνολο των διαθέσιμων πιρουνιών αναπαρίσταται από ένα ειδικό RC (Remote Counter) που δεν δέχεται να μειώνεται σε αρνητικές τιμές και ουσιαστικά ενεργεί ως σημαφόρος καταμέτρησης [ALL13]. 4.1.2. Τα συστατικά του κώδικα: Ο κόμβος philosopher: Προτού ξεκινήσει κάθε φιλόσοφος, του ανατίθενται τιμές για μέγιστο χρόνο σκέψης και μέγιστο χρόνο φαγητού καθώς επίσης το όριο λιμοκτονίας. Δημιουργείται
60 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης ένα topic στο οποίο ο συγκεκριμένος φιλόσοφος θα δημοσιεύει τα επίπεδα πείνας του και δημιουργείται ο publisher που θα χρησιμοποιηθεί για το σκοπό αυτό. Έπειτα δίνονται οι παράμετροι για την αυξομείωση της πείνας (hunger_increase_rate, hunger_decrease_ratio) που ουσιαστικά είναι οι κλίσεις της γραμμικής συνάρτησης που αυξάνει/μειώνει την πείνα και δημιουργείται ένας timer έτσι ώστε ο φιλόσοφος να δημοσιεύει τα επίπεδα πείνας του κάθε μισό δευτερόλεπτο. Κάθε φιλόσοφος έχει 2 εξωτερικές καταστάσεις και 4 εσωτερικές. Πίνακας 1 Εσωτερικές και εξωτερικές καταστάσεις φιλόσοφου Εξωτερικές ISTATE_NOTHING ISTATE_ACTIVE Εσωτερικές ISTATE_NOTHING ISTATE_EATING ISTATE_WAITING ISTATE_THINKING Αν ο φιλόσοφος έχει εξωτερική κατάσταση STATE_NOTHING: Η εσωτερική του κατάσταση γίνεται ISTATE_NOTHING. Αν ο φιλόσοφος έχει εξωτερική κατάσταση STATE_ACTIVE: Υπολογίζεται το επίπεδο πείνας του φιλόσοφου ανάλογα με το αν αυτός τρώει ή όχι. Δηλαδή αν η εσωτερική του κατάσταση είναι ISTATE_EATING τότε η πείνα του μειώνεται με βάση τον τύπο: hunger level hunger level hunger decrease ratio διαφορετικά η πείνα αυξάνεται με βάση τον τύπο hunger level hunger level hunger increase rate secs όπου secs είναι η διάρκεια σε δευτερόλεπτα από την προηγούμενη ενημέρωση πείνας. Αν το επίπεδο πείνας είναι αρνητικό τότε γίνεται μηδενικό. Μετά τον υπολογισμό του καινούριου επιπέδου πείνας η εσωτερική κατάσταση του φιλόσοφου γίνεται ISTATE_THINKING. Σε αυτή την κατάσταση απλά ο φιλόσοφος είναι αδρανής (σκέφτεται) για κάποιο χρονικό διάστημα. Έπειτα η εσωτερική κατάσταση του φιλόσοφου γίνεται ISTATE_WAITING και έπειτα έρχεται η στιγμή να φάει. secs Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 61 Όταν ο φιλόσοφος θελήσει να φάει πρώτα ελέγχει αν το σύστημα δεν έχει αλλάξει κατάσταση και ζητάει τα πιρούνια που χρειάζεται για να μπορέσει να φάει. (Καλεί ένα service που του διαθέτει πιρούνια αν υπάρχουν διαθέσιμα (και ανάλογα μειώνει τον αριθμό του συνόλου των διαθέσιμων πιρουνιών) και αφού φάει υπολογίζει ξανά το επίπεδο πείνας του. Τότε η εσωτερική κατάσταση του φιλόσοφου γίνεται ISTATE_EATING, και μετά υπολογίζεται για άλλη μια φορά το επίπεδο πείνας του και έπειτα η εσωτερική του κατάσταση γίνεται ISTATE_WAITING και επιστρέφει τα πιρούνια του. Ο κόμβος ErraticStateChanger Αυτός ο κόμβος παίρνει ένα διάστημα ύπνου από μία ομοιόμορφη κατανομή U(0,30sec) και στη συνέχεια μεταβάλλει την κατάσταση του φιλοσόφου σε STATE_NOTHING και, στη συνέχεια, μόλις παρατηρηθεί μια μεταβολή στην κατάσταση του συστήματος, αλλάζει την κατάσταση του φιλόσοφου σε STATE_ACTIVE. Αυτό έχει ως στόχο να προσομοιώνει μεταβολές κατάστασης ενός φυσιολογικού συστήματος. Ο κόμβος remotemutex Ένας Remote Mutex (RM) χειρίζεται περιπτώσεις όπου ένας συγκεκριμένος πόρος πρέπει να χρησιμοποιηθεί αποκλειστικά από έναν κόμβο για την αποφυγή προβλημάτων συγχρονισμού ανάμεσα στους κόμβους και προβλήματα ταυτοχρονισμού στη διάρκεια των κρίσιμων τμημάτων μιας διαδικασίας. Η εφαρμογή RM είναι υπεύθυνη για τη χορήγηση ή την απόρριψη των αιτήσεων για το κλείδωμα mutex. Κάθε πελάτης mutex δημιουργεί ένα mutex αντικείμενο που αναφέρεται στον πόρο που είναι κλειδωμένος και μέσω αυτού του αντικειμένου, επικοινωνεί με τον φύλακα για να κλειδώσει / ξεκλειδώσει το mutex. Το πρόσθετο πλεονέκτημα της εφαρμογής είναι ότι ο φρουρός mutex γνωρίζει ποιος κόμβος ζήτησε το κλείδωμα και συνεπώς μπορεί να ακολουθήσει μια συγκεκριμένη πολιτική για τη χορήγηση αιτήματος. Για παράδειγμα, ένα mutex μπορεί να απορρίψει αιτήματα με βάση τη συχνότητα τους (για να αποφευχθεί πείνα), με βάση μια πολιτική ίσης συμμετοχής ή ακόμη να επιτρέψει μια συγκεκριμένη σειρά για το κλείδωμα του mutex. Ξεκινώντας ο RemoteMutex δημιουργεί το όνομα του επιθυμητού mutex και έπειτα δημιουργεί τον client του mutex service. Έπειτα έχει 4 συναρτήσεις μέλη:
62 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης - Η συνάρτηση getstatus() δημιουργεί ένα αντικείμενο τύπου mutexsrv. Αυτός που αιτείται το mutexsrv είναι ο συγκεκριμένος κόμβος που το καλεί. Ο τύπος της αίτησης είναι ερώτηση (TYPE_POLL). Εάν ο πελάτης καλέσει το mutexsrv η συνάρτηση επιστρέφει true αν το mutex είναι κλειδωμένο αλλιώς επιστρέφει error και false. - Η συνάρτηση trylock() δημιουργεί ένα αντικείμενο τύπου mutexsrv. Αυτός που αιτείται το mutexsrv είναι ο συγκεκριμένος κόμβος που το καλεί. Ο τύπος της αίτησης είναι κλείδωμα (TYPE_LOCK). Εάν ο πελάτης καλέσει το mutexsrv η συνάρτηση επιστρέφει true αν το mutex είναι κλειδωμένο αλλιώς επιστρέφει error και false. - Η συνάρτηση unlock() δημιουργεί ένα αντικείμενο τύπου mutexsrv. Αυτός που αιτείται το mutexsrv είναι ο συγκεκριμένος κόμβος που το καλεί. Ο τύπος της αίτησης είναι ξεκλείδωμα (TYPE_UNLOCK). Εάν ο πελάτης καλέσει το mutexsrv η συνάρτηση επιστρέφει true αν το mutex είναι ξεκλείδωτο αλλιώς επιστρέφει error και false. - Η συνάρτηση lock() παίρνει σαν όρισμα ένα χρονικό διάστημα. Όσο η παρούσα χρονική στιγμή είναι ανάμεσα στο χρονικό διάστημα ή όσο το χρονικό αυτό διάστημα είναι μηδενικό τότε καλείται συνέχεια η συνάρτηση που προσπαθεί να κλειδώσει το mutex. Αν όντως ο mutex είναι κλειδωμένος τότε εμφανίζεται μήνυμα επιτυχίας και η συνάρτηση επιστρέφει true. Αν ο mutex είναι ξεκλείδωτος το σύστημα κοιμάται για λίγο και δοκιμάζει ξανά εκτός και αν σταματήσει η σωστή λειτουργία του ROS. Αν τελειώσει αυτό το χρονικό διάστημα και δεν επιτευχθεί το κλείδωμα του mutex τότε η συνάρτηση επιστρέφει false. O ΜutexGuard Ξεκινώντας ο ΜutexGuard για κάποιο συγκεκριμένο mutex λέει ότι το mutex είναι ελεύθερο (δεν το κρατάει κανείς) και ότι το mutex είναι ξεκλείδωτο και δημιουργείται το service του mutexguard. O MutexGuard έχει 5 συναρτήσεις μέλη: - Η trylock() προσπαθεί να κλειδώσει τον επιθυμητό mutex. Αν είναι ήδη κλειδωμένος επιστρέφει false αλλιώς ορίζει αυτόν που κρατάει το mutex και επιστρέφει true. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 63 - H unlock() προσπαθεί να ξεκλειδώσει ένα mutex. Αν το mutex είναι ήδη ξεκλείδωτο επιστρέφει το ανάλογο μήνυμα και false. Επίσης αν αυτός που προσπαθεί να ξεκλειδώσει το mutex είναι διαφορετικός από αυτόν που το είχε κλειδώσει προηγουμένως τότε επιστρέφει το ανάλογο μήνυμα και false. Τέλος αν το mutex είναι όντως κλειδωμένο, και το σωστό άτομο αιτείται το ξεκλείδωμα του, τότε η θέση αυτού που κρατάει το mutex αδειάζει, το mutex ξεκλειδώνει και η συνάρτηση επιστρέφει true. - Η getstatus() επιστρέφει true αν το mutex είναι κλειδωμένο. - Η getholder() επιστρέφει το όνομα αυτού (του κόμβου) που κρατάει το mutex. - Η servicecallback() παίρνει τον τύπο του αιτήματος και: Αν ο τύπος του αιτήματος είναι TYPE_LOCK τότε τρέχει η trylock() γι αυτόν που αιτείται το mutex και αν επιστρέψει true (που σημαίνει ότι ο αιτών κλείδωσε το mutex) το service θέτει STATUS_LOCKED αλλιώς θέτει STATUS_UNLOCKED. Αν ο τύπος του αιτήματος είναι TYPE_UNLOCK τότε τρέχει η unlock() γι αυτόν που αιτείται και αν επιστρέψει true τότε το service θέτει STATUS_UNLOCKED αλλιώς θέτει STATUS_LOCKED. Αν ο τύπος του αιτήματος είναι TYPE_POLL τότε τρέχει η getstatus() και άμα επιστρέψει true (που σημαίνει ότι το mutex είναι κλειδωμένο) τότε το service θέτει STATUS_LOCKED αλλιώς θέτει STATUS_UNLOCKED. Σε όλες αυτές τις περιπτώσεις η συνάρτηση servicecallback() επιστρέφει true. Αν δεν ισχύει κανένα από τα παραπάνω τότε η συνάρτηση επιστρέφει false. Ο κόμβος Remote Counter Ένας Remote Counter (RC) είναι ένα μοναδικός κόμβος ROS που ενεργεί ως μετρητής και τρέχει μαζί με όλους τους άλλους κόμβους. Οι άλλοι κόμβοι συνδέονται με το μετρητή μέσω κάποιας προκαθορισμένης διεπαφής. Ένας timer (Tr) αποτελείται από ένα μοναδικό ROS κόμβο που ενεργεί ως server, και client-αντικείμενα που μπορούν να εγγράφονται, να ξεκινούν, να σταματούν και να επαναφέρουν χρονόμετρα.
64 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Ξεκινώντας ο Remote Counter δημιουργεί το όνομα του counter με βάση τον κόμβο που τον καλεί και δημιουργεί τον server του service του. Η countercallback() απλά αυξάνει τον μετρητή κάθε φορά που ο κόμβος καλεί το συγκεκριμένο service. H getvalue() επιστρέφει την τιμή του μετρητή και η setvalue() δίνει στον μετρητή μια συγκεκριμένη τιμή. Τέλος η getlastactivity() επιστρέφει τη χρονική στιγμή που έγινε η τελευταία αλλαγή στο μετρητή. Το αρχείο RemoteCounterStandalone περιέχει τη main() του remote_counter η οποία ανάλογα με τον κόμβο που καλεί το Remote Counter δημιουργεί το αντίστοιχο αντικείμενο. Η κλάση RemotePositiveCounter υλοποιεί ένα μετρητή που μπορεί να αυξηθεί ή να μειωθεί από άλλους κόμβους αλλά δεν μπορεί να μειωθεί κάτω από το μηδέν. Η κλάση LimitedCounter υλοποιεί ένα μετρητή που υποδεικνύει λανθασμένες κλήσεις και χαμένα μηνύματα. 4.2. Περιγραφή συστήματος ανίχνευσης ανωμαλιών Τα δεδομένα για την εκπαίδευση λαμβάνονται από τον κώδικα των «συνδαιτυμόνων φιλοσόφων». Φάση εκπαίδευσης: Έχοντας τον κώδικα των φιλοσόφων να «τρέχει», τίθεται, παράλληλα, σε λειτουργία, ο κώδικας εκπαίδευσης του επιλεγμένου ταξινομητή. Καθώς ο κάθε «φιλόσοφος» γνωστοποιεί τα επίπεδα πείνας του, σε μορφή ROS μηνυμάτων, στο topic που του αντιστοιχεί, αυτά φτάνουν σε ένα ROS κόμβο που λειτουργεί ως ακροατής και αποθηκεύονται σε έναν πίνακα. Εφόσον έχουν μαζευτεί αρκετές τιμές, ο πίνακας τροφοδοτεί το επιλεγμένο μοντέλο του ταξινομητή, με τρόπο ώστε ο ταξινομητής να εκπαιδεύεται. Στο επόμενο στάδιο το εκπαιδευμένο μοντέλο αποθηκεύεται. Φάση ταξινόμησης: Ακολούθως, και ενώ οι επιθυμητοί φιλόσοφοι συνεχίζουν να γνωστοποιούν την πείνα τους, μαζεύονται καινούρια δεδομένα πείνας από τον κόμβο-ακροατή, με τα οποία τροφοδοτούμε το εκπαιδευμένο μοντέλο. Το μοντέλο αυτό, το οποίο είχε αποθηκευτεί νωρίτερα, κατατάσσει τα δεδομένα ως φυσιολογικά ή ανώμαλα. Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ
Διπλωματική εργασία - Ηροδότου Αναστασία 65 Ταυτόχρονα, ο κάθε ένας από τους επιθυμητούς φιλόσοφους με ιδιάζουσα συμπεριφορά δημοσιεύει σε ένα διαφορετικό topic και ένα σήμα (σε μορφή μηνύματος) το οποίο δηλώνει εάν η συμπεριφορά του είναι φυσιολογική ή αν έχει ξεκινήσει να συμπεριφέρεται με ιδιάζων τρόπο. Αυτά τα σήματα αποθηκεύονται σε ένα άλλο πίνακα, τον «πίνακα πραγματικής συμπεριφοράς». Η μετάβαση στην ιδιάζουσα συμπεριφορά γίνεται μετά από 100 κύκλους λειτουργίας. Σε κάθε κύκλο, ο ταξινομητής, αφού κατατάξει ένα καινούριο δεδομένο ως φυσιολογικό ή ανώμαλο, δίνει σήμα σε έναν «πίνακα συμπεριφοράς αποτελεσμάτων ταξινόμησης» παρόμοιο με τον «πίνακα πραγματικής συμπεριφοράς». Στο τέλος κάθε πειράματος, οι δύο αυτοί πίνακες συγκρίνονται και με αυτό τον τρόπο υπολογίζονται: το ποσοστό τον πραγματικών ανωμαλιών τις οποίες όντως εντόπισε ο ταξινομητής (Anomaly Recall), το ποσοστό των προβλέψεων οι οποίες ήταν σωστές (Accuracy) και το ποσοστό των θετικών (ανώμαλων) προβλέψεων από τον ταξινομητή οι οποίες ήταν ανωμαλίες στην πραγματικότητα (Anomaly Precision). Κατά την φάση των πειραμάτων προέκυψε η σκέψη της αντιμετώπισης συσχετιζόμενων ανωμαλιών. Υπενθυμίζεται ότι τα μεμονωμένα στιγμιότυπα δεδομένων σε μια συσχετιζόμενη ανωμαλία μπορεί να μην αποτελούν ανωμαλίες από μόνα τους, αλλά η εμφάνιση τους με ομαδικό τρόπο, σαν συλλογή, να είναι ανώμαλη. Για την αντιμετώπιση αυτού του προβλήματος χρησιμοποιήθηκαν στους πίνακες δεδομένων κυλιόμενα παράθυρα διαφόρων μεγεθών. Πραγματοποιήθηκαν πειράματα όπου οι μετρήσεις κάθε φιλόσοφου δίνονταν στον ταξινομητή σειριακά με μέγεθος κυλιόμενου παραθύρου ίσο με 1,3,5 και 7. Αυτό σημαίνει ότι αντίθετα με την πρώτη περίπτωση όπου δίνεται στον ταξινομητή μία-μία τιμή, σε κάθε χρονική στιγμή δίνονται 3 συνεχόμενες τιμές σαν ομάδα (στην περίπτωση του παραθύρου με πλάτος ίσο με 3) και αποφασίζεται από τον ταξινομητή αν ο συνδυασμός των τριών αυτών μετρήσεων αποτελεί ανωμαλία. Ακολούθως το παράθυρο προχωράει κατά μια θέση προς τα δεξιά, έτσι ώστε να περιλαμβάνει τις δύο τελευταίες τιμές από την προηγούμενη ομάδα, καθώς και μια καινούρια. Με αυτό τον τρόπο, ουσιαστικά, χρησιμοποιούνται ιστορικά στοιχεία σε κάθε επανάληψη. Έτσι συνεχίζεται η αξιολόγηση μέχρι να δοθούν στον ταξινομητή όλες οι τιμές του πίνακα μετρήσεων.
66 Ανίχνευση σφαλμάτων συστημάτων λογισμικού με τη χρήση μεθόδων μηχανικής μάθησης Εικόνα 8 Παράδειγμα κυλιόμενου παραθύρου με πλάτος ίσο με 5 σε πίνακα δεδομένων [URL8] 4.3. Περιγραφή σεναρίων σφάλματος και κανονικής λειτουργίας Θεωρείται ότι ένας φιλόσοφος συμπεριφέρεται φυσιολογικά όταν λειτουργεί με τον τρόπο που έχει περιγραφεί στην παράγραφο 4.1.2 με τις μεταβλητές max_eating_time και max_thinking_time αρχικοποιημένες στην τιμή 3. Για την πραγματοποίηση πειραμάτων έτσι ώστε να εξακριβωθεί αν ο κώδικας μπορεί να εντοπίσει ιδιάζουσες συμπεριφορές αξιολογούνται τα ακόλουθα σενάρια που προσομοιώνουν πιθανά σφάλματα: Πίνακας 2 Περιγραφή σεναρίων σφάλματος Σενάριο Περιγραφή 1 Σταθερά επίπεδα πείνας άσχετα από την εσωτερική κατάσταση του φιλόσοφου 2 Ενώ ο φιλόσοφος τρώει η πείνα του να αυξάνεται αντί να αυξάνεται 3 Ενώ ο φιλόσοφος σκέφτεται ή περιμένει η πείνα του να μειώνεται 4 Ο φιλόσοφος να δημοσιεύει αρνητικά επίπεδα πείνας συνέχεια 5 Ο φιλόσοφος να μην δημοσιεύει επίπεδα πείνας 6 Να μην μηδενίζεται η πείνα του φιλόσοφου όταν είναι αρνητική 7 Τα επίπεδα πείνας να μειώνονται με βάση τον τύπο: Θεσσαλονίκη 2013 ΤΗΜΜΥ ΑΠΘ