| _version_ |
1828461938090180608
|
| author |
Χατζηχαραλάμπους, Ευάγγελος - Αντώνιος
|
| author2 |
Σταματάτος, Ευστάθιος
|
| author_facet |
Σταματάτος, Ευστάθιος
Χατζηχαραλάμπους, Ευάγγελος - Αντώνιος
|
| author_sort |
Χατζηχαραλάμπους, Ευάγγελος - Αντώνιος
|
| collection |
DSpace
|
| description |
Η αναγνώριση συγγραφέα πηγαίου κώδικα έχει να κάνει με τον εντοπισμό του πιο πιθανού συγγραφέα ενός τμήματος πηγαίου κώδικα. Στις ημέρες μας μια τέτοια λειτουργία είναι πλέον απαραίτητη για ένα ευρύ φάσμα περιπτώσεων όπως διενέξεις συγγραφέων, απόδειξή κυριότητας του κώδικα σε δικαστήριο καθώς και εντοπισμού πατρότητας κακόβουλου λογισμικού όπως ιών, spyware, Trojan horses κτλ. Η αναγνώριση συγγραφέα πηγαίου κώδικα πετυχαίνει τον εντοπισμό του πιο πιθανού συγγραφέα μέσα από ένα πλήθος από συγγραφείς. Για να επιτευχθεί κάτι τέτοιο έχουνε γίνει πολλές προσπάθειες και πολλές διαφορετικές προσεγγίσεις στο πρόβλημα μέσα στο χρόνο. Η διαδικασία επιλογής της μεθόδου με το καλύτερο ποσοστό επιτυχίας είναι δύσκολη και χρειάζεται πολύ πειραματισμό. Η επικρατέστερη μέθοδος εντοπισμού του πιο πιθανού συγγραφέα είναι μέσω της μεθόδου της μηχανικής μάθησης έχοντας στην διάθεση μας ένα πλήθος από τμήματα πηγαίου κώδικα που έχουν γράψει οι συγγραφείς να τα αναλύσουμε και να εξάγουμε τα χαρακτηριστικά που κάνουν τους πηγαίους κώδικες από συγγραφέα σε συγγραφέα να ξεχωρίζουν μεταξύ τους. Αυτό το πετυχαίνουμε χωρίζοντας το κείμενο του πηγαίου κώδικα κάθε συγγραφέα σε n-γράμματα και υπολογίζοντας ποία είναι τα πιο κοινά n-γράμματα που εμφανίζονται στους κώδικες του κάθε συγγραφέα. Δυστυχώς αυτή η μέθοδός παρουσιάζει ένα μεγάλο μειονέκτημα, εάν τα δεδομένα που έχουμε δεν είναι συμμετρικά από συγγραφέα σε συγγραφέα (δηλαδή για κάποιον συγγραφέα έχουμε περισσότερα δείγματα από παλαιότερο πηγαίο κώδικα του από ότι για κάποιον άλλο) τότε η παραπάνω μέθοδος χάνει μέρος της αποτελεσματικότητας της. Σε αυτήν την διπλωματική εργασία θα αναλύσουμε και θα πειραματιστούμε πάνω κάποιες μεθόδους που θα μπορούσαν να βελτιώσουν την αποτελεσματικότητα των αλγορίθμων CNG και SVM. Οι μέθοδοι αυτές έχουν να κάνουν με την επεξεργασία των δεδομένων εκπαίδευσης των αλγορίθμων αυτών (training data) και τα αποτελέσματα τους θα μας βοηθήσουνε να αντιληφθούμε καλύτερα το πρόβλημα των ασύμμετρων συνόλων στην αναγνώριση συγγραφέα πηγαίου κώδικα καθώς και να εξάγουμε κάποιες κατευθυντήριες γραμμές για το πώς θα μπορούσε αυτό το πρόβλημα να έχει όσο το δυνατόν μικρότερο αντίκτυπο στα αποτελέσματα των παραπάνω αλγορίθμων.
|
| id |
oai:hellanicus.lib.aegean.gr:11610-8860
|
| institution |
Hellanicus
|
| language |
Greek
|
| publishDate |
2015
|
| record_format |
dspace
|
| spelling |
oai:hellanicus.lib.aegean.gr:11610-88602025-02-07T14:20:52Z Αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης Χατζηχαραλάμπους, Ευάγγελος - Αντώνιος Σταματάτος, Ευστάθιος Μηχανική μάθηση Αναγνώριση συγγραφέα Κατηγοριοποίηση Ασύμμετρα σύνολα εκπαίδευσης Machine learning Author identification Text categorization Training sets Cng SVM Machine learning Η αναγνώριση συγγραφέα πηγαίου κώδικα έχει να κάνει με τον εντοπισμό του πιο πιθανού συγγραφέα ενός τμήματος πηγαίου κώδικα. Στις ημέρες μας μια τέτοια λειτουργία είναι πλέον απαραίτητη για ένα ευρύ φάσμα περιπτώσεων όπως διενέξεις συγγραφέων, απόδειξή κυριότητας του κώδικα σε δικαστήριο καθώς και εντοπισμού πατρότητας κακόβουλου λογισμικού όπως ιών, spyware, Trojan horses κτλ. Η αναγνώριση συγγραφέα πηγαίου κώδικα πετυχαίνει τον εντοπισμό του πιο πιθανού συγγραφέα μέσα από ένα πλήθος από συγγραφείς. Για να επιτευχθεί κάτι τέτοιο έχουνε γίνει πολλές προσπάθειες και πολλές διαφορετικές προσεγγίσεις στο πρόβλημα μέσα στο χρόνο. Η διαδικασία επιλογής της μεθόδου με το καλύτερο ποσοστό επιτυχίας είναι δύσκολη και χρειάζεται πολύ πειραματισμό. Η επικρατέστερη μέθοδος εντοπισμού του πιο πιθανού συγγραφέα είναι μέσω της μεθόδου της μηχανικής μάθησης έχοντας στην διάθεση μας ένα πλήθος από τμήματα πηγαίου κώδικα που έχουν γράψει οι συγγραφείς να τα αναλύσουμε και να εξάγουμε τα χαρακτηριστικά που κάνουν τους πηγαίους κώδικες από συγγραφέα σε συγγραφέα να ξεχωρίζουν μεταξύ τους. Αυτό το πετυχαίνουμε χωρίζοντας το κείμενο του πηγαίου κώδικα κάθε συγγραφέα σε n-γράμματα και υπολογίζοντας ποία είναι τα πιο κοινά n-γράμματα που εμφανίζονται στους κώδικες του κάθε συγγραφέα. Δυστυχώς αυτή η μέθοδός παρουσιάζει ένα μεγάλο μειονέκτημα, εάν τα δεδομένα που έχουμε δεν είναι συμμετρικά από συγγραφέα σε συγγραφέα (δηλαδή για κάποιον συγγραφέα έχουμε περισσότερα δείγματα από παλαιότερο πηγαίο κώδικα του από ότι για κάποιον άλλο) τότε η παραπάνω μέθοδος χάνει μέρος της αποτελεσματικότητας της. Σε αυτήν την διπλωματική εργασία θα αναλύσουμε και θα πειραματιστούμε πάνω κάποιες μεθόδους που θα μπορούσαν να βελτιώσουν την αποτελεσματικότητα των αλγορίθμων CNG και SVM. Οι μέθοδοι αυτές έχουν να κάνουν με την επεξεργασία των δεδομένων εκπαίδευσης των αλγορίθμων αυτών (training data) και τα αποτελέσματα τους θα μας βοηθήσουνε να αντιληφθούμε καλύτερα το πρόβλημα των ασύμμετρων συνόλων στην αναγνώριση συγγραφέα πηγαίου κώδικα καθώς και να εξάγουμε κάποιες κατευθυντήριες γραμμές για το πώς θα μπορούσε αυτό το πρόβλημα να έχει όσο το δυνατόν μικρότερο αντίκτυπο στα αποτελέσματα των παραπάνω αλγορίθμων. Source code authorship identification is nowadays a very important field in the I.T. science, due to its wide range of situation that such a technology can be used such as authorship disputes, proof of authorship and tracking of cyber attacks such as viruses, electronic fraud and Trojan horses. Source code authorship identification manages to choose who the creator of a source code is from a list of writers. In order to achieve such a task there are a lot of different methods that are developed through time. The decision of which method produces the best results is a difficult task. Two are the main approaches used, machine learning which uses a sum of previous source codes from a programmer (training set) to analyze and extract the features that make the source code from that programmer differentiate from the others programmers’ code, and knowledge engineering in which experts decide of which are those features. In this thesis we will use the machine learning approach because of its main advantages which are considerable savings in terms of expert labor power, and its portability to other domains and uses. In order to extract the features that differentiate the source code from one programmer to another and use that knowledge to identify the creator of the source code in question we use the SVM and CNG algorithms. Both algorithms create a profile by separating the text in the training set in character n-grams and then compare which the most common character n-grams found in each writer’s texts are in order to differentiate them. Unfortunately, these algorithms have a big flaw, they become less accurate when the amount of source codes that we have for training are not equal between the programmers. In real-life application, usually it’s impossible to have the same amount of information for each programmer, so it is very important to find a solution to this problem. In this thesis we will analyze and experiment with some methods that can help to improve the accuracy of the SVM and CNG algorithms in imbalanced data sets. There are two types of methods to achieve such a task. The first type is methods that optimize the algorithms and the second is methods that they manipulate the training data used by the algorithms. We will experiment with manipulation of the training data, use some techniques to make the datasets balanced and report the results, while at the same time we will observe how the CNG and SVM algorithms responds to these techniques in order to understand the imbalanced data sets problem deeply and be able to propose some guidelines in order to minimize its affect. 2015-11-17T10:32:37Z 2015-11-17T10:32:37Z 2011 http://catalog.lib.aegean.gr/webopac/FullBB.csp?WebAction=ShowFullBB&EncodedRequest=s*10*2A*2E*27*A3*C1*D7s*5D*A5*2Bm*0B*ED*1C&Profile=Default&OpacLanguage=gre&NumberToRetrieve=50&StartValue=1&WebPageNr=1&SearchTerm1=2011.1.14126&SearchT1=&Index1=Keywordsbib&SearchMethod=Find_1&ItemNr=1 http://hdl.handle.net/11610/8860 el application/pdf Σάμος
|
| spellingShingle |
Μηχανική μάθηση
Αναγνώριση συγγραφέα
Κατηγοριοποίηση
Ασύμμετρα σύνολα εκπαίδευσης
Machine learning
Author identification
Text categorization
Training sets
Cng
SVM
Machine learning
Χατζηχαραλάμπους, Ευάγγελος - Αντώνιος
Αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης
|
| title |
Αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης
|
| title_full |
Αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης
|
| title_fullStr |
Αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης
|
| title_full_unstemmed |
Αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης
|
| title_short |
Αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης
|
| title_sort |
αναγνώριση συγγραφέα πηγαίου κώδικα σε ασύμμετρα σύνολα εκπαίδευσης
|
| topic |
Μηχανική μάθηση
Αναγνώριση συγγραφέα
Κατηγοριοποίηση
Ασύμμετρα σύνολα εκπαίδευσης
Machine learning
Author identification
Text categorization
Training sets
Cng
SVM
Machine learning
|
| url |
http://catalog.lib.aegean.gr/webopac/FullBB.csp?WebAction=ShowFullBB&EncodedRequest=s*10*2A*2E*27*A3*C1*D7s*5D*A5*2Bm*0B*ED*1C&Profile=Default&OpacLanguage=gre&NumberToRetrieve=50&StartValue=1&WebPageNr=1&SearchTerm1=2011.1.14126&SearchT1=&Index1=Keywordsbib&SearchMethod=Find_1&ItemNr=1
http://hdl.handle.net/11610/8860
|
| work_keys_str_mv |
AT chatzēcharalampouseuangelosantōnios anagnōrisēsyngrapheapēgaioukōdikaseasymmetrasynolaekpaideusēs
|