Περιγραφή: |
Συγγραφέας: Στεργίου Κώστας
Λέξεις Κλειδιά: Μηχανική μάθηση, Πολυεπεξεργασία, Νήματα
Σύνοψη: Σκοπός της διπλωματικής εργασίας είναι η μελέτη αλγορίθμων Μηχανικής Μάθησης σε περιβάλλοντα πολυεπεξεργασίας. Οι τελευταίες εξελίξεις στον τομέα της παράλληλης και της κατανεμημένης επεξεργασίας, έχουν φέρει πραγματική επανάσταση στην κατασκευή των υπολογιστών. Παρότι όμως η εξέλιξη του υλικού (hardware) προχωρά με αλματώδεις ρυθμούς, η αντίστοιχη ανάπτυξη του λογισμικού καθυστερεί σε μεγάλο βαθμό. Αποτέλεσμα είναι να παρέχεται σε απλούς χρήστες μεγάλη επεξεργαστική ισχύς, η οποία όμως παραμένει αναξιοποίητη, λόγω των εφαρμογών που δεν μπορούν να εκμεταλλευτούν σε ικανοποιητικό βαθμό την παρεχόμενη ισχύ. Η ανάπτυξη αλγορίθμων στον τομέα της τεχνητής νοημοσύνης έως τώρα γίνονταν σύμφωνα με τα κλασικά πρότυπα της συναρτησιακής μεθόδου ή στην καλύτερη περίπτωση με τεχνικές αντικειμενοστραφούς προγραμματισμού. Σε κάθε περίπτωση, η εκτέλεση του αλγορίθμου γίνεται σε έναν επεξεργαστή με τις εντολές να εκτελούνται σειριακά. Την τελευταία δεκαετία αναπτύχθηκαν εφαρμογές και περιβάλλοντα τα οποία διευκόλυναν την εκτέλεση πολλών διαφορετικών αλγορίθμων και μεθόδων μέσω ενός κοινού περιβάλλοντος διεπαφής με τον χρήστη (πχ Weka, R, Matlab κλπ). Η προσέγγιση αυτή διευκόλυνε την διάδοση αλγορίθμων και μεθόδων που ήταν πριν πολύ δύσκολο να εκτελεστούν από ανθρώπους που δεν είχαν την κατάλληλη εξοικείωση με τον προγραμματισμό. Από την άλλη πλευρά όμως πρόσθεσε ένα ακόμη επίπεδο πολυπλοκότητας στις μεθόδους που αναπτύσσονταν γιΆ αυτά τα περιβάλλοντα, κάτι που είχε σαν αποτέλεσμα αλγόριθμους πιο αργούς και με αυξημένους περιορισμούς λόγω των μηχανισμών της εφαρμογής που τους φιλοξενούσε. Οι μετρήσεις έγιναν με την χρήση αλγόριθμων δέντρων απόφασης. Η κατηγορία αυτή των μεθόδων μηχανικής μάθησης είναι ένας εξαιρετικός υποψήφιος, για να μεταφερθεί σε νέες πολυεπεξεργαστικές πλατφόρμες καθώς αποτελούνται από επαναληπτικές διαδικασίες που δεν χρειάζονται να περιμένουν άλλες για να εκτελεστούν. Στην παρούσα εργασία αναπτύχθηκε μια εφαρμογή, η οποία μπορεί να δέχεται σαν όρισμα έναν ή περισσότερους αλγόριθμους δέντρων απόφασης, να ορίζει τις παραμέτρους αυτών και κατόπιν να τους εκτελεί παράλληλα. Οι συγκεκριμένες μέθοδοι που επιλέχθηκαν, έχουν υλοποιηθεί αρχικά μέσα στο περιβάλλον Weka, για να μπορέσουν όμως να εκτελεστούν παράλληλα έπρεπε να ενσωματωθούν σε μια άλλη εφαρμογή, η οποία θα μπορούσε να δημιουργήσει πολλά διαφορετικά στιγμιότυπα. Η χρήση της εφαρμογής που αναπτύξαμε επιτρέπει την παράλληλη εκτέλεση αλγορίθμων, αλλά απέχει πολύ από τον μπορεί να τους βελτιστοποιήσει, έτσι ώστε να μπορέσουν να εκτελεστούν με την μέγιστη δυνατή ταχύτητα. Αυτό συμβαίνει, γιατί ακόμα και εκτός του περιβάλλοντος για το οποία αναπτύχθηκε, ο κώδικάς τους χρησιμοποιεί τις γενικές και αφηρημένες τεχνικές που είναι απαραίτητες για την ενσωμάτωσή τους στο Weka. Παρόλα αυτά, καταφέραμε να τρέξουμε πολλές διαφορετικές εκδόσεις αλγορίθμων, μέσα σε ένα κλάσμα του χρόνου που θα απαιτούνταν για να τρέξουν όλες αυτές οι μορφές μέσα στο Weka. Παρατηρήσαμε ότι η επίδραση των παραμέτρων στον χρόνο εκτέλεσης των μεθόδων δεν είναι ιδιαίτερα σημαντική. Αντίθετα, το μέγεθος των δεδομένων μεταβάλλει σε αρκετά βαθμό τον χρόνο εκτέλεσης, χωρίς όμως η σχέση του χρόνου εκτέλεσης και του μεγέθους των στοιχείων να είναι γραμμική. Καλύτερη σχεδίαση των μεθόδων θα μπορούσε να επιφέρει δραματική επιτάχυνση του χρόνου εκτέλεσης.
Αρχείο Διπλωματικής Εργασίας |