Deep auto-encoders για ανάκτηση κώδικα και οπτικοποίηση.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Deep auto-encoders για ανάκτηση κώδικα και οπτικοποίηση."

Transcript

1 Deep auto-encoders για ανάκτηση κώδικα και οπτικοποίηση. Διπλωματική Εργασία του φοιτητή Λέλη Αθανάσιου, AM: 5214 Υπό την επίβλεψη του Επίκουρου Καθηγητή Ανδρέα Συμεωνίδη και του Μεταδιδακτορικού Ερευνητή Χατζηδημητρίου Κυριάκου Θεσσαλονίκη, Ιανουάριος 2017 [1]

2 Ευχαριστίες Ξεκινώντας θα ήθελα να ευχαριστήσω την οικογένειά μου, που χωρίς τη συνεχή στήριξή της δε θα ολοκληρωνόταν ποτέ το έργο αυτό. Ευχαριστώ επίσης θερμά τους καθηγητές και επιβλέποντες μου κύριο Ανδρέα Συμεωνίδη και κύριο Κυριάκο Χατζηδημητρίου, αρχικά για την εμπιστοσύνη τους με την ανάθεση αυτής της διπλωματικής εργασίας και στη συνέχεια για τη διαρκή στήριξη και τις συμβουλές τους. Συνεχίζοντας θα ήθελα να ευχαριστήσω τα παιδιά του deeplearning4j, που με βοήθησαν να βρω άκρη μέσα στο χάος, με συμβουλές που με καθοδήγησαν σε όλη την πορεία της εργασίας. Τέλος ευχαριστώ φυσικά τους φίλους μου, για τις πολύτιμες συμβουλές, την ηθική στήριξη, αλλά κυρίως για τους ενδιάμεσους καφέδες που έκαναν τα πάντα πιο εύκολα. [2]

3 Σύνοψη Στο κοντινό παρελθόν οι μηχανές αναζήτησης χρησιμοποιούνταν αποκλειστικά για ανάκτηση κειμένων φυσικής γλώσσας. Πλέον, οι μηχανές χρησιμοποιούνται και για ανάκτηση κειμένων πηγαίου κώδικα. Καθώς ο πηγαίος κώδικας έχει αυστηρή, αλλά και συχνά πολύπλοκη σύνταξη, οι κλασσικές τεχνικές Επεξεργασίας Φυσικής Γλώσσας και Ανάκτησης Πληροφορίας αδυνατούν να περιγράψουν επαρκώς τη λειτουργικότητα του. Από την άλλη, οι τεχνικές της Βαθιάς Μάθησης, με την ως τώρα επιτυχία που γνώρισαν σε προβλήματα ανάκτησης πληροφορίας, φαίνονται πολλά υποσχόμενες στην κατεύθυνση αυτή. Με ζητούμενο τη βελτίωση των τεχνικών ανάκτησης πηγαίου κώδικα, στην παρούσα διπλωματική εργασία πραγματευόμαστε ένα σύστημα ταξινόμησης δημοσιεύσεων, βασισμένο κατά κύριο λόγο σε μεθόδους βαθιάς μάθησης. Το σύστημά μας ενσωματώνει πληθώρα τεχνικών του κλάδου της επεξεργασίας φυσικής γλώσσας και μετασχηματίζει τα έγγραφα-δημοσιεύσεις στο Vector Space Model. Υλοποιεί δύο auto-encoders νευρωνικά δίκτυα, που χαρτογραφούν τα έγγραφα εισόδου σε πολύ μικρότερες από τις αρχικές διαστάσεις. Στη συνέχεια, το σύστημα ανακτά τα πιο όμοια έγγραφα με αυτό της εισόδου. Για τα auto-encoders εξετάζονται δύο διαφορετικές προσεγγίσεις, που έχουν εμφανίσει επιτυχία σε αντίστοιχα προβλήματα ανάκτησης κειμένου. Η απόδοση της μεθοδολογίας εμφανίζεται ικανοποιητική, ειδικά σε σύγκριση με σύγχρονες μεθοδολογίες ανάκτησης πηγαίου κώδικα. Τα auto-encoders κωδικοποιούν το σετ δεδομένων με σχετικά μικρή απώλεια πληροφορίας και συναγωνίζονται τη μέθοδο Tf-Idf σε σχέση με διάφορες μετρικές. Επιπλέον δείχνουμε πως τα auto-encoders επιστρέφουν αποτελέσματα πολύ πιο γρήγορα σε σχέση με σύγχρονες μεθόδους, γεγονός που τα κάνει ιδανικά για ανάκτηση χρήσιμης πληροφορίας μέσα από μεγάλους όγκους δεδομένων. [3]

4 Abstract Title: Deep auto-encoders for source code retrieval and visualization. Up until recently search engines were exclusively used for web pages and documents expressed in natural language. Recently, search engines are gaining popularity in source code retrieval as well. Since source code follows a strict, yet sometimes complex structure, standard, exclusively Natural Language Processing and Information Retrieval approaches fail to adequately describe the functionality of the source code fragments, which is usually the question. On the other hand, Deep Learning methods in recent years surpassed by far other approaches in information retrieval problems, thus making them appealing in the field of source code retrieval. This diploma thesis reports on the implementation of a post-indexing system based on deep learning techniques. Our system incorporates a variety of Natural Language Processing techniques and finally transforms the original documents-posts to the Vector Space Model. With the usage of two auto-encoders, the original dimensional space is significantly reduced. Our system then retrieves the top documents in respect to the query. Our approach combines two different methods for auto-encoder training, which have performed well in similar document retrieval domains. Our methodology performs well in comparison to other state of the art practices that are commonly being used. Our auto-encoders appear to encode the datasets with small information loss, competing with Tf-Idf methodology against various metrics. We also illustrate that our systems response time is by far lower than retrieval with Tf-Idf, which makes our approach ideal for retrieval in big data repositories. Lelis Athanasios athalelis@gmail.com January, 2017 [4]

5 Συντομογραφίες NLP SE ΑΙ NL AE ANN SVM PCA BGD SGD LR BoW VSM CD TF IDF IR AST SO DL RNN CNN RBM DBN DBM MLP CAE DAE SCG CG CSM Natural Language Processing Software Engineering Artificial Intelligence Natural Language Auto-Encoder Artificial Neural Network Support Vector Machine Principal Component Analysis Batch Gradient Descent Stochastic Gradient Descent Learning Rate Bag of Words Vector Space Model Contrastive Divergence Term Frequency Inverse Document Frequency Information Retrieval Abstract Syntax Tree Stack Overflow Deep Learning Recurrent Neural Network Convolutional Neural Network Restricted Boltzmann Machine Deep Belief Network Deep Boltzmann Machine Multi-Layer Perceptron Contractive Auto-Encoder Denoising Auto-Encoder Scaled Conjugate Gradient Conjugate Gradient Cosine Similarity [5]

6 Περιεχόμενα Ευχαριστίες... 2 Σύνοψη... 3 Abstract... 4 Συντομογραφίες... 5 Λίστα Πινάκων... 8 Λίστα Σχημάτων... 9 Κεφάλαιο Εισαγωγικά Σκοπός της διπλωματικής εργασίας Επισκόπηση της διπλωματικής εργασίας Κεφάλαιο 2 Συστήματα Ανάκτησης Πληροφορίας Information Retrieval Εισαγωγικά Μεθοδολογία Μοντέλα Μετρικές αξιολόγησης τεχνικών IR Βιβλιογραφία Συστημάτων IR σε Πηγαίο Κώδικα Νευρωνικά Δίκτυα Αρχικά Μοντέλα Deep Learning Κεφάλαιο 3 - Auto-encoder Δίκτυα Εισαγωγικά Μοντέλα Δικτύων και Εκπαίδευση Αλγόριθμoς οπισθοδιάδοσης του λάθους (Backpropagation of the error algorithm) Wake-Sleep αλγόριθμος Restricted Boltzmann Machines - Deep Belief Network Deep Boltzmann Machines Auto-encoders Παράμετροι Νευρωνικών Δικτύων Learning Rate Συνάρτηση Ενεργοποίησης (Activation Function) Συνάρτηση Κόστους (Loss Function) Gradient Optimization Algorithm Momentum [6]

7 3.3.6 Update Algorithm Αρχικοποίηση των Βαρών Iterations και Epochs Regularization Κεφάλαιο 4 - Μεθοδολογία Εισαγωγή Συλλογή Και Προεπεξεργασία Δεδομένων Διαχωρισμός Αρχείων σε Code-Comments Camel Casing Lower Casing Αφαίρεση Αριθμών Αφαίρεση Σημείων Στίξης Απομάκρυνση Stop-Words Stemming Bag Of Words Model Παράμετροι Auto-encoder Δικτύων Κεφάλαιο 5 - Αποτελέσματα Εισαγωγή Προ-επεξεργασία Δεδομένων Bag of Words model Δίκτυα Autoencoder Αξιολόγηση Μεθοδολογίας Κεφάλαιο 6 Σύνοψη Ανοιχτά Θέματα Βιβλιογραφία ΠΑΡΑΡΤΗΜΑ [7]

8 Λίστα Πινάκων Πίνακας 1: Παραδείγματα μοντέλου Bag of Words Πίνακας 2: Όροι εγγράφων και οι αντίστοιχες συχνότητες εμφάνισής τους Πίνακας 3: Παραδείγματα stop-words Πίνακας 4: Συχνότητες εμφάνισης όρων στα έγγραφα κώδικα Πίνακας 5: Συχνότητες εμφάνισης όρων στα έγγραφα φυσικής γλώσσας Πίνακας 6: Αρχικές τιμές adaptive learning rate Πίνακας 7: Τελικές τιμές adaptive learning rate Πίνακας 8: Παράμετροι εκπαίδευσης επιπέδων RBM Πίνακας 9: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική κωδικοποιητή Πίνακας 10: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική Πίνακας 11: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική Πίνακας 12: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική Πίνακας 13: Αποτελέσματα μεθοδολογίας tf-idf [8]

9 Λίστα Σχημάτων Σχήμα 1: Information Retrieval Σχήμα 2: Παράδειγμα Abstract Syntax Tree Σχήμα 3: Αρχικά δεδομένα Σχήμα 4: Δεδομένα μετά την επίδραση PCA Σχήμα 5: Πλέγμα νευρώνων Σχήμα 6: Γενική μορφή ενός νευρώνα Σχήμα 7: Η γενική μορφή ενός Perceptron. Αποτελείται από δύο επίπεδα, αυτό της εισόδου και αυτό της εξόδου του δικτύου Σχήμα 8: Υπολογισμός διαφορών των νευρώνων στο wake-sleep αλγόριθμο Σχήμα 9: Τα Recognition και Generative weights του wake-sleep αλγορίθμου Σχήμα 10: Restricted Boltzmann Machine. Μη κατευθυνόμενες νευρωνικές συνάψεις μεταξύ κρυφού (h) και φανερού (v) επιπέδου Σχήμα 11: Η γενική μορφή ενός ΑΕ Σχήμα 12: Οι logistic και tanh activation functions αντίστοιχα Σχήμα 13: Rectified linear (ReLU) συνάρτηση ενεργοποίησης Σχήμα 14: Στοιχειώδης νευρώνας με εισόδους x, βάρη w συνάρτηση ενεργοποίησης σ και έξοδο α Σχήμα 15: Gradient descent. Η κατεύθυνση κίνησης είναι η αρνητική κλίση ως προς τα x_i. Με line search αποφασίζεται η απόσταση κίνησης Σχήμα 16: Επίδραση momentum στην εκπαίδευση Σχήμα 17: Αριστερά δίκτυο χωρίς dropout. Δεξιά το dropout ενεργοποιεί μόνο κάποιους νευρώνες Σχήμα 18: Autoencoder 8 επιπέδων. Οι είσοδοι κωδικοποιούνται σε 30 νούμερα και ανακατασκευάζονται στην έξοδο (x x ) Σχήμα 19: Εκπαίδευση του πρώτου ΑΕ στα 50 epochs. Παρατηρείται overfitting μετά από 15 περίπου epochs Σχήμα 20: Πρόωρη διακοπή εκπαίδευσης του πρώτου ΑΕ. Sigmoid activation encoder, identity activation decoder Σχήμα 21: Auto-encoder 8 επιπέδων με αρχιτεκτονική encoder Σχήμα 22: Εκπαίδευση δικτύου χωρίς momentum Σχήμα 23: Εκπαίδευση δικτύου με χρήση momentum [9]

10 Σχήμα 24: Εκπαίδευση σετ δεδομένων φυσικής γλώσσας με ΑΕ 8 επιπέδων, SCG και RELU συναρτήσεις ενεργοποίησης Σχήμα 25: Εκπαίδευση σετ δεδομένων κώδικα σε ΑΕ 8 επιπέδων, SCG και sigmoid activation functions Σχήμα 26: Προβολή σε 2 διαστάσεις μετά από εκπαίδευση Sparse AE Σχήμα 27: Εκπαίδευση δικτύου με χρήση cross entropy ως συνάρτηση κόστους Σχήμα 28: Autoencoder 6 επιπέδων με αρχιτεκτονική encoder και tanh συνάρτηση ενεργοποίησης Σχήμα 29: Προβολή του σετ δεδομένων φυσικής γλώσσας σε 2 διαστάσεις. Δίκτυο με pre-trained επίπεδα, με Xavier weight initialization Σχήμα 30: Έξοδος encoder 2 διαστάσεων για το σετ δεδομένων του κώδικα Σχήμα 31: Προβολή του body dataset μετά από εκπαίδευση δικτύου με χρήση sigmoid activation function Σχήμα 32: Προβολή του body dataset σε 2 διαστάσεις μετά από εκπαίδευση δικτύου με χρήση tanh activation function Σχήμα 33: Κωδικοποιήσεις του dataset φυσικής γλώσσας σε 2 διαστάσεις μετά από RBM pre-train για 10 epochs Σχήμα 34: Κωδικοποιήσεις του dataset φυσικής γλώσσας σε 2 διαστάσεις μετά από RBM pre-train για 50 epochs Σχήμα 35: Εκπαίδευση ΑΕ 2 επιπέδων για το σετ κειμένου, με sigmoid activation function, regularization, SCG και sparsity. Early stopping στις 17 επαναλήψεις Σχήμα 36: Εκπαίδευση του 2ου επιπέδου για το σετ κειμένου. Πρόωρη διακοπή στις 17 επαναλήψεις Σχήμα 37: Εκπαίδευση 3ου επιπέδου για το σετ κειμένου Σχήμα 38: Εκπαίδευση 4ου επιπέδου για το σετ κειμένου. Διακοπή στις 20 επαναλήψεις λόγω ελάχιστης βελτίωσης gradient Σχήμα 39: AE 8 επιπέδων μετά από προεκπαίδευση των επιπέδων. ReLU συναρτήσεις ενεργοποίησης για όλα τα επίπεδα, εκτός αυτό της εξόδου. Τα δεδομένα κωδικοποιούνται σε 10 διαστάσεις Σχήμα 40: AE 8 επιπέδων μετά από προεκπαίδευση των επιπέδων. Sigmoid συναρτήσεις ενεργοποίησης για όλα τα επίπεδα, εκτός αυτό της εξόδου Σχήμα 41: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm [10]

11 Σχήμα 42: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm, με adaptive learning rate και momentum Σχήμα 43: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm, με adaptive learning rate και momentum Σχήμα 44: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm Σχήμα 45: Pre-training 1ου ΑΕ επιπέδου με MSE cost function, sigmoid activation function, sparsity και L2 regularization. Early stopping στις 15 επαναλήψεις Σχήμα 46: Pre-training 2ου ΑΕ επιπέδου. Early stopping στις 15 επαναλήψεις Σχήμα 47: Pre-training 3ου ΑΕ επιπέδου. Early stopping στις 15 επαναλήψεις Σχήμα 48: Pre-training 4ου ΑΕ επιπέδου. Early stopping στις 15 επαναλήψεις Σχήμα 49: AE 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. Τα δεδομένα κωδικοποιούνται σε 10 διαστάσεις Σχήμα 50: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm με adaptive learning rate και momentum Σχήμα 51: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm με adaptive learning rate και momentum Σχήμα 52: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm Σχήμα 53: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm Σχήμα 54: Εκπαίδευση auto-encoder αρχιτεκτονικής input SGD με ADAM updater, cross entropy loss function και Xavier αρχικοποίηση βαρών Σχήμα 55: Εκπαίδευση auto-encoder αρχιτεκτονικής input SGD με momentum 0.9, learning rate 0.1, cross entropy loss function και Xavier αρχικοποίηση βαρών Σχήμα 56: Εκπαίδευση auto-encoder αρχιτεκτονικής input SGD με Adadelta updater, cross entropy loss function και Xavier αρχικοποίηση βαρών [11]

12 Κεφάλαιο Εισαγωγικά Οι ρίζες της τεχνολογίας λογισμικού (software engineering - SE) τοποθετούνται στο 1968, με τον προγραμματισμό των πρώτων υπολογιστών. Από τότε, ο τομέας έχει απορροφήσει σημαντικό κομμάτι της σύγχρονης βιομηχανίας για την εξέλιξή του, καθώς υπάρχει διαρκής έρευνα με στόχο την αναβάθμιση της ποιότητας του παραγόμενου λογισμικού. Η επαναχρησιμοποίηση πηγαίου κώδικα θεωρήθηκε αναπόσπαστο κομμάτι της τεχνολογίας λογισμικού από πολύ νωρίς, καθώς πληθώρα προγραμματιστών ενσωμάτωναν ήδη υπάρχον λογισμικό στα προγράμματά τους. Με την άφιξη της τεχνολογίας του διαδικτύου πολλοί ήταν οι τομείς που προωθήθηκαν με σπουδαίες ανακαλύψεις και εφευρέσεις, καθώς πλέον η πρόσβαση στη γνώση ήταν πλεονέκτημα πολλών. Ίδια ευνοϊκή πορεία είχε και ο τομέας της τεχνολογίας λογισμικού. Άρχισαν να δημιουργούνται αποθήκες (software repositories) ανοιχτού/ελεύθερου λογισμικού (όπως GitHub 1, SourceForge 2 κ.α.), που παρέχουν πληθώρα προγραμμάτων για πολλών ειδών εφαρμογές. Παράλληλα, έκαναν την εμφάνισή τους τα question-answer φόρουμ (όπως StackOverflow 3, CodingForums 4 ), τα οποία προώθησαν ακόμα περισσότερο την ανάπτυξη του τομέα. Όλα τα παραπάνω σε συνδυασμό με τον όγκο πληροφορίας που παρέχει το διαδίκτυο κάνουν την ανάγκη φιλτραρίσματος της πληροφορίας επιτακτική. Μόνο και μόνο αυτή η ανάγκη δημιούργησε εταιρίες κολοσσούς για διαχείριση πληροφορίας, με πιο γνωστή την Google 5. Οι μέθοδοι της ανάκτησης πληροφορίας ως εκ τούτου βρήκαν τεράστια άνθηση και εφαρμογή και χειραγώγησαν την απανταχού έρευνα προς τη βελτίωση και αναβάθμισή τους. Ειδικά τα τελευταία χρόνια τα βαθιά νευρωνικά δίκτυα έχουν εφαρμοστεί σε πολλούς τομείς της ανάκτησης πληροφορίας, καθώς εμφάνισαν μεγάλη επιτυχία κατά την εφαρμογή τους. Τομείς όπως αναγνώριση εικόνας, ήχου, αντικειμένων κ.α. έχουν στραφεί προς τη βαθιά μάθηση (Deep Learning - DL) και τις μεθόδους της, που ολοένα και ενσωματώνονται σε σύγχρονα συστήματα. Πετυχημένη εφαρμογή είχε το DL και στην ανάκτηση εγγράφων και κατά συνέπεια η εφαρμογή του και στον τομέα της ανάκτησης κώδικα φαίνεται πολλά υποσχόμενη [12]

13 1.2 Σκοπός της διπλωματικής εργασίας Σκοπός αυτής της διπλωματικής εργασίας είναι να εξεταστεί το κατά πόσο η εφαρμογή των βαθιών νευρωνικών δικτύων σε ένα σύστημα ταξινόμησης εγγράφων κώδικα μπορεί να ανταγωνιστεί σύγχρονες μεθοδολογίες. Ερευνάται μία μεθοδολογία ταξινόμησης μεγάλων σετ δεδομένων, με μία τεχνολογία που τα τελευταία χρόνια βρίσκει ιδιαίτερη άνθηση σε παρόμοια προβλήματα, αυτήν του deep learning. Επιπλέον στόχος αποτελεί ο εντοπισμός τυχόν προβλημάτων και λύσεων για αυτά, κατά τη σύνθεση και εκπαίδευση βαθιών νευρωνικών δικτύων. Η έρευνα πραγματοποιείται σε έγγραφα που περιέχουν αποσπάσματα πηγαίου κώδικα και των αντίστοιχων κειμένων φυσικής γλώσσας (σχόλια), που συνήθως συνοδεύουν τον κώδικα. Για το σκοπό αυτό, χρησιμοποιήθηκαν ως σετ δεδομένων οι δημοσιεύσεις των χρηστών του StackOverflow, δηλαδή κείμενα που πέραν του κώδικα, περιέχουν πληροφορίες, όπως tags, απαντήσεις, συγγραφείς των δημοσιεύσεων, κ.α. Ακολούθησε η επεξεργασία των δημοσιεύσεων αυτών, ώστε να καταλήξουμε σε ένα μοντέλο που συνιστάται από τα πιο σημαντικά τους στοιχεία. Αυτά στη συνέχεια εισάγονται σε auto-encoder νευρωνικά δίκτυα, τα οποία κωδικοποιούν τα δεδομένα σε αντίστοιχα, πολύ μικρότερων διαστάσεων. Τα posts στη συνέχεια αποθηκεύονται σε αυτές τις διαστάσεις, όπου πραγματοποιείται και η έρευνα για όμοιες δημοσιεύσεις. 1.3 Επισκόπηση της διπλωματικής εργασίας Η διπλωματική διαμορφώνεται ως εξής : 2 ο Κεφάλαιο - Συστήματα Ανάκτησης Κώδικα Στο δεύτερο κεφάλαιο παρουσιάζεται αρχικά η βιβλιογραφία που αφορά τον τομέα της ανάκτησης πληροφορίας, πάνω σε έγγραφα φυσικής γλώσσας και πηγαίου κώδικα. Πραγματοποιείται αναφορά σε πραγματικά προβλήματα και οι παρουσιάζονται οι αντίστοιχες εφαρμογές μεθοδολογιών για την αντιμετώπισή τους. Παρουσιάζονται επίσης κάποια βασικά μοντέλα, που διέπουν τη λειτουργία αρκετών IR συστημάτων, τόσο βασισμένα σε παραδοσιακές μεθόδους, όσο και σε νευρωνικά δίκτυα. 3 ο Κεφάλαιο - Παράμετροι Νευρωνικών Δικτύων Στο τρίτο κεφάλαιο της εργασίας γίνεται αναφορά στα νευρωνικά δίκτυα και σε βασικούς κανόνες που διέπουν τη λειτουργία τους. Επίσης πραγματοποιείται επισκόπηση σε μεθοδολογίες εκπαίδευσης δικτύων, καθώς και σε διάφορα βαθιά νευρωνικά δίκτυα και σε εφαρμογές τους σε προβλήματα ανάκτησης πληροφορίας. Παρουσιάζεται επίσης αναλυτικά το θεωρητικό υπόβαθρο πίσω από τις μεθόδους που αναπτύχθηκαν κατά την εκπαίδευση των δικτύων της παρούσας διπλωματικής εργασίας. 4 ο Κεφάλαιο - Μεθοδολογία [13]

14 Σε αυτό το κεφάλαιο παρουσιάζεται αναλυτικά η μεθοδολογία που ακολουθήθηκε στην εργασία. Αρχικά παρουσιάζεται ο τρόπος επεξεργασίας του αρχικού σετ δεδομένων, ώστε να εξαχθούν οι δημοσιεύσεις υπό μελέτη και στη συνέχεια η επεξεργασία τους και ο μετασχηματισμός τους σε μοντέλο bag of words. Το κεφάλαιο συνεχίζεται με τις επιλογές δικτύων auto-encoder και παραμέτρων για την εκπαίδευσή τους, καθώς και μία σύντομη εξήγηση των λόγων που μας οδήγησαν σε αυτά. 5 ο Κεφάλαιο - Αποτελέσματα Στο πέμπτο κεφάλαιο παρουσιάζονται αναλυτικά τα αποτελέσματα της μεθοδολογίας, βήμα προς βήμα από την εξαγωγή των δημοσιεύσεων, ως την τελική εφαρμογή του σετ δεδομένων στα auto-encoder. Παρουσιάζονται αντίστοιχα διαγράμματα εκπαίδευσης των δικτύων και στη συνέχεια πραγματοποιείται ανάκτηση εγγράφων και ακολουθεί σύγκριση και αξιολόγηση της μεθοδολογίας με αυτήν του term frequency inverse document frequency (tf-idf). 6 ο Κεφάλαιο Σύνοψη Στο έκτο και τελευταίο κεφάλαιο παρουσιάζονται μία σύνοψη της μεθοδολογίας και των αποτελεσμάτων που προκύπτουν από την έρευνα που πραγματοποιήθηκε. Τέλος γίνεται αναφορά σε μελλοντικές προσθήκες και βελτιώσεις της μεθοδολογίας, όπως και σε προβλήματα, η λύση των οποίων θεωρούμε πως θα επιδρούσε θετικά στα αποτελέσματα. Βιβλιογραφία Σε αυτό το κομμάτι της εργασίας, παρατίθεται αναλυτικά η βιβλιογραφία στην οποία βασίστηκε η εργασία. Παράρτημα Στο τελευταίο μέρος της διπλωματικής εργασίας παρατίθενται πίνακες και διαγράμματα με αποτελέσματα, που αναφέρονται κυρίως στο τέταρτο κεφάλαιο. Λόγω του μεγέθους τους και για διευκόλυνση κατά την ανάγνωση μεταφέρθηκαν εδώ. [14]

15 Κεφάλαιο 2 Συστήματα Ανάκτησης Πληροφορίας Στο κεφάλαιο αυτό παραθέτουμε τη βιβλιογραφία που σχετίζεται με την παρούσα διπλωματική εργασία. Το κεφάλαιο χωρίζεται σε δύο κύρια μέρη: Στο πρώτο κομμάτι γίνεται αναφορά σε γενικούς όρους και μεθόδους του τομέα της ανάκτησης πληροφορίας. Παρουσιάζονται περιληπτικά κάποια βασικά συστήματα βασισμένα σε «παραδοσιακές» μεθοδολογίες που βρίσκουν ευρεία χρήση σε παρόμοια προβλήματα, με επίκεντρο την ανάκτηση αποσπασμάτων κώδικα. Στο δεύτερο μέρος του κεφαλαίου αρχικά γίνεται μία σύντομη ιστορική αναδρομή στα πρώτα νευρωνικά δίκτυα ως και τη βαθιά μάθηση. Προς το τέλος του κεφαλαίου παρουσιάζονται κάποιες σημαντικές εφαρμογές νευρωνικών δικτύων για ανάκτηση κυρίως κειμένων, που επηρέασαν την παρούσα εργασία. 2.1 Information Retrieval Εισαγωγικά Σχήμα 1: Information Retrieval. Οι ρίζες της έννοιας της ανάκτησης πληροφορίας (Information Retrieval - IR) δεν ξεκινούν με το διαδίκτυο. Αρχικά, μέθοδοί της εφαρμόστηκαν στον εντοπισμό επιστημονικών [15]

16 δημοσιεύσεων, ή βιβλίων σε βιβλιοθήκες, αλλά στην πορεία εμφανίστηκαν διάφορες προκλήσεις για παροχή πρόσβασης σε πληροφορία. Κορύφωση αυτών αποτελεί το διαδίκτυο, που ήταν καταλύτης δημοσιεύσεων εκατομμυρίων χρηστών. Έτσι το πεδίο της ανάκτησης πληροφορίας εξελίχθηκε, ώστε να μπορεί να προσεγγίσει ουσιαστικά την έρευνα διαφόρων μορφών περιεχομένου. Τα τελευταία χρόνια ειδικά, με συνεχής βελτιστοποιήσεις στην απόδοση των συστημάτων IR, οι διαδικτυακές εφαρμογές αναζήτησης έχουν πετύχει πολύ ποιοτικά αποτελέσματα. Εύλογο ήταν λοιπόν το γεγονός, πως ο τομέας της ανάκτησης πληροφοριών μετατράπηκε, από αποκλειστικά πεδίο επιστημονικής μελέτης, σε καθημερινό εργαλείο για τον καθένα. Η σημασία της έννοιας της ανάκτησης πληροφορίας, λόγω της ευρείας χρήσης της σε πολλούς τομείς είναι πολύ αόριστη. Σαν αντικείμενο επιστημονικής μελέτης, ωστόσο, ένας ορισμός θα μπορούσε να είναι ο εξής: «Η ανάκτηση πληροφορίας είναι ο εντοπισμός μη δομημένου υλικού, που ικανοποιεί μία ανάγκη πληροφορίας, μέσα από μία μεγάλη συλλογή» [1]. Ως μη δομημένο υλικό θεωρούνται κατά κύριο λόγο έγγραφα, που δεν περιέχουν καθαρή σημασιολογικά εμφανή για έναν υπολογιστή δομή. Οι μέθοδοι ανάκτησης πληροφοριών επιτρέπουν επίσης επεξεργασία δεδομένων και αντιμετώπιση προβλημάτων, που ξεφεύγουν από τον αυστηρό ορισμό παραπάνω. Ενδεικτικά γίνεται αναφορά στην ημι-δομημένη έρευνα (πχ συνδυασμός χαρακτηριστικών κεφαλίδας και κυρίως κειμένου ενός εγγράφου) και στο φιλτράρισμα συλλογών εγγράφων για περαιτέρω ταξινόμηση, ομαδοποίηση και επεξεργασία. Τα συστήματα ανάκτησης πληροφοριών μπορούν να διαχωριστούν επιπλέον με βάση την κλίμακα στην οποία λειτουργούν. Διαχωρίζονται έτσι σε 3 κύριες κατηγορίες: 1. WebSearch: Το σύστημα εδώ πρέπει να ερευνήσει συλλογές δισεκατομμυρίων εγγράφων, σε εκατομμύρια υπολογιστές. 2. Personal IR: Τα σύγχρονα λειτουργικά συστήματα έχουν ενσωματωμένες υπηρεσίες IR, τα προγράμματα παρέχουν φιλτράρισμα μηνυμάτων ή ακόμα και ταξινόμηση των μηνυμάτων με χρήση μεθόδων IR. 3. Enterprise, Institutional and Domain-Specific Search: Στα συστήματα αυτά η ανάκτηση πληροφορίας πραγματοποιείται συνήθως μέσα από συλλογές όπως εσωτερικά αρχεία εταιριών, βάσεων δεδομένων, ερευνητικών άρθρων από βιβλιοθήκη κ.α Μεθοδολογία Μοντέλα Για την αποδοτική χρήση των στρατηγικών της ανάκτησης πληροφοριών τα έγγραφα υπόκεινται συνήθως σε μετασχηματισμό, ώστε να πάρουν μία μορφή καταλληλότερη προς επεξεργασία. Η κάθε στρατηγική ενσωματώνει ένα διαφορετικό μοντέλο για να [16]

17 αντιπροσωπεύσει το κάθε έγγραφο και εξάγει διαφορετικά χαρακτηριστικά προς μελέτη. Αυτά διακρίνονται σε τρεις κατηγορίες: Ανεξάρτητα από το ερώτημα στατικά χαρακτηριστικά: Τα χαρακτηριστικά αυτά αναφέρονται κυρίως σε ιδιότητες του εγγράφου, όπως μέγεθος κειμένου, αριθμός λέξεων κ.α. Εξαρτημένα από το ερώτημα δυναμικά χαρακτηριστικά: Τα χαρακτηριστικά αυτά είναι εξαρτημένα τόσο από τα περιεχόμενα του ερωτήματος του χρήστη όσο και από τα περιεχόμενα του εγγράφου. Χαρακτηριστικά ερωτήματος: Εξαρτώνται μόνο από το ερώτημα. Είναι χαρακτηριστικά όπως ο αριθμός λέξεων του ερωτήματος. Στη συνέχεια παρατίθενται κάποια από τα ευρέως χρησιμοποιούμενα μοντέλα της ανάκτησης πληροφορίας, καθώς κρίνεται πως θα διευκολύνουν τον αναγνώστη να κατανοήσει έννοιες που παρατίθενται αργότερα και απορρέουν από τα μοντέλα αυτά. 1. Μοντέλο Bag of Words (BoW) : Στο μοντέλο αυτό, ένα έγγραφο αντιπροσωπεύεται από τη συλλογή των λέξεων από τις οποίες αποτελείται, χωρίς να δίνεται σημασία στη γραμματική ή τη σειρά των λέξεων [1]. Το έγγραφο παίρνει τη μορφή διανύσματος με χαρακτηριστικά-συντεταγμένες τη συχνότητα εμφάνισης της κάθε λέξης. Έτσι το μοντέλο BoW για τις προτάσεις Mary is quicker than John και John is quicker than Mary θα είναι πανομοιότυπο. Με ένα στιγμιότυπο για κάθε όρο, προκύπτει και για τις δύο προτάσεις ο πίνακας : Πίνακας 1: Παραδείγματα μοντέλου Bag of Words. Mary Is Quicker Than john Όμως συνήθως έγγραφα με όμοια BoW θα έχουν και όμοιο περιεχόμενο, οπότε η απήχηση του μοντέλου στον τομέα IR είναι μεγάλη. Αξιοσημείωτο είναι το γεγονός, πως συχνά πριν την καταχώρηση όρων στο μοντέλο αυτοί υπόκεινται σε λημματοποίηση, κανονικοποίηση και άλλους μετασχηματισμούς, ώστε να αποφευχθούν λέξεις με ίδια ρίζα, ιδιωματισμοί κ.α. 2. Ν-gram : Το μοντέλο n-gram βρίσκει τις ρίζες του στη θεωρία πληροφοριών, στην προσπάθεια εύρεσης της πιθανότητας εμφάνισης του επόμενου γράμματος, δοσμένης μίας ακολουθίας λέξεων. Στον τομέα του NLP, το n-gram είναι μία συνεχής ακολουθία n όρων, μέσα από ένα κείμενο. Οι όροι αυτοί μπορεί να είναι γράμματα, συλλαβές, λέξεις, ή ακόμα και ζευγάρια λέξεων, ανάλογα με την εφαρμογή. Παράδειγμα η ακολουθία: μετασχηματίζεται για tri-gram (3-gram) σε: equals to equ, qua, ual, als, ls_, _to [17]

18 Τα δύο κύρια πλεονεκτήματα της μεθόδου είναι απλότητα και επεκτασιμότητα. Με μεγαλύτερο n, το μοντέλο μπορεί να αποθηκεύσει περισσότερα συμφραζόμενα, επιτρέποντας έτσι σε μικρά σε μέγεθος πειράματα, να κλιμακώνονται αποτελεσματικά. 3. Vector Space Model (VSM) και Tf-Idf : Το μοντέλο αυτό αποτελεί μία αλγεβρική μορφή παρουσίασης των εγγράφων ως διανύσματα από αναγνωριστικά, όπως όρους δεικτών (index terms). Με βάση αυτήν τη λογική, τα έγγραφα και τα ερωτήματα μετασχηματίζονται σε διανύσματα της μορφής d j = (w 1,j, w 2,j, w 3,j,, w t,j ), q = (w 1,j, w 2,j, w 3,j,, w t,j ), (d, q τα documents και queries αντίστοιχα και w τα index terms) με κάθε διάσταση να αντιστοιχίζεται σε ένα ξεχωριστό term. Η προβολή των διανυσμάτων αυτών σε ένα κοινό διανυσματικό χώρο ονομάζεται VSM και αποτελεί ακρογωνιαίο λίθο σε πληθώρα IR εφαρμογών, όπως ομαδοποίηση και ταξινόμηση εγγράφων ή και κατάταξη τους με βάση την ομοιότητά τους με ένα ερώτημα [1]. Ο ορισμός του index term διαφέρει ανάλογα με την εκάστοτε εφαρμογή. Τυπικά αποτελούν απλές λέξεις, λέξεις κλειδιά ή και μεγαλύτερες φράσεις. Εάν ως index terms επιλεχθούν απλές λέξεις, η διάσταση του διανύσματος θα είναι ίση με το συνολικό αριθμό των λέξεων που εμφανίζονται. Για τον υπολογισμό των τιμών των όρων (γνωστών και ως term weights) έχουν εφαρμοστεί αρκετοί τρόποι με κυρίαρχο αυτόν του Tf-Idf weighting (term frequency inverse document frequency). Ο πρώτος όρος, το term frequency στην πιο συνηθισμένη του μορφή, μετράει πόσες φορές εμφανίζεται ο όρος στο έγγραφο, όμοια με το BoW μοντέλο. Τo idf αποτελεί ουσιαστικά ένα μέτρο της πληροφορίας που εμπεριέχει ένας όρος, ανάλογα αν ο όρος είναι σπάνιος ή όχι μεταξύ των εγγράφων. Το idf κάθε όρου (t) για το σύνολο των εγγράφων (D) δίνεται από την εξίσωση : num of docs in dataset Idf(t, D) = log num of docs containing term t. Το τελικό αποτέλεσμα δίνεται από το γινόμενο : Έστω οι πίνακες δύο εγγράφων TfIdf = tf(t, d) idf(t, D). Πίνακας 2: Όροι εγγράφων και οι αντίστοιχες συχνότητες εμφάνισής τους. Document 1 Document 2 Term Term Count Term Term Count This 1 This 1 Is 2 Is 2 A 2 Another 2 [18]

19 Sample 1 Example 3 Το tf-idf των όρων this και is προκύπτει και για τα δύο έγγραφα : TfIdf(this, d, D) = 1 log 2 2 = 0, TfIdf(is, d, D) = 2 log 2 2 = 0 ενώ για τους όρους example στο δεύτερο document και sample στο πρώτο θα είναι: TfIdf(example, d, D) = 3 log 2 1 = , TfIdf(sample, d, D) = 1 log 2 1 = Ο υπολογισμός της ομοιότητας δύο εγγράφων μπορεί να προσαρμοστεί ανάλογα με την εφαρμογή, αλλά τυπικά πραγματοποιείται με χρήση του cosine similarity (CSM) [34]: sim(d 1, d 2 ) = V (d 1 )V (d 2 ) V (d 1 ) V (d 2 ) όπου ο αριθμητής αντιπροσωπεύει το εσωτερικό γινόμενο των δύο διανυσμάτων των εγγράφων υπό σύγκριση και ο παρονομαστής το γινόμενο των μέτρων τους. Παίρνει τιμές στο [0,1] και δηλώνει μεγαλύτερη ομοιότητα για τιμές κοντά στο Abstract Syntax Tree : Στον τομέα της τεχνολογίας λογισμικού ένα αφηρημένο συντακτικό δέντρο (abstract syntax tree - AST) αποτελεί μία «αφηρημένη» αναπαράσταση της συντακτικής δομής ενός αποσπάσματος πηγαίου κώδικα σε κάποια γλώσσα προγραμματισμού. Με την έννοια αφηρημένη εννοείται πως δε λαμβάνονται υπόψη όλες οι λεπτομέρειες που εμφανίζονται κατά τη σύνταξη πηγαίου κώδικα (σχόλια, σημεία στίξης κ.α.). Στο δέντρο που προκύπτει, ο κάθε κόμβος αντιπροσωπεύει τελεστές (operators) ή δηλώσεις (statements) και τα φύλλα σταθερές ή μεταβλητές 6. Έτσι για παράδειγμα οι δηλώσεις : Μετασχηματίζονται στο δέντρο: if (a > b) {a := a b} else {b := b a } 6 [19]

20 Σχήμα 2: Παράδειγμα Abstract Syntax Tree. Τα AST έχουν αρκετές ιδιότητες που κάνουν τη χρήση τους ανεκτίμητη για την επεξεργασία κώδικα, όπως : Δεν περιέχουν σημεία τήξης και διαχωρισμού. Μπορούν να προστεθούν επιπλέον πληροφορίες στα στοιχεία του δέντρου, χωρίς να επηρεάζεται το πρόγραμμα. Αυτό δεν είναι δυνατό να πραγματοποιηθεί πάνω στον κώδικα, διότι έτσι αλλάζει η λειτουργία του. Τα AST, λόγω της δομής τους, περιέχουν επιπλέον πληροφορίες πάνω στο πρόγραμμα, όπως ο εντοπισμός ενός στοιχείου μέσα στον πηγαίο κώδικα. Εξαιτίας των ιδιοτήτων του αυτών, το μοντέλο AST χρησιμοποιείται ευρέως στον τομέα IR, με κύριες εφαρμογές αυτήν της λογοκλοπής και του εντοπισμού λειτουργικά όμοιων κομματιών κώδικα [27, 28]. 5. Ανάλυση Πρωτευουσών Συνιστωσών - Principal Component Analysis (PCA) : To PCA είναι ένας τρόπος ανίχνευσης προτύπων σε δεδομένα, τα οποία και εκφράζει με τέτοιο τρόπο, ώστε να δίνεται έμφαση στις ομοιότητες και διαφορές τους. Σε περιπτώσεις επεξεργασίας δεδομένων πολλών διαστάσεων τα πρότυπα είναι γενικά δύσκολο να βρεθούν και το PCA καθίσταται ένα ισχυρό εργαλείο για την ανάλυση. Το [20]

21 άλλο κύριο πλεονέκτημα του PCA είναι πως αφού εντοπιστούν τα πρότυπα στα δεδομένα, πραγματοποιείται συμπύκνωση σε αυτά, χωρίς να χάνεται μεγάλο ποσό πληροφορίας. Με πιο μαθηματικούς ορισμούς, το PCA αποτελεί την απλούστερη πολυπαραγοντική ανάλυση με βάση τα ιδιοδιανύσματα. Συχνά, η λειτουργία του ορίζεται ως η αποκάλυψη της εσωτερικής δομής των δεδομένων, με τρόπο ώστε να εξηγείται καλύτερα η διακύμανσή τους [44]. Υποθέτουμε ένα πολυπαραγοντικό σύνολο δεδομένων, που απεικονίζεται ως ένα σύνολο συντεταγμένων σε ένα χώρο υψηλών διαστάσεων. Το PCA μπορεί να θεωρηθεί ως το ταίριασμα ενός ελλειψοειδούς n-διαστάσεων στα δεδομένα, με κάθε άξονα του ελλειψοειδούς να αντιπροσωπεύει ένα κύριο συστατικό. Αν κάποιος άξονας είναι μικρός, τότε η διασπορά κατά μήκος του άξονα αυτού είναι επίσης μικρή. Αν αφαιρεθεί ο άξονας αυτός με το αντίστοιχό του συστατικό από την αναπαράσταση, τότε χάνεται μόνο ένα μικρό «ασήμαντο» κομμάτι πληροφορίας. Για παράδειγμα, στα ακόλουθα σχήματα δίνεται μία Gaussian κατανομή δεδομένων, από τα οποία εντοπίζονται οι δύο κύριες συνιστώσες και στη συνέχεια με βάση αυτές τα δεδομένα υπόκεινται σε κλιμάκωση και περιστροφή. Το σχήμα που προκύπτει είναι σαφέστατα πιο ευανάγνωστο και ταυτόχρονα υπάρχει περιθώριο απομάκρυνσης της μικρότερης συνιστώσας εάν κριθεί πως προσφέρει μικρό ποσοστό πληροφορίας. Σχήμα 3: Αρχικά δεδομένα. [21]

22 Σχήμα 4: Δεδομένα μετά την επίδραση PCA. Η μείωση αυτή των διαστάσεων είναι ένα πολύ χρήσιμο εργαλείο στην οπτικοποίηση και επεξεργασία μεγάλων σετ δεδομένων. Ειδικά σε θορυβώδη dataset, το PCA επιδρά πάνω στα δεδομένα με τέτοιον τρόπο, ώστε ο θόρυβος να κυριαρχεί στα χαμηλού επιπέδου συστατικά, ενώ τα υψηλά να συγκεντρώνουν μεγαλύτερο ποσοστό χρήσιμης πληροφορίας. Έτσι κρατώντας τους κύριους άξονες, χάνεται ελάχιστο ποσό πληροφορίας Μετρικές αξιολόγησης τεχνικών IR H κατάταξη των αποτελεσμάτων του ερωτήματος του χρήστη είναι ένα από τα θεμελιώδη προβλήματα στην ανάκτηση πληροφοριών. Έστω ένα ερώτημα q και μια συλλογή D από τα έγγραφα που ταιριάζουν με το ερώτημα αυτό. Το πρόβλημα είναι η κατάταξη των εγγράφων D σύμφωνα με κάποιο κριτήριο, έτσι ώστε τα καλύτερα αποτελέσματα να εμφανίζονται νωρίς στη λίστα των αποτελεσμάτων που εμφανίζεται στο χρήστη [1]. Τα κριτήρια κατάταξης τυπικά αντιπροσωπεύουν τη συνάφεια των εγγράφων σε σχέση με την ανάγκη πληροφορίας που εκφράζεται στο ερώτημα του χρήστη. Υπάρχουν αρκετές μετρικές που χρησιμοποιούνται ευρέως για να κρίνουν το κατά πόσο δουλεύει καλά ένας αλγόριθμος και για να συγκρίνουν αποτελέσματα διαφορετικών αλγορίθμων. Αντιπροσωπευτικά παραδείγματα αυτών είναι : Precision: Είναι το ποσοστό τον εγγράφων που ανακτήθηκαν και είναι σχετικά με το ερώτημα, προς αυτά που ανακτήθηκαν συνολικά Recall: Αντιπροσωπεύει το ποσοστό των εγγράφων που είναι σχετικά με το ερώτημα, προς το συνολικό αριθμό των εγγράφων που είναι σχετικά. F-measure: Ορίζεται ως το διπλάσιο γινόμενο του precision με το recall προς το άθροισμά τους. Fall-out: Είναι το ποσοστό των εγγράφων που ανακτήθηκαν και δεν είναι σχετικά προς το συνολικό αριθμό των εγγράφων που δεν είναι σχετικά. [22]

23 Συχνά το πρόβλημα της κατάταξης αναδιατυπώνεται ως η βελτιστοποίηση ως προς μία από αυτές τις μετρικές [59] Βιβλιογραφία Συστημάτων IR σε Πηγαίο Κώδικα. Στις μέρες μας οι έννοιες τεχνολογία λογισμικού και ανάκτηση πληροφορίας γίνονται ολοένα και πιο αλληλένδετες. Διανύουμε μία περίοδο όπου οι πληροφορίες διατίθενται απλόχερα στο διαδίκτυο ενώ κάτι αντίστοιχο ισχύει αντίστοιχα και με έγγραφα πηγαίου κώδικα. Πλέον, πολλά από τα προβλήματα που καλείται να επιλύσει ένας μηχανικός λογισμικού ή ένας προγραμματιστής έχουν ήδη λυθεί και η λύση τους είναι επιπλέον διαθέσιμη. Η δυνατότητα εύκολης πρόσβασης σε αυτές τις λύσεις, συνεπάγεται ουσιαστικά μία ομαδική συμβολή στην ανάπτυξη λογισμικού, σε παγκόσμιο επίπεδο. Σε αυτό το σημείο φαίνεται καθαρά η κυρίαρχη επιρροή του τομέα της ανάκτησης πληροφορίας σε αυτόν της τεχνολογίας λογισμικού. Έχοντας αναφέρει κάποιες βασικές έννοιες που αφορούν τον τομέα της ανάκτησης πληροφορίας, μπορούμε εξετάσουμε σύντομα κάποια συστήματα IR για πηγαίο κώδικα, τα οποία δημιουργήθηκαν το τελευταίο διάστημα και επηρέασαν τη δική μας υλοποίηση. Τα συστήματα αυτά προσπάθησαν να δώσουν λύση σε κάποια καίρια προβλήματα που καλούνται να λύσουν οι μηχανικοί λογισμικού, τα οποία και αναφέρονται συνοπτικά. Με σκοπό την παράδοση υψηλής ποιότητας λογισμικού, η αυτόματη ανίχνευση bug αποτελεί έναν από τις πιο δραστήριους τομείς έρευνας της τεχνολογίας λογισμικού. Μία άλλη κυρίαρχη δραστηριότητα που περιλαμβάνει εξόρυξη κώδικα, είναι ο εντοπισμός κλώνων κώδικα, καθώς η χρήση αυτών αποτελούν κοινή πρακτική για την εξοικονόμηση χρόνου σε πολλές εφαρμογές [49]. Μία συνήθης μέθοδος εύρεσης κλώνων είναι η αξιολόγηση ενός εργαλείου λογισμικού που βρίσκει αναλογίες ομοιότητας (similarity ratios) μεταξύ αρχείων πηγαίου κώδικα. Παραδοσιακά, εξάγονται μετρικές πηγαίου κώδικα πριν πραγματοποιηθεί ο έλεγχος ομοιότητας, αλλά αυτή η προσέγγιση εμπεριέχει κάποια μειονεκτήματα. Για παράδειγμα, οι μετρικές software εξαρτώνται από τη γλώσσα προγραμματισμού. Μετρικές που δημιουργήθηκαν για να διευκρινίσουν χαρακτηριστικά της Java, πιθανόν να μη μπορούν να χρησιμοποιηθούν και στη C ή την Pascal. Κάποιες αρχικές προσπάθειες που επικαλούνται χρήση data mining για εντοπισμό κλώνων είναι αυτές των CCFinder [45] και Dup [46], που χρησιμοποιούν tokenization πάνω στον κώδικα. Το Dup ανιχνεύει κώδικα που είτε είναι ακριβώς ίδιος, ή έχουν αλλαχθεί απλά τα ονόματα των μεταβλητών και σταθερών. Το CCFinder εφαρμόζει κανονικοποίηση (των identifier, κλάσεων, παραμέτρων κτλ) και εντοπίζει κομμάτια κλώνων, που έχουν μεν διαφορετικό συντακτικό, αλλά όμοια λειτουργία. Άλλες προσεγγίσεις βασισμένες στα AST [47], προσπαθούν να βρουν υπό-δέντρα με ισομορφικούς γράφους ώστε να εντοπίσουν [23]

24 κλώνους. Το CP-Miner [48] χρησιμοποιεί ακολουθίες token και εντοπίζει bugs, αναγνωρίζοντας αποκλίσεις σε πρότυπα κατά τη διαδικασία copy-paste. Εντοπίζοντας ανώμαλο mapping μεταβλητών σε αντιγραμμένα κομμάτια, το CP-Miner ανιχνεύει bugs που προκαλούνται κυρίως από αμέλεια προσαρμογής των αναγνωριστικών. Με μία άλλη δημοσίευση [33] επιχειρείται η προσέγγιση μίας λύσης στη λογοκλοπή κώδικα σε ακαδημαϊκό επίπεδο. Στην προκειμένη εφαρμόζονται τεχνικές επεξεργασίας φυσικής γλώσσας (Natural Language Processing - NLP) και ανάκτησης πληροφορίας. Συγκεκριμένα, θέλοντας να πετύχουν ανεξαρτησία από τη γλώσσα συγγραφής, επιλέγουν να χρησιμοποιήσουν τη μέθοδο N-gram και επιπλέον το μοντέλο Vector Space. Για το τελευταίο, το κάθε έγγραφο μετασχηματίζεται σε μορφή tri-gram και καταχωρείται σε ξεχωριστό πίνακα. Στη συνέχεια πραγματοποιείται έλεγχος ομοιότητας με τη μέθοδο cosine similarity (CSM) μεταξύ των πινάκων του VSM. Με βάση τα αποτελέσματα της έρευνάς τους καταλήγουν στο συμπέρασμα ότι ο συνδυασμός των δύο μεθόδων παρουσιάζει καλύτερα αποτελέσματα από ότι η χρήση μόνο της παραδοσιακής N-gram μεθόδου. Μία διαφορετική προσέγγιση στον εντοπισμό κλώνων πηγαίου κώδικα [32] προτείνει την ανάκτηση δομικών πληροφοριών κώδικα. Επειδή ο πηγαίος κώδικας μπορεί ουσιαστικά να θεωρηθεί μία ακολουθία χαρακτήρων που σχηματίζει μία πολύπλοκη δομή κειμένου, όπως statements, blocks και classes, οι ερευνητές θεωρούν πως είναι προτιμότερο να ληφθεί υπόψιν η σειρά που εμφανίζονται οι όροι στον κώδικα. Συγκεκριμένα, με τη βοήθεια ενός λεξιλογικού parser, εξήγαγαν δομικά χαρακτηριστικά, όπως control statements και method identifiers και στη συνέχεια τα εισήγαγαν σε τρία διαφορετικά μοντέλα, ένα vector space model (VSM), ένα extended Sorensen-Dice model και τέλος στο προτεινόμενο από τους συγγραφείς μοντέλο, το derived sequence retrieval model (DSRM). Το τελευταίο παίρνει ως συνθήκη ανάκτησης μία ακολουθία δηλώσεων (κώδικα) και προσπαθεί να βγάλει ουσιώδης συνθήκες αναζήτησης για τη συγκεκριμένη ακολουθία. Σε αντίθεση με το VSM, στα άλλα δύο μοντέλα το κάθε πρόγραμμα μετασχηματίζεται σε ένα abstract syntax tree (AST), καθώς αυτά όπως προαναφέρθηκε έχουν την ικανότητα να περιέχουν δομικά χαρακτηριστικά του κώδικα. Ως εκ τούτου, ουσιώδης διαφορές παρουσιάζουν τα μοντέλα μεταξύ τους και ως προς τον τρόπο υπολογισμού της ομοιότητας δύο εγγράφων μεταξύ τους. Η μετρική αξιολόγησης του μοντέλου DSRM εμφανίζει μεγαλύτερη επιλεκτικότητα, καθώς ο κώδικας αποτελεί μία ακολουθία δηλώσεων σε αυστηρή μορφή. Η συγγραφή και συντήρηση λογισμικού (σε μορφή κώδικα) είναι μία από τις κύριες δραστηριότητες των μηχανικών λογισμικού, οι οποίοι στοχεύουν στην παροχή λειτουργικού και αξιόπιστου κώδικα. Η συγγραφή και συντήρηση κώδικα όμως είναι μία χρονοβόρα και πολυέξοδη διαδικασία. Οι προγραμματιστές πρέπει συνεχώς να ανατρέχουν στα αντίστοιχα εγχειρίδια χρήσης κώδικα, ή να επεξεργάζονται μεγάλα κομμάτια κώδικα τρίτων, κάτι που [24]

25 συχνά αποδεικνύεται δύσκολη δοκιμασία και γενικά καθυστερεί τη διαδικασία ανάπτυξης λογισμικού. Η ανάγκη αυτή για εξοικονόμηση χρόνου παρακινεί τους συγγραφείς [31] να δημιουργήσουν μοντέλα που συνδυάζουν φυσική γλώσσα και αποσπάσματα πηγαίου κώδικα. Υποστηρίζουν δε, πως με χρήση των μοντέλων αυτών μπορούν να δημιουργηθούν εργαλεία που καθιστούν τη συγγραφή και κατανόηση κώδικα πολύ πιο εύκολη και γρήγορη. Κινούμενοι προς αυτήν την κατεύθυνση, δημιουργούν ξεχωριστά μοντέλα αντιπροσώπευσης της φυσικής γλώσσας, του πηγαίου κώδικα και του συνδυασμού των δύο. Αρχικά, επιλέγουν να μετασχηματίσουν τα κείμενα φυσικής γλώσσας με βάση το μοντέλο Bag of Words και αφού βρεθεί μία διανεμημένη αναπαράσταση για κάθε λέξη, συνδυάζουν τις αναπαραστάσεις αυτές στο μέσο όρο τους. Η αναπαράσταση, αν και απλή, εφαρμόζει ικανοποιητικά σε περιπτώσεις που χρησιμοποιείται φυσική γλώσσα για μικρά ερωτήματα έρευνας. Ο πηγαίος κώδικας στην πιο απλή μορφή του, είναι απλά μία ακολουθία λέξεων. Οι γλώσσες προγραμματισμού όμως είναι γραμμένες ώστε να μπορούν να πραγματοποιηθούν δύο μετασχηματισμοί: Ο μετασχηματισμός μίας ακολουθίας λέξεων σε tokens (lexing) και μετασχηματισμός της ακολουθίας tokens σε ένα parse tree (parsing). Αυτή είναι και η αναπαράσταση πηγαίου κώδικα που επέλεξαν οι συγγραφείς στο έργο τους. Το τελικό δέντρο δημιουργείται έτσι ώστε ο κάθε κόμβος να έχει ως παιδιά του όλες τις πλειάδες tokens που εμφανίζονται ως παιδιά του κόμβου σε όλα τα επιμέρους parse-trees. Το τελικό συστατικό του μοντέλου είναι η αναπαράσταση των αποφάσεων που έχουν ληφθεί μέχρι τώρα στην κατασκευή του δέντρου. Αυτό περιλαμβάνει την εξαγωγή χαρακτηριστικών που φαίνονται σχετικά με την πρόβλεψη της επόμενης πλειάδας παιδιών και επιτυγχάνεται κάθε φορά με βάση τους 10 προγόνους και 10 απογόνους του υπό μελέτη κόμβου. Τα αποτελέσματα της έρευνας αυτής ήταν ικανοποιητικά ακόμα και για θορυβώδη και μεγάλα dataset. Ενδιαφέρουν παρουσιάζει το γεγονός ότι η ανάκτηση κειμένου σε φυσική γλώσσα με βάση κάποιο κομμάτι κώδικα είναι πιο εύκολη από ότι αντίστοιχα η ανάκτηση κώδικα με βάση κείμενο σε φυσική γλώσσα. Σύμφωνα με τους συγγραφείς, αιτία αυτoύ είναι ότι ο κώδικας δεν εμφανίζει μεγάλη διασπορά, με αποτέλεσμα να καθίσταται πιο δύσκολος ο εντοπισμός μικρών διαφορών. Η αναζήτηση κώδικα αποτελεί ένα ακόμα σπουδαίο μέρος της ανάπτυξης λογισμικού και της κατανόησης των προγραμμάτων. Η δυσκολία στην αναζήτηση κώδικα έγκειται στο ότι συνήθως απαιτείται από τον ερευνητή να μαντέψει τις ακριβείς λέξεις που χρησιμοποιούνται στον κώδικα που ψάχνει. Οι Jinqiu Yang και Lin Tan [30] επιχειρούν να προσεγγίσουν το πρόβλημα θεωρώντας πως είναι σημαντικό, για τέτοιου είδους αναζητήσεις κώδικα, να λαμβάνονται υπόψη συνώνυμα και συντομογραφίες των όρων που χρησιμοποιούνται στο ερώτημα αναζήτησης (αναφέρονται ως rpairs). [25]

26 Η μεθοδολογία που ακολουθούν δέχεται αρχικά ως είσοδο μία βάση κώδικα και μία λίστα με stop words και στη συνέχεια εξάγονται τα σχόλια και τα ονόματα των μεθόδων, τα οποία μετατρέπονται σε ακολουθίες λέξεων. Αυτές ομαδοποιούνται με βάση τις κοινές τους λέξεις και με βάση τη μετρική : ΜετρικήΟμοιότητας = Αριθμός των κοινών λέξεων στις 2 ακολουθίες Αριθμός λέξεων στη μικρότερη απο τις 2 ακολουθίες υπολογίζεται ο βαθμός ομοιότητας δύο ακολουθιών λέξεων και εξάγονται rpairs εάν το περιεχόμενο είναι όμοιο. Με κίνητρο τον εντοπισμό κώδικα έχουν δημιουργηθεί αρκετά IR συστήματα, όπως τα CodeBroker και JSearch [43]. Αυτά, προσπαθούν συνήθως να εντοπίσουν κώδικα μέσα από μία μεγάλη αποθήκη λογισμικού, με το να παρέχουν τροποποιήσεις σε μεθόδους ανάκτησης πληροφορίας φυσικής γλώσσας. Κύρια κατευθυντήρια γραμμή, που διέπει τη λειτουργία της πλειοψηφίας των συστημάτων αυτών, είναι ο τρόπος καταχώρησης των συντακτικών στοιχείων της εκάστοτε γλώσσας προγραμματισμού (μεταβλητές, κλάσεις, ονόματα/κώδικας μεθόδων, κ.α.). Ο κώδικας καταχωρείται σε μορφή δέντρου (AST), τα σχόλια, οι επικεφαλίδες και τα υπόλοιπα αποκόμματα φυσικής γλώσσας σε μορφή διανυσμάτων (VSM) κτλ. Ο χρήστης του συστήματος μπορεί μετέπειτα να εισάγει στο σύστημα ένα απόσπασμα κώδικα και με χρήση κατάλληλων μετρικών να λάβει όμοια κομμάτια κώδικα. Ένα από τα συστήματα με σκοπό την αναζήτηση κώδικα είναι αυτό του S. Reiss [51]. Το σύστημα για να ικανοποιήσει τις ανάγκες χρηστών του δημιουργεί συγκεκριμένες μεθόδους και κλάσεις. Η μεθοδολογία που ακολουθείται προτείνει το συνδυασμό contracts (γενικά αποτελούν προϋποθέσεις σε μεθόδους ή συνθήκες κλάσεων) και test cases για τη «σύλληψη» της λειτουργικότητας των προγραμμάτων και επιπλέον χρησιμοποιούν περιορισμούς ασφάλειας για κλάσεις και μεθόδους. Αρχικά χρησιμοποιείται μία παραδοσιακή μέθοδος ανάκτησης κώδικα με βάση μόνο τις λέξεις του query, για να βρεθούν κάποιες αρχικές απαντήσεις. Ακολουθούν μετασχηματισμοί των απαντήσεων με βάση τους περιορισμούς ασφάλειας (signature transforms), ώστε να ληφθεί ένα πιο κοντινό σετ απαντήσεων. Με ένα δεύτερο σετ μετασχηματισμών (generative transforms), βρίσκονται αποκόμματα μεθόδων που ανταποκρίνονται στο query του χρήστη και από αυτά δημιουργούνται καινούργιες απαντήσεις. Το τρίτο σετ μετασχηματισμών επιχειρεί να προσαρμόσει τον κώδικα στο περιβάλλον testing, απομακρύνοντας άχρηστες λειτουργίες ή επιβεβαιώνοντας πως η υπάρχουσα λειτουργικότητα συμφωνεί με τις απαιτήσεις του χρήστη. Οι τελευταίοι μετασχηματισμοί εφαρμόζονται μετά τον έλεγχο (testing transforms) και επιχειρούν να τροποποιήσουν τις μεθόδους βασισμένοι στα αποτελέσματα, ώστε να έρθουν πιο κοντά στις ζητούμενες. Ένα άλλο σύστημα ανάκτησης κώδικα είναι το ParseWeb [52]. Αρχικά, αφού εισαχθεί στο σύστημα ένα query, σχηματίζεται μία τοπική αποθήκη κώδικα. Στη δεύτερη φάση, με βάση [26]

27 τα κομμάτια κώδικα του προηγούμενου βήματος και το AST τους, σχηματίζεται ένας κατευθυνόμενος ακυκλικός γράφος (directed acyclic graph - DAG). Το κύριο πλεονέκτημα του DAG είναι πως υποστηρίζει τον έλεγχο ροής πληροφορίας διαμέσω των κλάδων και ενώσεων και παρέχει έναν αποτελεσματικό μηχανισμό για την εύρεση διαδρομών μεταξύ δύο κόμβων του γράφου. Με χρήση heuristics εντοπίζονται επιπλέον πληροφορίες για τις κλήσεις μεθόδων (return object type, receiver object type, argument types) και στη συνέχεια βρίσκονται όλες οι ακολουθίες εντολών, που «πλησιάζουν» το query του χρήστη και ομαδοποιούνται. Τέλος εξάγονται τα κομμάτια κώδικα που έχουν βρεθεί στα παραπάνω βήματα. Εάν δε βρεθούν τέτοια, το αρχικό ερώτημα χωρίζεται σε υποερωτήματα επαναλαμβάνεται η όλη διαδικασία πάνω σε αυτά. To Strathcona [53] αποτελεί μία υλοποίηση συστήματος εντοπισμού κώδικα, το οποίο προτείνει παραδείγματα όμοιου, με ένα query, κώδικα, βασισμένο στη δομή του query αυτού. Ο προγραμματιστής αιτείται παραδείγματα για κλάσεις, μεθόδους ή field declarations και το Strathcona εξάγει το δομικό περιεχόμενο του ερωτήματος και το προωθεί στο server. Για κάθε τέτοιο ερώτημα που φτάνει στο server, εφαρμόζονται αναδρομικά έξι heuristics για να δημιουργηθούν παραδείγματα, με τα δέκα καλύτερα από αυτά να επιλέγονται για επιστροφή στον προγραμματιστή. Αφού εντοπιστεί ο σχετικός κώδικας που επιστρέφεται από έναν heuristic, το Strathcona τον μετασχηματίζει σε παραδείγματα. Το σύστημα αποφασίζει για το πώς σχετίζεται η κάθε κλάση που επιστρέφεται με το δομικό περιεχόμενο του client και δημιουργεί μία περιγραφή της δομής της, με βάση τις κλάσεις με τις οποίες συνεργάζεται. Η περιγραφή αυτή της δομής, ο κώδικας της κλάσης και η αιτιολόγηση της επιλογής του συγκεκριμένου παραδείγματος επιστρέφονται στον προγραμματιστή με χρήση ενός διαγράμματος (UML-like). Κάποια πιο διαδεδομένα συστήματα αυτού του είδους, που τελευταία επηρεάζουν σημαντικά την ανάπτυξη της τεχνολογίας λογισμικού, είναι αυτά των question-answer forums, οπως το Stack Overflow (SO), Quora, Reddit κ.α. Τα communities αυτά χρησιμοποιούν ειδικά σχήματα για τη δημιουργία ερωτημάτων, τα οποία συνήθως περιέχουν πεδία όπως tags, πεδία κειμένου σε φυσική γλώσσα και αντίστοιχα σε κώδικα (source code snippets). Καθώς όμως οι χρήστες των forum αυτών συνεχώς αυξάνονται, αυξάνονται παράλληλα και οι πιθανότητες κάποια από τα ερωτήματα που θέτονται, ή παρόμοια με αυτά, να έχουν ήδη απαντηθεί. Κρίνεται λοιπόν απαραίτητος ένας τρόπος ανάκτησης των ερωτημάτων αυτών και των αντίστοιχων απαντήσεών τους. Μία δημοσίευση που προσεγγίζει μία μεθοδολογία έρευνας για τέτοια ερωτήματα, αντλώντας πληροφορίες από κώδικα που αυτά εμπεριέχουν, είναι αυτή των Α. Συμεωνίδη και Θ. Διαμαντόπουλου [29]. Η όλη διαδικασία ξεκινάει με το διαχωρισμό των διαφορετικών πεδίων των δημοσιεύσεων (τίτλος, tags, περιγραφή, κώδικας) και την ξεχωριστή επεξεργασία και καταχώρησή τους. Τα αποκόμματα κώδικα (snippets) μετατρέπονται σε AST και στη συνέχεια εξάγονται από τα δέντρα όλες οι ξεχωριστές εντολές. Από τα περιεχόμενα των snippets σε αυτή τη μορφή, εξάγονται επίσης οι διαφορετικές δηλώσεις (classes, methods, variables) και μετασχηματίζονται σε μία ακολουθία εντολών, σύμφωνα με τρεις κατηγορίες : assignments, function calls και class instantiations. [27]

28 Η ομοιότητα μεταξύ δύο ερωτημάτων εξετάζεται με βάση τα αποτελέσματα που προκύπτουν για κάθε επιμέρους κατηγορία. Έτσι, για το κείμενο επιλέγεται η χρήση του μοντέλου VSM με όρους που υπολογίζονται επιστρατεύοντας το tf-idf και σύστημα κατάταξης αυτό του cosine similarity. Αντίστοιχα για τα tags γίνεται χρήση της μετρικής Jaccard Index και τέλος, για τον εντοπισμό ομοιότητας μεταξύ δύο κομματιών κώδικα ορίζεται ως μετρική ομοιότητας η Longest Common Subsequence (LCS). Το τελικό σκορ ομοιότητας καθορίζεται από την εξίσωση : Score(S 1, S 2 ) = 2 LCS(S 1, S 2 ) S 1 + S 2, με τα αποτελέσματα του συνδυασμένου μοντέλου να ενθαρρύνουν τη χρήση των snippets κώδικα, όπως αρχικά υπέθεσαν οι ερευνητές του. Μία άλλη λύση στο πρόβλημα ανάκτησης ερωτήσεων-απαντήσεων στη μηχανή αναζήτησης του Stack Overflow επιχειρούν οι S. Subramanianκαι R. Holmes [50]. Συγκεκριμένα, επιχείρησαν με βάση τον κώδικα των ερωτημάτων, να περιορίσουν τις απαντήσεις σε αυτές με το σχετικό API. Στηρίζονται στο γεγονός ότι το SO χειρίζεται τα κομμάτια κώδικα σαν απλό κείμενο, αποτυγχάνοντας έτσι να χρησιμοποιήσει οποιαδήποτε δομική πληροφορία που αυτά εμπεριέχουν. Αρχικά μετασχημάτισαν τα αποσπάσματα κώδικα σε ένα abstract syntax tree και συσχέτισαν όλες τις δηλωμένες μεταβλητές με τις αντίστοιχές τις πιθανές κλάσεις που αυτές ανήκουν. Στη συνέχεια, οι πληροφορίες αυτές χρησιμοποιήθηκαν για την εύρεση υποψήφιων μεθόδων, για κάθε κλήση μεθόδου στα AST. Η μεθοδολογία τους περιόρισε αρκετά τον αριθμό των άσχετων απαντήσεων, σε σχέση με την παραδοσιακή λεξιλογική ανάλυση του SO. [28]

29 2.2 Νευρωνικά Δίκτυα Σχήμα 5: Πλέγμα νευρώνων Αρχικά Μοντέλα Τα τεχνητά νευρωνικά δίκτυα (artificial neural networks - ΑΝΝ) αρχικά προτάθηκαν ως ένα μαθηματικό μοντέλο προσομοίωσης της πολύπλοκης λειτουργίας του ανθρώπινου εγκεφάλου από τον Donald Hebb [3]. Η δομή του εγκεφάλου είναι τέτοια ώστε να επιτρέπεται η παράλληλη επεξεργασία δεδομένων και η δυνατότητα συνεχούς μάθησης μέσω της αλληλεπίδρασης με το περιβάλλον. Τα δύο αυτά βασικά χαρακτηριστικά συμβάλλουν στην ικανότητα του δικτύου, αφενός, να εκτελεί δύσκολα καθήκοντα, όπως ταχύτατη αναγνώριση μορφών, ταξινόμηση κ.ά., αφετέρου, να εξελίσσεται συνεχώς, μαθαίνοντας από το περιβάλλον του κατά την αλληλεπίδρασή του με αυτό. Στον τομέα της μηχανικής μάθησης (machine learning) τα ΑΝΝ χρησιμοποιούνται για την εκτίμηση ή προσέγγιση λειτουργιών που μπορεί να εξαρτώνται από ένα μεγάλο πλήθος εισόδων και είναι γενικά άγνωστες. Τα ΑΝΝ παρουσιάζονται ως συστήματα διασυνδεδεμένων νευρώνων που επικοινωνούν μεταξύ τους μέσω συνδέσμων που αποκαλούνται συνάψεις. Ο βαθμός αλληλεπίδρασης είναι διαφορετικός για κάθε ζεύγος νευρώνων και καθορίζεται από τα συναπτικά βάρη. Καθώς το νευρωνικό δίκτυο τροφοδοτείται από το περιβάλλον του, τα συναπτικά βάρη μεταβάλλονται συνεχώς, ενδυναμώνοντας ή αποδυναμώνοντας την ισχύ του κάθε δεσμού. Όλη η γνώση που αποκτά το δίκτυο κωδικοποιείται ουσιαστικά μέσω αυτών των βαρών. Υπάρχουν πολλά είδη νευρώνων. Το είδος που επιλέγεται για τη δόμηση ενός συγκεκριμένου δικτύου εξαρτάται από το εκάστοτε πρόβλημα που εξετάζεται, ενώ αρκετές φορές χρησιμοποιείται και συνδυασμός διαφορετικών δικτύων. Η γενική μορφή ενός νευρώνα [29]

30 παρουσιάζεται στο παρακάτω σχήμα. Οι είσοδοι του νευρώνα πολλαπλασιάζονται με τα συναπτικά βάρη και στη συνέχεια αθροίζονται, δίνοντας το τοπικό πεδίο (net input). Ως εδώ ο νευρώνας δίνει ένα γραμμικό συνδυασμό των εισόδων του, με συντελεστές τα συναπτικά βάρη. Στην τελευταία φάση, εφαρμόζεται η συνάρτηση ενεργοποίησης (activation function) στο τοπικό πεδίο και το αποτέλεσμα δίνει την έξοδο του νευρώνα. Ως συνάρτηση ενεργοποίησης χρησιμοποιήθηκε αρχικά η βηματική συνάρτηση. Αργότερα, καθώς το θεωρητικό υπόβαθρο των ΑΝΝ αναβαθμίστηκε, φανερώθηκε πως χρήσιμες πληροφορίες για το νευρωνικό δίκτυο μπορούν να εξαχθούν από την παράγωγο της συνάρτησης ενεργοποίησης. Έτσι πλέον στα περισσότερα μοντέλα χρησιμοποιούνται μη γραμμικές συναρτήσεις, με συχνό παράδειγμα τις σιγμοειδής (πραγματική, συνεχής, φραγμένη, με θετική παράγωγο), που συνήθως παίρνουν σύνολο τιμών στα διαστήματα [0,1] και [-1,1]. Σχήμα 6: Γενική μορφή ενός νευρώνα Perceptron Το πρώτο τεχνητό νευρωνικό δίκτυο ήταν αυτό του απλού αισθητήρα (perceptron), το οποίο εισήγαγε ο Rosenblatt το 1958 [2] και αποτελείται από δύο επίπεδα. Αυτό της εισόδου, το οποίο δεν αποτελείται από νευρώνες και επομένως δεν πραγματοποιεί καμία επεξεργασία πληροφορίας και το επίπεδο της εξόδου του δικτύου. Ο αισθητήρας αυτός χρησιμοποιήθηκε ως εργαλείο ταξινόμησης χρησιμοποιώντας απλές πράξεις πρόσθεσης-αφαίρεσης με βάση ένα σαφή αλγόριθμό εκπαίδευσης: w i (n) όταν y i είναι σωστό w i (n + 1) = { w i (n) η(n)x i (n) όταν y i = 1, ενώ έπρεπε y i = 0, w i (n) + η(n)x i (n) ότανy i = 0, ενώ έπρεπε y i = 1 όπου x i (n) το διάνυσμα εισόδου του νευρώνα i, y i το διάνυσμα εξόδου, w i (n) το διάνυσμα βαρών στο βήμα n του αλγορίθμου, w i (n + 1) το διάνυσμα βαρών στο βήμα n+1 του [30]

31 αλγορίθμου και η θετική σταθερά που ονομάζεται παράμετρος ρυθμού εκπαίδευσης του δικτύου (learning-rate parameter). Το μοντέλο αυτό όμως γρήγορα εγκαταλείφθηκε, καθώς αδυνατούσε να επιλύσει μηγραμμικά διαχωρίσιμα προβλήματα (λογική πράξη XOR) και επιπλέον, οι τότε υπολογιστές δεν είχαν την υπολογιστική δύναμη που απαιτείται για τη λειτουργία μεγάλων νευρωνικών δικτύων. Σχήμα 7: Η γενική μορφή ενός Perceptron. Αποτελείται από δύο επίπεδα, αυτό της εισόδου και αυτό της εξόδου του δικτύου Multi-layer Perceptron Η λύση των μη-γραμμικά διαχωρίσιμων προβλημάτων ήρθε με την εισήγηση των πολυεπίπεδων αισθητήρων (Multi-layer Perceptrons - MLPs). Σε αυτά τα νευρωνικά δίκτυα παρεμβάλλονται μεταξύ εισόδου και εξόδου ένα ή περισσότερα επιπλέον επίπεδα, τα λεγόμενα κρυφά επίπεδα (hidden layers). Η ροή της πληροφορίας στο δίκτυο γίνεται από τα αριστερά προς τα δεξιά και θεωρούμε πως οι νευρώνες ενός επιπέδου αλληλοεπιδρούν μόνο με αυτούς των γειτονικών επιπέδων. Η δράση των MLPs επιτρέπει ουσιαστικά το διαχωρισμό του προβλήματος σε επιμέρους επίπεδα ανάλογα, με τα hidden layers του δικτύου. Έτσι, το κάθε επίπεδο βρίσκει πρότυπα στα κατώτερα από αυτό επίπεδα και δημιουργεί εσωτερικές αναπαραστάσεις των δεδομένων. Το γεγονός πως τα MLPs είναι σε θέση να προσεγγίσουν λύση προβλημάτων μη-γραμμικών διαχωρίσιμων κλάσεων δεν έχει καμία πρακτική αξία από μόνο του, αν δεν υπάρχει ένας τυποποιημένος τρόπος να βρίσκεται κάθε φορά η λύση αυτή. Ο αλγόριθμός εκπαίδευσης του απλού αισθητήρα δε μπορεί να εφαρμοστεί στο τροποποιημένο μοντέλο των MLPs. Με άλλα λόγια, έπρεπε να βρεθεί ένας τρόπος προσαρμογής των συναπτικών βαρών του δικτύου, ώστε να ενδυναμωθεί η συμμετοχή νευρώνων που συμβάλλουν θετικά στο σωστό αποτέλεσμα και αντίθετα η αποδυνάμωση των δεσμών που συμβάλλουν αρνητικά. [31]

32 Η ανάγκη αυτή για εκπαίδευση των πολύ-επίπεδων νευρωνικών δικτύων ώστε αυτά να μπορούν να προσαρμόσουν στο εκάστοτε πρόβλημα, αποτέλεσε την έμπνευση για τον αλγόριθμο οπισθοδιάδοσης (backpropagation) [26]. Πρώτη εφαρμογή του αλγορίθμου ήταν αυτή του Yann LeCun στην προσπάθειά του να αναπτύξει ένα νευρωνικό δίκτυο για την αναγνώριση χειρόγραφων ταχυδρομικών κωδικών σε αλληλογραφία [4]. Παρόλη την επιτυχία του αλγορίθμου, ο χρόνος που χρειάστηκε για την εκπαίδευση του δικτύου ήταν πάνω από τρεις μέρες, ενώ μετέπειτα εφαρμογές είχαν παρόμοιο αποτέλεσμα [7]. Αυτό οδήγησε πιο απλά μοντέλα, όπως αυτό των support vector machines (SVM) ή απλούς γραμμικούς ταξινομητές, στο να αντικαταστήσουν τα νευρωνικά δίκτυα μέχρι πρόσφατα, με την έλευση των μεθόδων βαθιάς μάθησης Deep Learning Ο τομέας της βαθιάς μάθησης τράβηξε την προσοχή της ερευνητικής κοινότητας στα μέσα της προηγούμενης δεκαετίας, μετά από μία δημοσίευση [9], που έδειχνε έναν αποδοτικό τρόπο εκπαίδευσης νευρωνικών δικτύων πολλών επιπέδων. Από τότε οι αλγόριθμοι βαθιάς μάθησης κατέχουν κυρίαρχο ρόλο σε αρκετές εφαρμογές, όπως αναγνώριση φωνής, επεξεργασία σημάτων, αναγνώριση αντικειμένων, επεξεργασία φυσικής γλώσσας κ.α. Συνήθως ο όρος deep learning αναφέρεται σε νευρωνικά δίκτυα με περισσότερα του ενός κρυφά επίπεδα νευρώνων. Οι αλγόριθμοι βαθιάς μάθησης γενικά βασίζονται σε διανεμημένες αναπαραστάσεις δεδομένων. Αυτό στηρίζεται στην υπόθεση πως τα δεδομένα υπό μελέτη δημιουργούνται μέσω της αλληλεπίδρασης παραγόντων διαχωρισμένων σε επίπεδα. Επιπλέον θεωρείται πως αυτά τα επίπεδα παραγόντων αντιστοιχούν σε επίπεδα αφαίρεσης ή σύνθεσης των δεδομένων [5]. Δύο είναι τα κύρια χαρακτηριστικά που διέπουν έναν τέτοιο αλγόριθμο: 1) Πολλαπλά επίπεδα μη-γραμμικής επεξεργασίας των χαρακτηριστικών εισόδου. 2) Η επιβλεπόμενη ή μη-επιβλεπόμενη εκμάθηση χαρακτηριστικών στο κάθε επίπεδο, με το σύνολο των επιπέδων να αναδεικνύουν υψηλού επιπέδου χαρακτηριστικά από αντίστοιχα χαμηλού. Στη συνέχεια παρουσιάζουμε κάποια βασικά συστήματα βαθιών νευρωνικών δικτύων, που διαμόρφωσαν τα σημερινά δεδομένα του τομέα της βαθιάς μάθησης και επιπλέον επηρέασαν την παρούσα διπλωματική εργασία Συστήματα Βαθιών Νευρωνικών Δικτύων Ο αλγόριθμος της οπισθοδιάδοσης ήταν σε θέση να εκπαιδεύσει δίκτυα ΑΕ, μόνο εφόσον τα αρχικά συναπτικά βάρη ήταν «κοντά» σε κάποια καλή λύση. Με μεγάλα αρχικά βάρη, τα ΑΕ τυπικά καταλήγουν σε λάθος τοπικά ελάχιστα, ενώ με μικρά αρχικά βάρη οι βαθμίδες στα αρχικά επίπεδα είναι μηδαμινές, καθιστώντας ασύμφορη την εκπαίδευση μεγάλων δικτύων. [32]

33 Η αδυναμία αυτή του αλγορίθμου ήταν που οδήγησε τους G. Hinton και R. Salakhutdinov [9] σε μία διαφορετική προσέγγιση αρχικής εκπαίδευσης των βαρών, ξεχωριστά για κάθε επίπεδο και στη συνέχεια χρήση της οπισθοδιάδοσης για τελειοποίηση. Χρησιμοποίησαν έτσι μία παραλλαγή των Boltzmann Machines, τα Restricted Boltzmann Machines (RBMs). Σε αντίθεση με τα πρώτα, τα RBMs έχουν συνδέσεις μόνο μεταξύ νευρώνων διαφορετικών επιπέδων, κάτι που κάνει την εκπαίδευσή τους αρκετά πιο εύκολη. Αφού εκπαιδευτεί ένα RBM επίπεδο, οι έξοδοί του μπορούν να χρησιμοποιηθούν ως είσοδοι σε ένα επόμενο RBM. Αυτή η διαδικασία μπορεί να συνεχιστεί για την εκπαίδευση πολλαπλών επιπέδων, που τελικά συνιστούν ένα δίκτυο με μη κατευθυνόμενες συνδέσεις μεταξύ των πρώτων δύο επιπέδων. Τα υπόλοιπα επίπεδα συνδέονται με κατευθυνόμενες προς τα κάτω συνδέσεις και το δίκτυο ονομάζεται Deep Belief Network (DBN) [13,14,15]. Κάθε επιπλέον επίπεδο αποδεικνύεται πως αναβαθμίζει το μοντέλο, εφόσον αυτό περιέχει λιγότερους νευρώνες ανίχνευσης από το προηγούμενο και επιπλέον έχει προηγηθεί σωστή εκπαίδευση [12]. Οι ίδιοι παρουσίασαν ταυτόχρονα με τα MNIST digits μία πολύ πετυχημένη μεθοδολογία δημιουργίας ευρετηρίου εγγράφων φυσικής γλώσσας και ανάκτησής τους, βασισμένη στα DBN [9]. Τα επιμέρους RBMs εκπαιδεύονται κωδικοποιώντας τις 2000 πιο συχνά εμφανιζόμενες λέξεις του dataset των εγγράφων σε 10 νούμερα. Στη συνέχεια, τα RBMs ενώνονται σε ένα ενιαίο auto-encoder που στην αρχή χρησιμοποιεί τα ίδια βάρη για encoding και decoding. Η τελειοποίηση των βαρών προκύπτει με την εφαρμογή του αλγορίθμου backpropagation και η διαδικασία εκπαίδευσης ολοκληρώνεται. Η μεθοδολογία παρουσίασε αρκετά βελτιωμένα αποτελέσματα σε σχέση με τους μέχρι τότε χρησιμοποιούμενους τρόπους ανάκτησης εγγράφων, τόσο στην ακρίβεια, όσο και στην ταχύτητα έρευνας. Παρόμοια ήταν τα αποτελέσματα και σε άλλου είδους προβλήματα, όπως αναγνώριση αντικειμένων μέσα από εικόνες κ.α. Αυτό παρακίνησε την έρευνα για τη βελτίωση του δικτύου και διεύρυνση του πεδίου εφαρμογών του. Σύντομα μετά την εμφάνιση των DBN, ακολούθησε μία δημοσίευση που περιέγραφε έναν αποδοτικό τρόπο εκπαίδευσης του δικτύου, βασισμένο στον αλγόριθμο Wake-Sleep [16]. Ο αλγόριθμος ακολουθεί τη λογική εκπαίδευσης ενός DBN χωρίς όμως χρήση οπισθοδιάδοσης του λάθους για τελειοποίηση των συναπτικών βαρών. Αρχικά βρίσκονται καλές αρχικές τιμές για τα βάρη όλων των επιπέδων χωρίζοντας το δίκτυο σε RBMs. Στη συνέχεια θεωρούμε πως τα βάρη αναγνώρισης (Wake-Sleep αλγόριθμος) καθορίζουν στοχαστικά τις τιμές του επόμενου επιπέδου και τα βάρη παραγωγής προσαρμόζονται σύμφωνα με τον κανόνα maximum learning rule. Στη δεύτερη φάση του αλγορίθμου (Sleep) πραγματοποιείται η αντίστροφη διαδικασία. Τα βάρη παραγωγής ορίζουν στοχαστικά τις τιμές του παρακάτω επιπέδου και προσαρμόζονται αναλόγως τα βάρη αναγνώρισης. Η δυνατότητα των RBM να εξάγουν πολύπλοκα χαρακτηριστικά των δεδομένων εισόδου τους και μάλιστα σε μη επιβλεπόμενη μάθηση, με ελάχιστα δεδομένα για τελειοποίηση, έκανε τη χρήση τους σε εκπαίδευση auto-encoder ιδιαίτερα δημοφιλή. Επιπλέον, η υπόθεση πως επιπρόσθετα στην οπισθοδιάδοση, τα RBM μπορούν να υλοποιήσουν εκπαίδευση από πάνω προς τα κάτω, προέτρεψαν τη δημιουργία ενός δικτύου Deep Boltzmann Machine [14], ένα εξολοκλήρου μη κατευθυνόμενο μοντέλο. Το δίκτυο αυτό είναι σε θέση να [33]

34 μεταδώσει καλύτερα την αβεβαιότητα και έτσι να αντιμετωπίσει πιο εύρωστα ασαφείς και θορυβώδεις εισόδους. Επιτυχημένη ήταν η εφαρμογή και αυτού του μοντέλου στην ανάκτηση NL εγγράφων, πάλι από την ομάδα του Hinton [58]. Όμοια με πριν εκπαιδεύτηκαν επιμέρους RBM, δημιουργώντας ένα δίκτυο, που κωδικοποιεί τους όρους των εγγράφων σε 30 νούμερα. Η διαφορά με το προηγούμενο δίκτυο, είναι πως τα κρυφά επίπεδα μετά την είσοδο και πριν την έξοδο, έχουν πλέον ίδιο αριθμό εξόδων και εισόδων, όπως σε ένα DBM δίκτυο. Η τροποποίηση του δικτύου έγινε με στόχο την ελαχιστοποίηση της επίδρασης που έχει το διαφορετικό μέγεθος των εγγράφων στα αποτελέσματα. Επιπλέον εισήγαγε Gaussian θόρυβο στο μεσαίο code layer και με βάση μία τιμή ενεργοποίησης (r=0.1) μετέτρεψε τα 30 αυτά νούμερα σε δυαδικά. Τα αποτελέσματα ξεπέρασαν το προηγούμενο DBN δίκτυο και ταυτόχρονα πέτυχαν αξεπέραστη ως τώρα ταχύτητα ανάκτησης εγγράφων. Η επιτυχημένη μοντελοποίηση φυσικής γλώσσας σε τομείς όπως φωνητική αναγνώριση, μετάφραση NL, ανάκτηση κειμένων, κ.α. αποτέλεσε κίνητρο για τη μοντελοποίηση πηγαίου κώδικα. Ακόμα και με χρήση απλών στατιστικών μοντέλων [38] παρατηρούνται μεγάλες αλληλεξαρτήσεις λέξεων σε πηγαίο κώδικα, ανεξάρτητα από τη γλώσσα συγγραφής. Τα πρακτικά προβλήματα ανάκτησης κειμένου-λογισμικού επηρεάζονται από παράγοντες όπως χωρητικότητα, σημασιολογία, συμφραζόμενα. Πολλά από τα σύγχρονα μοντέλα που στηρίζονται σε απλά μοντέλα, όπως το n-grams, δεν είναι σε θέση να ικανοποιήσουν αυτούς τους παράγοντες [35]. Οι μέθοδοι βαθιάς μάθησης με την ικανότητά τους να αφομοιώνουν σύνθετα χαρακτηριστικά χρησιμοποιήθηκαν και σε τέτοιες εφαρμογές μοντελοποίησης φυσικής γλώσσας (και πηγαίου κώδικα), ώστε να ξεπεραστεί το πρόβλημα. Αρχικά, ο Elman [36] προσπάθησε να αναπαραστήσει λεξιλογικές κατηγορίες με χρήση νευρωνικών δικτύων και ακολούθησαν οι Miikkulainen και Dyer [37]. Αυτοί ανέπτυξαν ένα νευρωνικό δίκτυο υπεύθυνο για το σχηματισμό διανεμημένων αναπαραστάσεων, για επικοινωνία σε ένα παράλληλα διανεμημένο δίκτυο επεξεργασίας. Αργότερα προτάθηκε [35] ένα στατιστικό μοντέλο φυσικής γλώσσας, βασισμένο σε νευρωνικά δίκτυα, με κύριο στόχο την εξάλειψη της «κατάρας της διαστασιμότητας» (curse of dimensionality). Το μοντέλο πρότεινε αρχικά να αποδοθεί σε κάθε λέξη στο λεξικό ένα μη κατανεμημένο διάνυσμα χαρακτηριστικών, με τιμές πραγματικούς αριθμούς. Στη συνέχεια το μοντέλο χρησιμοποιεί μία πιθανοτική συνάρτηση, ώστε να εκφράσει την αλληλεξάρτηση των λέξεων μεταξύ τους. Τέλος το δίκτυο εκπαιδεύεται με βάση τα αρχικά διανύσματα και τις παραμέτρους της πιθανοτικής συνάρτησης. Με κάθε παράδειγμα εκπαίδευσης, το μοντέλο ενημερώνεται και παραπέμπει σε ένα συνδυασμό άλλων, όμοιων προτάσεων. Το μοντέλο παρουσίασε πολύ καλή απόδοση, σε σχέση με τα state of the art μοντέλα, οπότε και προκάλεσε το ενδιαφέρον για περεταίρω έρευνα. Μία σημαντική παραλλαγή, ήταν αυτή του Mikolov [39], ο οποίος πρόσθεσε μία αναδρομική σύνδεση από το κρυφό επίπεδο, πίσω [34]

35 στο επίπεδο εισόδου. Αποτέλεσμα ήταν ένα recurrent neural network (RNN), που, σε αντίθεση με το προηγούμενο, αυθεντικό feed-forward μοντέλο του Bengio [35], αναπαριστά επιπλέον χαρακτηριστικά από τα απλά πρότυπα που δίνει το n-grams. Η συμβολή των RNN στην ανάκτηση πληροφορίας δε σταμάτησε όμως εκεί, καθώς τα RNN αναβαθμίστηκαν με αρκετές επιπλέον δημοσιεύσεις, τόσο πάνω στην ανάκτηση εγγράφων, όσο και σε αναγνώριση αντικειμένων, ήχου, κ.α. [40, 41]. Τα βαθιά νευρωνικά δίκτυα είναι γενικά δύσκολα να εκπαιδευτούν αποτελεσματικά. Εξαίρεση αποτελούν τα convolutional neural networks (CNN), που εμπνεύστηκαν από τη δομή του οπτικού συστήματος των ζώων [17]. Παρουσιάζουν τρεις βασικές διαφορές με τα MLPs: 1) Τα επίπεδα των CNN έχουν τρεις διαστάσεις, μήκος, πλάτος και ύψος. Οι νευρώνες είναι συνδεδεμένοι σε μία μικρή περιοχή νευρώνων του προηγούμενου επιπέδου (receptive field). 2) Η δεύτερη βασική διαφορά, που ουσιαστικά προσομοιώνει τα οπτικά νεύρα, είναι αυτή της τοπικής συνδεσιμότητας. Τα CNN εκμεταλλεύονται την χωρικά τοπική συσχέτιση επιβάλλοντας μία πρότυπη τοπική σύνδεση των νευρώνων με αυτούς των γειτονικών επιπέδων. Πολλά τέτοια επίπεδα εξάγουν αναπαραστάσεις μικρών κομματιών της εισόδου, που συνδυάζονται σε μεγαλύτερες περιοχές. 3) Οι νευρώνες ενός επιπέδου CNN εκπαιδεύονται για να εντοπίζουν τα ίδια ακριβώς χαρακτηριστικά. Αυτό συνεπάγεται ίδια παραμετροποίηση (βάρη, πόλωση) σε κάθε επίπεδο ξεχωριστά, κάτι που επιτρέπει τον εντοπισμό χαρακτηριστικών ανεξαρτήτως της θέση τους. Από αυτήν την ιδιότητα πηγάζει και το όνομα των CNN, καθώς ουσιαστικά σε κάθε επίπεδο πραγματοποιείται συνέλιξη της εισόδου με τα συναπτικά βάρη του επιπέδου. (αναφορά κυρίως στο οπτικό σύστημα) Τα μεγάλο πλεονέκτημα των CNN είναι πως χρειάζονται πολύ μικρή υπολογιστική ισχύ και ελάχιστη ανθρώπινη υποστήριξη κατά την εκπαίδευσή τους. Το ίδιο το δίκτυο είναι υπεύθυνο να μάθει τα φίλτρα, κάτι που στους περισσότερους αλγορίθμους γίνεται χειροκίνητα. Όπως ήταν φυσικό τα CNN χρησιμοποιήθηκαν ευρέως σε συστήματα αναγνώρισης εικόνας και βίντεο [18, 19], με ποσοστά επιτυχίας που παραμένουν κορυφαία.. Η ιδιότητα των CNN να λαμβάνουν υπόψιν τα συμφραζόμενα των λέξεων κατά τη μάθηση τα έκανε εύχρηστα και σε προβλήματα NLP, όπως ταξινόμηση, πρόβλεψη κ.α. [20, 21]. Αξιοσημείωτο είναι τέλος, πως πρώτη φορά πρόσφατα νίκησε υπολογιστής τον κορυφαίο επαγγελματία στο παιχνίδι του Go, με χρήση CNN (AlphaGo της Google) 2 δεκαετίες μετά τη νίκη του υπολογιστή DeepBlue στο σκάκι. [35]

36 Κεφάλαιο 3 - Auto-encoder Δίκτυα 3.1 Εισαγωγικά Πολλοί είναι οι παράγοντες που επηρεάζουν τη σωστή εκπαίδευση και λειτουργία των νευρωνικών δικτύων και ακόμη περισσότερο των βαθιών και auto-encoder δικτύων. Στο παρόν κεφάλαιο επιχειρείται μία σύντομη επισκόπηση μεθοδολογιών εκπαίδευσης δικτύων και γενικά όλων των παραμέτρων που επηρεάζουν την εκπαίδευση. Αναφέρεται επίσης συνοπτικά το θεωρητικό υπόβαθρο για τις αρχιτεκτονικές δικτύων που χρησιμοποιήθηκαν στην εργασία αυτή. 3.2 Μοντέλα Δικτύων και Εκπαίδευση Αλγόριθμoς οπισθοδιάδοσης του λάθους (Backpropagation of the error algorithm) Όπως προαναφέρθηκε, στόχος και έμπνευση του αλγορίθμου οπισθοδιάδοσης αποτέλεσε η εκπαίδευση των πολύ-επίπεδων νευρωνικών δικτύων. Αυτά έπρεπε να είναι σε θέση να προσεγγίσουν τις κατάλληλες εσωτερικές αναπαραστάσεις ώστε να μπορούν να «χαρτογραφήσουν» οποιαδήποτε αυθαίρετη είσοδο σε μία έξοδο [7]. Ο αλγόριθμος ανήκει στην κατηγορία της επιβλεπόμενης μάθησης, καθώς είναι απαραίτητη η γνώση επιθυμητής εξόδου για κάθε είσοδο. Εξαίρεση αυτού αποτελεί η χρήση του αλγορίθμου σε συγκεκριμένες εφαρμογές μη-επιβλεπόμενης μάθησης, όπως στα auto-encoders. Ο αλγόριθμος της οπισθοδιάδοσης βασίζεται αρκετά στη λογική του gradient descent. Αρχικά επιλέγεται μία συνάρτηση κόστους C, η οποία πρέπει να είναι παραγωγίσιμη. Ο στόχος του αλγόριθμου είναι ο υπολογισμός των συναπτικών βαρών του δικτύου, που ελαχιστοποιούν τη συνάρτηση αυτή. Θεωρούμε πως η συνάρτηση κόστους είναι ο μέσος όρος των επιμέρους συναρτήσεων κόστους όλων των νευρώνων. Θεωρούμε επίσης πως η συνάρτηση κόστους προκύπτει από τις εξόδους του δικτύου [8]. Η λειτουργία του αλγόριθμου χωρίζεται σε τέσσερα διακριτά μέρη : 1) Διάδοση : Αρχικά τροφοδοτείται το δίκτυο με τα δεδομένα εκπαίδευσης ώστε να ενεργοποιηθούν οι έξοδοι της διάδοσης. Στη συνέχεια εξάγονται οι διαφορές (έστω δ) μεταξύ στοχοθετημένων και πραγματικών τιμών εξόδου στους νευρώνες του τελευταίου επιπέδου (εξαιρούνται οι νευρώνες στο επίπεδο εισόδου). Έτσι, έστω για το νευρώνα B της εικόνας 8 προκύπτει η διαφορά : δ B = target output [36]

37 2) Ανανέωση Βαρών Εξόδου : Τα βάρη εξόδου ανανεώνονται σύμφωνα με την εξίσωση W AB + = W AB + δ Β output A, με W AB + το νέο βάρος και W AB το παλιό. 3) Υπολογισμός βαρών κρυμμένων επιπέδων : Αντίθετα με το επίπεδο εξόδου, στα κρυμμένα επίπεδα δεν υπάρχει κάποια γνωστή στοχοθετημένη τιμή εξόδου των νευρώνων και έτσι η διαφορά δ δε μπορεί να εξαχθεί άμεσα. Έτσι πραγματοποιείται οπισθοδιάδοση από το επίπεδο εξόδου. Οι διαφορές δ των νευρώνων εξόδου εισάγονται στους νευρώνες των κρυφών επιπέδων και από αυτούς λαμβάνονται οι αντίστοιχες διαφορές. Σχήμα 8: Υπολογισμός διαφορών των νευρώνων στο wake-sleep αλγόριθμο. Με βάση αυτήν τη λογική, θα ισχύει για το σχήμα : δ Α = δ Β W ab + δ C W ac 4) Προσαρμογή βαρών κρυφών επιπέδων : Παρόμοια με το δεύτερο βήμα, ανανεώνονται τα συναπτικά βάρη των κρυφών νευρώνων. Ο αλγόριθμος επαναλαμβάνεται μέχρι να ικανοποιηθούν οι προδιαγραφές του εκάστοτε προβλήματος. Συνήθως αυτό ισοδυναμεί με την πτώση των διαφορών δ στους νευρώνες κάτω από κάποια προκαθορισμένη τιμή. Επίσης, στο δεύτερο και τέταρτο βήμα, συνήθως χρησιμοποιείται το γινόμενο : λ(δ Β output A ), με το λ να αντιπροσωπεύει το learning rate του αλγορίθμου. Η τιμή του είναι ανάλογη της ταχύτητας και αντιστρόφως ανάλογη της ακρίβειας της μάθησης Wake-Sleep αλγόριθμος Ο αλγόριθμος wake-sleep ανήκει στον τομέα της μη-επιβλεπόμενης μάθησης και χρησιμοποιήθηκε στην εκπαίδευση νευρωνικών δικτύων πολλαπλών επιπέδων με εκατοντάδες νευρώνες σε κάθε επίπεδο [6]. Για την υλοποίηση του αλγορίθμου θεωρήθηκε πως τα επίπεδα εμπεριέχουν διαφορετικά χαρακτηριστικά των δεδομένων (representations of data), με τα πιο πάνω επίπεδα να αντιπροσωπεύουν αναπαραστάσεις δεδομένων [37]

38 κατωτέρων επιπέδων. Μεταξύ δύο επιπέδων θεωρούμε πως υπάρχει ένα βάρος αναγνώρισης (recognition weight) και ένα παραγωγής (generative weight), τα οποία εκπαιδεύονται ώστε να αναβαθμίσουν την αξιοπιστία του αλγορίθμου. Σχήμα 9: Τα Recognition και Generative weights του wake-sleep αλγορίθμου. Η εκπαίδευση του αλγορίθμου αποτελείται από δύο φάσεις. Τη φάση wake και τη φάση sleep. Wake phase : Οι νευρώνες σε αυτή τη φάση ενεργοποιούνται από τις συνδέσεις αναγνώρισης, ενώ τα βάρη παραγωγής τροποποιούνται ώστε να αυξάνεται η πιθανότητα πιστής αναπαραγωγής των χαρακτηριστικών εισόδου στο επόμενο επίπεδο. Sleep phase : Η διαδικασία αντιστρέφεται, με τις συνδέσεις παραγωγής να ενεργοποιούν τους νευρώνες. Τα βάρη αναγνώρισης εδώ προσαρμόζονται έτσι ώστε οι νευρώνες να αναπαράγουν τα σωστά χαρακτηριστικά της εισόδου στο προηγούμενο επίπεδο. Ο αλγόριθμος εμφάνισε αρκετά καλή απόδοση σε εφαρμογές όπως αναγνώριση χειρόγραφων ψηφίων, αλλά η εκπαίδευση του δικτύου απαιτούσε μεγάλο χρόνο, κάτι που έκανε το δίκτυο δύσχρηστο. Αποτέλεσε δε έμπνευση για μετέπειτα έρευνα Restricted Boltzmann Machines - Deep Belief Network Τα RBM, όπως παρουσιάστηκαν στο προηγούμενο κεφάλαιο, αποτελούνται από δύο επίπεδα, με το κρυφό επίπεδο να προσπαθεί να ανιχνεύσει χαρακτηριστικά των εισόδων του. Ένα σύνολο χαρακτηριστικών (πχ εικόνες, έγγραφα) μπορεί να μοντελοποιηθεί με ένα RBM, όπου στοχαστικά δυαδικά διανύσματα ενώνονται με στοχαστικούς δυαδικούς ανιχνευτές χαρακτηριστικών. Τα διανύσματα αντιστοιχούν στις φανερές μονάδες των RBM, [38]

39 γιατί η κατάστασή τους είναι φανερή, ενώ οι ανιχνευτές αντιστοιχούν στις κρυφές μονάδες. Μία κοινή διαμόρφωση (joint configuration) των κρυφών και φανερών μονάδων των RBM, έχει ενεργειακή συνάρτηση που δίνεται από τη σχέση: Ε(φ, κ) = ι είσοδος a i φ i j χαρακτηριστικά b j κ j φ i κ j w ij με φ i και κ j τις καταστάσεις της i εισόδου και j χαρακτηριστικού αντίστοιχα, a i και b j τις πολώσεις τους και w ij το μεταξύ τους συναπτικό βάρος. Το δίκτυο εξάγει, με βάση τη συνάρτηση αυτή, πιθανότητες αντιστοιχίας με οποιοδήποτε αποτέλεσμα (αντιστοιχία σε άλλες εικόνες στην προκειμένη). Για ένα δοσμένο αρχικό διάνυσμα εισόδου, η κατάσταση των νευρώνων του επιπέδου του ανιχνευτή τίθεται σε λογικό 1 με πιθανότητα: με σ(x) τη λογιστική συνάρτηση: p(κ j = 1 φ) = σ(b j + φ i w ij ) ι σ = 1/[1 + exp( x)] Αφού ρυθμιστούν οι καταστάσεις του κρυφού επιπέδου, τα δύο επίπεδα «συνομιλούν» (confabulate), αλλάζοντας αυτή τη φορά την κατάσταση των νευρώνων του φανερού επιπέδου σε 1, με πιθανότητα: p(φ i = 1 κ) = σ(b i + k j w ij ) j Με δοσμένο φ, η κατανομή των κρυφών μονάδων γίνεται εύκολα, κάτι που δεν ισχύει στην πράξη, οπότε καταφεύγουμε σε προσεγγιστικές μεθόδους. Η μάθηση στα RBM, γίνεται με βάση μία παραλλαγή του Maximum Likelihood learning, το Contrastive Divergence (CD) [15]. Οι ενεργοποιήσεις των κρυφών νευρώνων, p(κ j = 1 φ), εξαρτώνται μόνο από τις ενεργοποιήσεις των φανερών, ενώ το ίδιο ισχύει και αντίστροφα. Έτσι, επιτρέπεται Gibbs δειγματοληψία μεταξύ των επιπέδων και με επαναλαμβανόμενες δειγματοληψίες προσεγγίζονται οι εξαρτημένες πιθανότητες που μας ενδιαφέρουν. Με κανόνα μάθησης σε κάθε επανάληψη που δίνεται από τη σχέση: Δw ij = λ(< φ i κ j > 0 < φ i κ j > ), η ενεργειακή συνάρτηση Ε(φ, κ) έρχεται σε «θερμική ισορροπία» (thermal equilibrium). Αποδεικνύεται όμως, πως με λιγότερες επαναλήψεις (1 ως 20 περίπου) ανακτάται το επιθυμητό αποτέλεσμα και η παραπάνω σχέση γίνεται: Δw ij = λ(< φ i κ j > 0 < φ i κ j > k ), με < φ i κ j > k την κοινή συνάρτηση πιθανότητας του φανερού και κρυφού επιπέδου για την k επανάληψη και λ το learning rate. ι,j [39]

40 Σχήμα 10: Restricted Boltzmann Machine. Μη κατευθυνόμενες νευρωνικές συνάψεις μεταξύ κρυφού (h) και φανερού (v) επιπέδου Deep Boltzmann Machines Η εκπαίδευση του δικτύου είναι ίδια με αυτή των DBN, με μία διαφορά που εισήχθη για να διορθώσει το πρόβλημα διπλομέτρησης, που παρουσιάζεται με το συνδυασμό κανονικής και προς τα πίσω διάδοσης. Κατά την εκπαίδευση ενός RBM δύο επιπέδων, διπλασιάζονται οι είσοδοι και εξισώνονται τα αντίστοιχα βάρη του κατώτερου επιπέδου. Οι υπό συνθήκη κατανομές του κρυφού και φανερού επιπέδου δίνονται πλέον από: p(h 1 j = 1 v) = σ( W 1 ij v i + W 1 ij v i ) i p(v i = 1 h 1 ) = σ( W 1 ij h j ) Το αντίθετο γίνεται με το ανώτερο επίπεδο. Διπλασιάζονται οι έξοδοι με συμμετρικά βάρη και οι αντίστοιχες υπό συνθήκη κατανομές δίνονται από: j i p(h j 1 = 1 h 2 ) = σ( W jm 2 h m 2 m + W 2 2 jm h m ) m p(h 2 m = 1 h 1 ) = σ( W 2 1 jm h j ) Όταν τα δύο υποσυστήματα συνδυαστούν σε ένα ενιαίο σύστημα, η συνολική είσοδος στο πρώτο επίπεδο υποδιπλασιάζεται, κάτι που συνεπάγεται την υπό συνθήκη κατανομή: για το πρώτο επίπεδο. p(h 1 j = 1 v, h 2 ) = σ( W 1 ij v i + W 2 2 jm h m ) i Όταν εκπαιδεύεται με αυτόν τον τρόπο ένα δίκτυο RBM πολλών επιπέδων, η τροποποίηση του αλγορίθμου πραγματοποιείται μόνο για το πρώτο και τελευταίο επίπεδο. Για τα ενδιάμεσα επίπεδα αρκεί να υποδιπλασιαστούν τα βάρη και στις δύο κατευθύνσεις. Το δίκτυο που προκύπτει είναι ένα μη κατευθυνόμενο μοντέλο με συμμετρικά βάρη, δηλαδή ένα Deep Boltzmann machine. Το δίκτυο αυτό είναι σε θέση να αρχικοποιήσει τα βάρη σε [40] j m

41 ευαίσθητες τιμές και εγγυάται έναν πιο γρήγορο τρόπο προσεγγιστικής σύγκλισης σε συμπεράσματα, από ότι με τυχαία αρχικοποίηση βαρών Auto-encoders Τα auto-encoders (ΑΕ) πρωτοεμφανίστηκαν τη δεκαετία του 80 [7] σε μία προσπάθεια επίλυσης του προβλήματος «μη-επιβλεπόμενης οπισθοδιάδοσης» με χρήση των δεδομένων εισόδου για εκπαίδευση. Είναι απλά κυκλώματα μάθησης και έχουν ως στόχο την ανακατασκευή των εισόδων τους στις εξόδους, με την ελάχιστη δυνατή παραμόρφωση. Αυτό καθιστά τα auto-encoders μοντέλο μη-επιβλεπόμενης μάθησης. Η χρήση τους, που βρήκε άνθηση με τα RBM του Hinton, ξεκίνησε από εφαρμογές μείωσης διαστάσεων τεράστιων σετ δεδομένων, με στόχο την ανάκτηση κειμένου και εικόνας. Πλέον χρησιμοποιούνται ευρύτατα σε ποικίλους τομείς, από εφαρμογές στην ιατρική ως το χρηματιστήριο και την πρόβλεψη καιρού. Η πιο βασική μορφή ΑΕ είναι αυτή ενός feedforward νευρωνικού δικτύου, με ένα στάδιο εισόδου, ένα εξόδου και ένα ή περισσότερα κρυμμένα επίπεδα. Η γενική αυτή μορφή των ΑΕ παρουσιάζεται στο σχήμα 11. Η είσοδος υπόκειται σε μετασχηματισμούς και κωδικοποιείται στο διάνυσμα Ζ, ενώ με την αντίστροφη διαδικασία ανακτάται η ανακατασκευή της εισόδου. Δύο είναι οι κύριες διαφοροποιήσεις μεταξύ AE και MLPs. Στα ΑΕ ο αριθμός νευρώνων στο επίπεδο εξόδου είναι ίδιος με αυτόν στο επίπεδο εισόδου. Τα MLPs εκπαιδεύονται ώστε να προβλέπουν την τιμή εξόδου Υ με δοσμένες εισόδους Χ, ενώ τα AE, όπως προαναφέρθηκε, εκπαιδεύονται ώστε να να ανακατασκευάζουν τις εισόδους Χ. Σχήμα 11: Η γενική μορφή ενός ΑΕ. Ένα ΑΕ αποτελείται από δύο μέρη, τον κωδικοποιητή (encoder) και τον αποκωδικοποιητή (decoder). Τα μέρη αυτά ουσιαστικά αντιπροσωπεύουν μετασχηματισμούς έστω φ και ψ αντίστοιχα έτσι ώστε : [41]

42 φ : μετασχηματίζει την είσοδο Χ στο διάνυσμα F ψ : μετασχηματίζει το διάνυσμα F στην έξοδο Χ Το διάνυσμα F συνήθως έχει μικρότερες διαστάσεις από αυτό της εισόδου και έτσι αντιπροσωπεύει μία συμπιεσμένη μορφή της εισόδου. Σε δίκτυο με περισσότερους κρυφούς νευρώνες από ότι νευρώνες εισόδου, υπάρχει μία ιδανική λύση με μηδενικό λάθος ανακατασκευής. Οι νευρώνες συλλαμβάνουν όλες τις πληροφορίες που παρέχονται στην είσοδο και απλά την ανακατασκευάζουν με μηδενική σχεδόν απόκλιση ή σε άλλες περιστάσεις, μοντελοποιούν το θόρυβο που υπάρχει στα δεδομένα εισόδου. Υπάρχουν περιπτώσεις όμως που συμβαίνει το αντίθετο, καθώς πειράματα έδειξαν πως με αυτόν τον τρόπο μπορούν να εξαχθούν επιπλέον χρήσιμα χαρακτηριστικά από τα δεδομένα [5, 10, 11]. Πρόκειται για περιπτώσεις που επιβάλλονται περιορισμοί στο πρόβλημα, όπως περιπτώσεις κανονικοποίησης (ενθάρρυνση sparsity σε hidden layer, εισαγωγή θορύβου στην είσοδο κ.α.). Σε τέτοιες περιπτώσεις, το δίκτυο συνήθως γίνεται πιο εύρωστο σε μικρές αλλαγές της εισόδου του, επιτυγχάνοντας ταυτόχρονα ψηλά επίπεδα αναπαράστασής της. Η μεγαλύτερη διάσταση του κρυφού επιπέδου μπορεί να είναι και αποτέλεσμα της υπέρθεσης δύο διαφορετικών δικτύων, που συνδυάζουν τις αρχιτεκτονικές τους ( ν 1 p 1 και ν 1 p 2 δίνουν ν 1 p 1 + p 2 ), συνδυάζοντας ως αποτέλεσμα και διαφορετικές αναπαραστάσεις των δεδομένων. Το κύριο πρόβλημα κατά την δημιουργία ενός δικτύου AE έγκειται στο να βρεθούν οι κατάλληλοι μετασχηματισμοί φ και ψ (κατάλληλα συναπτικά βάρη), ώστε να επιτευχθεί ελάχιστη παραμόρφωση ανακατασκευής (Reconstruction Error - RE) πάνω σε δεδομένα εκπαίδευσης (training data) [5, 11]. J AE (θ) = L(x (t), ψ θ (φ θ (x (t) ))), t με x (t) τα δεδομένα εκπαίδευσης. Έτσι μπορούμε να πούμε πως η ελαχιστοποίηση του RE συνεπάγεται μεγιστοποίηση του κατώτατου επιπέδου της κοινής πληροφορίας μεταξύ εισόδου Χ και αναπαράστασης Υ [23]. Βάση αυτής της λογικής προέκυψαν πολλά διαφορετικά είδη AE. Πολλοί είναι οι παράγοντες που διαφοροποιούν τα είδη αυτά ανάλογα με το πρόβλημα, όπως διαφορετικές συναρτήσεις ενεργοποίησης και κόστους, διαφορετική είσοδος, αριθμός νευρώνων και νευρωνικών επιπέδων κ.α. Αξιοσημείωτο είναι το γεγονός πως ένα autoencoder δίκτυο, με ένα κρυμμένο επίπεδο με γραμμική συνάρτηση ενεργοποίησης, επιδρά στα δεδομένα σχεδόν όπως το Principal Component Analysis. Μετά την εκπαίδευση, τα Κ βάρη του κρυφού επιπέδου σχηματίζουν ένα Κ-διάστατο χώρο, αυτόν των Κ κύριων συνιστωσών. Η κύρια μεταξύ τους διαφορά είναι, πως με το «γραμμικό» αυτό autoencoder οι άξονες δεν είναι απαραίτητα κάθετοι μεταξύ τους Regularized Autoencoders [42]

43 Η κανονικοποίηση γενικά έχει ως στόχο να κάνει την αναπαράσταση των δεδομένων εισόδου ανεπηρέαστη από τις αλλαγές της εισόδου [5]. Μία καλή αναπαράσταση μπορεί να ληφθεί εύρωστα από μία ενθόρυβη είσοδο και αυτό οδηγεί στην ανάκτηση της αντίστοιχης «καθαρής» εισόδου. Ακολουθώντας αυτό το μοτίβο, δημιουργήθηκαν τα regularized AE, με πιο αντιπροσωπευτικά δείγματα αυτά των contractive, denoising και sparse AE Sparse Auto-encoders Τα sparse auto-encoders (SAE) [47], όπως προαναφέρθηκε, υπάγονται στην κατηγορία των regularized AE. Η επιπλέον λειτουργία τους από τα παραδοσιακά ΑΕ είναι πως τα SAE ενθαρρύνουν τα αραιά σετ δεδομένων, προσθέτοντας έναν περιορισμό στη συνάρτηση κόστους. Ο περιορισμός αυτός είναι μία συνάρτηση του μέσου όρου των τιμών ενεργοποίησης των νευρώνων και ορίζεται ως : ρ i = 1 n n z (1) i (x j ) j=1 n = 1 n h(w i(1) xj b i (1) ), με n τον αριθμό των παραδειγμάτων του σετ δεδομένων, x j το j παράδειγμα, h τη συνάρτηση ενεργοποίησης, και ο εκθέτης (1) να αντιστοιχεί στο επίπεδο υπό μελέτη. Με την προσθήκη αυτού του όρου στη συνάρτηση κόστους του δικτύου, το δίκτυο αναγκάζεται να μάθει μία αναπαράσταση του dataset, στην οποία ο κάθε νευρώνας ανταποκρίνεται σε χαρακτηριστικά που βρίσκονται σε μικρό ποσοστό του σετ εκπαίδευσης. Ο περιορισμός που επιβάλουν τα SAE στη συνάρτηση κόστους, πρέπει να παίρνει μεγάλες τιμές όταν το ρ i αποκλίνει σημαντικά από το επιθυμητό ρ i και αντίθετα μικρές τιμές για μικρή απόκλιση. Έτσι η ελαχιστοποίηση της συνάρτησης κόστους, ελαχιστοποιεί και τον επιπλέον όρο, κάνοντας τα ρ i και ρ i να βρίσκονται κοντά μεταξύ τους. Ο sparsity όρος που συχνά χρησιμοποιείται πετυχημένα σε εφαρμογές NLP είναι αυτός που προκύπτει από τη συνάρτηση Kullback-Leibler divergence. Η συνάρτηση έχει μορφή : D i=1 D Ω sparsity = KL(ρ ρ i) = ρ log ( ρ ) + (1 ρ)log ( 1 ρ ) ρ i 1 ρ i i=1 και ουσιαστικά μετράει πόσο διαφορετικές είναι δύο κατανομές. Στην προκειμένη περίπτωση, παίρνει τιμή μηδέν για ίδια ρ και ρ i, ενώ ανάλογα με την απόκλιση τους μεγαλώνει και η τιμή της συνάρτησης. j= Denoising Autoencoders (DAE) Ένα άλλο είδος κανονικοποιημένων AE είναι αυτό των denoising autoencoder (DAE). Τα DAE προσπαθούν να μάθουν χαρακτηριστικά της δομής της κατανομής εισόδου, προκειμένου να αναιρεθεί η επίδραση θορύβου [23,24]. Στα DAE, αντί να περιοριστεί η αναπαράσταση των [43]

44 δεδομένων, αλλάζει το κριτήριο ανακατασκευής σε ένα πιο δύσκολο και ενδιαφέρον πρόβλημα: την απομάκρυνση θορύβου από ενθόρυβες εισόδους. Τα παραδοσιακά ΑΕ προσπαθούν να μεγιστοποιήσουν το κατώτατο επίπεδο κοινής πληροφορίας μεταξύ εισόδου Χ και αναπαράστασης Υ. Τα DAE αν και έχουν τον ίδιο στόχο, τον προσεγγίζουν με το να εφαρμόζουν ένα δίκτυο αποφάσεων (deterministic mapping) σε μία ενθόρυβη είσοδο. Αποτέλεσμα αυτού είναι η εκμάθηση ενός δικτύου που εξάγει χαρακτηριστικά χρήσιμα για απομάκρυνση θορύβου. Εξαιτίας των αλληλεξαρτήσεων των δεδομένων σε κατανομές υψηλών διαστάσεων, ανακτώνται οι τιμές των ενθόρυβων στοιχείων. Όπως και στα DBN, έτσι και τα DAE μπορούν να εκπαιδευτούν επίπεδο προς επίπεδο. Η ένωση των επιπέδων δίνει ένα δίκτυο stacked denoising AE. Αρχικά με μία στοχαστική διαδικασία προστίθεται θόρυβος στην είσοδο (x x ) του κάθε επιπέδου. Η ενθόρυβη πλέον είσοδος x οδηγείται, όπως και στα παραδοσιακά AE, σε μία κρυφή αναπαράσταση y = f θ (x ) = s(wx + b), από όπου ανακατασκευάζουμε το z = gf θ (y), με ζητούμενο το ελάχιστο δυνατό σφάλμα ανακατασκευής. Αφού το επίπεδο εκπαιδευτεί, η έξοδός του τροφοδοτεί το επόμενο επίπεδο προς εκπαίδευση. Με την ολοκλήρωση του pre-training των επιμέρους επιπέδων, χρησιμοποιείται για fine-tuning μία επιβλεπόμενη μέθοδος εκπαίδευσης, όπως αυτή των παραδοσιακών MLPs. Τα DAE κατάφεραν σε αρκετές περιπτώσεις να ξεπεράσουν την απόδοση ΑΕ βασισμένων σε RBMs και τράβηξαν το επιστημονικό ενδιαφέρον. Προέκυψαν έτσι διάφορες παραλλαγές του μοντέλου με στόχο την ενίσχυσή της απόδοσής του, όπως αυτή του Chen με τα marginalized DAE [25]. 3.3 Παράμετροι Νευρωνικών Δικτύων Η εκπαίδευση βαθιών νευρωνικών δικτύων είναι από μόνο του ένα δύσκολο εγχείρημα. Υπάρχει πληθώρα παραμέτρων που παίζουν μικρό ή μεγάλο ρόλο κατά την εκπαίδευση. Σε αυτό το σημείο παρουσιάζονται κάποιες από τις παραμέτρους αυτές, που χρησιμοποιήθηκαν στα πλαίσια της εργασίας. Εξετάζονται επίσης συνοπτικά κάποιοι σύγχρονοι αλγόριθμοι ανανέωσης των βαρών καθώς και οι παραλλαγές του gradient descent που χρησιμοποιήθηκαν Learning Rate To learning rate (λ) αποτελεί μία από τις πιο σημαντικές παραμέτρους κατά την εκπαίδευση νευρωνικών δικτύων. Η λειτουργία που επιτελεί είναι ο έλεγχος των βαρών και πολώσεων στις συνάψεις των νευρώνων, κατά τη διάρκεια της εκπαίδευσης. Όπως είδαμε στο μοντέλο του perceptron, η ανανέωση των βαρών σε κάθε επανάληψη ανανεώνεται με την εξίσωση: [44]

45 θ(t + 1) = θ(t) λ θ J(θ). Από αυτήν φαίνεται πως το λ αντιπροσωπεύει ουσιαστικά το ρυθμό εκπαίδευσης του δικτύου. Μεγάλες τιμές θα οδηγήσουν γρήγορα σε σύγκλιση της εκπαίδευσης, αλλά είναι πιθανό να μη μπορέσουν να εντοπίσουν το ιδανικό σημείο σύγκλισης και έτσι το δίκτυο καταλήγει σε «ταλαντώσεις» των τιμών των βαρών γύρω από το σημείο σύγκλισης. Μικρές τιμές, αντίθετα, κάνουν το δίκτυο αργό στην εκμάθηση και υπάρχει κίνδυνος το τελευταίο να μην προλάβει να συγκλίνει, εάν το learning rate είναι υπερβολικά μικρό. Τυπικές τιμές που παίρνει βρίσκονται στο διάστημα [10 6, 0.3]. Αρκετές φορές όμως η αρχική τιμή του αλλάζει σε μικρότερη τιμή μετά από κάποιον αριθμό επαναλήψεων εκπαίδευσης, ώστε να γίνει πιο εύρωστο το σύστημα. Σε κάποιες άλλες περιπτώσεις, ως learning rate τίθεται κάποια μη γραμμική, φθίνουσα συνάρτηση, όπως e x (x ο αριθμός επαναλήψεων) Συνάρτηση Ενεργοποίησης (Activation Function) H συνάρτηση ενεργοποίησης ορίζει, κατά τη διάρκεια της εκπαίδευσης ενός νευρωνικού δικτύου, τη μορφή της εξόδου των νευρώνων ενός επιπέδου, με βάση ένα σετ εισόδων σε αυτό. Η συνάρτηση που χρησιμοποιήθηκε αρχικά για αυτό το σκοπό, ήταν η βηματική. Με την έλευση του backpropagation αλγορίθμου όμως, τη βηματική αντικατέστησαν άλλες παραγωγίσιμες συναρτήσεις. Παρακάτω παρουσιάζονται οι πιο βασικές από τις συναρτήσεις ενεργοποίησης. Logistic (Soft Step) H λογιστική συνάρτηση χρησιμοποιείται συχνά στα νευρωνικά δίκτυα για τη μη γραμμικότητα που εισάγει στο μοντέλο και για τον περιορισμό των εξόδων στο διάστημα [0, 1]. Η πιο συνηθισμένη μορφή της εξίσωσης είναι η: με παράγωγο: 1 f(x) = 1 + e x f (x) = f(x)(1 f(x)) TanH Μία άλλη κοινή επιλογή για συνάρτηση ενεργοποίησης, είναι αυτή της υπερβολικής εφαπτομένης ή tanh. Αυτή αποτελεί ουσιαστικά μία ανακλιμάκωση της λογιστικής συνάρτησης και δίνει τιμές εξόδου στους νευρώνες στο εύρος (-1,1). Η συνάρτηση δίνεται από την εξίσωση : [45]

46 με παράγωγο την : f(x) = tanh(x) = e z e z e z + e z f (x) = 1 (f(x)) 2 Σχήμα 12: Οι logistic και tanh activation functions αντίστοιχα. Softmax Η συνάρτηση softmax αποτελεί μία γενίκευση της λογιστικής συνάρτησης. Η λειτουργία της είναι να μετασχηματίζει ένα Κ-διάστατο διάνυσμα z, με αυθαίρετες πραγματικές τιμές, σε ένα αντίστοιχο διάνυσμα, Κ διαστάσεων, με πραγματικές τιμές στο [0, 1], που αθροίζονται στη μονάδα. Η συνάρτηση δίνεται από τον τύπο : σ(z) j = e z j K e z k k=1 ενώ το σχήμα της είναι ίδιο με αυτό της logistic. με j = 1,, K, Η συνάρτηση χρησιμοποιείται συνήθως στα visible layers των νευρωνικών δικτύων (είσοδο, έξοδο) και ιδιαίτερα σε δίκτυα που χρησιμοποιούνται για classification. Η λειτουργία που ουσιαστικά επιτελεί, είναι να μετατρέπει τα δεδομένα εισόδου σε κάτι αντίστοιχο με πιθανότητες εμφάνισης του κάθε όρου. Rectified Linear και Leaky Rectified Linear Η rectified linear ή relu συνάρτηση ενεργοποίησης συνδυάζει ουσιαστικά δύο γραμμικές συναρτήσεις και διευκολύνει έτσι αρκετά την ταχύτητα υπολογισμού των gradients και κατά συνέπεια της εκπαίδευσης. Από το 2015 και μετά αντικατέστησε σχεδόν εξολοκλήρου τις άλλες συναρτήσεις ενεργοποίησης, μετά από μία έρευνά των G. Hinton, Y. LeCun kai Y. Bengio [57]. [46]

47 Σχήμα 13: Rectified linear (ReLU) συνάρτηση ενεργοποίησης. Το παραπάνω σχήμα δίνει τη μορφή και την εξίσωση της εξίσωσης. Η συνάρτηση μηδενίζει την οποιαδήποτε αρνητική είσοδο και αφήνει αναλλοίωτη οποιαδήποτε θετική. Η παραλλαγή της συνάρτησης, Leaky Relu, δεν αποκόπτει τελείως τις αρνητικές εισόδους της, αλλά τις μειώνει αρκετά. Το δίκτυο έτσι αναγκάζεται να χρησιμοποιεί όλους τους νευρώνες του περισσότερο, με αποτέλεσμα να μην εξαρτάται αποκλειστικά από λίγους συγκεκριμένους νευρώνες που ενεργοποιούνται πιο συχνά. Η συνάρτηση δίνεται από τη σχέση : z για z 0 R(z) = { 0.01z για z < Συνάρτηση Κόστους (Loss Function) Όπως είδαμε, ο αλγόριθμος οπισθοδιάδοσης του λάθους προσπαθεί να ελαχιστοποιήσει μία συνάρτηση κόστους, σε σχέση με τα βάρη των νευρώνων. Η συνάρτηση κόστους αυτή, είναι ουσιαστικά ένα μέτρο του «πόσο καλά» ανταποκρίνεται ένα νευρωνικό δίκτυο, δεδομένου του training set και της αναμενόμενης εξόδου του δικτύου. Επηρεάζεται από μεταβλητές όπως τα βάρη και τις πολώσεις των συνάψεων και είναι συνήθως της μορφής: C(W, B, S r, E r ) όπου W τα βάρη του δικτύου, B οι πολώσεις, S r η είσοδος ενός δείγμα εκπαίδευσης (training sample) και E r η επιθυμητή έξοδος για αυτό το δείγμα. Στον αλγόριθμο backpropagation, η συνάρτηση κόστους χρησιμοποιείται για να υπολογίσει το error του επιπέδου εξόδου, δ L με βάση την εξίσωση: δ j L = C a j L σ (z j i ) [47]

48 όπου j ο νευρώνας, C η συνάρτηση κόστους, a j L την τιμή ενεργοποίησης του j νευρώνα στο L επίπεδο, σ το activation function και z j i την τιμή ενεργοποίησης πριν την εφαρμογή της activation function. Με βάση τα παραπάνω, μία συνάρτηση κόστους πρέπει να πληροί δύο ιδιότητες: 1. Να μπορεί να γραφεί σαν μέσος όρος όλων των επιμέρους συναρτήσεων κόστους για κάθε δείγμα εκπαίδευσης, ώστε να επιτρέπεται ο υπολογισμός του gradient, ξεχωριστά για κάθε δείγμα και να μπορεί να εφαρμοστεί ο αλγόριθμος. C = 1 n C x x 2. Η συνάρτηση κόστους πρέπει να είναι ανεξάρτητη από οποιεσδήποτε τιμές ενεργοποίησης του νευρωνικού δικτύου, εκτός από αυτές τις εξόδου (τελευταίου επιπέδου). Παρακάτω παρουσιάζονται οι δύο από τις πιο βασικές συναρτήσεις κόστους. Cross Entropy Τα Generative models, στα οποία ανήκουν τα DBN, προσπαθούν να βελτιώσουν την ανακατασκευή των εισόδων του κάθε επιπέδου, σε σχέση με την ενεργειακή κατάσταση του συστήματος. Έτσι όπως στα περισσότερα επιβλεπόμενα classification προβλήματα, το cross entropy αποτελεί μία πολύ αποδοτική λύση. Για κάθε νευρώνα με αντίστοιχες εισόδους, βάρη και πόλωση (σχήμα), η έξοδος δίνεται από : a = σ(z), με z = w j x j + b j Η συνάρτηση cross entropy για αυτόν τον νευρώνα δίνεται από : C = 1 [y ln a + (1 y) ln(1 a)], n x με n το συνολικό αριθμό όρων του σετ εκπαίδευσης, με άθροισμα για όλες τις εισόδους x και y την επιθυμητή έξοδο. Η γενίκευσή της για κάθε επίπεδο νευρώνων, γίνεται : C = 1 n [y j ln a L j + (1 y j ) ln(1 a L j )], x αυτή τη φορά αθροίζοντας για όλους τους νευρώνες j του επιπέδου L. j [48]

49 Σχήμα 14: Στοιχειώδης νευρώνας με εισόδους x, βάρη w συνάρτηση ενεργοποίησης σ και έξοδο α. Mean Squared Error (MSE) Το MSE είναι μία από τις πιο ευρέως χρησιμοποιούμενες συναρτήσεις κόστους σε προβλήματα παλινδρόμησης και ταξινόμησης. Οι τιμές που παίρνει η συνάρτηση με κάθε επανάληψη της οπισθοδιάδοσης του λάθους, αποτελούν ουσιαστικά ένα μέτρο του πόσο καλά ανταποκρίνεται το δίκτυο στο σετ δεδομένων που αποτελεί την είσοδό του. Δίνεται από τη συνάρτηση C = 1 (επιθυμητή έξοδος(i) έξοδος του μοντέλου(i)) 2, n i δηλαδή το μέσο όρο των τετραγώνων των σφαλμάτων, με το σφάλμα να δίνεται από τη διαφορά της επιθυμητής μείον την πραγματική έξοδο του μοντέλου Gradient Optimization Algorithm Stochastic Gradient Descent Όπως παρουσιάστηκε στο δεύτερο κεφάλαιο, ο αλγόριθμος backpropagation βασίζεται κατά κύριο λόγο στο gradient descent. Το gradient descent αποτελεί έναν τρόπο ελαχιστοποίησης μία συνάρτησης J(θ), που έχει παραμέτρους αυτές του νευρωνικού δικτύου θ R d. Η λειτουργία αυτή επιτυγχάνεται με την ανανέωση των παραμέτρων, στην αρνητική κατεύθυνση της κλίσης θ J(θ). To learning rate, όπως είδαμε, είναι αυτό που αποφασίζει το μέγεθος των βημάτων που γίνεται προς την κατεύθυνση που ακολουθείται. [49]

50 Το αρχικό μοντέλο του gradient descent (GD) υπολογίζει την κλίση της συνάρτησης κόστους σε σχέση με τις παραμέτρους θ για ολόκληρο το σετ δεδομένων και ανανεώνει τα βάρη με βάση την κλίση αυτή : θ(t + 1) = θ(t) λ θ J(θ). Βάση αυτού όμως πρέπει να υπολογιστούν οι κλίσεις ολόκληρου του dataset για να πραγματοποιηθεί μία μοναδική ανανέωση. Αυτό συνεπάγεται πολύ μεγάλη καθυστέρηση εκπαίδευσης και τεράστιο κόστος μνήμης, κάτι που καθιστά τον GD μη κατάλληλο για μεγάλα dataset. Η αντιμετώπιση του προβλήματος αυτού πραγματοποιήθηκε με χρήση του Stochastic Gradient Descent (SGD). Αυτό ανανεώνει τις παραμέτρους για κάθε δείγμα εκπαίδευσης x (i) και label y (i) : θ(t + 1) = θ(t) λ θ J(θ; x (i) ; y (i) ). Σε αντίθεση λοιπόν με το GD που πραγματοποιεί περιττούς υπολογισμούς για μεγάλα dataset, καθώς επανυπολογίζει τις κλίσεις για παρόμοια παραδείγματα πριν την ανανέωση παραμέτρων, το SGD πραγματοποιεί μία ανανέωση κάθε φορά. Είναι έτσι συνήθως κατά πολύ πιο γρήγορο κατά την εκπαίδευση του δικτύου. Ένα άλλο πλεονέκτημα που οδήγησε στη χρήση του SGD είναι πως πραγματοποιεί συχνές ανανεώσεις παραμέτρων, με μεγάλη διασπορά, κάτι που προκαλεί διακυμάνσεις στη συνάρτηση κόστους. Το γεγονός αυτό με τη σειρά του, επιτρέπει στη συνάρτηση να «ξεφύγει» από το local minima που έχει καταλήξει και να μεταβεί σε ένα άλλο, πιθανόν καλύτερο. Σχήμα 15: Gradient descent. Η κατεύθυνση κίνησης είναι η αρνητική κλίση ως προς τα x_i. Με line search αποφασίζεται η απόσταση κίνησης Conjugate Gradient Descent [50]

51 Οι αλγόριθμοι που βασίζονται στο Gradient Descent τροποποιούν τα βάρη σύμφωνα με την κατεύθυνση που υποδεικνύει το steepest descent. Αυτή είναι και η κατεύθυνση που μεγιστοποιεί την απόδοση του συστήματος ελαχιστοποιεί τη συνάρτηση κόστους. Έχει αποδειχθεί όμως, πως αυτή η προσέγγιση δε συνεπάγεται απαραίτητα την πιο γρήγορη σύγκλιση. Πιο αναλυτικά, η ανανέωση των βαρών με βάση το GD μπορεί να θεωρηθεί πως πραγματοποιείται σε δύο βήματα. Αρχικά αποφασίζεται η κατεύθυνση και στη συνέχεια το μέγεθος του βήματος προς την κατεύθυνση αυτή. Η διαδικασία αναφέρεται ως line search και αποτελεί βάση αλγορίθμων, όπως θα παρουσιαστεί στο κεφάλαιο 3.3.7, πιο ισχυρών από τον αυθεντικό GD. Δύο είναι τα σημαντικότερα μειονεκτήματα του GD. Αρχικά, η λειτουργία του περιλαμβάνει τη ρύθμιση του hyper parameter learning rate από το χρήστη, γεγονός που καθιστά το σύστημα λιγότερο εύρωστο. Το δεύτερο μειονέκτημα είναι το γεγονός ότι ο αλγόριθμος δεν εγγυάται πως δε θα πραγματοποιήσει έρευνα προς κατευθύνσεις που έχει ελέγξει σε προηγούμενα βήματα. Αυτό σημαίνει πως σε κάθε επόμενο βήμα του αλγορίθμου, ελέγχονται όλες οι δυνατές κατευθύνσεις, ώστε να βρεθεί η βέλτιστη. Κατά συνέπεια, χάνονται άσκοπα υπολογιστικοί πόροι και το σύστημα συνήθως αργεί να συγκλίνει. Ο CG αλγόριθμος αρχίζει όπως και ο GD με την εύρεση της κατεύθυνσης καθόδου στην πρώτη επανάληψη. Στη συνέχεια πραγματοποιείται line search για την εύρεση της ιδανικής απόστασης προς την κατεύθυνση του πρώτου βήματος. Η επόμενη έρευνα πραγματοποιείται έτσι ώστε να είναι συζευγμένη με την προηγούμενη και έτσι σχηματίζεται η γενική αρχή του αλγορίθμου, που είναι να συνδυάζει την τελική κατεύθυνση καθόδου με βάση τις προηγούμενες κατευθύνσεις [54]. Ουσιαστικά σχηματίζεται ένα σύστημα κλίσεων (conjugate system) p 0,, p N, βάση για το διανυσματικό χώρο R N και το ζητούμενο ελάχιστο δίνεται σα γραμμικός συνδυασμός των διανυσμάτων-αξόνων του συστήματος. Ο CG αλγόριθμος ακολουθεί τα παρακάτω βήματα [3] : α) Επιλογή ενός αρχικού διανύσματος βαρών w 0 και αρχική κατεύθυνση την ίδια με αυτήν του GD, δηλαδή την κλίση της συνάρτησης κόστους : p 0 = r 0 = E(w 0 ) β) Πραγματοποιείται ένα line search, ώστε να οριστεί η βέλτιστη απόσταση a n, που θα κινηθούμε κατά την κατεύθυνση p n. w n+1 = w n + a n p n γ) Ορισμός νέας κατεύθυνσης, συζευγμένη με τις προηγούμενες. Συνδυασμός του steepest descent με το προηγούμενο κριτήριο. p n = r n + β n 1 p n 1. Ο αλγόριθμος τερματίζει εάν η κλίση του steepest descent (r n ) γίνει μικρότερη από μία σταθερά (συνήθως της τάξης του 10 6 ). Οι διάφορες παραλλαγές του αλγορίθμου υπολογίζουν διαφορετικά το διάνυσμα a n και τη σταθερά β. [51]

52 Στην εργασία χρησιμοποιήθηκε και η παραλλαγή scaled conjugate gradient (SCG) [53]. Η κύρια διαφορά του SCG από τις άλλες παραλλαγές του αλγορίθμου, είναι πως ο SCG δεν πραγματοποιεί line search για εύρεση βήματος κατά την steepest descent κατεύθυνση και ουσιαστικά δεν εμπεριέχει κανένα hyper-parameter που απαιτείται από το χρήστη. Αντιθέτως, με βάση κάποιες αρχικές εκτιμήσεις υπολογίζει μόνος του τις κατευθύνσεις και μεγέθη βημάτων προς αυτές και εγγυάται σύγκλιση σε κάτω από Ν επαναλήψεις, με Ν τη διάσταση του διανύσματος εισόδου Momentum Μία άλλη τεχνική που μπορεί να βοηθήσει το δίκτυο να ξεφύγει από τα τοπικά ελάχιστα, είναι η χρήση ενός όρου momentum. Αυτό, πιθανότατα να αποτελεί την πιο δημοφιλή «επέκταση» του backpropagation αλγορίθμου. Με momentum m, μία ανανέωση βαρών w, σε δοσμένο χρόνο t, learning rate λ και cost function C γίνεται: Δw(t) = λ w J(w) + mδw(t 1) Το momentum απλά προσθέτει ένα κλάσμα m της προηγούμενης ανανέωσης βαρών, στην επόμενη. Αν τα διανύσματα ανανέωσης δείχνουν προς την ίδια κατεύθυνση, η διαδικασία εκπαίδευσης επιταχύνεται ραγδαία, καθώς το momentum δίνει ώθηση προς τη σωστή κατεύθυνση. Αν αντίθετα τα διανύσματα αλλάζουν διεύθυνση διαρκώς, το momentum εξομαλύνει τις μεταβάσεις. Στο παρακάτω σχήμα φαίνεται η επίδραση του momentum με εφαρμογή στον αλγόριθμο Stochastic Gradient Descent (SGD). Αριστερά, ο αλγόριθμος δε χρησιμοποιεί momentum και η σύγκλιση πραγματοποιείται με σταθερά βήματα. Με χρήση της υπερ-παραμέτρου, η εκπαίδευση συγκλίνει με πολύ μεγαλύτερο ρυθμό. Σχήμα 16: Επίδραση momentum στην εκπαίδευση Update Algorithm Παρόλη τη διευκόλυνση που παρέχει το momentum κατά την εκπαίδευση, το gradient descent μπορεί να παρομοιαστεί με μία μπάλα που ακολουθεί τυφλά την κλίση ενός λόφου, κάτι που δεν είναι ικανοποιητικό. Θα ήταν επιθυμητό για τον αλγόριθμο, να είχε μία αίσθηση της κατεύθυνσής του, ώστε στο παράδειγμα με τη μπάλα, αυτή να φρενάρει πριν τις στροφές [52]

53 και να εξομαλύνει την πορεία της. Για την επίλυση του προβλήματος υπάρχει πληθώρα μεθόδων με βασικότερη αυτή του Adagrad και των παραλλαγών του. To Adagrad είναι ένας αλγόριθμος βελτιστοποίησης των gradient based αλγορίθμων και η κύρια λειτουργία του είναι να προσαρμόζει το learning rate στις παραμέτρους, πραγματοποιώντας μεγαλύτερα updates για παραμέτρους που εμφανίζονται σπάνια και μικρότερα updates για αυτές που εμφανίζονται συχνά. Η προηγούμενη εξίσωση ανανέωσης του gradient descent με g t,i = θ J(θ ι ) : μετασχηματίζεται σε: θ(t + 1) = θ(t) λg t θ i (t + 1) = θ i (t) λ G t,ii + e g t,i. με G t,ii R dxd διαγώνιος πίνακας με κάθε στοιχείο (i, i) να αποτελεί το σύνολο των τετραγώνων των κλίσεων σε σχέση με την παράμετρο θ i μέχρι το χρονικό διάστημα t. Το e αποτελεί έναν όρο εξομάλυνσης, που αποτρέπει τη διαίρεση με το μηδέν. Οι ιδιότητές του να ευνοεί τις σπάνια χρησιμοποιούμενες παραμέτρους, καθώς και η εξάλειψη της ανάγκης ρύθμισης του learning rate (πέραν της αρχικοποίησης, πραγματοποιείται αυτόματα), κάνουν το Adagrad να εφαρμόζεται με μεγάλη επιτυχία σε αραιά σετ δεδομένων. Κύριο μειονέκτημά του αποτελεί η συνεχής αύξηση του παρονομαστή με κάθε επανάληψη ανανέωσης, με αποτέλεσμα το learning rate να φθίνει ανάλογα και το δίκτυο από ένα σημείο και μετά να μη μπορεί να μάθει. Το μειονέκτημα αυτό καλύπτουν τρεις μεθοδολογίες που τροποποιούν τον Adagrad, οι RMSProp, Adam και Adadelta. Από αυτούς χρησιμοποιήθηκαν οι δύο τελευταίοι, οπότε και παρουσιάζονται παρακάτω Adadelta O Adadelta 7 είναι μία επέκταση του Adagrad με σκοπό να μειώσει την επιθετικότητα του τελευταίου, ως προς τη συνεχή μείωση του learning rate. Αντί να συσσωρεύει όλες τις προηγούμενες κλίσεις, περιορίζει το περιθώριο των παρελθοντικών κλίσεων σε ένα προκαθορισμένο μέγεθος w. Το άθροισμα των κλίσεων ορίζεται σε κάθε επανάληψη, ως ένα φθίνων μέσος όρος όλων των κλίσεων που προηγήθηκαν. Έτσι, ο τρέχων μέσος όρος E[g 2 ] t στο βήμα t, με εξαρτάται μόνο από τον προηγούμενο μέσο όρο και την τρέχουσα κλίση: E[g 2 ] t = γe[g 2 ] t 1 + (1 γ)g t 2 με γ έναν όρο που λειτουργεί παρόμοια με το momentum (τίθεται συνήθως σε παρόμοιες τιμές, κοντά στο 0.9). Με εφαρμογή στον προηγούμενο τύπο ανανέωσης του Adagrad, προκύπτει: 7 [53]

54 λ θ i (t + 1) = θ i (t) E[g 2 ] t + e g t,i O παρονομαστής της εξίσωσης είναι όμως πλέον το root mean squared (RMS) error κριτήριο της κλίσης και το κλάσμα γίνεται: λ Δθ t =. RMS[g] t Ο όρος ανανέωσης όμως δεν αντιστοιχεί στις ίδιες μονάδες με τις παραμέτρους, οπότε ορίζεται ένας νέος φθίνων μέσος όρος, αυτός των παραμέτρων, ως: E[Δθ 2 ] t = γe[δθ 2 ] t 1 + (1 γ)δθ t 2. To αντίστοιχο RMS των παραμέτρων προκύπτει: RMS[Δθ] t = E[Δθ 2 ] t + e Εφόσον το RMS[Δθ] t είναι άγνωστο, προσεγγίζεται με το RMS των παραμέτρων που προέκυψαν μέχρι και το προηγούμενο βήμα. Αντικαθιστώντας το learning rate με τον με το RMS[Δθ] t 1 προκύπτει ο τελικός τύπος ανανέωσης του Adadelta: θ t+1 = θ t RMS[Δθ] t 1 RMS[g] t g t. Όπως φαίνεται, με χρήση Adadelta εξαλείφεται η ανάγκη χρήσης learning rate Adam O αλγόριθμος Adam [56] (Adaptive Moment Estimation) αποτελεί ακόμα μία μέθοδος βελτιστοποίησης του SGD, βασισμένη στον Adadelta. Επιπλέον από τη χρήση των παρελθοντικών RMS όρων των κλίσεων u t, που φθίνουν εκθετικά, ο Adam κρατάει και έναν μέσο όρο όλων των προηγούμενων κλίσεων m t, όμοια με το momentum: m t = β 1 m t 1 + (1 β 1 )g t u t = β 2 u t 1 + (1 β 2 )g t 2 με β 1 και β 2 συντελεστές που λειτουργούν όμοια με το momentum (decay rates). Τα m t και u t αποτελούν εκτιμήσεις του πρώτου Moment (του μέσου όρου) και του δεύτερου Moment (διασποράς) των κλίσεων. Καθώς τα m t και u t αρχικοποιούνται συνήθως ως μηδενικά διανύσματα, τήνουν να παραμένουν κοντά στο μηδέν, ειδικά στα πρώτα βήματα, που τα decay rates είναι μικρά (συνήθως κοντά στο 1). Αυτό αντιμετωπίζεται με υπολογισμού του πρώτου και δεύτερου Moment αντίστοιχα, ως: m t = m t 1 β 1 t [54]

55 u t = u t 1 β 2 t Τελικά αυτοί εφαρμόζονται στον κανόνα ανανέωσης και προκύπτει η τελική εξίσωση ανανέωσης μετά από κάθε επανάληψη: λ θ t 1 = θ t u t + e m t Ως αρχικές τιμές των υπερ-παραμέτρων συνήθως χρησιμοποιούνται 0.9 για το β 1, 0,999 για το β 2 και 10 8 για το e Αρχικοποίηση των Βαρών Μία άλλη παράμετρος που πρέπει να ληφθεί υπόψιν κατά τη δημιουργία και εκπαίδευση ενός νευρωνικού δικτύου, είναι η αρχικοποίηση των βαρών. Διαισθητικά, θα έλεγε κανείς πως χωρίς απαραίτητα να γνωρίζουμε τις τελικές τιμές των βαρών, θα παίρναμε στην έξοδο του δικτύου περίπου μισά βάρη αρνητικά και μισά θετικά. Άρα η αρχικοποίηση των βαρών στο μηδέν, θα φέρει υποθετικά τα καλύτερα αποτελέσματα. Κάτι τέτοιο όμως είναι λάθος, καθώς αν ο κάθε νευρώνας του δικτύου υπολογίζει την ίδια έξοδο, θα υπολογίζει και την ίδια κλίση κατά την οπισθοδιάδοση και εντέλει θα ανανεωθεί με ακριβώς τον ίδιο τρόπο. Με άλλα λόγια δεν υπάρχει καμία ασυμμετρία μεταξύ των νευρώνων, εάν τα βάρη αρχικοποιηθούν στην ίδια τιμή. Άρα χρειαζόμαστε αρχικά βάρη κοντά στο μηδέν, αλλά όχι ακριβώς μηδέν. Η λύση προκύπτει με την αρχικοποίηση βάση κάποιας κατανομής και στην παρούσα εργασία χρησιμοποιήθηκε κυρίως η κανονική κατανομή με μικρές τιμές κοντά στο μηδέν. Με αυτόν τον τρόπο ο πίνακας βαρών του κάθε νευρώνα αποτελεί δείγμα μίας πολυδιάστατης κανονικής κατανομής με τους νευρώνες να δείχνουν σε τυχαία κατεύθυνση στον πολυδιάστατο χώρο που ορίζουν οι είσοδοι Iterations και Epochs Το Iteration ορίζεται ως η τροφοδότηση του δικτύου με ένα παράδειγμα και η εκπαίδευσή του με βάση αυτό. Έτσι για ένα δίκτυο πέντε επιπέδων, ένα iteration η εκπαίδευση του δικτύου για τα πέντε επίπεδά του. Ως Epoch, ορίζεται ένα πλήρες πέρασμα του σετ δεδομένων μέσα από το νευρωνικό δίκτυο, δηλαδή ένα iteration για κάθε δείγμα του σετ. Η μεθοδολογία που ακολουθείται γενικά, είναι να χρησιμοποιούνται πολλά iterations και λίγα epochs όταν έχουμε να κάνουμε με μικρά σετ δεδομένων και το αντίθετο όταν είσοδος των δικτύων αποτελούν μεγάλα dataset. Αυτό γιατί με τυχόν επαναλήψεις εκπαίδευσης [55]

56 πάνω στο ίδιο παράδειγμα, υπάρχει σοβαρή πιθανότητα υπερ-εκπαίδευσης (overfitting) του δικτύου, δηλαδή εκμάθηση των εισόδων του Regularization Ένα πρόβλημα που προκύπτει κατά την εκπαίδευση των νευρωνικών δικτύων, είναι αυτό του overfitting. Αυτό προκύπτει όπως προαναφέρθηκε όταν το δίκτυο μαθαίνει τις εισόδους του, δηλαδή όταν το error του δικτύου πάνω στο σετ εκπαίδευσης είναι χαμηλό, αλλά με την εισαγωγή καινούργιων άγνωστων δεδομένων στο δίκτυο, το λάθος γίνεται μεγάλο. Το δίκτυο έχει μνημονεύσει το σετ εκπαίδευσης, αλλά δεν έχει μάθει να γενικεύει σε νέες καταστάσεις. Μία λύση στο πρόβλημα δίνει η κανονικοποίηση (regularization). Αυτή τροποποιεί τη συνάρτηση κόστους που ελαχιστοποιείται, προσθέτοντας επιπλέον όρους που «τιμωρούν» (penalize) μεγάλα βάρη. Με άλλα λόγια αλλάζει η συνάρτηση κόστους σε: Error + ψf(θ) με f(θ) να μεγαλώνει ανάλογα με τις παραμέτρους θ, και ψ το μέγεθος της κανονικοποίησης. Η τιμή που επιλέγεται για το ψ, καθορίζει ουσιαστικά την προστασία από overfitting. Ο πιο ευρέως χρησιμοποιούμενος τύπος κανονικοποίησης είναι ο L2 regularization. Επιτυγχάνεται με την ενίσχυση της συνάρτησης κόστους με το τετράγωνο του μέτρου όλων των βαρών του δικτύου. Με άλλα λόγια, για κάθε βάρος w του δικτύου, προσθέτουμε 1 2 λw2. Ο τρόπος αυτός κανονικοποίησης, διαισθητικά, κάνει το δίκτυο να χρησιμοποιεί όλες του τις εισόδους από λίγο αντί να χρησιμοποιεί λίγες εισόδους, περισσότερο. Το Dropout είναι μία τελείως διαφορετική μέθοδος που αποτρέπει το overfitting και συχνά χρησιμοποιείται ταυτόχρονα με άλλες τεχνικές. Κατά την εκπαίδευση το dropout υλοποιείται κρατώντας ενεργό ένα νευρώνα με πιθανότητα p, ή διαφορετικά, θέτοντάς τον σε μηδέν. Διαισθητικά, αυτό ενεργεί υπέρ της ακρίβειας του δικτύου, ακόμα και σε έλλειψη συγκεκριμένης πληροφορίας. Αποτρέπει την εξάρτηση του δικτύου από οποιονδήποτε (όσο μικρός και αν είναι) συνδυασμό νευρώνων. Εκφρασμένα πιο μαθηματικά, αποτρέπει το overfitting με το να παρέχει έναν τρόπο συνδυασμού διαφορετικών αρχιτεκτονικών νευρώνων. Η λειτουργία του παρουσιάζεται και στο παρακάτω σχήμα. 8 Το δίκτυο μαθαίνει τις εισόδους του και δεν ανταποκρίνεται καλά σε άγνωστα δεδομένα, εκτός του σετ εκπαίδευσης. [56]

57 Σχήμα 17: Αριστερά δίκτυο χωρίς dropout. Δεξιά το dropout ενεργοποιεί μόνο κάποιους νευρώνες [57]

58 Κεφάλαιο 4 - Μεθοδολογία 4.1 Εισαγωγή Σε αυτό το κεφάλαιο θα πραγματοποιηθεί αναλυτική περιγραφή της μεθοδολογίας που ακολουθήθηκε για τις ανάγκες τις παρούσας διπλωματικής εργασίας. Αρχικά θα γίνει μία επισκόπηση των μεθόδων NLP που εφαρμόστηκαν κατά τη συλλογή του dataset ενώ στη συνέχεια λαμβάνει χώρα μία σύντομη περιγραφή των παραμέτρων που χρησιμοποιήθηκαν κατά την εκπαίδευση των νευρωνικών δικτύων. Ως γλώσσα προγραμματισμού επιλέχθηκε η Java, λόγω της ευκολίας στη χρήση της, την ταχύτητά της και την ύπαρξη πληθώρας βιβλιοθηκών για κάθε σχεδόν είδους εφαρμογή. Για τη δημιουργία και εκπαίδευση των νευρωνικών δικτύων χρησιμοποιήθηκε το πρόγραμμα matlab. 4.2 Συλλογή Και Προεπεξεργασία Δεδομένων Στα πλαίσια της εργασίας χρησιμοποιήθηκε το σετ δεδομένων του διαγωνισμού MSR Αυτό περιλαμβάνει το ιστορικό των ερωτήσεων και απαντήσεων των χρηστών του Stack Overflow (ενημερωμένο μέχρι τις 26/9/2014), καθώς και όλες τις πληροφορίες που συνοδεύουν κάθε ένα από αυτές τις δημοσιεύσεις - posts (tags, ημερομηνίες δημοσίευσης, βαθμολογία, αριθμό απαντήσεων κ.α.), σε μορφή XML. Τα θέματα που πραγματεύονται τα post αυτά, αντιστοιχίζονται σε πληθώρα εφαρμογών με ποικίλο μέγεθος. Το σετ δεδομένων αποτελείται συνολικά από δημοσιεύσεις, που καταλαμβάνουν 29Gb μνήμης. Έτσι κρίθηκε απαραίτητος ο περιορισμός του σετ σε ένα νέο, που περιέχει δημοσιεύσεις που ανταποκρίνονται σε μία γλώσσα προγραμματισμού. Θεωρούμε όμως, πως παρόμοια μεθοδολογία μπορεί να εφαρμοστεί και σε άλλες γλώσσες προγραμματισμού Διαχωρισμός Αρχείων σε Code-Comments Όπως προαναφέρθηκε, ο πηγαίος κώδικας απαιτεί αυστηρή σύνταξη και έχει προκαθορισμένο λεξιλόγιο, για την κάθε δήλωση-λειτουργία. Αντιθέτως τα σχόλια είναι κατά κύριο λόγο γραμμένα σε φυσική γλώσσα και περιγράφουν τη λειτουργία του κώδικα που συνήθως συνοδεύουν. Ως σχόλια στην προκειμένη, θεωρήθηκε το κείμενο φυσικής γλώσσας 10 [58]

59 που συνοδεύει το εκάστοτε post, και περιγράφει το πρόβλημα που πραγματεύεται το τελευταίο, δηλαδή το σώμα (body) του post. Αποτέλεσμα των παραπάνω είναι ο διαχωρισμός του κάθε post σε δύο μέρη, αυτό του κώδικα και αυτό του φυσικού κειμένου των body, όπως επίσης και διαφορετική επεξεργασία των δύο Camel Casing Κατά τη συγγραφή κυρίως μεγάλων κομματιών κώδικα, συχνά κρίνεται απαραίτητη η χρήση ονομάτων (συναρτήσεις, classes κ.α.) που υποδηλώνουν τη λειτουργία της εκάστοτε μεταβλητής. Έτσι δεν είναι λίγες οι φορές που τα έγγραφα υπό μελέτη περιέχουν μεγάλους όρους (terms) όπως: getnameoffile, bagofwordsvector. Οι λέξεις αυτές, υπάρχουν συνήθως και στα σχόλια, περιγράφοντας τη λειτουργία τους και τελικά συμβάλλουν στη δημιουργία ενός πολύ μεγάλου λεξικού. Με την εφαρμογή του Camel Casing, οι λέξεις αυτές διαχωρίζονται με βάση τα κεφαλαία γράμματα που εμπεριέχουν. Ο αλγόριθμος σχηματίζει μία καινούργια λέξη, κάθε φορά που συναντά ένα κεφαλαίο γράμμα, με αποτέλεσμα οι προηγούμενες λέξεις να μετασχηματιστούν αντίστοιχα σε: «get, Name, Of, File» και «bag, Of, Words, Vector» Lower Casing Η java γενικά είναι μία case sensitive γλώσσα. Ως εκ τούτου, αντιμετωπίζει λέξεις όπως model, Model, model, MODEL ως διαφορετικές. Για την αντιμετώπιση του προβλήματος, εφαρμόστηκε κατά την επεξεργασία του σετ δεδομένων μετατροπή όλων των χαρακτήρων σε πεζούς. Έτσι όλες οι παραπάνω λέξεις παραπέμπουν πλέον στη λέξη model Αφαίρεση Αριθμών Η χρήση αριθμών στα πλαίσια της συγγραφής κώδικα, επιστρατεύεται κατά κύριο λόγο για απόδοση τιμών σε μεταβλητές (int x = 100;), για διαχωρισμό μεταβλητών (int var1; int var2;), μετρητές σε βρόγχους ( for (int i = 0; i < 1000; i++)) και σε άλλες παρόμοιες περιστάσεις. Κρίνεται λοιπόν πως η πληροφορία που παρέχουν είναι, αν όχι θόρυβος, ελάχιστη και έτσι [59]

60 απομακρύνονται και αντικαθίστανται με κενό, ώστε να μη χαθούν λέξεις που διαχωρίζονται από αριθμούς (πχ table2234integers στους όρους table και integers) Αφαίρεση Σημείων Στίξης H ίδια λογική που ισχύει για τα κεφαλαία γράμματα, βρίσκει εφαρμογή και στα σημεία στίξης. Λέξεις που περιέχουν σημεία στίξης όπως παρενθέσεις μεθόδων, operators πράξεων, εισαγωγή σχολίων κ.α. (πχ: function_to_retrieve_matrix()), ενισχύουν το θόρυβο στο σετ δεδομένων, καθώς εισάγουν περιττά δεδομένα που το σύστημα πρέπει να λάβει υπόψιν του. Θεωρήθηκε με βάση αυτά, πως η απομάκρυνση των σημείων στίξης συμβάλλει στη δημιουργία ενός πιο εύρωστου λεξικού. Τα σημεία στίξης, όπως και οι αριθμοί, αντικαταστάθηκαν με κενά Απομάκρυνση Stop-Words Ως stop words ορίζονται στον τομέα του NLP οι λέξεις που απομακρύνονται από τα έγγραφα πριν αυτά υποστούν οποιαδήποτε επεξεργασία. Συνήθως τα stop words αναφέρονται στις πιο συχνά εμφανιζόμενες λέξεις μίας γλώσσας. Παρόλα αυτά, δεν υπάρχει μία καθολικά χρησιμοποιούμενη λίστα με τέτοιου είδους λέξεις, αλλά η επιλογή τους είναι ανάλογη της εφαρμογής. Ενδεικτικά παρουσιάζονται κάποιες από τις λέξεις που επιλέχθηκαν για τις ανάγκες τις εργασίας, ενώ η συνολική λίστα παρατίθεται στο δεύτερο παράρτημα. Πίνακας 3: Παραδείγματα stop-words. Her here Him am an and any Are no nor Stemming Μία ακόμα μέθοδος που βρίσκει ευρεία εφαρμογή στον τομέα του NLP είναι αυτή του stemming. Αυτό που επιτυγχάνεται με τη χρήση της μεθόδου είναι ο εντοπισμός και η απομάκρυνση των διαφορετικών καταλήξεων της ίδιας λέξης, ώστε να κρατηθεί η ρίζα της. Για παράδειγμα, με την εφαρμογή της μεθόδου, λέξεις όπως: stemming stemmer stemmed [60]

61 επιστρέφουν τη λέξη stemm. Για την εφαρμογή της μεθόδου χρησιμοποιήθηκε το class PorterStemmer Bag Of Words Model Για την αναπαράσταση του σετ δεδομένων επιλέχθηκαν το κανονικοποιημένο και το δυαδικό μοντέλο Bag Of Words (BoW). Η απλότητα και η ως τώρα πετυχημένη του χρήση σε παρόμοιες εφαρμογές οδήγησαν στην επιλογή του BoW, ενώ η κανονικοποίηση πραγματοποιήθηκε δεδομένου ότι τα νευρωνικά δίκτυα ανταποκρίνονται γενικά καλύτερα σε εισόδους στο διάστημα 12 [0, 1]. Το δυαδικό μοντέλο επιπλέον συμβάλει σε καλύτερη ταχύτητα εκπαίδευσης και σε μερικές περιπτώσεις διευκολύνει την εκπαίδευση των δικτύων. Το μοντέλο, όπως περιεγράφηκε στο δεύτερο κεφάλαιο, σχηματίζεται με βάση ένα καθολικό λεξιλόγιο, που προέρχεται από όλα τα έγγραφα υπό μελέτη. Στο μοντέλο που προκύπτει το κάθε έγγραφο αντιπροσωπεύεται από έναν πίνακα, που περιέχει τις συχνότητες εμφάνισης των λέξεων στο εκάστοτε έγγραφο. 4.3 Παράμετροι Auto-encoder Δικτύων Βασισμένη σε προηγούμενες πετυχημένες εφαρμογές στον τομέα της ανάκτησης εγγράφων πραγματοποιήθηκε και η εκπαίδευση των δικτύων της παρούσας εργασίας. Λόγω της υπερβολικής αραιότητας και των δύο σετ δεδομένων, αρχικά πραγματοποιήθηκε εκπαίδευση sparse auto-encoder δικτύων. Αυτά επιλέχθηκαν δεδομένου του ότι οι ιδιότητες τους δίνουν έμφαση σε σπάνιες ενεργοποιήσεις νευρώνων (διαφορετική του μηδενός τιμή), δίνοντας τους έτσι μεγαλύτερη έμφαση. Η υπερ-παράμετρος sparsity επιλέχθηκε κοντά στο μέσο όρο των τιμών ενεργοποίησης για κάθε σετ δεδομένων, κοντά στο μηδέν. Η εκπαίδευση πραγματοποιήθηκε επίπεδο προς επίπεδο και στη συνέχεια τα επιμέρους δίκτυα ενώθηκαν σε ενιαίο auto-encoder, όπου και εφαρμόστηκε η οπισθοδιάδοση. Λόγω της επιτυχίας των RBM στην απόδοση καλών αρχικών βαρών σε ΑΕ δίκτυα, επιχειρήθηκε η προσομοίωση κάποιων από των τεχνικών εκπαίδευσής τους και στην παρούσα διπλωματική εργασία. Τα RBM δίκτυα που χρησιμοποιήθηκαν βασίζονται σε αυτά 11 HrvPNAhULOxQKHVb6ABUQFgglMAE&url=http%3A%2F%2Fsvn.apache.org%2Frepos%2Fasf%2Flucene%2Fjava %2Ftags%2Flucene_3_0_3%2Fsrc%2Fjava%2Forg%2Fapache%2Flucene%2Fanalysis%2FPorterStemmer.java&u sg=afqjcnf-bvsroykn1kktrggyqpue4g_dww&sig2=aweghagy25dnoszsyxhukq 12 Πιό γρήγορη εκπαίδευση, μειώνεται η πιθανότητα να σταθεροποιηθεί το δίκτυο σε τοπικά ελάχιστα, το weight decay γίνεται πιο σταθερό. [61]

62 της ομάδας των Hinton και Salakhutdinov, όπως παρουσιάστηκαν στο προηγούμενο κεφάλαιο, με κατάλληλες αλλαγές, ώστε να προσαρμοστούν στις ανάγκες της εργασίας. Επιπλέον των sparse AE και των DBN, επιχειρήθηκε η εκπαίδευση παραδοσιακών AE με προκαθορισμένα αρχικά βάρη. Αυτά πάρθηκαν από κανονικές κατανομές, με τιμές ανάλογες των συνολικών εισόδων και εξόδων του κάθε επιπέδου ξεχωριστά (Xavier Initalization). Η μεθοδολογία διευκόλυνε την εκπαίδευση των δικτύων, μειώνοντας αρκετά το συνολικό χρόνο που χρειάστηκε η σύγκλιση, κάτι που είναι λογικό, εφόσον δεν υπήρξε ξεχωριστή εκπαίδευση των επιμέρους ΑΕ. Η δημιουργία των auto-encoder, είτε με προ-εκπαίδευση των επιπέδων είτε με αρχικοποίηση, μας οδήγησε σε βαθιά δίκτυα, από 6 ως 8 επίπεδα. Λόγω περιορισμών υπολογιστικής ισχύς δεν επιχειρήθηκε δίκτυο με περισσότερα επίπεδα, αλλά ο αριθμός κρίθηκε επαρκής για τις ανάγκες της εργασίας. Ο αριθμός των νευρώνων των δικτύων ποικίλε επίσης. Στα sparse ΑΕ, όπως και στα DBN, οι νευρώνες μειωνόταν περίπου στο υποτετραπλάσιο των προηγούμενων επιπέδων. Αντίθετα, με την αρχική απόδοση τιμών στα συναπτικά βάρη, δημιουργήθηκαν πυκνά επίπεδα (dense layers) με αριθμό νευρώνων του πρώτου επιπέδου πολύ μικρότερο της εισόδου. Η επιλογή έγινε στην προσπάθεια αποκόμισης κατά το δυνατόν περισσότερης πληροφορίας, από ελάχιστους όρους για κάθε έγγραφο-διάνυσμα. Ως παραλλαγές του gradient descent, χρησιμοποιήθηκαν κυρίως οι stochastic gradient descent και conjugate gradients, όπως και η scaled παραλλαγή του τελευταίου. Ο SGD χρησιμοποιήθηκε κυρίως κατά την προ-εκπαίδευση των RBM και σε κάποια sparse AE δίκτυα σε συνδυασμό με momentum (τιμές κοντά στο 0.9) και learning rate (τιμές από 0.1 ως 0.01). Ο scaled conjugate gradient, πολύ πιο ισχυρός από τον SGD, επιστρατεύτηκε κατά την εκπαίδευση ολόκληρων των δικτύων ΑΕ, ενώ ο conjugate gradient με 3 line searches χρησιμοποιήθηκε για την εκπαίδευση των DBN. Η έλλειψη υπερ-παραμέτρων και η ταχύτητα σύγκλισης του SCG για μεγάλα σετ δεδομένων συνέβαλε στην επιλογή του, ενώ για τα DBN ο CG με line search σύγκλινε γενικά πιο ομαλά. Οι συναρτήσεις κόστους MSE και Cross Entropy ήταν αυτές που χρησιμοποιήθηκαν σε όλα τα δίκτυα που εκπαιδεύτηκαν. Και οι δύο παρέχουν μία εύκολα παραγωγίσιμη συνάρτηση για την οπισθοδιάδοση και χρησιμοποιούνται ευρύτατα σε παρόμοια προβλήματα. Οι συναρτήσεις ενεργοποίησης είναι συνήθως ανάλογες των ζητούμενων εξόδων του συστήματος. Έτσι με εισόδους κανονικοποιημένο (normalized) και δυαδικό BoW μοντέλο χρησιμοποιήθηκαν οι σιγμοειδής και η tanh (κανονικοποίηση στο [-1, 1]) συναρτήσεις για τα ενδιάμεσα, κρυφά επίπεδα. Στην έξοδο χρησιμοποιείται η identity συνάρτηση, και η οπισθοδιάδοση αναλαμβάνει να χειραγωγήσει τα βάρη προς την κατάλληλη ανακατασκευή. Σε μερικές περιπτώσεις χρησιμοποιήθηκε η ReLU συνάρτηση ενεργοποίησης, καθώς σε σύγχρονες εφαρμογές συστήνεται για κάθε λογής εφαρμογή. Η συνάρτηση softmax, αν και δοκιμάστηκε ως συνάρτηση εξόδου, με στόχο την ανακατασκευή πιθανοτήτων εμφάνισης των όρων, εγκαταλείφτηκε νωρίς λόγω των απαιτήσεών της σε υπολογιστική ισχύ, μνήμη και χρόνο εκπαίδευσης (περίπου τριπλάσιο χρόνο εκπαίδευσης δικτύων). [62]

63 Κεφάλαιο 5 - Αποτελέσματα 5.1 Εισαγωγή Στο παρόν κεφάλαιο παρουσιάζεται αναλυτικά η διαδικασία εξέλιξης της εργασίας. Το κεφάλαιο ξεκινά με την περιγραφή της προ-επεξεργασίας του σετ δεδομένων και το μετασχηματισμό του στο μοντέλο Bag Of Words. Συνεχίζει με την περιγραφή των autoencoder που δημιουργήθηκαν και χρησιμοποιήθηκαν καθώς και τη διαδικασία εκπαίδευσής τους. Τέλος παρουσιάζονται τα τελικά αποτελέσματα, η αξιολόγηση της μεθοδολογίας, καθώς και κάποια ανοιχτά θέματα που θα μπορούσαν να βελτιώσουν τη μεθοδολογία σε μελλοντικές εφαρμογές 5.2 Προ-επεξεργασία Δεδομένων Όπως παρουσιάστηκε στο προηγούμενο κεφάλαιο, το dataset παρέχεται σε μορφή XML. Η μορφή αυτή όμως, είναι αρκετά πολύπλοκη για επεξεργασία και έτσι κρίθηκε απαραίτητος ο μετασχηματισμός του σε μία πιο κατάλληλη μορφή, αυτήν των αρχείων Json. Η αρχική και τελική μορφή των posts παρουσιάζονται στο παράρτημα. Ο αριθμός των δημοσιεύσεων ανέρχεται στα , εκ των οποίων διακρίνονται δύο είδη. Post ερωτήσεων, και post απαντήσεων στα προηγούμενα. Έτσι, πραγματοποιήθηκε αρχικά αναζήτηση και εξαγωγή των ερωτήσεων που πραγματεύονται προβλήματα σε javascript, με βάση το αν περιέχουν τη λέξη javascript στα tags τους. Από τα αρχικά posts, που περιλαμβάνονται στο dataset, κρατήθηκαν με βάση αυτή τη λογική posts ερωτημάτων. Το σετ δεδομένων παρόλα αυτά παρέμεινε ιδιαίτερα μεγάλο, ενώ παράλληλα διακρίνεται πληθώρα post που δεν είχαν καν απάντηση ή και αποσπάσματα κώδικα ( posts). Η αναζήτηση ενός πιο εύρωστου dataset, κατά το δυνατό χωρίς θόρυβο, μας οδήγησε στον επιπλέον περιορισμό του dataset, με βάση τα post που έχουν περισσότερες από πέντε απαντήσεις. Ο αριθμός των post που εξήχθησαν έτσι φτάνει τα και κάθε ένα από αυτά συμπτύχθηκε με τις απαντήσεις του και καταχωρήθηκε ως ένα post. Μεταξύ των post που κρατήθηκαν, βρέθηκαν συνολικά 30 post που δεν περιλαμβάνουν απόσπασμα κώδικα, τα οποία και απομακρύνθηκαν. Το νέο σετ δεδομένων, με βάση τη μεθοδολογία που αναπτύχθηκε στο προηγούμενο κεφάλαιο, διαχωρίστηκε σε κώδικα και κείμενο. Συγκεκριμένα, για κάθε δημοσίευση εντοπίστηκαν και ενώθηκαν όλα τα αποσπάσματα κώδικα σε ένα και αντίστοιχα το ίδιο έγινε και με τα αποσπάσματα των bodies. Τα δύο μέρη αποθηκεύτηκαν σε διαφορετικούς [63]

64 φακέλους με ίδιο όνομα, σχηματίζοντας έτσι δύο επιμέρους dataset, ώστε να επεξεργαστούν ξεχωριστά. Κάθε έγγραφο των δύο νέων dataset υπέστη καταρχήν tokenization και Camel και Lower Casing. Συνεχίζοντας, αντικαταστάθηκαν οι αριθμοί και τα σημεία στίξης με κενά. Τέλος πραγματοποιήθηκε stemming, όπως και απομάκρυνση των Stop-Words, αλλά αυτό αποκλειστικά πάνω στα κομμάτια κειμένου των post. Παρακάτω παρουσιάζονται τα αποτελέσματα της παραπάνω επεξεργασίας, ξεχωριστά για τον κώδικα και το body. Source Code Συνολικά από το σετ δεδομένων των αρχείων κώδικα, μετά το tokenization εντοπίστηκαν και αφαιρέθηκαν μονοψήφιοι όροι και αριθμοί με terms να σχηματίζουν το αρχικό λεξιλόγιο. Αξιοσημείωτο είναι πως μετά την εφαρμογή Camel και Lower Casing το λεξιλόγιο περιορίστηκε σε όρους, ενώ παρόμοια αποτελέσματα προέκυψαν και για το dataset των σχολίων. Ο πίνακας 4 δείχνει τις συχνότητες εμφάνισης των όρων για τα έγγραφα του σετ δεδομένων. Πίνακας 4: Συχνότητες εμφάνισης όρων στα έγγραφα κώδικα. Συχνότητα Εμφάνισης Αριθμός Όρων Όπως ήταν αναμενόμενο και φαίνεται και από τον πίνακα ο μεγαλύτερος αριθμός λέξεων συσσωρεύεται στις μοναδικές λέξεις, ενώ ο αριθμός των λέξεων φθίνει αντιστρόφως ανάλογα με τη συχνότητα εμφάνισης (150 για 15, 116 για 20 κτλ). Body Με παρόμοιο τρόπο, από τα σώματα των post εντοπίστηκαν και αφαιρέθηκαν μονοψήφιοι όροι και αριθμοί, με terms να αποτελούν το αρχικό λεξιλόγιο. Σε αντίθεση με το dataset του κώδικα, εδώ εντοπίστηκαν και αφαιρέθηκαν επιπλέον stop words. Όμοια με πριν, παρουσιάζονται στον παρακάτω πίνακα συχνότητες εμφάνισης των όρων, για τα έγγραφα του dataset. [64]

65 Πίνακας 5: Συχνότητες εμφάνισης όρων στα έγγραφα φυσικής γλώσσας. Συχνότητα Εμφάνισης Αριθμός Όρων Και εδώ παρατηρείται μεγάλος αριθμός μοναδικών όρων, ενώ στη συνέχεια οι όροι μειώνονται αντιστρόφως ανάλογα με τη συχνότητα. Παραδείγματα όρων που κρατήθηκαν και αφαιρέθηκαν παρατίθενται και για τα 2 σετ δεδομένων στο πρώτο παράρτημα. 5.3 Bag of Words model Ο προηγούμενος περιορισμός του dataset, αναλογιζόμενοι την υπολογιστική ισχύ που καταναλώνουν τα νευρωνικά δίκτυα κατά την εκπαίδευσή τους, δεν φάνηκε αρκετός. Το BoW μοντέλο σχηματίζεται, όπως παρουσιάστηκε στο δεύτερο κεφάλαιο, με βάση ένα καθολικό λεξικό από όλα τα έγγραφα υπό μελέτη. Αυτά τοποθετούνται σε ένα VSM και το καθένα έχει συντεταγμένες που δίνονται από τις συχνότητες εμφάνισης των όρων του λεξικού στο έγγραφο αυτό. Έτσι, ένα λεξικό των περίπου όρων, ενώ αποτελεί την κατά το δυνατό πιο ρεαλιστική απόδοση του πραγματικού προβλήματος, είναι απαγορευτικό από άποψη μνήμης, υπολογιστικών πόρων και κατά συνέπεια χρόνου εκπαίδευσης του δικτύου. Για την κατά το δυνατό καλύτερη απόδοση της μεθοδολογίας, έπρεπε να βρεθεί ένας συμβιβασμός μεταξύ ακρίβειας του σετ δεδομένων και βελτιστοποίηση ενός δικτύου αναπαράστασης αυτών. Για το σκοπό αυτό επιλέχθηκαν για το λεξικό του κώδικα οι όροι που εμφανίζονται σε τουλάχιστον δέκα διαφορετικά έγγραφα, σχηματίζοντας ένα λεξικό των όρων. Αντίστοιχα για το κομμάτι της φυσικής γλώσσας, το λεξικό σχηματίστηκε από τους όρους που εμφανίζονται σε τουλάχιστον είκοσι διαφορετικά έγγραφα. Μετά την απομάκρυνση των «σπάνιων» όρων, προέκυψαν 30 επιπλέον κενά έγγραφα, τα οποία και [65]

66 αφαιρέθηκαν από το σετ δεδομένων. Τα έγγραφα κώδικα και σχολίων καταλήγουν να περιέχουν κατά μέσο όρο 270 και 308 όρους αντίστοιχα. Το σετ δεδομένων στη συνέχεια μειώθηκε επιπλέον σε 2026 και 2578 terms αντίστοιχα για κώδικα και κείμενο. Από το πρώτο σετ δεδομένων κρατήθηκαν τα terms με συχνότητα εμφάνισης μεγαλύτερη από 50, ενώ για το σετ των σχολίων κρατήθηκαν τα terms με συχνότητα εμφάνισης μεγαλύτερη από 50 και μικρότερη από 600, καθώς οι απαιτήσεις σε υπολογιστική για την εκπαίδευση των δικτύων ήταν μεγάλες και τα δίκτυα ανταποκρίθηκαν καλύτερα σε λιγότερες εισόδους. Στα έγγραφα πλέον εμφανίζονται κατά μέσο όρο και όροι για πηγαίο κώδικα και κείμενα φυσικής γλώσσας αντίστοιχα. Τελικά με εφαρμογή κανονικοποίησης μετασχηματίζονται τα διανύσματα του μοντέλου, έτσι ώστε οι συντεταγμένες να δίνονται πλέον από πραγματικούς αριθμούς στο διάστημα [0, 1] και το συνολικό τους άθροισμα να δίνει τη μονάδα. Επιπλέον δημιουργήθηκαν αντίστοιχα σετ δεδομένων με δυαδικούς αριθμούς. Αντί για δεκαδικούς, η τιμή του κάθε όρου ήταν 1, εφόσον ο όρος εμφανίζεται στο έγγραφο και 0 διαφορετικά. Στη συνέχεια τα δύο σετ δεδομένων που προκύπτουν για τον κώδικα και τα σχόλια, διαχωρίζονται σε training και test sets με και παραδείγματα αντίστοιχα (78 και 22% αντίστοιχα). 5.4 Δίκτυα Autoencoder Όπως περιεγράφηκε στα προηγούμενα κεφάλαια, η έξοδος x των autoencoder είναι μία προσέγγιση της εισόδου τους x. Το δίκτυο κωδικοποιεί τις κατανομές εισόδου που του δίνονται σε ένα μεσαίο επίπεδο, πολύ μικρότερης διάστασης του αρχικού, εξάγοντας τις πιο σημαντικές για αυτό μετρικές που διέπουν τα δεδομένα. Για το σκοπό αυτό επιλέχθηκαν auto encoder δίκτυα, με αρχιτεκτονική όμοια με το παρακάτω σχήμα. Σχήμα 18: Autoencoder 8 επιπέδων. Οι είσοδοι κωδικοποιούνται σε 30 νούμερα και ανακατασκευάζονται στην έξοδο (x x ). Καθώς οι είσοδοι του δικτύου αντιπροσωπεύουν ουσιαστικά την πιθανότητα εμφάνισης του κάθε όρου στο εκάστοτε έγγραφο και η έξοδος ανακατασκευάζει τις πιθανότητες αυτές, [66]

67 επιλέχθηκε ως συνάρτηση ενεργοποίησης του τελευταίου επιπέδου η identity function. Αυτή δίνεται από τη συνάρτηση: σ(z) j = x, με έξοδο τις πιθανότητες εμφάνισης των όρων στην ανακατασκευασμένη έξοδο. Στα ενδιάμεσα επίπεδα χρησιμοποιήθηκαν κυρίως σιγμοειδής συναρτήσεις, ενώ επιχειρήθηκε και η χρήση της ReLU. Γενικά όμως, καλύτερα αποτελέσματα εμφάνισαν οι σιγμοειδής (tanh, logistic). Πριν σχηματιστεί το δίκτυο, όπως σε παρόμοια προβλήματα μη-επιβλεπόμενης μάθησης, επιχειρήθηκε pre-training των επιπέδων. Αρχικά το σετ δεδομένων (normalized bag of words) εισάγεται στο πρώτο επίπεδο του δικτύου και εκπαιδεύεται έτσι ένα sparse autoencoder ενός επιπέδου, με τη μεθοδολογία που παρουσιάστηκε στο τρίτο κεφάλαιο. Ως cost function του δικτύου επιλέγεται το cross entropy της ανακατασκευής, ενώ ως ποσοστό sparsity χρησιμοποιήθηκε εύρος τιμών από 0,1 ως 15%. Ο αριθμός epochs της εκπαίδευσης τέθηκε αρχικά 50 και στη συνέχεια λόγω overfitting προσαρμόστηκε σε λίγα epochs πριν παρατηρηθεί το φαινόμενο. Η συνάρτηση κόστους που χρησιμοποιήθηκε ήταν η MSE και τα επίπεδα εκπαιδεύτηκαν με τον αλγόριθμο scaled conjugate gradient. Αφού πραγματοποιήθηκε η εκπαίδευση του πρώτου επιπέδου, χρησιμοποιήθηκαν τα activations του ως είσοδοι σε ένα δεύτερο sparse autoencoder ενός επιπέδου, το οποίο και εκπαιδεύτηκε με παρόμοιο τρόπο. Η διαδικασία επαναλήφθηκε άλλες δύο φορές, εκπαιδεύοντας έτσι συνολικά 4 επιμέρους sparse AE. Παρακάτω παρουσιάζεται ένα παράδειγμα πρόωρης διακοπής (early stopping) εκπαίδευσης με βάση το overfitting που παρατηρείται για το πρώτο επίπεδο ΑΕ, που πραγματοποιήθηκε πάνω στο σετ δεδομένων του κώδικα, ενώ επιπλέον διαγράμματα για τα υπόλοιπα επίπεδα παρουσιάζονται στο παράρτημα. Σχήμα 19: Εκπαίδευση του πρώτου ΑΕ στα 50 epochs. Παρατηρείται overfitting μετά από 15 περίπου epochs. [67]

68 Σχήμα 20: Πρόωρη διακοπή εκπαίδευσης του πρώτου ΑΕ. Sigmoid activation encoder, identity activation decoder. Τα επιμέρους AE του προηγούμενου βήματος, μετά την εκπαίδευσή τους ενώνονται σε ένα ενιαίο deep autoencoder τεσσάρων επιπέδων, με την παρακάτω αρχιτεκτονική. Σχήμα 21: Auto-encoder 8 επιπέδων με αρχιτεκτονική encoder Κατά το fine-tuning των δικτύων χρησιμοποιήθηκαν οι μεθοδολογίες SCG και SGD με adaptive learning rate. Το τελευταίο λειτουργεί ως εξής: με δοσμένο αρχικό learning rate, εάν η απόδοση χειροτερέψει μεταξύ δύο επαναλήψεων, το learning rate αυξάνει. Αντίστοιχα εάν η απόδοση βελτιωθεί κατά μεγαλύτερο ποσοστό από το επιθυμητό, το learning rate μειώνεται κατά ένα ποσοστό. Τα ποσοστά αυτά τέθηκαν αρχικά στις εξής τιμές : Πίνακας 6: Αρχικές τιμές adaptive learning rate. initial learning late 0,01 learning late increment factor 1,05 learning rate decrement factor 0,8 learning rate max increase allowed 1.1 Με βάση αυτήν την αρχική τιμή για το learning rate, το δίκτυο δεν κατάφερε να καταλήξει σε ελάχιστο error μετά από 200 επαναλήψεις. Με μία μεγαλύτερη αρχική τιμή και μεγαλύτερο learning rate increment factor, το δίκτυο σύγκλινε σε λιγότερες επαναλήψεις και μικρότερο γενικά λάθος, ανάλογα με τον αλγόριθμο και τις υπόλοιπες υπερ-παραμέτρους που χρησιμοποιήθηκαν. Με την ευελιξία της παραμέτρου του LR, το δίκτυο ούτως ή άλλως προσαρμόζει το ανάλογο LR, αλλά η επιλογή μεγαλύτερου αρχικού LR, τελικά επιτάχυνε αρκετά τη διαδικασία. [68]

69 Πίνακας 7: Τελικές τιμές adaptive learning rate. initial learning late 0,1 learning late increment factor 1,1 learning rate decrement factor 0,8 learning rate max increase allowed 1.1 Πραγματοποιήθηκαν επίσης πειράματα με σκοπό την έρευνα της επίδρασης του momentum στην εκπαίδευση του δικτύου. Η χρήση adaptive LR επιδρά με παρόμοιο τρόπο στην εκπαίδευση (πραγματοποιώντας ανανεώσεις βαρών με βάση τις προηγούμενες), με συνέπεια να μην αποκλίνουν σημαντικά οι χρόνοι σύγκλισης των δικτύων με και χωρίς momentum. Παρόλα αυτά, το δίκτυο στο οποίο επιδρά το momentum καταλήγει σε μικρότερο και πιο εύρωστο reconstruction error, οπότε προτιμήθηκε η χρήση του με τιμή : momentum = 0.8 Σχετικά διαγράμματα παρατίθενται παρακάτω, για το dataset του κώδικα, ενώ όμοια συμπεριφορά παρουσιάστηκε και με το άλλο dataset. Στο πρώτο σχήμα (εικόνα 22) το δίκτυο τερματίζει την εκπαίδευση μετά από περίπου 120 επαναλήψεις, με βάση τη βελτίωση ανακατασκευής του validation σετ. Όμοια, στην εικόνα 23, το δίκτυο με πρόωρη διακοπή εκπαίδευσης καταλήγει σε μικρότερο λάθος (κατά 50%), με πιο ομαλό τρόπο. Παρόλο που με adaptive learning rate ενισχύεται η σύγκλιση του δικτύου, οι μεγάλες τιμές, που παίρνει η παράμετρος προς το τέλος της εκπαίδευσης, οδηγούν σε ταλαντώσεις γύρω από το σημείο ισορροπίας, με αποτέλεσμα την απότομη διακοπή. Σχήμα 22: Εκπαίδευση δικτύου χωρίς momentum. [69]

70 Σχήμα 23: Εκπαίδευση δικτύου με χρήση momentum. Κατά την εκπαίδευση του deep ΑΕ, τελικά προτιμήθηκε ο αλγόριθμος SCG. Σε αυτήν την επιλογή μας οδήγησε η έλλειψη της επιπλέον παραμέτρου του learning rate, η ταχύτητα σύγκλισης του SCG καθώς και η γενικά καλύτερη συμπεριφορά του αλγορίθμου κατά την εκπαίδευση. Παρακάτω παρατίθενται τα αντίστοιχα διαγράμματα εκπαίδευσης για το σετ δεδομένων του κώδικα και για αυτό των κειμένων φυσικής γλώσσας. Σχήμα 24: Εκπαίδευση σετ δεδομένων φυσικής γλώσσας με ΑΕ 8 επιπέδων, SCG και RELU συναρτήσεις ενεργοποίησης. [70]

71 Σχήμα 25: Εκπαίδευση σετ δεδομένων κώδικα σε ΑΕ 8 επιπέδων, SCG και sigmoid activation functions Στα παραπάνω σχήματα φαίνεται καθαρά η σύγκλιση του αλγορίθμου σε ελάχιστο error κοντά στο Τα δίκτυα όμως και στις δύο περιπτώσεις προσπάθησαν να ανακατασκευάσουν απλά ένα μέσο όρο των terms που εμφανίζονται στα αρχικά έγγραφα εισόδου. Τα αποτελέσματα στην έξοδο, για όλα τα έγγραφα, παίρνουν όλα σχεδόν ίδια τιμή για τον κάθε όρο. Αποτέλεσμα αυτού ήταν μη επιτυχημένες ομαδοποιήσεις των σετ δεδομένων. Ο περιορισμός sparsity που επιβλήθηκε κατά την εκπαίδευση κυριαρχούσε στην εκπαίδευση, κάνοντας όλα τα έγγραφα να ομαδοποιηθούν κοντά του. Για παράδειγμα παραθέτουμε την προβολή ενός μέρους του σετ δεδομένων κώδικα (1000 έγγραφα) σε δύο διαστάσεις, όπου και φαίνεται ξεκάθαρα η τάση των εγγράφων να ομαδοποιούνται κοντά στο sparsity (στην προκειμένη περίπτωση με τιμή 0.05). Σχήμα 26: Προβολή σε 2 διαστάσεις μετά από εκπαίδευση Sparse AE. [71]

72 Η συνάρτηση κόστους με βάση την οποία εκπαιδεύτηκαν τα δίκτυα είναι κατά κύριο λόγο η MSE. Το cross entropy παρουσίασε πολύ χειρότερα αποτελέσματα, συγκλίνοντας μεν σε μικρότερο λάθος, αλλά με overfitting να κυριαρχεί από πολύ νωρίς στην εκπαίδευση, όπως φαίνεται και στο παρακάτω σχήμα (εικόνα 27). Με βάση αυτό, το δίκτυο καταλήγει πολύ νωρίς (2 επαναλήψεις) κοντά στο ελάχιστο λάθος ανακατασκευής, ενώ οι μετέπειτα επαναλήψεις της οπισθοδιάδοσης δεν προσφέρουν ουσιαστικά στη μάθηση. Αξιοσημείωτο είναι επίσης το γεγονός, ότι με cross entropy τα activations του output layer, δηλαδή οι ανακατασκευασμένες είσοδοι, απέκλιναν αρκετά από τις αυθεντικές εισόδους. Ενώ τα αρχικά dataset είχαν πάνω από το 99% των όρων στα έγγραφα τους ίσο με μηδέν, τα ανακατασκευασμένα περιέχουν κατά κύριο λόγο όρους που απέκλιναν αρκετά. Σχήμα 27: Εκπαίδευση δικτύου με χρήση cross entropy ως συνάρτηση κόστους. Για την αντιμετώπιση του προβλήματος ανακατασκευής του μέσου όρου των εισόδων, επιχειρήθηκε αρχικά η εκπαίδευση ΑΕ χωρίς το sparsity hyper-parameter. Τα δίκτυα όμως συνέχισαν να μη μπορούν να εντοπίσουν εύρωστες αναπαραστάσεις των εγγράφων, με συνέπεια να μην πραγματοποιείται και κάποια ομαδοποίηση των δεδομένων. Στη συνέχεια επιχειρήθηκε η αλλαγή των σετ δεδομένων και νέα autoencoder αρχιτεκτονική. Τα νέα σετ δεδομένων (2026 terms κώδικα και 2578 body) χρησιμοποιήθηκαν ως είσοδοι σε ΑΕ έξι επιπέδων με την αρχιτεκτονική του παρακάτω σχήματος. Σχήμα 28: Autoencoder 6 επιπέδων με αρχιτεκτονική encoder και tanh συνάρτηση ενεργοποίησης. Τα επιμέρους επίπεδα αποτελούνται από συμβατικά νευρωνικά επίπεδα (dense layers), με αρχικά και συμμετρικά βάρη που δίνονται με βάση την αρχικοποίηση Xavier [55]. Αυτή, αρχικοποιεί τα βάρη των νευρώνων με βάση μία κανονική κατανομή στο διάστημα: 6 6 W~U [, ], n j +n j+1 n j +n j+1 [72]

73 με n j τον αριθμό εισόδων του επιπέδου j και +n j+1 τον αριθμό εξόδων. Η κατανομή ενδείκνυται για χρήση με συνάρτηση ενεργοποίησης την tanh, ενώ για τη λογιστική συνάρτηση χρησιμοποιούνται τετραπλάσια βάρη. Τα επιμέρους ΑΕ προ-εκπαιδεύτηκαν και ενώθηκαν σε ένα ενιαίο ΑΕ. Τα επίπεδα είχαν ως συναρτήσεις ενεργοποίησης τις logistic, tanh και ReLU στα ενδιάμεσα επίπεδα και την identity στο επίπεδο εξόδου. Ακολούθησε η εκπαίδευση ολόκληρων των δικτύων με χρήση SCG, ενώ εφαρμόστηκε και L2 regularization ίσο με Στο παρακάτω σχήμα παρουσιάζονται οι τιμές εξόδου του encoder μέρους των δικτύων, όπως προέκυψαν μετά την εκπαίδευση για 100 epochs με SCG. Παρόμοια ήταν τα αποτελέσματα και με διαφορετικές συναρτήσεις ενεργοποίησης και χρήση SGD κατά το backpropagation. Σχήμα 29: Προβολή του σετ δεδομένων φυσικής γλώσσας σε 2 διαστάσεις. Δίκτυο με pre-trained επίπεδα, με Xavier weight initialization. Το τελικό δίκτυο που χρησιμοποιήθηκε για το dataset του κώδικα είχε ίδια αρχιτεκτονική, αρχικοποίηση βαρών Xavier, με έναν επιπλέον συντελεστή για το τελευταίο επίπεδο του encoder μέρους (οχταπλάσια αρχικά βάρη) και γενικά ίδια μεθοδολογία εκπαίδευσης, χωρίς όμως να προηγηθεί προ-εκπαίδευση των επιμέρους επιπέδων. Ως είσοδος χρησιμοποιήθηκε η binary εκδοχή του σετ δεδομένων, καθώς εμφάνισε πιο γρήγορη εκπαίδευση και καλύτερες ομαδοποιήσεις. Η έξοδος του encoder μέρους φαίνεται στο παρακάτω σχήμα (Σχήμα 30), όπου αν και δεν υπάρχει κάποια εμφανής ομαδοποίηση, τα έγγραφα διαχωρίζονται αρκετά μεταξύ τους, κυρίως ως προς τον κατακόρυφο άξονα. [73]

74 Σχήμα 30: Έξοδος encoder 2 διαστάσεων για το σετ δεδομένων του κώδικα. Οι τεχνικές εκπαίδευσης για το dataset του body των δημοσιεύσεων δεν απέφεραν όμοια αποτελέσματα. Τα δίκτυα απέτυχαν να διαχωρίσουν τα έγγραφα, ανακατασκευάζοντας, όπως και με τα sparse AE, το μέσο όρο των τιμών εισόδου του δικτύου, χωρίς παράλληλα να συλλαμβάνουν κάποια εσωτερική αναπαράσταση των δεδομένων. Χαρακτηριστικά, παραθέτουμε δύο από τις ομαδοποιήσεις σε δύο διαστάσεις, όπως προέκυψαν με χρήση Xavier αρχικοποίησης και διαφορετικές συναρτήσεις ενεργοποίησης. Σχήμα 31: Προβολή του body dataset μετά από εκπαίδευση δικτύου με χρήση sigmoid activation function. [74]

75 Σχήμα 32: Προβολή του body dataset σε 2 διαστάσεις μετά από εκπαίδευση δικτύου με χρήση tanh activation function. Η λύση στο πρόβλημα ομαδοποίησης του σετ δεδομένων φυσικής γλώσσας, ήρθε με την εφαρμογή των RBM. Αυτά προ-εκπαιδεύτηκαν επίπεδο προς επίπεδο, με βάση τον πίνακα 8. Πίνακας 8: Παράμετροι εκπαίδευσης επιπέδων RBM. Learning Rate 0.1 Initial Momentum 0.5 Final Momentum 0.9 Update Algorithm SGD L2 Regularization Contrastive Divergence 1 Activation Function Logistic Sigmoid Output Activation Function Identity Τα επιμέρους επίπεδα αρχικοποιήθηκαν με τυχαία συμμετρικά βάρη, παρμένα από κανονική κατανομή στο διάστημα W~U[ 0.1, 0.1]. Το σετ δεδομένων χωρίστηκε σε 250 batches των 100 δημοσιεύσεων, ώστε να γίνει καλύτερη εφαρμογή του SGD, με ανανεώσεις βαρών μετά την οπισθοδιάδοση για κάθε batch ξεχωριστά. Η προ-εκπαίδευση πραγματοποιήθηκε για 10 epochs, ενώ για μεγαλύτερο αριθμό (ως 50) το δίκτυο παρουσίασε φαινόμενο overfitting. Οι παρακάτω εικόνες παρουσιάζουν τις προβολές της εισόδου σε κάθε περίπτωση (10 epochs στην εικόνα 33, 50 epochs στην 34). Στην περίπτωση των 50 epochs τα έγγραφα τείνουν να ομαδοποιηθούν όλα κοντά στο μηδέν, ενώ αντίθετα με πρόωρη διακοπή εκπαίδευσης στα 10 epochs, σχηματίζονται σαφώς πιο ευδιάκριτες ομάδες. [75]

76 Σχήμα 33: Κωδικοποιήσεις του dataset φυσικής γλώσσας σε 2 διαστάσεις μετά από RBM pre-train για 10 epochs. Σχήμα 34: Κωδικοποιήσεις του dataset φυσικής γλώσσας σε 2 διαστάσεις μετά από RBM pre-train για 50 epochs. Τα επιμέρους επίπεδα, μετά το pre-training phase, ενώνονται σε ένα ενιαίο DBN autoencoder, όπως και προηγουμένως, με αρχιτεκτονική encoder και εκπαιδεύονται με τον αλγόριθμο conjugate gradient descent, πραγματοποιώντας 3 line searches για κάθε batch. Ο συνολικός χρόνος εκπαίδευσης των επιμέρους RBM ήταν 45 περίπου λεπτά. Ο χρόνος για την εκπαίδευση ολόκληρου του deep autoencoder ήταν 6 ώρες και 32 λεπτά για 100 epochs, ενώ το δίκτυο που χρησιμοποιήθηκε για τον κώδικα, σύγκλινε σε 4 περίπου ώρες για τον ίδιο αριθμό epochs. Τα sparse auto-encoders, χρειάστηκαν συνολικά λεπτά για τα επιμέρους επίπεδα, ενώ το ενιαίο δίκτυο πήρε 8 ώρες και 30 περίπου λεπτά κατά μέσο όρο με SCG. Αντίστοιχα με SGD, χρειάστηκαν περίπου 5 ώρες μέχρι το δίκτυο να συγκλίνει (200 [76]

77 epochs). Τα πειράματα πραγματοποιήθηκαν σε υπολογιστή Intel Core i7 CPU με 12 GB RAM. 5.5 Αξιολόγηση Μεθοδολογίας Αφού τα δίκτυα εκπαιδευτούν, εξάγονται από όλα τα σετ δεδομένων τα activations του μεσαίου επιπέδου του δικτύου. Πραγματοποιείται δηλαδή μία μείωση διαστάσεων των εγγράφων (από 2026 των εγγράφων κώδικα και 2578 των body) στις διαστάσεις encoder των αντίστοιχων δικτύων. Οπότε πλέον τα έγγραφα αντιπροσωπεύονται από αριθμούς που αντιστοιχούν στις διαστάσεις encoder, μεταξύ των οποίων και πραγματοποιείται η σύγκριση ομοιότητας. Οι συγκρίσεις απόδοσης πραγματοποιούνται σε σχέση με τα αποτελέσματα που δίνει η μεθοδολογία tf-idf, ενώ οι αποστάσεις των εγγράφων υπολογίζονται και στις δύο περιπτώσεις με βάση το cosine similarity. Ο υπολογισμός ομοιότητας μεταξύ των εγγράφων ακολουθεί την παρακάτω διαδικασία. Τα test dataset (για κώδικα και φυσική γλώσσα) που προέκυψαν από την προ-επεξεργασία δεδομένων, εισάγονται στα αντίστοιχα auto-encoders και εξάγονται τα activations του τελευταίου επιπέδου του encoder. Τα έγγραφα αυτά στη συνέχεια συγκρίνονται με τα έγγραφα των σετ εκπαίδευσης, ώστε να συμπεράνουμε αν τα εκπαιδευμένα auto-encoders ανταποκρίνονται ικανοποιητικά σε ξένα για αυτά δεδομένα. Υπολογίζεται η απόσταση των εγγράφων με cosine similarity, στη συνέχεια ο μέσος όρος των ομοιοτήτων για κάθε έγγραφο ξεχωριστά (για το σετ κώδικα και κειμένου) και εξάγονται τα k πιο κοντινά έγγραφα για κάθε σετ δεδομένων. Με παρόμοιο τρόπο υπολογίζεται η απόσταση των εγγράφων και με tf-idf. Τα αποτελέσματα της μεθοδολογίας κρίνονται με βάση την ομοιότητα των tags μεταξύ των εγγράφων, που προέκυψαν στο παραπάνω βήμα. Αφού εντοπιστούν τα k πιο κοντινά έγγραφα, πραγματοποιείται έλεγχος ομοιότητας των tags του αρχικού εγγράφου (query), και των tags των αποτελεσμάτων. Θεωρούμε πως, εφόσον η θεματολογία των δημοσιεύσεων είναι όμοια, θα μοιάζουν αρκετά και τα περιεχόμενά τους. Οι μετρικές ομοιότητας που χρησιμοποιήθηκαν είναι οι precision, recall και F-measure, που, όπως παρουσιάστηκαν στο δεύτερο κεφάλαιο, αποτελούν τις πιο συνήθεις μετρικές αξιολόγησης σε παρόμοια συστήματα. Καθώς όμως τα έγγραφα προέρχονται από υπερμεγέθη σετ δεδομένων και συχνά σε τέτοιες περιπτώσεις οι παραδοσιακές μετρικές δεν επαρκούν, χρησιμοποιήθηκε επιπλέον η macro-averaging εκδοχή των μετρικών. Αυτή προβλέπει αρχικά την ομαδοποίηση των εγγράφων που ανήκουν στην ίδια κατηγορία tag και στη συνέχεια τον υπολογισμό των μετρικών για κάθε ομάδα ξεχωριστά. Με βάση αυτήν τη λογική, υπολογίστηκαν επιπλέον τα macro-precision, recall και F-measure για κάθε διαφορετική ομάδα tag (συνολικά 3661 διαφορετικά tags). Στους παρακάτω πίνακες (πίνακας 7 ως και 11) παρουσιάζονται σχετικά αποτελέσματα της μεθοδολογίας για 50 ανακτημένα έγγραφα (k=50). Τα αποτελέσματα προέρχονται από τέσσερις διαφορετικές αρχιτεκτονικές auto-encoder με διαφορετικές παραμέτρους [77]

78 εκπαίδευσης, ώστε να προκύψει ικανοποιητική γενίκευση της μεθοδολογίας. Επιπλέον των μετρικών που προαναφέρθηκαν, πραγματοποιήθηκαν συγκρίσεις σε σχέση με το χρόνο που χρειάστηκε κάθε φορά, για την ανάκτηση των k πιο όμοιων εγγράφων. Πίνακας 9: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική κωδικοποιητή Precision Recall 0.03 F-Measure Macro-Precision 0.39 Macro-Recall Macro-F-Measure Time 1251 ms Πίνακας 10: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική Precision Recall F-Measure Macro-Precision Macro-Recall Macro-F-Measure Time 1307 ms Πίνακας 11: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική Precision Recall F-Measure Macro-Precision 0.36 Macro-Recall Macro-F-Measure Time 1398 ms Πίνακας 12: Αποτελέσματα μεθοδολογίας για αρχιτεκτονική Precision 0.35 Recall F-Measure Macro-Precision Macro-Recall Macro-F-Measure Time 1573 ms Πίνακας 13: Αποτελέσματα μεθοδολογίας tf-idf. Precision [78]

79 Recall 0.02 F-Measure Macro-Precision 0.43 Macro-Recall Macro-F-Measure Time 9739 ms Στους πίνακες φαίνεται ξεκάθαρα πως τα νευρωνικά δίκτυα καταφέρνουν μεν να αποσπάσουν χρήσιμες αναπαραστάσεις των δεδομένων, χωρίς όμως να μπορούν να ξεπεράσουν ουσιαστικά τη μεθοδολογία tf-idf, καθώς εμφάνισαν ελάχιστα καλύτερα αποτελέσματα. Σε ό,τι αφορά το χρόνο που απαιτεί η διαδικασία εύρεσης εγγράφων, φαίνεται σε όλες τις περιπτώσεις η υπεροχή των νευρωνικών δικτύων. Τα dense auto-encoders μας για το σετ δεδομένων του κώδικα σε συνδυασμό με ένα DBN (πίνακας 9), με 2 διαστάσεις κωδικοποιητή, εμφάνισαν τη μεγαλύτερη επιτυχία ανάμεσα στις υπόλοιπες αρχιτεκτονικές. Παρόλο που συμπύκνωσαν τα αρχικά διανύσματα 2000 και επιπλέον όρων σε μόνο δύο αριθμούς, κατάφεραν να ξεπεράσουν τις υπόλοιπες μεθοδολογίες σε σχέση με σχεδόν όλες τις μετρικές αξιολόγησης (εκτός από macro precision). Οι υπόλοιπες αρχιτεκτονικές κατάφεραν αποτελέσματα κοντά σε αυτά του tf-idf, αλλά σαφώς κατώτερα σε σχέση με όλες τις μετρικές. [79]

80 Κεφάλαιο 6 Σύνοψη Με την παρούσα διπλωματική εργασία επιχειρείται η δημιουργία ενός συστήματος ταξινόμησης και ανάκτησης εγγράφων πηγαίου κώδικα, βασισμένο σε auto-encoder νευρωνικά δίκτυα. Η μεθοδολογία μας βασίστηκε σε παραδοσιακές μεθοδολογίες επεξεργασίας φυσικής γλώσσας, μετατρέποντας ένα αρχικά τεράστιο σετ δεδομένων σε ένα κατάλληλο για είσοδο σε νευρωνικά δίκτυα, σε μορφή Bag of Words. Καθώς τα auto-encoder δίκτυα είναι ιδιαίτερα απαιτητικά από άποψη υπολογιστικής ισχύος, αναγκαστήκαμε να αφαιρέσουμε από τα έγγραφα αρκετά στοιχεία, προσπαθώντας ταυτόχρονα να κρατήσουμε μία εύρωστη αναπαράστασή τους. Τα auto-encoder δίκτυα που δημιουργήθηκαν για την κωδικοποίηση των εγγράφων εμπνεύστηκαν από διάφορες σύγχρονες μεθοδολογίες ανάκτησης κειμένων, με διαφορετικές αρχιτεκτονικές και μεθοδολογίες εκπαίδευσης. Η δημιουργία και εκπαίδευση κατάλληλων auto-encoder νευρωνικών δικτύων αποδείχθηκε ιδιαίτερα δύσκολη για τα έγγραφα, καθώς γενικά αντιμετωπίστηκαν υπερβολικά αραιά σετ δεδομένων, με ελάχιστη πληροφορία για επεξεργασία. Τα δίκτυα που εκπαιδεύτηκαν, κατάφεραν μεν να αφομοιώσουν ικανοποιητικά τα χαρακτηριστικά των εγγράφων, χωρίς όμως να ξεπεράσουν ουσιαστικά σύγχρονες μεθοδολογίες, εκτός από λίγες περιπτώσεις. Πιστεύουμε πάντως, πως με βελτιώσεις η μεθοδολογία αποτελεί μία σωστή αρχική κατεύθυνση προς τη δημιουργία πολύ καλύτερων συστημάτων. Συμπερασματικά, η επιτυχία των νευρωνικών δικτύων και ειδικά των ΑΕ στον τομέα της ανάκτησης κειμένων, δεν περιορίζεται σε κείμενα αποκλειστικά φυσικής γλώσσας. Δείξαμε πως με κατάλληλη εκπαίδευση δικτύων, τα έγγραφα μπορούν να αναπαρασταθούν σε χώρους μικρών διαστάσεων, κρατώντας ουσιαστικά χαρακτηριστικά τους. Η μεθοδολογία μπορεί να υποστεί αρκετές τροποποιήσεις-προσαρμογές, τόσο κατά την επεξεργασία και δημιουργία των λεξιλογίων, όσο και στον τρόπο εκπαίδευσης και τα μοντέλα των δικτύων που χρησιμοποιήθηκαν. Με αυτές τις προσθήκες και αναλογιζόμενοι το χρόνο ανταπόκρισης των δικτύων σε σχέση με σύγχρονες μεθόδους, τα auto-encoders φαίνονται αρκετά υποσχόμενα για την ανάκτηση εγγράφων κώδικα. 6.1 Ανοιχτά Θέματα Αρκετά είναι τα προβλήματα που συνεπάγεται η χρήση της παραπάνω μεθοδολογίας για document indexing / retrieval και ήδη έχουμε αναφερθεί σε ορισμένα. Ίσως το μεγαλύτερο από αυτά είναι οι απαιτήσεις σε υπολογιστική ισχύ και μνήμη που απαιτεί η εκπαίδευση των δικτύων. Τα σετ δεδομένων που χρησιμοποιήθηκαν τόσο για τον κώδικα όσο και για το body των post, εμπεριέχουν μόνο ένα κλάσμα του συνολικού αριθμού των όρων που περιέχουν τα έγγραφα (περίπου 1%). Αυτό από μόνο του κάνει την αναπαράσταση των εγγράφων να αποκλίνει αρκετά από την πραγματικότητα, καθώς αποκόπτονται πιθανόν σημαντικά στοιχεία που περιγράφουν την ταυτότητα των εγγράφων. [80]

81 Ακόμα ένα μείζον πρόβλημα της μεθοδολογίας εντοπίζεται στη δομή και το λεξιλόγιο του ίδιου του κώδικα. Το περιορισμένο και αυστηρό λεξιλόγιο επιβάλει χρήση αυστηρά συγκεκριμένων όρων, κάνοντας τα έγγραφα μετά την επεξεργασία τους να περιέχουν σχεδόν ίδιους όρους, κυρίως δηλώσεις και μεταβλητές. Αυτό επιδείχθηκε εν μέρει και με τις προβολές των εγγράφων που προέκυψαν νωρίτερα στο ίδιο κεφάλαιο, όπου το σετ φυσικής γλώσσας φαίνεται να ομαδοποιείται καλύτερα από το αντίστοιχο του κώδικα (εικόνες 33 και 30 αντίστοιχα). Η πολυπλοκότητα εκπαίδευσης των AE, καθώς και το γεγονός ότι η απόδοση της εκπαίδευσης αυτής εξαρτάται σε μεγάλο βαθμό από το χρήστη (υπερ-παράμετροι, αρχιτεκτονική, είδος νευρώνων κτλ.), είναι ακόμα ένας λόγος που αποτρέπει από τη χρήση ΑΕ για παρόμοια προβλήματα. Αποτέλεσμα είναι η ύπαρξη πιο καινούργιων αλγορίθμων εύρεσης όμοιων εγγράφων, όπως το Word2Vec του Mikolov, που γενικά παρουσιάζουν και καλύτερα αποτελέσματα. Τέλος, η ύπαρξη μίας βιβλιοθήκης χαμηλού επιπέδου προγραμματισμού, που παρέχει στο χρήστη μία πιο ολοκληρωμένη άποψη της αρχιτεκτονικής των δικτύων και της επίδρασης των παραμέτρων στην εκπαίδευση του δικτύου, θα μπορούσε να συμβάλει θετικά στη δημιουργία πιο εύρωστων δικτύων. Το Deeplearning4j, αποτελεί μία πολύ καλή αρχική προσπάθεια, αλλά δυστυχώς είναι υπό κατασκευή και δεν ήταν σε θέση να στηρίξει τη μη επιβλεπόμενη εκπαίδευση των RBM και των ΑΕ. [81]

82 Βιβλιογραφία [1] Manning, C.; Raghavan, P.; Schuetze H.; Introduction to Information Retrieval. University Press New York, NY, USA 2008 [2] Rosenblatt, F. (1958). "The Perceptron: A Probabilistic Model For Information Storage And Organization In The Brain". Psychological Review 65 (6): [3] D.O. Hebb. "The organization of behavior: A neurophychological study. WileyInterscience, New York, [4] LeCun et al., "Backpropagation Applied to Handwritten Zip Code Recognition," Neural Computation, 1, pp , 1989 [5] Bengio, Y.; Courville, A.; Vincent, P. (2013). "Representation Learning: A Review and New Perspectives". IEEE Transactions on Pattern Analysis and Machine Intelligence 35 (8): [6] Hinton, Geoffrey E.; Dayan, Peter; Frey, Brendan J.; Neal, Radford ( ). "The wake-sleep algorithm for unsupervised neural networks". Science 268 (5214): [7] D.E. Rumelhart, G.E. Hinton, and R.J. Williams. Learning internal representations by error propagation. In Parallel Distributed Processing. Vol 1: Foundations. MIT Press, Cambridge, MA, [8] Michael A. Nielsen, Neural Networks and Deep Learning, Determination Press, 2015 [9] Hinton, G. E., &Salakhutdinov, R. (2006). Reducing the Dimensionality of Data with Neural Networks. Science, 313, [10] Bengio, Y. (2009). Learning Deep Architectures for AI. Foundations and Trends in Machine Learning 2 [11] Baldi, P. (2012). Autoencoders, Unsupervised Learning, And Deep Architectures. JMLR: Workshop and Conference Proceedings 27:37-50, 2012 [12] G. E. Hinton, S. Osindero, Y. W. Teh, Neural Comput. 18, 1527 (2006). [13] A. Fischer, C. Igel, An Introduction to Restricted Boltzmann Machines. [14] R. Salakhutdinov, G. Hinton, Deep Boltzmann Machines, Appearing in Proceedings of the 12th International Conference on Artificial Intelligence and Statistics (AISTATS) 2009, Clearwater Beach, Florida, USA. Volume 5 of JMLR:W&CP 5. Copyright 2009 by the authors. [15] G. Hinton. Learning multiple layers of representation. TRENDS in Cognitive Sciences Vol.11 No.10 (2007) [16] G. Hinton, S. Osindero, A Fast Learning Algorithm for Deep Belief Nets. Neural Computation18, (2006) [17] Hubel, D., & Wiesel, T. (1962). Receptive fields, binocular interaction, and functional architecture in the cat s visual cortex. Journal of Physiology (London), 160, [82]

83 [18] Ciresan, Dan; Meier, Ueli; Schmidhuber, Jürgen (June 2012). "Multi-column deep neural networks for image classification" IEEE Conference on Computer Vision and Pattern Recognition (New York, NY: Institute of Electrical and Electronics Engineers (IEEE)): [19] Lawrence, Steve; C. Lee Giles; Ah Chung Tsoi; Andrew D. Back (1997). "Face Recognition: A Convolutional Neural Network Approach". Neural Networks, IEEE Transactions on 8 (1): [20] Kim, Yoon ( ). "Convolutional Neural Networks for Sentence Classification". arxiv: [cs.cl]. [21] Collobert, Ronan, and Jason Weston. "A unified architecture for natural language processing: Deep neural networks with multitask learning."proceedings of the 25th international conference on Machine learning. ACM, [22] Rifai, S., Mesnil, G., Vincent, P., Muller, X., Bengio, Y., Dauphin, Y., and Glorot, X. (2011b). Higher order contractive auto-encoder. In ECML PKDD. [23] Pascal Vincent, Hugo Larochelle, Isabelle Lajoie, Yoshua Bengio and Pierre-Antoine Manzagol, Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion, Journal of Machine Learning Research 11 (2010) [24] Vincent, P., Larochelle, H., Bengio, Y., and Manzagol, P.-A. (2008). Extracting and composing robust features with denoising autoencoders. In ICML [25] Chen, M., Xu, Z., Winberger, K. Q., and Sha, F. (2012). Marginalized denoising autoencoders for domain adaptation. In ICML [26] Werbos, P.J. (1975). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. [27] I. Neamtiu, J. Foster, M. Hicks, Understanding Source Code Evolution Using Abstract Syntax Tree Matching, MSR 05, May 17, 2005, Saint Louis, Missouri, USA Copyright 2005 ACM /05/0005 [28] I. Baxter, A. Yahin, L. Moura, M. Sant Anna, L. Bier, Clone Detection Using Abstract Syntax Trees, Published in the Proceedings of ICSM 98, November 16-19, 1998 in Bethesda, Mayland. [29] T. Diamantopoulos, A. Symeonidis, Employing Source Code Information to Improve Question- Answering in Stack Overflow, [30] J. Yang, L. Tan, Inferring Semantically Related Words from Software Context, Electrical and Computer Engineering, University of Waterloo, ON, Canada [31] M. Allamanis, D. Tarlow, A. Gordon, YiWei, Bimodal Modelling of Source Code and Natural Language, Proceedings of the 32 nd International Conference on Machine Learning, Lille, France, JMLR: W&CP volume 37. [32] Y. Udagawa, Source Code Retrieval Using Sequence Based Similarity, International Journal of Data Mining & Knowledge Management Process (IJDKP) Vol.3, No.4, July 2013 [83]

84 [33] D. Kılınç, F. Bozyiğit, A. Kut, M. Kaya, Overview of Source Code Plagiarism inprogramming Courses, International Journal of Soft Computing and Engineering (IJSCE) ISSN: , Volume-5 Issue-2, May 2015 [34] A. Singhal (2001). Modern information retrieval: A brief overview. IEEE Data Eng. Bull., 24(4), [35] Y. Bengio, R. Ducharme, P. Vincent, and C. Janvin, A neural probabilistic language model J. Mach. Learn. Res., vol. 3, pp ,Mar [36] J. L. Elman, Finding structure in time, COGNITIVE SCIENCE, vol. 14, no. 2, pp , [37] R. Miikkulainen and M. G. Dyer, Natural language processing with modular neural networks and distributed lexicon Cognitive Science, vol. 15, pp , [38] A. Hindle, E. T. Barr, Z. Su, M. Gabel, and P. Devanbu, On the naturalness of software in Proceedings of the 34th International Conference on Software Engineering, ser. ICSE 12. Piscataway, NJ,USA: IEEE Press, 2012, pp [39] T. Mikolov, Statistical language models based on neural networks Ph.D. dissertation, [40] T. Mikolov, S. Kombrink, A. Deoras, L. Burget, and J. Cernock y, RNNLM Recurrent neural network language modeling toolkit in Proceedings of ASRU IEEE Signal Processing Society, 2011, pp [41] T. Mikolov, A. Deoras, D. Povey, L. Burget, and J. Cernock y, Strategies for training large scale neural network language models in ASRU, 2011, pp [42] M. White, C. Vendome, M. Linares-V asquez, D. Poshyvanyk, Toward Deep Learning Software Repositories, MSR 2015 [43] R. Sindhgatta, Information Retrieval System to Retrieve SourceCode Samples, ICSE'06, May 20-28, 2006, Shanghai, China.ACM X/06/0005 [44] Abdi. H., & Williams, L.J. (2010). "Principal component analysis.". Wiley Interdisciplinary Reviews: Computational Statistics 2: [45] T. Kamiya, S. Kusumoto, and K. Inoue, CCFinder: a multilinguistic token-based code clone detection system for large scale source code, IEEE Transactions on Software Engineering, pp , [46] B. Baker, On finding duplication and nearduplication in large software systems, in Proc.Second IEEE Working Conf. Reverse Eng., 1995, pp [47] Goodfellow I.; Bengio Y.; Courville A.; Deep Learning MIT Press, [48] Z. Li, S. Lu, S. Myagmar, CP-Miner: A tool for finding copy-paste and related bugs in operating system code, in Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation-Volume 6, 2004, pp. 20. [49] S. Khatoon, A. Mahmood, G. Li, An Evaluation of Source Code Mining Techniques, [50] S. Subramanian, R. Holmes, Making Sense of Online Code Snippets, MSR 2013, San Francisco, CA, USA, /13 c 2013 IEEE [84]

85 [51] S. Reiss, Semantics-based Code Search, Proceedings of the 31st International Conference on Software Engineering, 2009 [52] S. Thummalapenta, T. Xie, Parseweb: A Programmer Assistant for Reusing Open Source Code on the Web, Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, 2007 [53] Moller, Neural Networks, Vol. 6, 1993, pp [54] Hestenes, Magnus R.; Stiefel, Eduard (December 1952). "Methods of Conjugate Gradients for Solving Linear Systems". Journal of Research of the National Bureau of Standards. 49 (6). [55] Xavier G., Bengio Y., Understanding the difficulty of training deep feedforward neural networks. Appearing in Proceedings of the 13th International Conference on Artificial Intelligence and Statistics (AISTATS) 2010, Chia Laguna Resort, Sardinia, Italy. Volume 9 of JMLR: W&CP 9. Copyright 2010 by the authors. [56] Kingma, D. P., & Ba, J. L. (2015). "Adam: a Method for Stochastic Optimization. International Conference on Learning Representations, [57] LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey (2015). "Deep learning". Nature. 521: doi: /nature14539 [58] Srivastava, N; Salakhutdinov, R; Hinton, G (2010). Modeling Documents with a Deep Boltzmann Machine. Department of Computer Science, University of Toronto Toronto, Ontario, M5S 3G4 Canada. [59] Zhu, Mu (2004). "Recall, Precision and Average Precision" [85]

86 ΠΑΡΑΡΤΗΜΑ Μορφή Δημοσιεύσεων Παρακάτω παραθέτουμε την αρχική μορφή των δημοσιεύσεων, σε μορφή xml, όπως ακριβώς παρέχονται από την ιστοσελίδα Οι δημοσιεύσεις μετατράπηκαν σε json μορφή, για διευκόλυνση κατά την εξαγωγή των αναγκαίων πεδίων τους. Αρχική, xml μορφή: <row Id="6" PostTypeId="1" AcceptedAnswerId="31" CreationDate=" T22:08:08.620" Score="130" ViewCount="10031" Body="<p>I have an absolutely positioned <code>div</code> containing several children, one of which is a relatively positioned <code>div</code>. When I use a <strong>percentage-based width</strong> on the child <code>div</code>, it collapses to <code>0</code> width on IE7, but not on Firefox or Safari. </p> <p>if I use <strong>pixel width</strong>, it works. If the parent is relatively positioned, the percentage width on the child works. </p> <p>is there something I'm missing here? Is there an easy fix for this besides the <em>pixel-based width</em> on the child? Is there an area of the <code>css</code> specification that covers this?</p> " OwnerUserId="9" LastEditorUserId=" " LastEditorDisplayName="Rich B" LastEditDate=" T04:57:13.750" LastActivityDate=" T17:32:41.700" Title="Why doesn't the percentage width child in absolutely positioned parent work?" Tags="<html><css><css3><internet-explorer-7>" AnswerCount="5" CommentCount="0" FavoriteCount="7" /> Τελική, Json μορφή: {"row":{"creationdate":" t00:59:11.177","viewcount":52381,"title":"difference between Math.Floor() and Math.Truncate()","LastEditorUserId":243557,"OwnerDisplayName":"Anonymous User","LastEditorDisplayName":"Rich B","Score":192,"OwnerUserId":11,"LastActivityDate":" T14:48:23.710","FavoriteCount":32,"AnswerCount":6,"CommentCount":1,"Id":14,"PostTypeId":1,"LastEditD ate":" t01:13:30.197","body":"<p>what is the difference between <a href=\" and <a href=\" in.net?<\/p> ","Tags":"<.net><visual-studio><math><msdn>"}} Λίστα Stop-words Παρακάτω παρουσιάζονται τα stop words που απομακρύνθηκαν από το σετ δεδομένων φυσικής γλώσσας, κατά τη διαδικασία NLP. xa cannot he in on so [86]

87 html could he'd into once some a couldn't he'll is only such about did he's isn't or that am didn't her it other that's an do here it's ought the and does here's its our their any doesn't hers itself ours theirs are doing herself let's out them aren't don't him me over themselves as down himself more own then at few his most same there be further how mustn't shan't there's because had how's my she these been hadn't i myself she'd they being has i'd no she'll they'd both hasn't i'll nor she's they'll but have i'm not should they're by haven't i've of shouldn't they've can't having if off ourselves this those when's yours through where yourself to where's yourselves too which what's under while when until who you've up who's your very whom were was why weren't wasn't why's what we with you'd we'd won't you'll we'll would you're we're wouldn't we've you Terms extracted Παρακάτω παρουσιάζονται οι πρώτοι 10 όροι του λεξιλογίου που δημιουργήθηκε, ανάλογα με τη συχνότητα εμφάνισής τους. Code counterlettr childr cfcfcf childi taller [87]

88 illumin timag charect avant sketch mnozstvi taskdef dfea pagelink sachin asdhka descriptionempti contenttyp lement closedir padlen datab pagecont adrian cmxform abrupt posturl oncanplai myriad basepath avang imgheight remix motivo pagebreak guardo immediatelli woman diagnos imagecreatefrompng monthlycheck shakespear getfil eugen datej dfab endobj cdomvers reloc hsla flot skype unclick women decrypt glass quack elmnt dfff strut journal abbrevi chmod unhighlight kitchen enrol fulfil submitform budget mage unwatch userinput instagram cursu wordwrap mass strtr usuario meaning pseudocod anothervalu xarg unblock cq mate occupi relai marg testform gj shortest stuck bail xaxi auction jd martin fool bang visibilti stuf jk subj gw bootbox seventh heigh ku imagepng gx iframeid vehicula calibri pretend chicken bright looper band hopefulli borrow advertis sunt status bbbb memoiz crockford lucida bz speci bk bada succ museum jsoncallback bare fv suck extent aq ej bash gy dice kh eo kn basi hv bv ki fk nx cj ij pulvinar kr gh nz fw lm ew mf hk ox fy mv ez mk jb wm spell treat result stmt suit after recreat le flip remark oo ensur bh previous better bm querystr variabl fm fulli dummi [88]

89 ky synchron angular mw shockwav avail pf rectangl remot Body dweiliu abrupt remad intertwin remap caboodl reman mssql fparser johnculvin unajot flib immediatelli remix traceur jxssy misleadingli adrian isomorph jumpload avang avala osgeo chmod psychic descripton jquari replacest sachin redicul cvisibl adrien remit bhttp fanboi alansalex flop raminson yurii pseduo javascscript froala adactio wretch techcrunch srlh eventtyp hyatt gingerbread auction sohtanaka illumin remak flux nonzero salari tmyie disastr scriptini rebecca linkabl reloc additionali showhid curvi bart balu budget joycs avali tread unwind stil earliest unsatisfi enquir bark yyyymmdd eo appendchild xaml breadth bate webtech foul iw uneven eugen puremvc panic iq eyelidless xarg existenti svgweb oj ox literatur mgechev reconcil qeuri uo oz jquerytool visibilti fonction chorm dragon tiddli incompet alexgorbatchev becasu frontpag myriad kitchen remeb stephen wrestl bail glare qvtijb succ javascriptvoid sudo jscompress barf elementari kl ki cheatsheet flick ao oc bloggingdevelop journei fore ia om vl strongest [89]

90 oa ih ov xi fl og ni qo avers european yi conduct chome workout lessen zo tring vo delphi beer fouc babi hs stumbl wl endors hv flip couchdb fobj kg better fred ik lz flow tidier jl nx dummi colleg yl rj avail preval serializ sj remot jasper convini radiobutton footer onreadi hideou mongo timer meyerweb instinct aptana becaus [90]

91 Εκπαίδευση δικτύων auto-encoder Οι παρακάτω εικόνες αντιπροσωπεύουν κάποια από τα παραδείγματα εκπαίδευσης autoencoder δικτύων που αναφέρονται στο πέμπτο κεφάλαιο. Αρχικά παρατίθενται τα διαγράμματα της pre-training φάσης των επιμέρους auto-encoder 2 επιπέδων. Στη συνέχεια παρουσιάζονται διαγράμματα αρχιτεκτονικής και εκπαίδευσης των ενιαίων δικτύων που δημιουργήθηκαν με τη σύνθεση των προηγούμενων ΑΕ. Η παρουσίαση αρχίζει με την εκπαίδευση των ΑΕ για το σετ δεδομένων φυσικής γλώσσας και ακολουθούν τα αντίστοιχα διαγράμματα για το σετ δεδομένων πηγαίου κώδικα. Body Dataset Σχήμα 35: Εκπαίδευση ΑΕ 2 επιπέδων για το σετ κειμένου, με sigmoid activation function, regularization, SCG και sparsity. Early stopping στις 17 επαναλήψεις. Σχήμα 36: Εκπαίδευση του 2ου επιπέδου για το σετ κειμένου. Πρόωρη διακοπή στις 17 επαναλήψεις. [91]

92 Σχήμα 37: Εκπαίδευση 3ου επιπέδου για το σετ κειμένου. Σχήμα 38: Εκπαίδευση 4ου επιπέδου για το σετ κειμένου. Διακοπή στις 20 επαναλήψεις λόγω ελάχιστης βελτίωσης gradient. Σχήμα 39: AE 8 επιπέδων μετά από προεκπαίδευση των επιπέδων. ReLU συναρτήσεις ενεργοποίησης για όλα τα επίπεδα, εκτός αυτό της εξόδου. Τα δεδομένα κωδικοποιούνται σε 10 διαστάσεις. Σχήμα 40: AE 8 επιπέδων μετά από προεκπαίδευση των επιπέδων. Sigmoid συναρτήσεις ενεργοποίησης για όλα τα επίπεδα, εκτός αυτό της εξόδου. [92]

93 Σχήμα 41: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm. Σχήμα 42: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm, με adaptive learning rate και momentum. [93]

94 Σχήμα 43: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm, με adaptive learning rate και momentum. Σχήμα 44: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm. [94]

95 Code Dataset Σχήμα 45: Pre-training 1ου ΑΕ επιπέδου με MSE cost function, sigmoid activation function, sparsity και L2 regularization. Early stopping στις 15 επαναλήψεις. Σχήμα 46: Pre-training 2ου ΑΕ επιπέδου. Early stopping στις 15 επαναλήψεις. [95]

96 Σχήμα 47: Pre-training 3ου ΑΕ επιπέδου. Early stopping στις 15 επαναλήψεις. Σχήμα 48: Pre-training 4ου ΑΕ επιπέδου. Early stopping στις 15 επαναλήψεις. Σχήμα 49: AE 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. Τα δεδομένα κωδικοποιούνται σε 10 διαστάσεις. [96]

97 Σχήμα 50: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm με adaptive learning rate και momentum. Σχήμα 51: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SGD gradient update algorithm με adaptive learning rate και momentum. [97]

98 Σχήμα 52: Εκπαίδευση ΑΕ 8 επιπέδων με ReLU συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm. Σχήμα 53: Εκπαίδευση ΑΕ 8 επιπέδων με sigmoid συναρτήσεις ενεργοποίησης. MSE cost function, SCG gradient update algorithm. [98]

99 Εκπαίδευση με Deeplearning4j Στα παρακάτω διαγράμματα παρατίθενται τα αποτελέσματα από τα πειράματα με χρήση της βιβλιοθήκης deeplearning4j. Δυστυχώς η βιβλιοθήκη δεν ήταν σε θέση να στηρίξει εκπαίδευση βαθιών δικτύων μη-επιβλεπόμενης μάθησης. Κατά την εκπαίδευση οι κλίσεις της συνάρτησης κόστους παραμένουν σταθερές στο μηδέν, με αποτέλεσμα τα δίκτυα να μη μαθαίνουν και τα βάρη να παραμένουν στις αρχικές τιμές αρχικοποίησής τους. Αυτό φαίνεται και στα παρακάτω διαγράμματα. Σχήμα 54: Εκπαίδευση auto-encoder αρχιτεκτονικής input SGD με ADAM updater, cross entropy loss function και Xavier αρχικοποίηση βαρών. [99]

100 Σχήμα 55: Εκπαίδευση auto-encoder αρχιτεκτονικής input SGD με momentum 0.9, learning rate 0.1, cross entropy loss function και Xavier αρχικοποίηση βαρών. Σχήμα 56: Εκπαίδευση auto-encoder αρχιτεκτονικής input SGD με Adadelta updater, cross entropy loss function και Xavier αρχικοποίηση βαρών. [100]

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

Διαβάστε περισσότερα

Δημιουργία Ευρετηρίων Συλλογής Κειμένων

Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 - Project Σεπτεμβρίου Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος Εξέταση: Προφορική, στο τέλος της εξεταστικής. Θα βγει ανακοίνωση στο forum. Ομάδες

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Data Mining - Classification ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Data Mining - Classification Data Mining Ανακάλυψη προτύπων σε μεγάλο όγκο δεδομένων. Σαν πεδίο περιλαμβάνει κλάσεις εργασιών: Anomaly Detection:

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων

ΑΣΚΗΣΗ. Συγκομιδή και δεικτοδότηση ιστοσελίδων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2010-2011 ΑΣΚΗΣΗ Συγκομιδή και δεικτοδότηση ιστοσελίδων Σκοπός της άσκησης είναι η υλοποίηση ενός ολοκληρωμένου συστήματος συγκομιδής και δεικτοδότησης ιστοσελίδων.

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ανάκτηση Πληροφορίας Το μοντέλο Boolean Το μοντέλο Vector Ταξινόμηση Μοντέλων IR Ανάκτηση Περιήγηση Κλασικά Μοντέλα Boolean Vector Probabilistic Δομικά Μοντέλα Non-Overlapping Lists Proximal Nodes Browsing

Διαβάστε περισσότερα

Διαχείριση εγγράφων. Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη

Διαχείριση εγγράφων. Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη Διαχείριση εγγράφων Αποθήκες και Εξόρυξη Δεδομένων Διδάσκων: Μ. Χαλκίδη Απεικόνιση κειμένων για Information Retrieval Δεδομένου ενός κειμένου αναζητούμε μια μεθοδολογία απεικόνισης του γραμματικού χώρου

Διαβάστε περισσότερα

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας Τεχνικές Μείωσης Διαστάσεων Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας 1 Εισαγωγή Το μεγαλύτερο μέρος των δεδομένων που καλούμαστε να επεξεργαστούμε είναι πολυδιάστατα.

Διαβάστε περισσότερα

Αναγνώριση Προτύπων Ι

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 1: Μέθοδοι Αναγνώρισης Προτύπων Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Το Πολυεπίπεδο Perceptron. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Το Πολυεπίπεδο Perceptron. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Το Πολυ Perceptron Δίκτυα Πρόσθιας Τροφοδότησης (feedforward) Tο αντίστοιχο γράφημα του δικτύου δεν περιλαμβάνει κύκλους: δεν υπάρχει δηλαδή ανατροφοδότηση της εξόδου ενός νευρώνα προς τους νευρώνες από

Διαβάστε περισσότερα

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

Διαβάστε περισσότερα

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

Διαβάστε περισσότερα

Διακριτικές Συναρτήσεις

Διακριτικές Συναρτήσεις Διακριτικές Συναρτήσεις Δρ. Δηµήτριος Τσέλιος Επίκουρος Καθηγητής ΤΕΙ Θεσσαλίας Τµήµα Διοίκησης Επιχειρήσεων Θερµικός χάρτης των XYZ ξενοδοχείων σε σχέση µε τη γεωγραφική περιοχή τους P. Adamopoulos New

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 18η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 18η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται: στο βιβλίο Machine Learning του T. Mitchell, McGraw- Hill, 1997,

Διαβάστε περισσότερα

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

Διαβάστε περισσότερα

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη

Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Τεχνικές ταξινόµησης αποτελεσµάτων µηχανών αναζήτησης µε βάση την ιστορία του χρήστη Όνοµα: Νικολαΐδης Αντώνιος Επιβλέπων: Τ. Σελλής Περίληψη ιπλωµατικής Εργασίας Συνεπιβλέποντες: Θ. αλαµάγκας, Γ. Γιαννόπουλος

Διαβάστε περισσότερα

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 7 ο : Ανάκτηση πληροφορίας. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 7 ο : Ανάκτηση πληροφορίας. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος: ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ Μάθημα 7 ο : Ανάκτηση πληροφορίας Γεώργιος Πετάσης Ακαδημαϊκό Έτος: 2012 2013 ΤMHMA MHXANIKΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ, Πανεπιστήμιο Πατρών, 2012 2013 Οι διαφάνειες αυτού του μαθήματος βασίζονται

Διαβάστε περισσότερα

Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση 24/6/2013. Τηλεπισκόπηση. Κ. Ποϊραζίδης ΤΑΞΙΝΟΜΗΣΗ ΕΙΚΟΝΑΣ

Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση. Τηλεπισκόπηση 24/6/2013. Τηλεπισκόπηση. Κ. Ποϊραζίδης ΤΑΞΙΝΟΜΗΣΗ ΕΙΚΟΝΑΣ ΤΑΞΙΝΟΜΗΣΗ ΕΙΚΟΝΑΣ Κ. Ποϊραζίδης Η ταξινόμηση εικόνας αναφέρεται στην ερμηνεία με χρήση υπολογιστή των τηλεπισκοπικών εικόνων. Παρόλο που ορισμένες διαδικασίες έχουν τη δυνατότητα να συμπεριλάβουν πληροφορίες

Διαβάστε περισσότερα

ΕΥΦΥΗΣ ΕΛΕΓΧΟΣ. Ενότητα #12: Εισαγωγή στα Nευρωνικά Δίκτυα. Αναστάσιος Ντούνης Τμήμα Μηχανικών Αυτοματισμού Τ.Ε.

ΕΥΦΥΗΣ ΕΛΕΓΧΟΣ. Ενότητα #12: Εισαγωγή στα Nευρωνικά Δίκτυα. Αναστάσιος Ντούνης Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΥΦΥΗΣ ΕΛΕΓΧΟΣ Ενότητα #12: Εισαγωγή στα Nευρωνικά Δίκτυα Αναστάσιος Ντούνης Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το

Διαβάστε περισσότερα

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

Διαβάστε περισσότερα

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

Διαβάστε περισσότερα

Βάσεις Δεδομένων Ενότητα 1

Βάσεις Δεδομένων Ενότητα 1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 1: Εισαγωγή στις Ιωάννης Μανωλόπουλος, Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Στόχος Θεματικής Ενότητας Οι μαθητές να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και να μπορούν

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #06 Πιθανοτικό Μοντέλο 1 Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Τεχνικές NLP Σχεδιαστικά Θέματα

ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ. Τεχνικές NLP Σχεδιαστικά Θέματα ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΠΑΓΚΟΣΜΙΟΥ ΙΣΤΟΥ ΚΑΙ ΓΛΩΣΣΙΚΑ ΕΡΓΑΛΕΙΑ Τεχνικές NLP Σχεδιαστικά Θέματα Natural Language Processing Επεξεργασία δεδομένων σε φυσική γλώσσα Κατανόηση φυσικής γλώσσας από τη μηχανή

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού

Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού Προπτυχιακό μάθημα Αρχές Γλωσσών Προγραμματισμού Π. Ροντογιάννης 1 Μεταγλωττιστής Πρόγραμμα Διαβάζει προγράμματα δεδομένης γλώσσας (πηγαία γλώσσα) και τα μετατρέπει

Διαβάστε περισσότερα

Το μοντέλο Perceptron

Το μοντέλο Perceptron Το μοντέλο Perceptron Αποτελείται από έναν μόνο νευρώνα McCulloch-Pitts w j x x 1, x2,..., w x T 1 1 x 2 w 2 Σ u x n f(u) Άνυσμα Εισόδου s i x j x n w n -θ w w 1, w2,..., w n T Άνυσμα Βαρών 1 Το μοντέλο

Διαβάστε περισσότερα

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2

Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας. Version 2 Σέργιος Θεοδωρίδης Κωνσταντίνος Κουτρούμπας Version 2 1 Άλλοι τύποι νευρωνικών δικτύων Αυτοοργανούμενοι χάρτες (Self-organizing maps - SOMs) Αναδρομικά νευρωνικά δίκτυα (Recurrent Neural Networks): γενικής

Διαβάστε περισσότερα

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2 2. Η έννοια του προβλήματος 2 2. Η έννοια του προβλήματος 2.1 Το πρόβλημα στην επιστήμη των Η/Υ 2.2 Κατηγορίες προβλημάτων

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ ΔΟΥΒΛΕΤΗΣ ΧΑΡΑΛΑΜΠΟΣ ΕΠΙΒΛΕΠΟΝΤΕΣ ΚΑΘΗΓΗΤΕΣ Μαργαρίτης Κωνσταντίνος Βακάλη

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Το Πιθανοκρατικό Μοντέλο Κλασικά Μοντέλα Ανάκτησης Τρία είναι τα, λεγόμενα, κλασικά μοντέλα ανάκτησης: Λογικό (Boolean) που βασίζεται στη Θεωρία Συνόλων Διανυσματικό (Vector) που βασίζεται στη Γραμμική

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Μηχανές αναζήτησης ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιο λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση χωρίς περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 7-8 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Συναρτήσεις & Υποπρογράμματα ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Τμηματικός Προγραμματισμός Η επίλυση ενός προβλήματος διευκολύνεται

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #01

Ανάκτηση Πληροφορίας. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #01 Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #01 Διαδικαστικά μαθήματος Εισαγωγικές έννοιες & Ορισμοί Συστήματα ανάκτησης πληροφορίας 1

Διαβάστε περισσότερα

Ανάκτηση Πληροφορίας

Ανάκτηση Πληροφορίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #05 Ακρίβεια vs. Ανάκληση Extended Boolean Μοντέλο Fuzzy Μοντέλο 1 Άδεια χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Μάθηση και Γενίκευση. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Μάθηση και Γενίκευση. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Μάθηση και Γενίκευση Το Πολυεπίπεδο Perceptron (MultiLayer Perceptron (MLP)) Έστω σύνολο εκπαίδευσης D={(x n,t n )}, n=1,,n. x n =(x n1,, x nd ) T, t n =(t n1,, t np ) T Θα πρέπει το MLP να έχει d νευρώνες

Διαβάστε περισσότερα

Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα. Τεχνητά Νευρωνικά Δίκτυα (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων Εισαγωγή στα Τεχνητά Νευρωνικά Δίκτυα Τεχνητή Νοημοσύνη (Artificial Intelligence) Ανάπτυξη μεθόδων και τεχνολογιών για την επίλυση προβλημάτων στα οποία ο άνθρωπος υπερέχει (?) του υπολογιστή Συλλογισμοί

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

Διαβάστε περισσότερα

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων

Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Μέθοδοι Μηχανών Μάθησης για Ευφυή Αναγνώριση και ιάγνωση Ιατρικών εδοµένων Εισηγητής: ρ Ηλίας Ζαφειρόπουλος Εισαγωγή Ιατρικά δεδοµένα: Συλλογή Οργάνωση Αξιοποίηση Data Mining ιαχείριση εδοµένων Εκπαίδευση

Διαβάστε περισσότερα

ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ

ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ ΤΕΧΝΙΚΕΣ ΕΡΕΥΝΑΣ (# 252) Ε ΕΞΑΜΗΝΟ 9 η ΕΙΣΗΓΗΣΗ ΣΗΜΕΙΩΣΕΙΣ ΕΙΔΗ ΕΡΕΥΝΑΣ I: ΠΕΙΡΑΜΑΤΙΚΗ ΕΡΕΥΝΑ & ΠΕΙΡΑΜΑΤΙΚΟΙ ΣΧΕΔΙΑΣΜΟΙ ΛΙΓΗ ΘΕΩΡΙΑ Στην προηγούμενη διάλεξη μάθαμε ότι υπάρχουν διάφορες μορφές έρευνας

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

Διαβάστε περισσότερα

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

Διαβάστε περισσότερα

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο Πρόβλημα ο Ασκήσεις Φροντιστηρίου 5 o Φροντιστήριο Δίνεται το παρακάτω σύνολο εκπαίδευσης: # Είσοδος Κατηγορία 0 0 0 Α 2 0 0 Α 0 Β 4 0 0 Α 5 0 Β 6 0 0 Α 7 0 Β 8 Β α) Στον παρακάτω κύβο τοποθετείστε τα

Διαβάστε περισσότερα

Μέτρα της οργάνωσης και της ποιότητας για τον Self-Organizing Hidden Markov Model Map (SOHMMM)

Μέτρα της οργάνωσης και της ποιότητας για τον Self-Organizing Hidden Markov Model Map (SOHMMM) Μέτρα της οργάνωσης και της ποιότητας για τον Self-Organizing Hidden Markov Model Map (SOHMMM) Γενική περιγραφή του SOHMMM Ένα υβριδικό νευρωνικό δίκτυο, σύζευξη δύο πολύ επιτυχημένων μοντέλων: -Self-Organizing

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΑΛΓΟΡΙΘΜΟΙ ΕΞΟΡΥΞΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΠΑΡΟΥΣΙΑΣΗ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΛΙΝΑ ΜΑΣΣΟΥ Δ.Π.Μ.Σ: «Εφαρμοσμένες Μαθηματικές Επιστήμες» 2008

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

Διαβάστε περισσότερα

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #2: Αναπαράσταση δεδομένων Αβεβαιότητα και Ακρίβεια Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Αναπαράσταση δεδομένων (Data Representation), Αβεβαιότητα

Διαβάστε περισσότερα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

Διαβάστε περισσότερα

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ. ΕΡΓΑΣΙΑ 4 «Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ. Στόχος Στόχος της Εργασίας 4 είναι να η εξοικείωση με την αντικειμενοστρέφεια (object oriented programming). Πιο συγκεκριμένα,

Διαβάστε περισσότερα

ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την

ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την 1 ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την παλαιότερη γνώση τους, σημειώνουν λεπτομέρειες, παρακολουθούν

Διαβάστε περισσότερα

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Ένα από τα γνωστότερα παραδείγματα των ΕΑ είναι ο Γενετικός

Διαβάστε περισσότερα

Πιθανοτικός Συμπερασμός: Πού βρίσκομαι στο πλέγμα; [ΠΛΗ 513] Αυτόνομοι πράκτορες - Project Εξαμήνου ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ

Πιθανοτικός Συμπερασμός: Πού βρίσκομαι στο πλέγμα; [ΠΛΗ 513] Αυτόνομοι πράκτορες - Project Εξαμήνου ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Πιθανοτικός Συμπερασμός: Πού βρίσκομαι στο πλέγμα; [ΠΛΗ 513] Αυτόνομοι πράκτορες - Project Εξαμήνου Γεωργαρά Αθηνά (A.M. 2011030065) ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

Διαβάστε περισσότερα

Τεχνικές Εξόρυξης Δεδομένων

Τεχνικές Εξόρυξης Δεδομένων ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ Διατμηματικό Μεταπτυχιακό Πρόγραμμα στα Πληροφοριακά Συστήματα ( MIS ) Τεχνικές Εξόρυξης Δεδομένων για την βελτίωση της απόδοσης σε Κατανεμημένα Συστήματα Ζάχος Δημήτριος Επιβλέποντες:

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης

ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Μηχανές αναζήτησης ΕΠΛ 002: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Μηχανές αναζήτησης Στόχοι 1 Να εξηγήσουμε για ποιον λόγο μας είναι απαραίτητες οι μηχανές αναζήτησης στον Παγκόσμιο Ιστό. Να περιγράψουμε κάποιους από τους

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1

ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1 ΛΟΓΙΣΜΟΣ ΜΙΑΣ ΜΕΤΑΒΛΗΤΗΣ, ΕΣΠΙ 1 ΣΥΝΑΡΤΗΣΕΙΣ Η έννοια της συνάρτησης είναι θεμελιώδης στο λογισμό και διαπερνά όλους τους μαθηματικούς κλάδους. Για το φοιτητή είναι σημαντικό να κατανοήσει πλήρως αυτή

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Ειδικά θέματα Πληροφορικής Κινηματογραφίας

Ειδικά θέματα Πληροφορικής Κινηματογραφίας Ειδικά θέματα Πληροφορικής Κινηματογραφίας Real Time Design and Animation of Fractal Plants and Trees Peter E. Oppenheimer New York Institute of Technology Computer Graphics Lab Δανάη Τσούνη dpsd06051

Διαβάστε περισσότερα

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

Διαβάστε περισσότερα

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 16η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται σε ύλη του βιβλίου Artificial Intelligence A Modern Approach των

Διαβάστε περισσότερα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού. Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΣΧΥΕΙ ΚΑΤΑ ΤΟ ΜΕΡΟΣ ΠΟΥ ΑΦΟΡΑ ΤΟ ΛΥΚΕΙΟ ΓΙΑ ΤΗΝ ΥΠΟΧΡΕΩΤΙΚΗ ΕΚΠΑΙΔΕΥΣΗ ΙΣΧΥΟΥΝ ΤΟ ΔΕΠΠΣ

Διαβάστε περισσότερα

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1

Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό. 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 Κεφάλαιο 6 Εισαγωγή στον Προγραμματισμό 26-Jun-15 ΑΕΠΠ - Καραμαούνας Π. 1 6.3 Φυσικές και τεχνητές γλώσσες Μια γλώσσα γενικά προσδιορίζεται από: 1. Το αλφάβητο: το σύνολο των στοιχείων που χρησιμοποιεί

Διαβάστε περισσότερα