lelis Αthanasios
TRANSCRIPT
Deep-auto encoders για ανάκτηση κώδικα και
οπτικοποίησηΦοιτητής : Λέλης Αθανάσιος ΑΜ : 5214
Επιβλέποντας Επικ. Καθ.: Συμεωνίδης ΑνδρέαςΣυνεπιβλέποντας Μετ.: Χατζηδημητρίου Κυριάκος
Έμπνευση της Διπλωματικής Εργασίας
• Η σημασία του διαδικτύου στην ανάπτυξη της Τεχνολογίας Λογισμικού είναι αδιαμφισβήτητη.• Το διαδίκτυο περιέχει αμέτρητα αποσπάσματα κώδικα.• Προκύπτει ανάγκη ανάκτησης της κατάλληλης πληροφορίας.
Στόχοι και Μεθοδολογία
• Δημιουργία ευρετηρίου δημοσιεύσεων (stackoverflow), που συνδυάζουν φυσική γλώσσα και πηγαίο κώδικα
• Auto-encoder νευρωνικά δίκτυα• Σύγκριση με σύγχρονες μεθοδολογίες
Προηγούμενη Έρευνα• Δημοσιεύσεις Reuters ως σετ δεδομένων• Δημιουργία λεξικού 2000 όρων• 2000-500-250-125-2 deep auto-encoder δίκτυο• Εύρεση ομοιότητας σε 2 διαστάσεις
Προ-επεξεργασία
BodyTags
Code
Προετοιμασία δεδομένων
1. Συνολικός αριθμός δημοσιεύσεων2. Εξάγονται οι δημοσιεύσεις με tag javascript3. Αφαιρούνται δημοσιεύσεις με λιγότερες
από 5 απαντήσεις4. Αφαιρούνται δημοσιεύσεις που δεν
περιέχουν κώδικα5. Διαχωρισμός του σετ δεδομένων σε δύο νέα • Σώματα των δημοσιεύσεων• Αποκόμματα κώδικα
21.737.948698.91833.848
1502
Natural Language Processing
Συγκρότηση λεξικού με βάση τα δύο dataset • Camel Case (πχ CamelCasing σε Camel Casing)• Lower Case (πχ LoWeR σε lower)• Stemming για το NL σετ (πχ processing σε process)• Αφαίρεση αριθμών• Αφαίρεση σημείων στίξης• Απομάκρυνση stop words (πχ at, my, the, κ.α.)
Χρήση βιβλιοθήκης PorterStemmer
Βιβλιοθήκη DocumentParser
English Stop Word List
Bag of Words Model• Χρειάζεται ένα αντιπροσωπευτικό μοντέλο των δημοσιεύσεων, κατάλληλο
για είσοδο σε νευρωνικά δίκτυα • Επιλέχθηκε το μοντέλο Bag of Words • Π.χ. το μοντέλο BoW για τα δύο αποσπάσματα “I went to the store to buy food” και “I
wanted to buy a toy” είναι
I Went To The Store Buy Food wanted A toy
1 1 2 1 1 1 1 0 0 0
1 0 1 0 0 1 0 1 1 1
Δημιουργία Μοντέλου
• Απομάκρυνση όρων με βάση τη συχνότητα εμφάνισής τους• Λιγότερες από 50 εμφανίσεις για το σετ κώδικα• Λιγότερες από 50 και περισσότερες από 600 για το σετ φυσικής γλώσσας
• Απομακρύνονται τα έγγραφα χωρίς κώδικα (40)• Τα σετ δεδομένων διαχωρίστηκαν επιπλέον σε training και test set• 32.306 έγγραφα σε 25.000 (77%) και 7.306 (23%) αντίστοιχα
• Κανονικοποίηση των συντεταγμένων σε [0,1]• Το τελικό μοντέλο που προέκυψε για τα training set είναι:
1. 25000 * 2578 για το NL κομμάτι (δημοσιεύσεις * όροι)2. 25000 * 2026 για το κομμάτι του κώδικα
Auto-encoder Δίκτυα• Κωδικοποιούν το διάνυσμα εισόδου τους σε ένα
μικρότερων διαστάσεων και στη συνέχεια το ανακατασκευάζουν στην έξοδο.• code layer – mapping του x.• decoder output – πρόβλεψη του x με
δοσμένο y.• Στόχος η βελτιστοποίηση τωνώστε να
ελαχιστοποιηθεί το λάθος ανακατασκευής. • Συναρτήσεις κόστους
• MSE: • X-Entropy:
Εκπαίδευση Auto-encoderΠρόβλημα• Local minima για multilayer networks.• Εύρεση αρχικών βαρών που διευκολύνουν την εκπαίδευση.
Λύση• Προ-εκπαίδευση επιμέρους auto-encoder δύο επιπέδων.• Ορισμός μικρών αρχικών βαρών από κανονική κατανομή.
Σύσταση Auto-encoder
Μεθοδολογία Εκπαίδευσης• Εκπαί�δευση με βα�ρη από� κανόνίκη� κατανόμη� (Xavier)• Αρχιτεκτονικές 6 και 8 πυκνών
(dense) επιπέδων• Χρήση L2 κανονικοποίησης• 100 epochs
• Προ-εκπαίδευση επιπέδων με RBM και sparse ΑΕ• Αρχιτεκτονικές 6 και 8 επιπέδων• L2 κανονικοποίηση• 50 epochs
Προβολή σε 2 Διαστάσεις
Σετ δεδομένων κώδικα Σετ δεδομένων σχολίων
Αξιολόγηση Αποτελεσμάτων• Σύγκριση ομοιότητας εγγράφων με βάση τη μετρική cosine similarity: • Τα αποτελέσματα εξάγονται με βάση τα tags των δημοσιεύσεων.• Επιτυχία για συμφωνία των tag. (Positive – P)• Αποτυχία σε αντίθετη περίπτωση. (Negative – N)
Μετρική ΕξίσωσηPrecision
Recall
F-Measure
Macro Precision, Recall, F-Measure
Αποτελέσματα• Τα αποτελέσματα εξάγονται με βάση τα tags των δημοσιεύσεων για
τα κορυφαία 50 ανακτημένα έγγραφα
80-20-2 1000-500-128-5
1000-500-128-10
500-128-30 Tf-Idf
Precision 0.384 0.359 0.367 0.35 0.371
Recall 0.03 0.019 0.018 0.019 0.02
F measure 0.056 0.036 0.034 0.036 0.038
Macro Precision
0.39 0.357 0.36 0.343 0.43
Macro Recall
0.039 0.017 0.017 0.017 0.016
Macro F-Measure
0.071 0.032 0.032 0.032 0.031
Time 1251 ms 1307 ms 1398 ms 1573 ms 9739 ms
Συμπεράσματα• Απόδοση που ανταγωνίζεται σύγχρονες μεθοδολογίες• Πολύ γρήγορη ανάκτηση• Δυνατότητα επέκτασης με περισσότερα δεδομένα
Future Work
• Word2Vec model• Μεγαλύτερη υπολογιστική ισχύς.• Παράλληλος προγραμματισμός.
Γνώσεις που Αποκτήθηκαν
• Machine Learning• Information Retrieval• Deep Learning
• Java – NLP, deeplearning4j.• Matlab – Auto-encoder εκπαίδευση. RBMs.• Theano (Python) – Auto-encoder για MNIST digit classification.• ElasticSearch – Επεξεργασία xml και json files.
Τέλος
Ευχαριστώ για την προσοχή σας !!!