1.1 Εισαγωγή Το εργαλείο ACRES (Automatic CReator of Expert Systems), διαθέτει δυο βασικές λειτουργίες. Η πρώτη είναι δοθέντος ενός συνόλου δεδομένων να καθοδηγήσει τον χρήστη στον σχεδιασμό μιας αρχιτεκτονικής και στη συνέχεια να παράγει με βάση αυτήν ένα έμπειρο σύστημα στη γλώσσα CLIPS, το οποίο να μπορεί να ταξινομήσει νέα δεδομένα του προβλήματος. Η δεύτερη λειτουργία είναι να φορτώσει ένα έμπειρο σύστημα που έχει δημιουργηθεί με το εργαλείο ώστε να ταξινομήσει νέα άγνωστα δεδομένα του προβλήματος ή να το ενημερώσει με νέα γνωστά δεδομένα. Εικόνα 1: Αρχική οθόνη εφαρμογής Στη συνέχεια θα αναλυθεί ο τρόπος σχεδιασμού της αρχιτεκτονικής ενός ΕΣ και η δομή του παραγόμενου προγράμματος CLIPS. 1.2 Είσοδος Συνόλου Δεδομένων Επιλέγοντας την δημιουργία έμπειρου συστήματος, το γραφικό περιβάλλον μεταφέρεται σε μια οθόνη όπου ο χρήστης καλείται να δώσει το μονοπάτι για δυο αρχεία που αφορούν το σύνολο δεδομένων που θα χρησιμοποιήσει. Εικόνα 2: Είσοδος Συνόλου Δεδομένων Το πρώτο αρχείο περιέχει ένα όνομα για κάθε παράμετρο του συνόλου δεδομένου το οποίο θα χρησιμοποιήσει το σύστημα για την αναγνώριση κάθε μίας στο γραφικό περιβάλλον αλλά και στο έμπειρο σύστημα που θα παραχθεί. Κάθε γραμμή περιέχει το όνομα μιας παραμέτρου του συστήματος με την σειρά που εμφανίζονται στο σύνολο δεδομένων. Ακολουθεί παράδειγμα τέτοιου αρχείου για το σύνολο δεδομένων Breast Cancer :
1_class 2_age 3_menopause 4_tumor-size 5_inv-nodes 6_node-caps 7_deg-malig 8_breast 9_breast-quad 10_irradiat Το δεύτερο αρχείο περιέχει τα στιγμιότυπα του συνόλου δεδομένου. Κάθε γραμμή του αρχείο περιέχει τις τιμές για τις παραμέτρους ενός στιγμιότυπου του προβλήματος χωρισμένες με το σύμβολο,. Ακολουθεί παράδειγμα με τις πρώτες 10 γραμμές τέτοιου αρχείο για το σύνολο δεδομένων Breast Cancer : no-recurrence-events,30-39,premeno,30-34,0-2,no,3,left,left_low,no no-recurrence-events,40-49,premeno,20-24,0-2,no,2,right,right_up,no no-recurrence-events,40-49,premeno,20-24,0-2,no,2,left,left_low,no no-recurrence-events,60-69,ge40,15-19,0-2,no,2,right,left_up,no no-recurrence-events,40-49,premeno,0-4,0-2,no,2,right,right_low,no no-recurrence-events,60-69,ge40,15-19,0-2,no,2,left,left_low,no no-recurrence-events,50-59,premeno,25-29,0-2,no,2,left,left_low,no no-recurrence-events,60-69,ge40,20-24,0-2,no,1,left,left_low,no no-recurrence-events,40-49,premeno,50-54,0-2,no,2,left,left_low,no no-recurrence-events,40-49,premeno,20-24,0-2,no,2,right,left_up,no 1.3 Προ-επεξεργασία Συνόλου Δεδομένων Στη συνέχεια ο χρήστης μπορεί να επεξεργαστεί το σύνολο δεδομένων. Συγκεκριμένα μπορεί να αλλάξει άμεσα τιμές στο σύνολο δεδομένων επιλέγοντας ένα κελί από τον πίνακα, ή να χρησιμοποιήσει μια από τις λειτουργίες της καρτέλας Επεξεργασία Συνόλου Δεδομένων (Dataset Edit): - Διαγραφή μια παραμέτρου (στήλης) του συνόλου δεδομένων. Η διαγραφή παραμέτρων που δεν θεωρούνται χρήσιμες, μπορεί να επιταχύνει την διαδικασία αυτόματης επιλογής και κατάταξης υποσυνόλων στο στάδιο της σχεδίασης. - Συγχώνευση δυο παραμέτρων (στηλών) του συνόλου δεδομένων. Ο χρήστης επιλέγει δύο παραμέτρους και το σύστημα συγχωνεύει τις τιμές κάθε στιγμιότυπου σε μια διαχωρίζοντας τις με το σύμβολο _. - Διακριτοποίηση πραγματικών μεταβλητών. Ο χρήστης επιλέγει μια μεταβλητή και τον αριθμό των κλάσεων που θέλει να έχει αυτή μετά την διακριτοποίηση. Επίσης μπορεί να επιλέξει μεταξύ δυο μεθόδων. Η πρώτη δίνει σε κάθε κλάση το ίδιο εύρος τιμών (intervals). Η δεύτερη δίνει σε κάθε κλάση όρια τέτοια ώστε κάθε μια να περιέχει τον ίδιο αριθμό στιγμιότυπων στο σύνολο δεδομένων. Το όνομα των νέων κλάσεων προκύπτει από τα όριο που αντιπροσωπεύουν διαχωρίζοντας τα με το σύμβολο -.
Αφού ολοκληρώσει τις τροποποιήσεις μπορεί να αποθηκεύσει το νέο αρχείο, το οποίο μπορεί να φορτώσει στην συνέχεια, αφού πρώτα κάνει τις κατάλληλες αλλαγές στο αρχείο με τα ονόματα μεταβλητών. Εικόνα 3: Είσοδος & Επεξεργασία Συνόλου Δεδομένων 1.4 Προσδιορισμός των μεταβλητών του συνόλου δεδομένων Έστω ένα σύνολο δεδομένων με Ν μεταβλητές V[1],V[2] V[N-1] Ο δημιουργός του έμπειρου συστήματος καλείται να διαχωρίσει τις μεταβλητές του προβλήματος σε 3 κατηγορίες. Εισόδου: Είναι οι μεταβλητές για τις οποίες ο τελικός χρήστης του παραγόμενου ΕΣ θα διαθέτει τιμές τις οποίες θα δίνει σε αυτό για να πάρει προβλέψεις. Εξόδου: Είναι η μεταβλητή (μια μόνο) την οποία ο τελικός χρήστης δεν γνωρίζει και για την οποία θέλει να πάρει πρόβλεψη. Ενδιάμεσες: Είναι οι μεταβλητές για τις οποίες επίσης δεν γνωρίζει τιμές ο τελικός χρήστης και ενδεχομένως δεν τον ενδιαφέρουν άμεσα ωστόσο οι τιμές τους μπορούν να προβλεφτούν αξιοποιώντας την γνώση του συνόλου δεδομένων με βάση μεταβλητές εισόδου ή και άλλες ενδιάμεσες μεταβλητές και να αξιοποιηθούν για τον προσδιορισμό της πρόβλεψης για την μεταβλητή εξόδου.
Εικόνα 4: Προσδιορισμός μεταβλητών προβλήματος 1.5 Σχεδιασμός Αρχιτεκτονικής του Έμπειρου Συστήματος Στην συνέχεια με βάση την εμπειρία του και την γνώση που έχει για τις μεταβλητές και την μεταξύ τους σχέση, ο δημιουργός του ΕΣ μπορεί να χτίσει την αρχιτεκτονική του, σχηματίζοντας ένα δέντρο. Συγκεκριμένα για κάθε ενδιάμεση μεταβλητή που έχει επιλέξει καλείται να διαλέξει τις μεταβλητές οι οποίες θα χρησιμοποιηθούν για την παραγωγή πρόβλεψης για αυτήν σχηματίζοντας μια ομάδα. Εικόνα 5: Επιλογή μεταβλητής για παραγωγή κανόνων πρόβλεψης Αρχικά στη λίστα με τις μεταβλητές από τις οποίες μπορεί να σχηματιστεί η ομάδα περιέχονται αποκλειστικά οι μεταβλητές εισόδου, ωστόσο κάθε φορά που προσδιορίζεται το γκρουπ για μια ενδιάμεση μεταβλητή, αυτή προστίθεται στην λίστα οπότε μπορεί να χρησιμοποιηθεί στον προσδιορισμό της επόμενης ενδιάμεσης μεταβλητής.
Εικόνα 6: Προσδιορισμός ομάδων παραμέτρων Επίσης δίνεται η δυνατότητα κάθε φορά να προσδιοριστεί και ένα δεύτερο γκρουπ για προσδιορισμό πρόβλεψης. Σε αυτήν την περίπτωση ο δημιουργός του ΕΣ θα πρέπει να επιλέξει και τον τρόπο με τον οποίο θα συνδυαστούν οι δύο προβλέψεις για τον υπολογισμό μιας τελικής πρόβλεψης. Συγκεκριμένα επιλέγει μια από τις μεθόδους που περιγράφουμε στο αντίστοιχο κεφάλαιο για συνδυασμό συμπερασμάτων για το ίδιο γεγονός (βλ. Ενότητα 5.10). Εικόνα 7: Προσδιορισμός δυο ομάδων και μεθόδου συνδυασμού Εφόσον επιλέξει την μέθοδο που χρησιμοποιεί βάρη, ο χρήστης μπορεί να προσδιορίσει τις παραμέτρους του γενετικού και το βάρος κάθε μετρικής απόδοσης στον υπολογισμό του σκορ της αντικειμενικής συνάρτησης. Εικόνα 8: Προσδιορισμός παραμέτρων του γενετικού αλγορίθμου Αφού προσδιορίσει διαδοχικά τον τρόπο προσδιορισμού όλων των ενδιάμεσων μεταβλητών, ο δημιουργός του ΕΣ καλείται να κάνει το ίδιο και για την μεταβλητή εξόδου.
Αποτέλεσμα των παραπάνω είναι ο σχηματισμός ενός δέντρου που αναπαριστά την αρχιτεκτονική του παραγόμενου ΕΣ. Στο δέντρο αυτό ρίζα θα είναι η μεταβλητή εξόδου ενώ οι εσωτερικοί κόμβοι θα αναπαριστούν ενδιάμεσες μεταβλητές ή συνδυασμό προβλέψεων για το ίδιο συμπέρασμα. Τα φύλλα του δέντρου θα είναι μεταβλητές εισόδου. Εικόνα 9: Παράδειγμα Αρχιτεκτονικής ΕΣ
1.6 Μοντέλα Συντελεστών Βεβαιότητας Το σύστημα προσφέρει δυο εναλλακτικούς τρόπους υπολογισμού των συντελεστών βεβαιότητας. Έστω η μεταβλητή εξόδου C με n πιθανές κλάσεις C i..n και ένα σύνολο δεδομένων N. Ας θεωρήσουμε σαν ένδειξη Ε την ύπαρξη ενός συγκεκριμένου προτύπου σε μια ομάδα μεταβλητών του συνόλου δεδομένων και D το σύνολο των στοιχείων του συνόλου που εμφανίζουν το πρότυπο αυτό. Έστω f(c i,d) η συχνότητα (απόλυτη) της κλάσης i στο σύνολο D και f(c i,n) η συχνότητα στο σύνολο N. Ο πρώτος τρόπος χρησιμοποιεί μόνο την πιθανότητα που προκύπτει από την συχνότητα της κλάσης στο σύνολο D. Για μια κλάση C i ο συντελεστής βεβαιότητας υπολογίζεται ως η δεσμευμένη πιθανότητα να ανήκει στην κλάση C i δεδομένο ότι ισχύει το E δηλαδή, P(C i E) αφού πρώτα γίνει αναγωγή στο διάστημα [-1, 1]. CF(Ci, E) = 2 P(Ci E ) 1 P(Ci E ) = f(ci, D) D Ο δεύτερος τρόπος χρησιμοποιεί εκτός από την παραπάνω δεσμευμένη πιθανότητα, και την a-priori πιθανότητα να ανήκει ένα γεγονός στην κλάση C i την οποία υπολογίζουμε με βάση την συχνότητα της κλάσης σε ολόκληρο το σύνολο δεδομένων. P(Ci) = f(ci, N) N Με βάση τον ορισμό των Συντελεστών Βεβαιότητας μπορούμε με τις δύο πιθανότητες P(C i ) και P(C i E) να υπολογίσουμε τον συντελεστή CF ως εξής: CF(Ci, E) = MB(Ci, E) MD (Ci, E) 1 min {MB(Ci, E), MD(Ci, E) Όπου MB (C i, E) είναι το Μέτρο Βεβαιότητας (Measure of Belief) και MD (C i, E) το Μέτρο Αβεβαιότητας (Measure of Disbelief) που υπολογίζονται από τους τύπους: ΜΒ(Ci, E) = 1 αν P(Ci) = 1 ΜΒ(Ci, E) = max {0, P(Ci E) P(Ci) } αλλιώς 1 P(Ci) ΜD(Ci, E) = 1 αν P(Ci) = 0 ΜD(Ci, E) = max {0, P(Ci) P(Ci E) } αλλιώς P(Ci) Ο δεύτερος τρόπος υπολογισμού προκύπτει άμεσα από τον τρόπο ορισμού των Συντελεστών Βεβαιότητας. Πρέπει να επισημανθεί ότι η τιμή που υπολογίζεται δεν αποτελεί μέτρο της βεβαιότητας μας για το C i αλλά μέτρο της ΑΛΛΑΓΗΣ της βεβαιότητας μας ότι ισχύει το γεγονός C i μετά από την παρατήρηση του E. Θετική τιμή σημαίνει ότι η πίστη μας αυξήθηκε ενώ αρνητική σημαίνει ότι η πίστη μας μειώθηκε.
1.7 Συνδυασμός Συμπερασμάτων για το ίδιο Γεγονός 1.7.1 Συνδυασμός Συντελεστών στο MYCIN Η βασική μέθοδος συνδυασμού δύο συντελεστών βεβαιότητας CF1, CF2 για το ίδιο συμπέρασμα ορίστηκε στο έμπειρο σύστημα MYCIN(2) ως εξής: CF = CF1 + CF2 CF1 CF2, και οι δύο θετικοί CF = CF1 + CF2 + CF1 CF2, και οι δύο αρνητικοί CF = CF1 + CF2 1 min { CF1, CF2 }, ετερόσημοι 1.7.2 Μέθοδος συνδυασμού με χρήση βαρών Σύμφωνα με αυτή την μέθοδο δύο προβλέψεις για ένα γεγονός CF1 και CF2 συνδυάζονται με τον τύπο: Cf = w 1 Cf 1 + w 2 Cf 2 + w (Cf 1 Cf 2 ), CF1 0 και CF2 0 Cf = w 1 Cf 1 + w 2 Cf 2 w (Cf 1 Cf 2 ), CF1 0 και CF2 0 Cf = Cf 1 + Cf 2, CF1 CF2 < 0 1 min { Cf 1, Cf 2 } Οι τιμές w1,w2 προσδιορίζονται με την χρήση γενετικού αλγόριθμου και: Αναπαράσταση Ατόμου w 1 + w 2 + w = 1 Μια πιθανή λύση του γενετικού αναπαρίσταται ως δυο αριθμοί κινητής υποδιαστολής από το 0 μέχρι το 1 με χρήση 8 δυαδικών ψηφίων που αποτελούν τα δύο βάρη w1, w2. Συνάρτηση Αξιολόγησης Η συνάρτηση αξιολόγησης παίρνει ένα ζεύγος βαρών (w1,w2) το οποίο χρησιμοποιεί για την παραγωγή τελικής πρόβλεψης από δυο παραγόμενα συμπεράσματα. Για κάθε στιγμιότυπο συγκρίνει την τελική πρόβλεψη με την πραγματική κλάση που ανήκει και ενημερώνει έναν πίνακα σύγχυσης (confusion matrix). Για κάθε στιγμιότυπο του Συνόλου Δεδομένων Για κάθε κλάση i Υπολογισμός του CF με χρήση των βαρών w1,w2 Αν το στιγμιότυπο ανήκει στην κλάση i Αν CF>= LMT+THR a_i++ // True Positive Bonus+= (1.5 * (CF - (LMT+THR))); Αλλιώς b_i++ // False Negative
Penalty+= (LMT+THR) - CF; Αν το στιγμιότυπο δεν ανήκει στην i Αν CF>= LMT-THR c_i++ // False Positive Penalty+= CF - (LMT-THR); Αλλιώς d_i++ // True Negative Bonus+= (LMT-THR) - CF; Οι παράμετροι LMT (Limit) και THR (Threshold) προσδιορίζονται στο στάδιο σχεδιασμού του ΕΣ και καθορίζουν το πότε θεωρείτε μια πρόβλεψη θετική και πότε αρνητική. Από τον πίνακα σύγχυσης μπορούν να υπολογιστούν ξεχωριστά για κάθε κλάση οι μετρικές Accuracy, Sensitivity, Specificity και στο τέλος ένας μέσος όρος για την n καθεμία. Επίσης διαιρώντας τις σωστές προβλέψεις για όλες τις κλάσεις i=0 a i με το αριθμό των στιγμιότυπων του συνόλου δεδομένων προκύπτει η πραγματική Ακρίβεια Πρόβλεψης (Predictive Accuracy). Η μετρική Εξισορρόπησης (Balance) αποτελεί μέτρο του πόσο κοντά βρίσκονται οι μετρικές Ευαισθησία (Sensitivity) και Εξειδίκευση (Specificity) και υπολογίζεται από τον τύπο: Balance= 1 - Avg_Sensitivity Avg_Specificity Οι μετρικές Accuracy, Sensitivity, Specificity και Balance που υπολογίζονται πολλαπλασιάζονται από αντίστοιχα βάρη (wacc, wsen, wspe, wbal) με τιμές από 0 έως 1 που έχουν προσδιοριστεί από τον χρήστη κατά το στάδιο σχεδιασμού του Έμπειρου Συστήματος ανάλογα με τις προτιμήσεις του για το ποιες μετρικές είναι πιο σημαντικές για αυτό. Υπολογίζεται και μια μετρική η οποία προκύπτει από επιβραβεύσεις (Bonus) και ποινές (Penalty) που προστίθενται κάθε φορά που γίνεται μια πρόβλεψη (από τις N συνολικά) ανάλογα με την διαφορά που έχει ο εκτιμώμενος συντελεστής βεβαιότητας από το όριο που καθορίζει θετικές και αρνητικές μετρήσεις όπως φαίνεται και στον παραπάνω κώδικα. Deviation = (Bonus Penalty) / N Τέλος με βάση όλες τις παραπάνω παραμέτρους υπολογίζεται μια τελική τιμή (score) που επιστρέφεται από την αντικειμενική συνάρτηση του γενετικού αλγορίθμου. score= (0.2 + PredAcc + Deviation) + (wacc * S_M_Acc + wsen * S_M_Sen + wspe * S_M_Spe + wbal * Balance) ; Παράμετροι του Γενετικού Αλγορίθμου Οι βασικές παράμετροι του γενετικού αλγόριθμου: μέγεθος πληθυσμού, αριθμός γενεών, πιθανότητα μετάλλαξης και πιθανότητα αναπαραγωγής, μπορούν να προσδιοριστούν από τον δημιουργό του έμπειρου συστήματος κατά το στάδιο σχεδιασμού του και ξεχωριστά για κάθε φορά που χρησιμοποιείτε η μέθοδος συνδυασμού με χρήση βαρών.
1.8 Δοκιμή Ομάδας Μεταβλητών Αφού επιλέξει μια ομάδα μεταβλητών ο χρήστης μπορεί πατώντας το κουμπί Δοκιμή (Test) να δοκιμάσει την συγκεκριμένη ομάδα μεταβλητών ως προς την ικανότητα να προβλέπει την κλάση της μεταβλητής που έχει επιλεγεί. Συγκεκριμένα μέσα από μια διαδικασία διασταυρωμένης επικύρωσης (cross validation), το σύνολο δεδομένων χωρίζεται σε σύνολο εκπαίδευσης και ελέγχου, παράγεται έμπειρο σύστημα από το πρώτο και δοκιμάζεται στα δεδομένα του δευτέρου. Υπολογίζονται μετρικές απόδοσης όπως Ακρίβεια, Ευαισθησία και Εξειδίκευση για την πρόβλεψη κάθε κλάσης ξεχωριστά καθώς και μέσος όρος για όλες τις κλάσεις. Τα αποτελέσματα καταγράφονται αναλυτικά σε αρχείο (log.txt), ενώ παράγεται και ένα συγκεντρωτικό γράφημα που παρουσιάζεται στον χρήστη. Παράλληλα ο χρήστης πληροφορείται για τον μέσο αριθμό κανόνων που παράχθηκαν και τον μέσο αριθμό στιγμιότυπων του συνόλου ελέγχου που καλύφθηκαν από τους κανόνες αυτούς. Γενικά ομάδες που αποτελούνται από μεγαλύτερο αριθμό μεταβλητών, τείνουν να εμφανίζουν καλύτερα ποσοστά στις μετρικές απόδοσης ωστόσο οι κανόνες γίνονται περισσότεροι και πιο εξειδικευμένοι με αποτέλεσμα να μην καλύπτουν όλα τα στιγμιότυπα του συνόλου ελέγχου. Εικόνα 10: Παρουσίαση μετρικών απόδοσης με γράφημα για το επιλεγμένο υποσύνολο
1.9 Κατάταξη Παραμέτρων Για να βοηθήσει τον χρήστη να επιλέξει τις ομάδες παραμέτρων για πρόβλεψη μια μεταβλητής, το σύστημα χρησιμοποιεί αρχικά έναν απλό αλγόριθμο κατάταξης παραμέτρων. Συγκεκριμένα μόλις ο χρήστης επιλέξει μια ενδιάμεση ή εξόδου μεταβλητή, το σύστημα για κάθε μια από τις υπόλοιπες μεταβλητές που μπορεί να χρησιμοποιήσει για τον σχηματισμό ομάδων, εκτελεί την διαδικασία δοκιμής που περιγράψαμε και παραπάνω. Για κάθε μια από τις μεταβλητές υπολογίζονται οι μετρικές απόδοσης οι οποίες συνδυάζονται σε ένα αντιπροσωπευτικό σκορ, που δείχνει την γενική επίδοση της για την πρόβλεψη της ζητούμενης μεταβλητής. score = Acc + 0.7 Sen + 0.7 Spe + 1.5 PredAcc + 0.5 Bonus Acc Sen Spe PredAcc Bonus Μέση Ακρίβεια (Accuracy) Μέση Ευαισθησία (Sensitivity) Μέση Εξειδίκευση (Specificity) Ακρίβεια πρόβλεψης (Predictive Accuracy) Μέση απόκλιση από το όριο διαχωρισμού θετικής/αρνητικής πρόβλεψης Και εδώ η διαδικασία γίνεται με διασταυρωμένη επικύρωση, και στο τέλος υπολογίζεται το μέσο σκορ που επιτεύχθηκε. Τέλος το μέσο αυτό σκορ πολλαπλασιάζεται και με την παρακάτω ποσότητα που δείχνει το ποσοστό κάλυψης των κανόνων στα δεδομένα του συνόλου ελέγχου. Αριθμός στιγμιοτύπων του συνόλου ελέγχου που καλύπτονται απο τους κανόνες Συνολικός αριθμός των στιγμιοτύπων του συνόλου ελέγχου Εικόνα 11: Κατάταξη των παραμέτρων
1.10 Επιλογή Υποσυνόλου Εκτός από την κατάταξη των χαρακτηριστικών με βάση την ικανότητα πρόβλεψης που γίνεται αυτόματα κάθε φορά που επιλέγεται μια μεταβλητή, το σύστημα μπορεί να ψάξει στον χώρο των πιθανών υποσυνόλων για να βρει υποσύνολα που βελτιστοποιούν το σκορ που είδαμε παραπάνω. Συγκεκριμένα χρησιμοποιούνται δυο αλγόριθμοι επιλογής υποσυνόλου μεταβλητών που χρησιμοποιούν την τεχνική του περιτυλίγματος (Wrappers), χρησιμοποιώντας τον μηχανισμό δημιουργίας έμπειρου συστήματος. Οι δύο αλγόριθμοι που μπορεί να επιλέξει ο χρήστης είναι: Forward Selection: Ο αλγόριθμος ξεκινάει με ένα κενό υποσύνολο. Σε κάθε επανάληψη βρίσκει με δοκιμές την μεταβλητή, που αν προστεθεί στο υποσύνολο, τότε αυτό πετυχαίνει μεγαλύτερο σκορ. Αν καμία από τις διαθέσιμες μεταβλητές δεν βελτιώνει την απόδοση με την προσθήκη της στο υποσύνολο, ο αλγόριθμος σταματάει. Backward Elimination: Ο αλγόριθμος ξεκινάει με ένα υποσύνολο που περιέχει όλες τις διαθέσιμες μεταβλητές. Σε κάθε επανάληψη βρίσκει με δοκιμές την μεταβλητή, που αν αφαιρεθεί από το υποσύνολο, τότε αυτό πετυχαίνει μεγαλύτερο σκορ. Αν καμία από τις διαθέσιμες μεταβλητές δεν βελτιώνει την απόδοση με την αφαίρεση της από το υποσύνολο, ο αλγόριθμος σταματάει. Και εδώ ο προσδιορισμός της επίδοσης γίνεται με διασταυρωμένη επικύρωση ενώ πολύ σημαντικός παράγοντας είναι ο πολλαπλασιασμός του σκορ κάθε φορά με το ποσοστό κάλυψης των κανόνων στο σύνολο ελέγχου. Με αυτόν τον τρόπο υποσύνολα με πολλές μεταβλητές πετυχαίνουν συνήθως χαμηλότερα σκορ αφού οι κανόνες είναι αρκετά εξειδικευμένοι και είναι πιο πιθανό να μην καλύπτονται στιγμιότυπα του συνόλου ελέγχου. Μόλις ολοκληρωθεί η λειτουργία του αλγόριθμου και βρεθεί το υποσύνολο που πετυχαίνει το μεγαλύτερο σκορ, οι μεταβλητές που το αποτελούν επιλέγονται αυτόματα στην λίστα επιλογής ομάδας μεταβλητών για πρόβλεψη. Παράλληλα παρουσιάζονται στον χρήστη όλα τα υποσύνολα που εξετάστηκαν κατά την διάρκεια εκτέλεσης του αλγορίθμου ταξινομημένα με βάση το σκορ που πέτυχαν. Επιλέγοντας ένα από αυτά τα υποσύνολα, οι αντίστοιχες μεταβλητές στην λίστα προσδιορισμού μεταβλητών τσεκάρονται αυτόματα. Εικόνα 12: Κατάταξη Υποσυνόλων
1.11 Σύγκριση Μεθόδων Συνδυασμού ΣΒ Το σύστημα μπορεί να βοηθήσει τον χρήστη και στην επιλογή της μεθόδου συνδυασμού συντελεστών βεβαιότητας για το ίδιο γεγονός στην περίπτωση που επιλεγούν δύο ομάδες μεταβλητών. Όπως είδαμε σε προηγούμενο κεφάλαιο ο χρήστης μπορεί να επιλέξει μεταξύ της κλασικής μεθόδου που χρησιμοποιεί το MYCIN και μιας πιο γενικευμένης που χρησιμοποιεί βάρη που προσδιορίζονται με χρήση ενός γενετικού αλγορίθμου. Πριν επιλέξει μια από τις μεθόδους, ο χρήστης πατώντας το κουμπί Σύγκρινε (Compare), μπορεί να λάβει μια γραφική αναπαράσταση της απόδοσης των δυο μεθόδων. Συγκεκριμένα το σύστημα παίρνει την αρχιτεκτονική που έχει σχεδιάσει μέχρι εκείνη τη στιγμή ο χρήστης και παράγει το αντίστοιχο έμπειρο σύστημα χρησιμοποιώντας ένα κομμάτι του συνόλου δεδομένων (σύνολο εκπαίδευσης). Επίσης προσθέτει τους κανόνες για τις δυο ομάδες μεταβλητών που έχει επιλέξει πάλι με βάση το σύνολο εκπαίδευσης. Στη συνέχεια χρησιμοποιεί γενετικό αλγόριθμο στα στιγμιότυπα του συνόλου εκπαίδευσης για τον προσδιορισμό των βέλτιστων βαρών. Τέλος δοκιμάζει τις δυο μεθόδους στο έμπειρο σύστημα που παρήγαγε, πάνω στα στιγμιότυπα του συνόλου ελέγχου και υπολογίζει τις μετρικές απόδοσης. Η διαδικασία επαναλαμβάνεται για διαφορετικούς διαχωρισμούς του συνόλου δεδομένων (διασταυρωμένη επικύρωση) και λαμβάνονται οι μέσοι όροι των μετρικών. Τα αποτελέσματα καταγράφονται αναλυτικά σε αρχείο (log.txt), όπου φαίνονται οι μετρικές που υπολογίστηκαν για την πρόβλεψη κάθε κλάσης ξεχωριστά και ο μέσος όρος για όλες τις κλάσεις. Συγκεντρωτικά αποτελέσματα αποστέλλονται στο γραφικό περιβάλλον της εφαρμογής και παρουσιάζονται στον χρήστη με την μορφή συγκριτικού γραφήματος. Επειδή η διαδικασία όπως αναφέραμε, χρησιμοποιεί την αρχιτεκτονική που έχει επιλέξει μέχρι εκείνη την στιγμή ο χρήστης για την παραγωγή των έμπειρων συστημάτων, τα αποτελέσματα είναι αρκετά αντιπροσωπευτικά και για την επίδοση που θα έχει το τελικό έμπειρο σύστημα που θα δημιουργηθεί. Εικόνα 13: Παραγωγή Συγκριτικού γραφήματος για την απόδοση των δυο μεθόδων συνδυασμου
1.12 Αυτόματη Παραγωγή του Έμπειρου Συστήματος Αφού προσδιοριστεί η αρχιτεκτονική του ΕΣ και οι τιμές των παραμέτρων από τον χρήστη το εργαλείο καλεί την κύρια εφαρμογή του συστήματος που αναλαμβάνει την παραγωγή του κώδικα CLIPS που θα περιέχει το τελικό Έμπειρα Σύστημα που θα εξαχθεί. Ο κώδικας CLIPS που παραθέτουμε στις επόμενες ενότητες αφορά ενδεικτικό κώδικα από την εκτέλεση του προγράμματος για ένα συγκεκριμένο σύνολο δεδομένων (Breast Cancer Dataset) και μια συγκεκριμένη αρχιτεκτονική που επέλεξε ο χρήστης κατά τον σχεδιασμό. 1.12.1 Δημιουργία Προτύπων (deftemplates) Πρότυπο για ένα γεγονός εισόδου Πρότυπα για κάθε ενδιάμεση μεταβλητή και για την τελική πρόβλεψη o Πρότυπα για τα δύο επιμέρους συμπεράσματα (για την περίπτωση που έχουν προσδιοριστεί δύο ομάδες μεταβλητών) o Πρότυπο για το τελικό συμπέρασμα 1.12.2 Δημιουργία Συναρτήσεων για Υπολογισμό και Μετάδοση ΣΒ Συνάρτηση Υπολογισμού Συντελεστή Βεβαιότητας Η συνάρτηση getcf παίρνει σαν είσοδο δύο πιθανότητες P(H), P(H E) και με βάση αυτές υπολογίζει τον Συντελεστή Βεβαιότητας με βάση τους παρακάτω τύπους.
P(H) είναι η πιθανότητα (a priori) να συμβεί το γεγονός H. P(H E) είναι η πιθανότητα (posteriori) να συμβεί το γεγονός H (υπόθεση) δεδομένου ότι ισχύει το E (ένδειξη). Εικόνα 14: Συνάρτηση υπολογισμού ΣΒ Συνάρτηση Συνδυασμού Συντελεστών Βεβαιότητας Η συνάρτηση combinecf_w παίρνει σαν όρισμα δυο συντελεστές CF1, CF2 και δυο βάρη w1, w2. Στη συνέχεια συνδυάζει τους συντελεστές με βάση τους τύπους: CF = w1cf1 + w2cf2 + wcf1cf2 if both 0 CF = w1cf1 + w2cf2 wcf1cf2 if both < 0 CF = Οπου w = 1 (w1 + w2) CF1 + CF2 1 min ( CF1, CF2 ) otherwise
Στην περίπτωση όπου w1=w2=1, ισχύει w=-1 οπότε προκύπτουν οι τύποι που χρησιμοποιεί το MYCIN. Εικόνα 15: Συνάρτηση συνδυασμού ΣΒ 1.12.3 Δημιουργία Κανόνων (defrules) Για κάθε ενδιάμεση μεταβλητή Χ και για την μεταβλητή εξόδου δημιουργούνται κανόνες πρόβλεψης με βάση την ομάδα (η τις δυο ομάδες) μεταβλητών που επέλεξε. Μόνο μεταβλητές Εισόδου: Στην περίπτωση που στην ομάδα υπάρχουν μόνο μεταβλητές εισόδου τότε για κάθε συνδυασμό τιμών (pattern) για αυτές που υπάρχει στο σύνολο δεδομένων δημιουργείται ένας κανόνας που έχει σαν υποθέσεις τις συγκεκριμένες τιμές των μεταβλητών της ομάδας ενώ σαν συμπέρασμα την ενδιάμεση μεταβλητή Χ για την οποία θα γίνει η πρόβλεψη και έναν συντελεστής βεβαιότητα για κάθε κλάση της. Ο τρόπος υπολογισμού του συντελεστή βεβαιότητας μελετάται στο κεφάλαιο 5.8. Μια ή περισσότερες Ενδιάμεσες μεταβλητές: Εικόνα 16: Κανόνας (μόνο μεταβλητές εισόδου) Αν στην ομάδα μεταβλητών που επιλέχθηκαν για τον προσδιορισμό μιας ενδιάμεσης μεταβλητής περιέχεται και μία ή περισσότερες ενδιάμεσες μεταβλητές τότε ο κανόνας γίνεται πιο περίπλοκος. Συγκεκριμένα θα εξαχθεί και πάλι ένας κανόνας για κάθε
συνδυασμό τιμών των μεταβλητών εισόδου. Ο κανόνας αυτός θα περιέχει σαν υποθέσεις όπως πριν το συγκεκριμένο pattern των μεταβλητών εισόδου (αν υπάρχουν), ωστόσο θα περιέχει και μια επιπλέον υπόθεση για κάθε ενδιάμεση μεταβλητή στην ομάδα μεταβλητών. Η υπόθεση αυτή περιέχει την εκάστοτε ενδιάμεση μεταβλητή με έναν συντελεστή βεβαιότητας για κάθε κλάση της. Ουσιαστικά ο κάθε συντελεστής βεβαιότητας είναι μια μεταβλητή της CLIPS (?X). Οπότε η υπόθεση αυτή αναπαριστά ουσιαστικά μια πρόβλεψη που έχει γίνει από κάποιον άλλο κανόνα (όπως αυτόν της προηγούμενης εικόνας) για την μεταβλητή αυτή και οι συντελεστές βεβαιότητας της πρόβλεψης θα ανατεθούν ως τιμές στις μεταβλητές της υπόθεσης (?Χ). Εικόνα 17: Κανόνας με δυο ενδιάμεσες μεταβλητές (υποθέσεις) Όσο αφορά το συμπέρασμα του κανόνα αποτελείται από την ενδιάμεση μεταβλητή για την οποία γίνεται πρόβλεψη με ένα συντελεστή βεβαιότητας για κάθε κλάση της. Ο συντελεστής βεβαιότητας μιας κλάσης είναι και αυτός μια μεταβλητή?r η τιμή της οποίας παράγεται με τον ακόλουθο τρόπο: Παίρνουμε διαδοχικά όλους τους πιθανούς συνδυασμούς των κλάσεων των ενδιάμεσων μεταβλητών της ομάδας μεταβλητών. Συνολικά ο αριθμός των συνδυασμών τους προκύπτει πολλαπλασιάζοντας τους αριθμούς κλάσεων κάθε μιας. Για κάθε συνδυασμό κλάσεων των ενδιάμεσων μεταβλητών παίρνουμε τους αντίστοιχους συντελεστές βεβαιότητας δηλαδή τις τιμές που έχουν ανατεθεί στις αντίστοιχες υποθέσεις του κανόνα. Από αυτούς τους συντελεστές κρατάμε τον μικρότερο από όλους ακολουθώντας την μέθοδο μετάδοσης συντελεστών του MYCIN όταν έχουμε αβέβαιες υποθέσεις (conjunction) και τον πολλαπλασιάζουμε με ένα συντελεστή βεβαιότητας. Ο συντελεστής αυτός προκύπτει για κάθε συνδυασμό και πάλι με τον τρόπο που περιγράφεται στο κεφάλαιο 5.8. Έτσι έχουμε για κάθε πιθανό συνδυασμό των κλάσεων των ενδιάμεσων μεταβλητών και μια πρόβλεψη για την κλάση της μεταβλητής εξόδου. Οπότε στη συνέχεια οι προβλέψεις αυτές συνδυάζονται μεταξύ τους με την μέθοδο του MYCIN. Στην επόμενη εικόνα φαίνεται ο κώδικας για το συμπέρασμα ενός τέτοιου κανόνα. Στην συγκεκριμένη περίπτωση έχουμε δύο ενδιάμεσες μεταβλητές, μια με δύο και μια με τρείς κλάσεις, οπότε όπως φαίνεται υπάρχουν έξι (2*3) πιθανοί συνδυασμοί.
Εικόνα 18: Κανόνας με δυο ενδιάμεσες μεταβλητές (συμπέρασμα) 1.12.4 Κανόνας Συνδυασμού Συμπερασμάτων για το ίδιο Γεγονός Αν για τον προσδιορισμό μιας ενδιάμεσης μεταβλητής ή μεταβλητής εξόδου έχουν προσδιοριστεί δυο διαφορετικές ομάδες μεταβλητών, τότε παράγεται ξεχωριστά για την κάθε ομάδα ένα σύνολο κανόνων με τον τρόπο που περιγράψαμε παραπάνω. Επίσης προστίθεται και ένας κανόνας που συνδυάζει τις δύο αυτές προβλέψεις που θα προκύψουν. Αν η μέθοδος που έχει επιλέξει δημιουργός του ΕΣ είναι αυτή με την χρήση βαρών τότε πριν την παραγωγή του κανόνα εκτιμώνται τα βέλτιστα βάρη με χρήση γενετικού αλγορίθμου όπως περιγράφεται στο κεφάλαιο 5.10. Εικόνα 19: Κανόνας Συνδυασμού 1.12.5 Κανόνας Εκτύπωσης Για κάθε ενδιάμεση μεταβλητή και για την μεταβλητή εξόδου παράγεται και ένας κανόνας που εκτυπώνει τις προβλέψεις του συστήματος για κάθε πιθανή κλάση. Ο κανόνας αυτός παράγεται εφόσον ο δημιουργός του έμπειρου συστήματος έχει επιλέξει να εκτυπώνονται τα αποτελέσματα της συγκεκριμένης μεταβλητής κατά το στάδιο της σχεδίασης της αρχιτεκτονικής.
Εικόνα 20: Κανόνας Εκτύπωσης 1.12.6 Συναρτήσεις Εισόδου Αν κάποιος φορτώσει το παραγόμενο ΕΣ στο περιβάλλον του CLIPS τότε μπορεί να πάρει μια πρόβλεψη δίνοντας ένα νέο στιγμιότυπο του πρότυπου data που δημιουργήθηκε πχ: (assert (data (2_age "70-79")(3_menopause "ge40")(4_tumor-size "10-14") (5_inv-nodes "0-2")(8_breast "left") )) Για μεγαλύτερη ευκολία στο ΕΣ προστίθεται και μια συνάρτηση για την είσοδο ενός νέου στιγμιότυπου. Αν ο χρήστης καλέσει την συνάρτηση αυτή τότε αυτή ζητάει διαδοχικά τιμή για κάθε μεταβλητή εισόδου, παρέχοντας και όλες τις πιθανές τιμές που διάβασε από το σύνολο δεδομένων.
Εικόνα 21: Συναρτήσεις για εισαγωγή γεγονότος
1.13 Φόρτωση Έμπειρου Συστήματος Το έμπειρο σύστημα που δημιουργήθηκε μπορεί να φορτωθεί στο περιβάλλον του CLIPS. Εκεί μπορεί να δώσει προβλέψεις για νέα δεδομένα. Η εισαγωγή ενός νέο στιγμιότυπου του προβλήματος μπορεί να γίνει είτε κάνοντας απευθείας assert : (assert (data (2_age "70-79") (3_menopause "ge40") (4_tumor-size "10-14") (5_invnodes "0-2") (8_breast "left") (9_breast-quad "central"))) είτε μέσω της συνάρτησης (get_input) που προστέθηκε στο ΕΣ για αυτό τον σκοπό και η οποία δίνει έναν πιο αλληλεπιδραστικό τρόπο εισαγωγής δεδομένων ζητώντας διαδοχικά τιμές για τις παραμέτρους του προβλήματος. Εικόνα 22: Εισαγωγή δεδομένων μέσω της συνάρτησης εισόδου (getinput) Εναλλακτικά προσφέρεται η δυνατότητα φόρτωσης του έμπειρου συστήματος μέσα από το γραφικό περιβάλλον του συστήματος και σχηματισμό του ερωτήματος (νέου γεγονότος) μέσω ειδικών μενού που παρέχονται (Εικόνα 23). Εικόνα 23: Εισαγωγή δεδομένων από το γραφικό περιβάλλον του ACRES 1.14 Δυναμική Ενημέρωση Συντελεστών Βεβαιότητας Δίνεται στον χρήστη η δυνατότητα επίσης να δημιουργήσει το Έμπειρο Σύστημα με τρόπο που επιτρέπει την ενημέρωση των συντελεστών βεβαιότητας στους κανόνες σε περίπτωση που προκύψει γνώση για νέα δεδομένα του προβλήματος. Παρακάτω φαίνονται οι κανόνες που παρουσιάστηκαν και στο κεφάλαιο 5.6.3 τροποποιημένοι ώστε να μπορούν να υπολογίσουν τους ΣΒ δυναμικά. Η κεντρική ιδέα
είναι να αποθηκεύονται σε ένα ξεχωριστό αρχείο για κάθε κανόνα οι συχνότητες που χρειάζεται για να υπολογίσει τους απαραίτητους ΣΒ και με βάση αυτές να τους υπολογίζει στο κύριο σώμα του δυναμικά, δηλαδή σε πραγματικό χρόνο όταν πρέπει να γίνει η πρόβλεψη. Εικόνα 24: Μόνο μεταβλητές Εισόδου (Δυναμικοί ΣΒ) Εικόνα 25: Ενδιάμεσες Μεταβλητές - Υπόθεση (Δυναμικοί ΣΒ)
Εικόνα 26: Ενδιάμεσες Μεταβλητές - Συμπέρασμα (Δυναμικοί ΣΒ) Παράλληλα για κάθε κανόνα σαν τους παραπάνω υπάρχει και ένας αντίστοιχος που αναλαμβάνει να ενημερώσει τα γεγονότα στο αρχείο με τις συχνότητες αν προκύψει νέο γνωστό γεγονός του προβλήματος.
Εικόνα 27: Κανόνας ενημέρωσης συχνοτήτων Η συνάρτηση (update) προσφέρει δυνατότητα εισαγωγής ενός νέο γεγονότος του προβλήματος και λειτουργεί με τρόπο αντίστοιχο με την συνάρτηση (getinput), στην Εικόνα 21: Συναρτήσεις για εισαγωγή γεγονότος. Τέλος η συνάρτηση (start) προσφέρει μια διεπαφή για τον χρήστη μέσα από την οποία μπορεί να ενημερώσει το σύστημα για νέα γεγονότα: Εικόνα 28: Διεπαφή με δυνατότητα ενημέρωσης (Κώδικας)
Εικόνα 29: Διεπαφή με δυνατότητα ενημέρωσης (Περιβάλλον Clips) Εναλλακτικά ενημέρωση μπορεί να γίνει και από το γραφικό περιβάλλον του ACRES αφού φορτωθεί το ΕΣ και το αρχείο με τις συχνότητες. Εικόνα 30: Ενημέρωση από το γραφικό περιβάλλον του ACRES Θα πρέπει να επισημανθεί εδώ ότι όλοι οι κανόνες, συναρτήσεις και τα πρότυπα που συνθέτουν το κυρίως σώμα-αρχείο του παραγόμενου ΕΣ παραμένουν σταθερά. Το μόνο που αλλάζει κατά την ενημέρωση είναι το αρχείο που περιέχει τις συχνότητες. Επίσης η προσθήκη όλου αυτού του μηχανισμού για τον δυναμικό υπολογισμό των ΣΒ και την ενημέρωση των αντίστοιχων συχνοτήτων αυξάνει σημαντικά την πολυπλοκότητα του παραγόμενου ΕΣ. Οι κανόνες ουσιαστικά διπλασιάζονται ενώ παράλληλα φορτώνονται όλες οι συχνότητες σαν γεγονότα οπότε οι απαραίτητες συγκρίσεις για τον έλεγχο των κανόνων που θα προστεθούν στην ατζέντα είναι πολύ περισσότερες. Η καθυστέρηση στην λήψη μιας πρόβλεψης δεν είναι αισθητή βέβαια ωστόσο σε εφαρμογές οπού υπάρχει μεγάλη ροή δεδομένων για ταξινόμηση από το ΕΣ ενδέχεται η επιβάρυνση να είναι μη αποδεκτή.
1.15 Υλοποίηση Συστήματος Οι κύριες λειτουργίες του συστήματος είναι υλοποιημένες σε γλώσσα C++. Στο Παράρτημα παρουσιάζονται οι λειτουργίες αυτές με τα ορίσματα που χρησιμοποιούν για κλήση από γραμμή εντολών, καθώς και μια γενική μορφή του αλγορίθμου που χρησιμοποιούν. Η ανάπτυξη του προγράμματος έγινε με το περιβάλλον DevC++, ενώ ενσωματώνει δύο βιβλιοθήκες για την χρήση γενετικού αλγορίθμου και την ενσωμάτωση του κελύφους CLIPS: GΑlib: Η βιβλιοθήκη GAlib περιλαμβάνει ένα σύνολο από εργαλεία για την χρήση γενετικών αλγορίθμων για την επίλυση προβλημάτων βελτιστοποίησης σε προγράμματα C++. Αναπτύχθηκε από τον Matthew Wall στο ΜΙΤ (Massachusetts Institute of Technology) και είναι διαθέσιμη ελεύθερα. Clips: Ο πηγαίος κώδικας του κελύφους CLIPS, είναι υλοποιημένος στην γλώσσα C και ελεύθερα διαθέσιμος. Το γραφικό περιβάλλον του εργαλείου υλοποιήθηκε στη γλώσσα Visual C++ με το περιβάλλον Microsoft Visual Studio 2010. Η εφαρμογή καλεί το παραπάνω κύριο πρόγραμμα για λειτουργίες όπως η δημιουργία του έμπειρου συστήματος και η αξιολόγηση μιας ομάδας μεταβλητών, χρησιμοποιώντας τα ορίσματα που επέλεξε ο χρήστης. Επίσης στο γραφικό περιβάλλον περιλαμβάνονται και οι αλγόριθμοι επεξεργασίας του συνόλου δεδομένων καθώς και οι αλγόριθμοι επιλογής υποσυνόλων. Εικόνα 31: Πλήρες γραφικό περιβάλλον για τη δημιουργία ΕΣ
Αν δεν είναι εγκατεστημένο το Visual Studio 2010 στον υπολογιστή θα πρέπει να εγκατασταθούν τα «VISUAL C++ 2010 RUNTIME LIBRARIES» και «.NET Framework 4»: Microsoft Visual C++ 2010 Redistributable Package (x86). Microsoft.NET Framework 4