ΕυχαριστίεςΘα ήθελα αρχικά να ευχαριστήσω τον επίκουρο καθηγητή κ. Ανδρέα Συμεωνίδη για την εμπιστοσύνη και την καθοδήγηση. ΄Επειτα θα ήθελα να ευχαριστήσω τον μεταδιδακτορικό ερευνητή κ. Κυριάκο Χατζηδημητρίου για την καθοδήγηση και τη συνεργασία. Τέλος, θέλω να ευχαριστήσω την οικογένειά μου για την αδιάλειπτη στήριξη.1 Περίληψη Η εξέλιξη των κλάδων της Μηχανικής Μάθησης και της Επιστήμης της Πληροφορίας είναι ραγδαία την τελευταία δεκαετία. Ως μηχανικοί υπολογιστών, αναζητούμε τρόπους να εκμεταλλευτούμε την εξέλιξη αυτή.Στην παρούσα διπλωματική εργασία εξετάζουμε την ικανότητα των αναδραστικών νευρω-νικών δικτύων στην παραγωγή κώδικα, ως δίκτυα αποτελεσματικά στη διαχείριση ακολουθιών. Προτείνουμε δύο προσεγγίσεις, που βασίζονται στην κατά χαρακτήρα ανάλυση αποθετηρίων κώδικα. Μετά την κατάλληλη προ-επεξεργασία του κώδικα και την εκπαίδευση των δικτύων, τα μοντέλα μπορούν να παράγουν κώδικα μέσω μιας στοχαστικής διαδικασίας. Εκτελούμε στατική ανάλυση κώδικα στα προϊόντα των μοντέλων, με σκοπό την εξέταση των επιδόσεων των προσεγγίσεων. Η γλώσσα επιλογής μας είναι η JavaScript.Η ανάλυση δείχνει την μεγάλη αναπαραστατική δύναμη των αναδραστικών νευρωνικών δικτύων, αλλά και την αδυναμία των προσεγγίσεων μας να αντιμετωπίσουν ικανοποιητικά το πρόβλημα του αυτόματου προγραμματισμού. Με βάση αυτά τα ευρήματα προτείνουμε περαιτέρω ερευνητικές κατευθύνσεις και τρόπους εκμετάλλευσης των μοντέλων που σχεδιάστηκαν.
Λέξεις ΚλειδιάΑναδραστικά Νευρωνικά Δίκτυα, Παραγωγή Κώδικα, Χαρακτήρας, Ακολουθία, Μάθηση 3
Towards Source Code Generation with Recurrent Neural Networks AbstractThe evolution of Machine Learning and Data Science disciplines has been rapid during the last decade. As computer engineers, we are looking for ways to take advantage of this evolution.In this diploma thesis we examine the potential of recurrent neural networks to generate source code, given their effectiveness at handling sequences. We propose two approaches, based on per-character analysis of software repositories. Following appropriate code preprocessing and network training, models generate source code through a stochastic process. We perform static code analysis on model products, in order to examine the performance of the approaches. We have applied our approach on the JavaScript Language.The analysis shows the great representational power of the recurrent neural networks, but also the inability of our approaches to satisfactorily address the problem of automatic programming. Based on these findings, we propose further research directions and ways of exploiting the models that were designed.
Keywords