Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Introduction to Genetic Programming

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Introduction to Genetic Programming"— Μεταγράφημα παρουσίασης:

1 Introduction to Genetic Programming
Εισαγωγή στο Γενετικό Προγραμματισμό Σ. Λυκοθανάσης, Καθηγητής Τμήμα Μηχανικών Η/Υ και Πληροφορικής

2 Περίγραμμα Παρουσίασης
Εισαγωγή, Γενετικός Προγραμματισμός (GP), Εφαρμογές, GP και μοντελοποίηση, Συζήτηση

3 Ο Γενετικός Προγραμματισμός με μια γρήγορη ματιά
Αναπτύχθηκε στις Η.Π.Α. στις αρχές της δεκαετίας του 1990, Εμπνευστής του ήταν ο J. Koza, Τυπικά εφαρμόζεται σε: Προβλήματα Μηχανικής Μάθησης όπως πρόβλεψη, κατηγοριοποίηση κ.λπ. Χαρακτηριστικές Ιδιότητες: Συναγωνίζεται με τεχνολογίες όπως τα νευρωνικά δίκτυα κ.α. Χρειάζεται συνήθως πολύ μεγάλους πληθυσμούς για να δουλέψει (μερικές εκατοντάδες μέλη), Είναι γενικά αργός Ειδικά χαρακτηριστικά: Χρησιμοποιεί μη-γραμμικά χρωμοσώματα: δένδρα, γράφους, Η χρήση μετάλλαξης είναι πιθανή αλλά όχι πάντα αναγκαία (υπάρχει έντονη διαφωνία για το συγκεκριμένο θέμα)

4 Τι είναι Μέλος της οικογένειας των εξελικτικών αλγορίθμων
Εξελικτικοί Αλγόριθμοι: πρόκειται για μια οικογένεια από στοχαστικές τεχνικές αναζήτησης οι οποίες είναι εμπνευσμένες από την κατά Δαρβίνο βιολογική εξέλιξη. Στην κατηγορία των εξελικτικών τεχνικών ανήκουν πολλές διαφορετικές μέθοδοι – αλγόριθμοι, οι οποίοι όμως μοιράζονται κοινή φιλοσοφία λειτουργίας. Οι βασικές μέθοδοι είναι: Γενετικοί Αλγόριθμοι (Genetic Algorithms), Γενετικός Προγραμματισμός (Genetic Programming), Εξελικτικές Στρατηγικές (Evolution Strategies), Εξελικτικός Προγραμματισμός (Evolutionary Programming).

5 Η θέση τους στο χώρο της Υπολογιστικής Νοημοσύνης

6 GP: Βασική φιλοσοφία λειτουργίας
Διατηρεί έναν πληθυσμό από πιθανές λύσεις του προς επίλυση προβλήματος Σε κάθε γενιά εξελίσσει τον πληθυσμό εφαρμόζοντας διάφορους γενετικούς τελεστές, προκειμένου να βελτιώσει την ποιότητα των λύσεων που απαρτίζουν τον πληθυσμό. Η διαδικασία επαναλαμβάνεται έως ότου εξευρεθεί μια ικανοποιητική λύση (βέλτιστη ή σχεδόν βέλτιστη).

7 GP: Βασικός κύκλος εξέλιξης

8 GP: Βασική φιλοσοφία λειτουργίας
Creation of initial population Evaluation Selection Direct reproduction New generation End? End Crossover Mutation Yes No with pc with pm

9 Αναπαράσταση Τα δένδρα είναι η βασική μορφή αναπαράστασης στο ΓΠ: για παράδειγμα Αριθμητική Εξίσωση: Λογικός Τύπος: Πρόγραμμα: (x  true)  (( x  y )  (z  (x  y))) i =1; while (i < 20) { i = i +1 }

10 Αναπαράσταση σε μορφή Δένδρου: εξίσωση

11 Αναπαράσταση σε μορφή Δένδρου: λογικός τύπος
(x  true)  (( x  y )  (z  (x  y)))

12 Αναπαράσταση σε μορφή Δένδρου: πρόγραμμα
i =1; while (i < 20) { i = i +1 }

13 Αναπαράσταση σε μορφή Δένδρου
Στους ΓΑ, ΕΣ, ΕΠ τα χρωμοσώματα είναι γραμμικές δομές (bit strings, integer strings, real-valued vectors, permutations) Τα χρωμοσώματα με μορφή δένδρου είναι μη-γραμμική δομή Στους ΓΑ, ΕΣ, ΕΠ το μέγεθος του χρωμοσώματος είναι (συνήθως) σταθερό (fixed) Τα δένδρα στο ΓΠ μπορεί (και συνήθως) ποικίλουν σε βάθος και πλάτος

14 Αναπαράσταση σε μορφή Δένδρου
Οι συμβολικές εκφράσεις καθορίζονται από: Ένα σύνολο από Τερματικά (Terminal set) T, Ένα σύνολο από συναρτήσεις ή μη-τερματικά (Function or Non-Terminals set) F (κάθε συνάρτηση μπορεί να έχει διαφορετικό αριθμό ορισμάτων) Γενικά ακολουθούνται οι εξής αναδρομικοί ορισμοί: Κάθε t  T είναι μια σωστή έκφραση, Η f(e1, …, en) είναι σωστή έκφραση εάν f  F, arity(f)=n και οι e1, …, en είναι σωστές εκφράσεις, Δεν υπάρχουν άλλοι τύποι σωστών εκφράσεων

15 Γενετικοί Τελεστές: Διασταύρωση – Recombination or Crossover
Η πιο συνηθισμένη μορφή διασταύρωσης είναι η ανταλλαγή δύο τυχαία επιλεγμένων υπό-δένδρων ανάμεσα στους γονείς Η Διασταύρωση χρησιμοποιεί δύο παραμέτρους: Την πιθανότητα διασταύρωσης pc για την επιλογή του τελεστή της διασταύρωσης σε σχέση με τον τελεστή της μετάλλαξης Την πιθανότητα με την οποία επιλέγονται τα υπό-δένδρα (τα σημεία διασταύρωσης) στους «γονείς» Το μέγεθος του παιδιού που προκύπτει από τη διασταύρωση μπορεί να είναι μεγαλύτερο από αυτό των «γονιών» του

16 Διασταύρωση: παράδειγμα
Parent 1 Parent 2 Child 1 Child 2

17 Γενετικοί Τελεστές: Μετάλλαξη - Mutation
Η πιο συνηθισμένη μορφή μετάλλαξης είναι η αντικατάσταση ενός τυχαία επιλεγμένου υπό-δένδρου από ένα τυχαία παραγόμενο υπό-δένδρο

18 Μετάλλαξη Η Μετάλλαξη χρησιμοποιεί δύο παραμέτρους:
Την πιθανότητα μετάλλαξης pm: για την επιλογή του τελεστή της μετάλλαξης σε σχέση με τον τελεστή της διασταύρωσης, Την πιθανότητα με την οποία επιλέγεται το υπό-δένδρο για αντικατάσταση (το σημείο μετάλλαξης) Είναι αξιοσημείωτο ότι η pm προτείνεται να είναι είτε 0 (Koza’92) είτε ένας πολύ μικρός αριθμός όπως για παράδειγμα 0.05 (Banzhaf et al. ’98) Το μέγεθος του παιδιού που προκύπτει από τη μετάλλαξη μπορεί να είναι μεγαλύτερο από αυτό του «γονιού» του

19 Γενετικοί Τελεστές: Επιλογή – Selection
Η επιλογή των γονιών είναι συνήθως αναλογική ως προς την απόδοσή τους (fitness proportionate): π.χ. Roulette Wheel Selection Υπάρχουν πολλές μέθοδοι επιλογής, όπως: Elitist Fitness Proportionate Selection, Rank Based Selection, Tournament Selection, Uniform Selection, Over-selection σε πολύ μεγάλους πληθυσμούς: Ταξινόμησε τον πληθυσμό με βάση την απόδοση, σε δύο γκρουπ: γκρουπ 1: τα καλύτερα x% μέλη του πληθυσμού, γκρουπ 2 τα υπόλοιπα (100-x)%, 80% των γονέων επιλέγονται από το γκρουπ 1, και 20% από το γκρουπ 2, Για μεγέθη πληθυσμού = 1000, 2000, 4000, 8000 x = 32%, 16%, 8%, 4% κίνητρο: η αύξηση της αποτελεσματικότητας, τα ποσοστά έχουν προκύψει με «rule of thumb»

20 Αρχικοποίηση – Initialization
Αρχικά πρέπει να καθοριστεί το μέγιστο αρχικό βάθος των Dmax των δένδρων, Πλήρης Μέθοδος (Full method) (κάθε κλάδος του δένδρου έχει βάθος = Dmax): Οι κόμβοι που βρίσκονται σε βάθος d < Dmax επιλέγονται τυχαία από το σύνολο του function set (non terminals) F Οι κόμβοι που βρίσκονται σε βάθος d = Dmax επιλέγονται τυχαία από το terminal set T Μέθοδος της Ανάπτυξης (Grow method) (κάθε κλάδος του δένδρου έχει βάθος  Dmax): Οι κόμβοι σε βάθος d < Dmax επιλέγονται τυχαία από το σύνολο F  T Οι κόμβοι σε βάθος d = Dmax επιλέγονται τυχαία από το σύνολο T Η συνήθης τεχνική αρχικοποίησης: ο μισός αρχικός πληθυσμός κατασκευάζεται με την full method και ο άλλος μισός με την grow method (τεχνική Ramped Half-Half)

21 Το φαινόμενο του Bloat Bloat = το φαινόμενο της επιβίωσης του πιο χονδρού («survival of the fattest»), το μέγεθος των δένδρων στον πληθυσμό αυξάνεται συνεχώς με το χρόνο Υπάρχει πολύ έρευνα αλλά και συζήτηση σε εξέλιξη για τους λόγους που προκαλούν το φαινόμενο Απαιτείται η λήψη διαφόρων μέτρων για την αντιμετώπισή του, όπως: Η «απαγόρευση» γενετικών τελεστών που τείνουν να παράγουν πολύ μεγάλα σε μέγεθος παιδιά Πίεση για οικονομία: επιβολή ποινής στα μέλη του πληθυσμού που είναι υπερμεγέθη

22 Προβλήματα με το «φυσικό» περιβάλλον
Δένδρα για data fitting σε σχέση με δένδρα (προγράμματα) τα οποία είναι πραγματικά εκτελέσιμα Η εκτέλεση ενός προγράμματος κωδικοποιημένου σε δένδρο μπορεί να προκαλέσει μεταβολή του περιβάλλοντος και κατά συνέπεια του υπολογισμού της απόδοσης: για παράδειγμα ένας robot controller Ο υπολογισμός της απόδοσης των μελών του πληθυσμού με τη χρήση εξομοίωσης, σε πολύπλοκα προβλήματα κυμαίνεται από ακριβή (σε υπολογιστικούς πόρους και χρόνο) έως πολύ ακριβή Τα αποτελέσματα που προκύπτουν είναι συχνά πολύ καλά

23 Παράδειγμα: Το πρόβλημα του credit scoring
Η Τράπεζα θέλει να κατηγοριοποιήσει τους υποψήφιους δανειολήπτες σε δύο κατηγορίες: καλούς και κακούς. Η Τράπεζα διατηρεί αρχείο με δεδομένα από παλιότερα δάνεια και συμπεριφορά δανειοληπτών. Απαιτείται η δημιουργία ενός μοντέλου σύμφωνα με τα δεδομένα αυτά: ID No Of Children Salary Marital status OK? ID-1 2 45000 Married ID-2 30000 Single 1 ID-3 40000 Divorced

24 Παράδειγμα: Το πρόβλημα του credit scoring
Ένα πιθανό μοντέλο για το πρόβλημα είναι: IF (NOC = 2) AND (S > 80000) THEN good ELSE bad Γενική μορφή μοντέλου: IF formula THEN good ELSE bad Ο «άγνωστος» είναι ο τύπος «formula» και επομένως: Ο χώρος αναζήτησης (οι φαινότυποι) είναι το σύνολο που σχηματίζουν οι διαφορετικοί τύποι (formulas), Υπάρχει μια φυσική συνάρτηση απόδοσης (fitness) για κάθε τύπο: το ποσοστό των περιπτώσεων που κατηγοριοποιεί σωστά το αντίστοιχο μοντέλο. Υπάρχει μια φυσική αναπαράσταση για τους τύπους (γενότυποι): τα parse trees

25 Παράδειγμα: Το πρόβλημα του credit scoring
Για παράδειγμα το μοντέλο: IF (NOC = 2) AND (S > 80000) THEN good ELSE bad Μπορεί να αναπαρασταθεί από το ακόλουθο δένδρο: AND S 2 NOC 80000 > =

26 Παράδειγμα: symbolic regression
Το πρόβλημα: Έστω n σημεία στον R2, (x1, y1), … , (xn, yn) Θέλουμε να υπολογίσουμε μια συνάρτηση f(x) τέτοια ώστε i = 1, …, n: f(xi) = yi

27 Παράδειγμα: symbolic regression
Πιθανή λύση με τη χρήση GP: Αναπαράσταση: Function (or non terminal) set: F = {+, -, /, sin, cos}, Terminal set: T = R  {x} Η απόδοση κάθε μέλους υπολογίζεται με τη σχέση: Χρήση των συνηθισμένων γενετικών τελεστών Μέγεθος Πληθυσμού = 1000 Αρχικοποίηση με τεχνική Ramped Half-Half Συνθήκη τερματισμού: n “hits” ή υπολογισμοί αποδόσεων (fitness evaluations) (όπου με τον όρο “hit” εννοούμε όταν | f(xi) – yi | < )

28 Μοντελοποίηση συστημάτων με τη χρήση GP
Μετρήσεις Μοντέλο Το πρόβλημα: Δεδομένου ενός συνόλου μετρήσεων (για παράδειγμα τα αποτελέσματα ενός πειράματος) θέλουμε να υπολογίσουμε τη μαθηματική σχέση που διέπει αυτά τα δεδομένα Έχουν προταθεί και χρησιμοποιηθεί διάφορες μέθοδοι για την επίλυση του προβλήματος: black box τεχνικές, white box, κ.λπ. Μια από τις πιο πρόσφατες είναι ο Γενετικός Προγραμματισμός

29 Σχεδιαστικές αποφάσεις
Για την εφαρμογή του ΓΠ χρειάζεται: Να καθοριστούν τα function (non-terminal) set, και terminal set. Σε αυτό το σημείο είναι πολύ σημαντικό να αξιοποιηθεί η οποιαδήποτε a-priori γνώση υπάρχει σε σχέση με το πρόβλημα, Να καθοριστούν οι τιμές των διαφόρων παραμέτρων του GP (μέγιστο βάθος δένδρων, συνθήκες τερματισμού, μέγεθος πληθυσμού, τιμές πιθανοτήτων για διασταύρωση και μετάλλαξη, κ.λπ.), Να επιλεχθεί το κατάλληλο μέτρο για την αποτίμηση της απόδοσης των διαφόρων μοντέλων (π.χ. MSE), Να επιλεχθεί η κατάλληλη μέθοδος αρχικοποίησης, Να επιλεχθεί η κατάλληλη πολιτική επιλογής, Να επιλεχθούν οι κατάλληλοι γενετικοί τελεστές διασταύρωσης και μετάλλαξης,

30 Βασική Δομή – Λειτουργία

31 Βασική Δομή – Λειτουργία
Το ΓΠ δημιουργεί έναν αρχικό πληθυσμό από μοντέλα (αναπαρίστανται ως δένδρα) με τυχαίο τρόπο και αξιοποιώντας τυχών a priori γνώση, Κάθε μοντέλο αξιολογείται (υπολογισμός fitness) χρησιμοποιώντας τα πειραματικά δεδομένα που έχουμε στη διάθεσή μας, Εφαρμόζονται οι διάφοροι γενετικοί τελεστές (επιλογή, διασταύρωση, μετάλλαξη) και δημιουργείται ένας νέος πληθυσμός από μοντέλα, Ο έλεγχος επιστρέφει στο βήμα 2 και η διαδικασία επαναλαμβάνεται έως ότου ικανοποιηθεί η συνθήκη τερματισμού

32 Γενετικοί Τελεστές κατά τη μοντελοποίηση

33 Παρατηρήσεις Ο αλγόριθμος με τη γενική μορφή δεν αποδίδει ιδιαίτερα καλά σε δύσκολα προβλήματα (πολύπλοκα μη γραμμικά μοντέλα), Χρειάζονται διάφορες τροποποιήσεις και συμπερίληψη γνώσης του προβλήματος (specific domain knowledge): σχεδίαση κατάλληλων για τη μορφή των μοντέλων γενετικών τελεστών, χρήση επιπλέον αλγορίθμων για την βελτιστοποίηση των μοντέλων (υβριδικοί αλγόριθμοι) Με τις κατάλληλες μετατροπές ο αλγόριθμος μπορεί να δώσει εξαιρετικά αποτελέσματα

34 Παράδειγμα – 1

35 Παράδειγμα – 2 Μοντέλο από πειραματικά δεδομένα χωρίς να υπάρχει κάποια αναλυτική μαθηματική σχέση

36 Παράδειγμα – 3 simulation Result of GP (y) + 4% noise (u) 20 40 60 80
20 40 60 80 100 -2 -1 1 2 3 4 (u) (y) + 4% noise simulation Result of GP

37 Συζήτηση Τελικά τι είναι ένα Γενετικό Πρόγραμμα:
Η τέχνη της εξέλιξης προγραμμάτων υπολογιστών; Ένας τρόπος για τον αυτόματο προγραμματισμό υπολογιστών; Ένας Γενετικός Αλγόριθμος με διαφορετική αναπαράσταση;

38 ΤΕΛΟΣ


Κατέβασμα ppt "Introduction to Genetic Programming"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google