Τεχνητή νοημοσύνη (AI)
Εισαγωγή

Υπάρχουν πολλές τεχνικές που χρησιμοποιούνται στην τεχνητή νοημοσύνη. Εγώ εξετάζω κυρίως αυτές που αφορούν την εύρεση της βέλτιστης λύσης σε διάφορα προβλήματα. Στην αναζήτηση αυτή ψάχνεις μέσα σε ένα χώρο λύσεων π.χ. [Δευτέρα ... Κυριακή, 7:00 - 19:00] για την βελτιστη λύση του προβλήματος που στη συγκεκριμένη περίπτωση είναι το "πότε θα πάω στο ΕΜΠ?". Αν φανταστεί κανείς μία συνάρτηση (merit function) που υπολογίζει την ευχαρίστηση του να πάω στο ΕΜΠ συναρτήσει της μέρας και της ώρας μπορεί να χρησιμοποιήσει τεχνικές hill-climbing για να βρεί την βέλτιστη ώρα και μέρα. Αυτή μπορεί να είναι μια απόφαση που παίρνουμε καθημερινά εμείς οι άνθρωποι, όμως μόνο και η λέξη "απόφαση" είναι ικανή να φέρει αλεργία σε κάθε PC. Γενικά τα μηχανήματα δεν αρέσκονται στο να παίρνουν αποφάσεις, πόσο μάλλον και σε τέτοιες ασαφείς περιστάσεις.

Μία παραστατική μεταφορά για την αναζήτηση τύπου hill-climbing είναι αυτή ενός καγκουρό στην ομίχλη. Υποθέστε ότι είστε ένα καγκουρό και βρεθήκατε σε ένα άγνωστο βουνό που είναι τυλιγμένο με πυκνό καπνό και θέλετε να βρείτε την ψηλότερη κορυφή (εικόνα a). Το μόνο που μπορείτε να κάνετε λόγω της περιορισμένης ορατότητάς σας, είναι να δείτε το ψηλότερο σημείο τριγύρω στην περιοχή σας και να πηδήξετε σε αυτό. Από τη νέα σας θέση τώρα επαναλαμβάνετε την προηγούμενη διαδικασία μέχρι να φτάσετε σε ένα σημείο που δεν υπάρχει τριγύρω ψηλότερο. Φυσικά, τίποτα δεν εγγυάται ότι φτάσατε στο ψηλότερο σημείο της περιοχής χρησιμοποιώντας αυτή τη μέθοδο. Το αν θα φτάσετε ή όχι εξαρτάται αποκλειστικά από την μορφή του βουνού που θα βρεθείτε. Αν το έδαφος είναι ομαλό, υπάρχει μόνο ένα μέγιστο και η κλίση σε κάθε σημείο του εδάφους δείχνει προς αυτό το μέγιστο θα βρείτε την ψηλότερη κορυφή (εικόνα b).

Ίσως πράγματι να είναι έτσι, παρ'όλα αυτά αν το έδαφος έχει μικρούς λοφίσκους θα βρείτε μια κορυφή αλλά το πιθανότερο είναι να μην είναι η ψηλότερη. (εικόνα c). Αναλόγως με το τι ζητάμε, αυτό μπορεί να μην είναι πρόβλημα αφού και πάλι έχουμε φτάσει σε ένα βέλτιστο, έστω και τοπικό. Από την άλλη αν το έδαφος είναι γεμάτο με πέτρες και απότομες κορυφές το πιθανότερο είναι ότι θα κολλήσετε σε ένα τοπικό μέγιστο το οποίο θα απέχει πάρα πολύ από το ολικό το οποίο επιθυμούμε (εικόνα d).

Η χειρότερη όμως περίπτωση είναι όταν το έδαφος δεν έχει καθόλου κλίση. Σε αυτή τη περίπτωση υπάρχουν μεμονωμένες κορυφές και πηδώντας τυχαία προς κάθε κατεύθυνση είναι σχεδόν απίθανο να βρεθείς εκεί από τύχη (εικόνα e). Μία άλλη λύση στους αλγόριθμους ανεύρεσης είναι αυτή που φαίνεται στην εικόνα f. Αυτή είναι μία μορφή παράλληλης αναζήτησης (γενετικοί αλγόριθμοι) όπου πολλά καγκουρό εξερευνούν τον χώρο και η πιθανότητα να φτάσουν στο υψηλότερο σημείο του χώρου αναζήτησης είναι πολύ μεγαλύτερη.

Από τα παραπάνω παραδείγματα γίνεται φανερό ότι είναι πολύ σημαντικό να ξέρεις το πόσο σύνθετος είναι ο χώρος αναζήτησης πριν αρχίσεις να σχεδιάζεις έναν αλγόριθμο τεχνητής νοημοσύνης. Παρ'όλα αυτά είναι φανερό ότι οι δυνατότητες περιορίζονται από τον ίδιο τον χώρο αναζήτησης. Για παράδειγμα στην κρυπτογραφία, ο σκοπός είναι να βρεθεί ένας τρόπος ώστε το μήνυμα να κωδικοποιείται σε ένα χώρο τόσο σύνθετο ώστε να μην μπορεί κανείς να το αποκωδικοποιήσει χωρίς πλήρη γνώση του χώρου ούτε εμπειρικά, πόσο μάλλον με κάποιο αλγόριθμο αναγνώρισης προτύπων.

Από το βιβλίο data minning του Pieter Adriaans

 

Γενετικοί αλγόριθμοι

Είναι αλγόριθμοι ανεξάρτητοι του προβλήματος (problem independent) που αποσκοπούν στον προσδιορισμό μίας πολύ καλής λύσης (near to optimal) του προβλήματος που τους τίθεται. Όλοι οι γενετικοί αλγόριθμοι έχουν την (σχετικά απλή) δομή του παρακάτω διαγράμματος. Η διαφοροποίηση τους έγκειται στην υλοποίησή του όπως και στην πιθανή εφαρμογή πρόσθετων operations που βελτιώνουν την επίδοσή τους σε συγκεκριμένα προβλήματα. Πάντως ο βασικός αλγόριθμος δουλεύει πάντα και δίνει πολύ καλά αποτελέσματα.

 

Links
ΤΟ site: Introduction to genetic algorithms with Java applets
Γενετικοί αλγόριθμοι σε java (download) (site)
Καλό site από έναν καθηγητή του εξωτερικού (site)
The hitch-hiker's guide to evolutionary computation
Much download here!
Memetic Algorithms' Home Page
The Genetic Programming Tutorial
Nice little links
GLIB in ftp server


Simulating annealing

Ένας ανάλογος τρόπος εύρεσης της βέλτιστης λύσης είναι και αυτός του simulating annealing. Στηρίζεται στην ομοιότητα της σκλήρυνσης ενός μετάλου με θέρμανση (annealing) με την στατιστική μέθοδο προσδιορισμού ελαχίστου. Συγκεκριμένα όταν ζεσταίνουμε ένα μέταλο υπάρχουν πολλά άτομα με μεγάλη ενέργεια. Αν το ψύξουμε αργά αργά, τη στιγμή που θα στερεοποιηθεί θα έχει την ελάχιστη ενέργεια (global minimum).

Αυτή είναι η αρχή λειτουργίας και ο γενικός αλγόριθμος που χρησιμοποιείται φαίνεται στο διάγραμμα δεξιά.

 

Manageroδουλειές

Ψιλό-άσχετο, η βιβλιοθήκη φιλοσοφίας του Stanford!


Βιβλία

Pattern - Image Recognition
  1. Pattern Matching Algorithms
    Alberto Apostolico, Zvi Galil (Το πιο συχνά εμφανιζόμενο πρόβλημα είναι αυτό του να βρεις κάποια ονόματα μέσα σε ένα κείμενο ή όλα τα σχετικά προβλήματα που ακούνε στο όνομα προβλήματα αναγνώρισης προτύπων. Θα εκπλαγείτε από το πόσες πολλές και απίθανα αποδοτικές λύσεις υπάρχουν) [006.4 PAT]
  2. Three Dimensional Computer Vision
    Yoshiaki Shirai (Ένα βιβλίο με πρακτικές λύσεις στον τομέα της αναγνώρισης εικόνας. Απλά μαθηματικά και ιδέες που δουλεύουν εύκολα στη πράξη) [006.42 SHI]
  3. Digital Image Processing
    Rafael C. Gonzalez / Richard E. Woods [621.367 GON]

Προβλήματα και μέθοδοι βελτιστοποίησης
  1. Intelligent Optimisation Techniques
    D.T.Pham, D. Karaboga (γενετικοί αλγόριθμοι, tabu search, simulatin annealing και neural networks όλα σε ένα με συγκριτικά μεταξύ τους)
  2. Classical Principles and Optimization Problems
    Boris Sergeevich Razumikhin (Πολύ πράγμα... με αρκετά μαθηματικά)

Γενετικοί αλγόριθμοι
  1. Genetic Algorithms and data structures = evolution programs
    Zbigniew Michalewicz (πολύ καλό)
  2. Genetic Algorithms
    (in search optimization & machine learning)
    David E.Goldberg (με έτοιμα παραδείγματα σε Pascal)

Simulating annealing
  1. Simulated Annealing: Theory and Applications
    J.P.M. van Laarhoven and E.H.L. Aarts [511 LAA]

Τεχνητή νοημοσύνη στις επιχειρήσεις και το management
  1. Seven Methods for Transforming Corporate Data Into Business Intelligence
    Vasant Dhar, Roger Stein (σου φέρνει απίστευτη έμπνευση)
  2. Data Mining
    Pieter Adriaans and Dolf Zantinge [ΠΒ 001.422 ADR]


Μία εκπληκτική υπόθεση
  1. Μία εκπληκτική επιστημονική υπόθεση για το πως πραγματικά λειτουργεί ο εγκέφαλος και τι είναι αυτό που λέμε συνείδηση.
    Francis Crick (κυκλοφορεί μεταφρασμένο στα ελληνικά από τις εκδόσεις κάτοπτρο) [153 CRI]

Σχεδίαση μοντέλων
  1. The Unified Modeling Language User Guide
    Grady Booch, James Rumbaugh, Ivar Jacobson [ΠΒ 005.17]
    Πραγματικά το καλύτερο βιβλίο για UML



Αγόρασέ το από το Amazon

Βρες το στη βιβλιοθήκη
Home Electronics Programming My documents Find

Οι κατασκευές, τα προγράμματα και όλο το περιεχόμενο του site ανήκουν σε εμένα προσωπικά, όσο αυτό δεν παραβιάζει δικαιώματα άλλων και δημοσιεύονται για ενημερωτικούς σκοπούς. Καμία εγγύηση δεν παρέχεται για οποιαδήποτε χρήση τους και καμία ευθύνη δε φέρω για οποιεσδήποτε ζημιές μπορεί να προκαλέσουν. Για επαγγελματική χρήση ή αναδημοσίευση μέρους ή του συνόλου του περιεχομένου του site, επικοινωνήστε μαζί μου.

Δημήτρης Κουζής - Λουκάς | (c) 2001-2004 | Dimitris Kouzis - Loukas