Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Βασίλης Μπούντρης

112 views

Published on

Αυτόματη Συγγραφή Κώδικα με Αναδραστικά Νευρωνικά Δίκτυα

Published in: Education
  • Be the first to comment

  • Be the first to like this

Βασίλης Μπούντρης

  1. 1. ΠΡΟΣ ΤΗΝ ΑΥΤΟΜΑΤΗ ΣΥΓΓΡΑΦΗ ΚΩΔΙΚΑ ΜΕ ΑΝΑΔΡΑΣΤΙΚΑ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ Μπούντρης Βασίλης, 7215 Ανδρέας Συμεωνίδης , Επίκουρος Καθηγητής ΑΠΘ Κυριάκος Χατζηδημητρίου, Μεταδιδακτορικός Ερευνητής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ & ΥΠΟΛΟΓΙΣΜΩΝ ΟΜΑΔΑ ΕΥΦΥΩΝ ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Εκπόνηση: Επίβλεψη:
  2. 2. ΕΙΣΑΓΩΓΗ Αυτόματος Προγραμματισμός: • Επαγωγικός Προγραμματισμός (Inductive Programming) • Παραγωγή Κώδικα Βάσει Μοντέλων (Model Driven Engineering) Κίνητρο • Ραγδαία εξέλιξη της μηχανικής μάθησης • Διαθεσιμότητα πολλών παραδειγμάτων
  3. 3. ΣΚΟΠΟΣ • Εξέταση ορίων μιας end-to-end προσέγγισης για παραγωγή ακολουθιών • Διερεύνηση συμπεριφοράς των αναδραστικών νευρωνικών δικτύων στη μάθηση κώδικα • Τα προϊόντα των αναδραστικών νευρωνικών δικτύων: 1.Να μοιάζουν με κώδικα 2.Να μην έχουν συντακτικά λάθη 3.Να μπορούν να μεταφραστούν 4.Να κάνουν κάτι χρήσιμο
  4. 4. ΑΝΑΔΡΑΣΤΙΚΑ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ (1)
  5. 5. ΑΝΑΔΡΑΣΤΙΚΑ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ (2) Αλγόριθμος RNN: 𝐹𝑜𝑟 𝑡 = 1 𝑡𝑜 𝑇: 𝑠𝑡 = 𝐹 𝑈𝑥𝑡 + 𝑊𝑠𝑡−1 + 𝑏𝑠 𝑜𝑡 = 𝑉𝑠𝑡 + 𝑏 𝑜 𝐸𝑛𝑑 𝐹𝑜𝑟 • Back Propagation Through Time • Stochastic Gradient Descent • Vanishing or Exploding Gradients, Pascanu et al.
  6. 6. LONG SHORT-TERM MEMORY
  7. 7. ΜΟΝΤΕΛΑ (1) • Μοντέλο A (char-rnn) : 3 hidden layer RNN- LSTM, προσέγγιση κατά χαρακτήρα (Andrej Karpathy, Alex Graves) • Μοντέλο B (labeled-char-rnn) : Μοντέλο Α + είδος χαρακτήρα ως είσοδος και έξοδος
  8. 8. ΜΟΝΤΕΛΑ (2) Παράδειγμα στο μοντέλο Α Λεξιλόγιο: [A B C T] Μάθηση της ακολουθίας ‘BCAT’
  9. 9. ΠΡΟ-ΕΠΕΞΕΡΓΑΣΙΑ & ΣΕΤ ΔΕΔΟΜΕΝΩΝ • Dataset Github: top 100 github JavaScript projects, 78.3M • Dataset NPM: top 200 node.js packages, 49.1M • Χαρακτήρες: 8 κατηγορίες (Keyword, Number, Regex, String, Operator, Punctuator, Identifier) Mine Relevant Source Files Minify Source Code Generate Character & Label Sequences String v a r a = 4 2 ; f u n c t i o n a d d A ( d ) n Label K K K P I Ο N N P K K K K K K K K P I I I I P I P P
  10. 10. ΕΚΠΑΙΔΕΥΣΗ • Συνάρτηση Λάθους: Cross Entropy Loss • Training with Truncated Back – Propagation Through Time & SGD • SGD optimizer: rmsprop • Early Stopping, Gradient Clipping, Dropout • Hyper-parameters decided on char-rnn for github subset
  11. 11. ΠΑΡΑΓΩΓΗ ΠΗΓΑΙΟΥ ΚΩΔΙΚΑ • Επιλογή των μοντέλων με τις καλύτερες επιδόσεις στο σετ επαλήθευσης • Συνεχής δειγματοληψία από την έξοδο και χρήση του αποτελέσματος ως είσοδο μέχρι τους 15K χαρακτήρες • Δυνατότητα αρχικοποίησης με κώδικα της επιλογής μας • Δυνατότητα ελέγχου της εξαγόμενης κατανομής
  12. 12. ΠΕΙΡΑΜΑΤΑ ΕΚΠΑΙΔΕΥΣΗΣ • Keras, Theano – GTX 960 4GB RAM Dataset Model Parameters Char Acc Label Acc Github Char-rnn 23M 85.6% - Labeled-char-rnn 23M 87.2% 97.1% NPM Char-rnn 10M 78.9% - Labeled-char-rnn 10M 72.3% 94.7%
  13. 13. ΑΠΟΤΕΛΕΣΜΑΤΑ • 100 αρχεία κώδικα για κάθε μοντέλο & dataset • 100 αρχεία κώδικα για το github dataset με ρυθμισμένη δειγματοληψία • Αρχικοποίηση με project τις επιλογής μας για έμμεση οδήγηση
  14. 14. ΣΥΓΚΡΙΣΗ Dataset Model Avg Lines Avg Errors Avg Scan % M Github Char-rnn 137 49 56 0.61 Labeled-char-rnn 142 38 31 0.86 NPM Char-rnn 113 40 54 0.64 Labeled-char-rnn 47 20 44 0.77 Github w/ biased sampling Char-rnn 218 47 53 0.38 Labeled-char-rnn 132 55 48 0.52 𝑀 = 𝐴𝑣𝑔 𝐸𝑟𝑟𝑜𝑟𝑠 𝐴𝑣𝑔 𝐿𝑖𝑛𝑒𝑠 ∗ 𝐴𝑣𝑔 𝑆𝑐𝑎𝑛 %
  15. 15. ΣΥΜΠΕΡΑΣΜΑΤΑ • Ανάγκη για άμεση οδήγηση του συστήματος • Δεν επιτυγχάνεται ground learning • Εξαιρετική ικανότητα για μίμηση: μεγάλη αναπαραστατική δύναμη • Τα labeled μοντέλα δυσκολεύονται περισσότερο: προβληματική η ταυτόχρονη δειγματοληψία
  16. 16. ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ • Δοκιμή διαφορετικών δομών μηχανικής μάθησης • Διαφορετική προσέγγιση στην πρόσθετη πληροφορία για τους χαρακτήρες • Εκμετάλλευση των χρήσιμων ιδιοτήτων της κατά χαρακτήρα προσέγγισης
  17. 17. Ευχαριστώ για την προσοχή σας. Ερωτήσεις;

×