Τσαντεκίδης Αβραάμ. Αρχιτεκτονικές και Εκπαίδευση Βαθιών Νευρωνικών Δικτύων. Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής

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

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

HMY 795: Αναγνώριση Προτύπων. Διαλέξεις 15-16

Μοντέλο Perceptron πολλών στρωμάτων Multi Layer Perceptron (MLP)

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

Ασκήσεις μελέτης της 19 ης διάλεξης

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

Το μοντέλο Perceptron

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

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

ΔΙΚΤΥO RBF. "Τεχνητά Νευρωνικά Δίκτυα" (Διαφάνειες), Α. Λύκας, Παν. Ιωαννίνων

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

Υπολογιστική Νοημοσύνη. Μάθημα 6: Μάθηση με Οπισθοδιάδοση Σφάλματος Backpropagation Learning

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

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

Πληροφοριακά Συστήματα Διοίκησης

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

6. Στατιστικές μέθοδοι εκπαίδευσης

ΠΕΡΙΕΧΟΜΕΝΑ. ΠΡΟΛΟΓΟΣ... vii ΠΕΡΙΕΧΟΜΕΝΑ... ix ΓΕΝΙΚΗ ΒΙΒΛΙΟΓΡΑΦΙΑ... xv. Κεφάλαιο 1 ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ ΑΠΟ ΤΗ ΣΤΑΤΙΣΤΙΚΗ

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

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

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

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

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

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

HMY 795: Αναγνώριση Προτύπων

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

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

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

Υπολογιστική Νοημοσύνη. Μάθημα 4: Μάθηση στον απλό τεχνητό νευρώνα (2)

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

Εισαγωγικά για την αναγνώριση έκφρασης προσώπου (Facial Expression Recognition)

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

Η Μηχανική Μάθηση στο Σχολείο: Μια Προσέγγιση για την Εισαγωγή της Ενισχυτικής Μάθησης στην Τάξη

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

HMY 795: Αναγνώριση Προτύπων

z = c 1 x 1 + c 2 x c n x n

5. ΤΟ ΓΕΝΙΚΟ ΓΡΑΜΜΙΚΟ ΜΟΝΤΕΛΟ (GENERAL LINEAR MODEL) 5.1 Εναλλακτικά μοντέλα του απλού γραμμικού μοντέλου: Το εκθετικό μοντέλο

HMY 795: Αναγνώριση Προτύπων

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

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

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

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

Αριθμητική Ανάλυση & Εφαρμογές

Πανεπιστήµιο Κύπρου Πολυτεχνική Σχολή

ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ανάλυση Κυρίων Συνιστωσών (Principal-Component Analysis, PCA)

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

Συστήματα Αυτομάτου Ελέγχου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

Κινητά Δίκτυα Επικοινωνιών. Συμπληρωματικό υλικό. Προσαρμοστική Ισοστάθμιση Καναλιού

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Μαθηματικά. Ενότητα 2: Διαφορικός Λογισμός. Σαριαννίδης Νικόλαος Τμήμα Διοίκησης Επιχειρήσεων (Κοζάνη)


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

ΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ

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

ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ. Καραγιώργου Σοφία

Περιεχόμενα. σελ. Πρόλογος 1 ης Έκδοσης... ix Πρόλογος 2 ης Έκδοσης... xi Εισαγωγή... xiii

Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση

Ανάπτυξη και δηµιουργία µοντέλων προσοµοίωσης ροής και µεταφοράς µάζας υπογείων υδάτων σε καρστικούς υδροφορείς µε χρήση θεωρίας νευρωνικών δικτύων

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

Ομαδοποίηση ΙΙ (Clustering)

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΕΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗ ΨΗΦΙΑΚΩΝ ΜΕΣΩΝ. Πτυχιακή Εργασία

Υπολογιστική Νοημοσύνη. Μάθημα 13: Αναδρομικά Δίκτυα - Recurrent Networks

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

HMY 799 1: Αναγνώριση Συστημάτων

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης

ΣΥΝΕΛΙΚΤΙΚΑ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ

καθ. Βασίλης Μάγκλαρης

Μερικές φορές δεν μπορούμε να αποφανθούμε για την τιμή του άπειρου αθροίσματος.

HMY 795: Αναγνώριση Προτύπων

Γραμμικός Προγραμματισμός Μέθοδος Simplex

E[ (x- ) ]= trace[(x-x)(x- ) ]

Δρ. Βασίλειος Γ. Καμπουρλάζος Δρ. Ανέστης Γ. Χατζημιχαηλίδης

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Fast Fourier Transform

Βέλτιστα Ψηφιακά Φίλτρα: Φίλτρα Wiener, Ευθεία και αντίστροφη γραµµική πρόβλεψη

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

Εισόδημα Κατανάλωση

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Συμπίεση Δεδομένων

Εφαρμογές μεθοδολογιών μηχανικής εκμάθησης στο χώρο της παραγωγής υδρογονανθράκων. Βασίλης Γαγάνης

Αριθμητική Ανάλυση και Εφαρμογές

ΚΕΦΑΛΑΙΟ 3. Περιγραφή της Μεθόδου ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΜΕΘΟΔΟΥ

Στατιστική Ι (ΨΥΧ-1202) ιάλεξη 3

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

3 η ΕΝΟΤΗΤΑ ΜΗ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΝΟΣ ΚΡΙΤΗΡΙΟΥ

Εθνικό Μετσόβιο Πολυτεχνείο

1.1. Με τι ασχολείται η Αριθμητική Ανάλυση

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

Συνδυαστικά Κυκλώματα

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Γ. Πειραματισμός Βιομετρία

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Αρχιτεκτονικές και Εκπαίδευση Βαθιών Νευρωνικών Δικτύων Τσαντεκίδης Αβραάμ Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Ιούνιος 2016 Αυτή η πτυχιακή κατατέθηκε για την απόκτηση Πτυχίου Πληροφορικής

Copyright 2016 Τσαντεκίδης Αβραάμ Typeset by the author with the XƎLATEX documentation system. Ημερομηνία κατάθεσης, Ιούνιος 2016. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Σχολή Θετικών Επιστημών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Αρχιτεκτονικές και Εκπαίδευση Βαθιών Νευρωνικών Δικτύων Τσαντεκίδης Αβραάμ Επιβλέπων Καθηγητής: Τέφας Αναστάσιος Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Ιούνιος 2016

Περίληψη Στην εργασία αυτή αναλύεται η θεωρία, οι τεχνικές και η υλοποίηση των νευρωνικών δικτύων, που ανήκουν στον τομέα της μηχανικής μάθησης. Εξετάζονται απο τα πιο απλά μοντέλα οπως η γραμμική και η λογιστική παλινδρόμηση έως και τα πιο σύνθετα όπως είναι τα συνελικτικά και τα ανατροφοδοτούμενα νευρωνικά δίκτυα. Διερευνώνται πολλά από τα εργαλεία που έχουν δημοσιευθεί μεχρι σήμερα, τα οποία είτε βελτιώνουν την ταχύτητα μάθησης των νευρωνικών δικτύων (όπως ο αλγόριθμος ADAM) είτε εξομαλύνουν το πρόβλημα της υπερεκπαίδευσης (όπως η τεχνική της κανονικοποίησης παρτίδας) είτε βελτιώνουν την ακρίβεια των τελικών αποτελεσμάτων των δικτύων (όπως ο μηχανισμός της έμφασης και η θορυβώδης παράγωγος). Αφού δοθεί η εικόνα των τελευταίων εξελίξεων, παρατίθενται τα υπολογιστικά εργαλεία που χρησιμοποιούνται για την υλοποίηση των μοντέλων με νευρωνικά δίκτυα. Τέλος, παρουσιάζονται κάποια πειράματα που χρησιμοποιούν τα μοντέλα που περιγράφηκαν πάνω σε δεδομένα όπως το σετ εικόνων MNIST αλλά και δεδομένα χρονοσειρών από τα ανταλλακτήρια ψηφιακών νομισμάτων bitcoin. iii

Abstract In this work, a subfield of machine learning known as neural networks is analyzed, along with its implementation and useful techniques. The neural network models that are presented range from simple from simple linear and logistic regression up to more complicated models like convolutional and recurrent neural networks. Many recently published techniques are also established and explained such as a learning algorithm based on adaptive moment estimation (ADAM), multiple method to reduce the overfitting problem (Dropout and Batch Normalization) and intuitive methods to increase the accuracy of the predictions produced by the neural networks (attention mechanism and noisy gradient). After these methods are explained, the tools required for their implementation are demonstrated with brief code samples. Finally, some representative experiments, based on the MNIST dataset and a time-series of the price of bitcoins, are formulated and their results are showcased and discussed. v

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

Περιεχόμενα Περίληψη Abstract Ευχαριστίες Περιεχόμενα Λίστα Σχημάτων Λίστα Πινάκων iii v vii ix xiii xv 1 Εισαγωγή 3 2 Μοντέλα και Τεχνικές 5 2.1 Εισαγωγή.................................... 5 2.2 Απλό Νευρωνικό Δίκτυο............................ 5 2.2.1 Γραμμική Παλινδρόμηση (Linear Regression)............. 5 2.2.2 Λογιστική Παλινδρόμηση (Logistic Regression)............ 5 2.2.3 Rectified Linear Units (ReLU).................... 6 2.2.4 Συνάρτηση Softmax.......................... 7 2.2.5 Κρυφά Επίπεδα............................. 8 2.3 Εκπαίδευση Μοντέλου............................. 9 2.3.1 Συνάρτηση Κόστους.......................... 9 2.3.2 Μέθοδος Ταχύτερης Καθόδου (Gradient Descent).......... 11 2.3.3 Αλγόριθμος Οπισθοδιάδοσης (Backpropagation algorithm)..... 12 2.4 Τύποι Μάθησης................................. 15 2.4.1 Επιβλεπόμενη Μάθηση (Supervised Learning)............ 16 2.4.2 Μη-Επιβλεπόμενη Μάθηση (Unsupervised Learning)........ 17 2.5 Συνελικτικά Νευρωνικά Δίκτυα (Convolutional Neural Networks)..... 18 2.5.1 Συνέλιξη (Convolution)........................ 19 2.5.2 Max Pooling.............................. 21 2.6 Ανατροφοδοτούμενα Νευρωνικά Δίκτυα (RNN)................ 22 2.6.1 Απλό Ανατροφοδοτούμενο δίκτυο................... 23 2.6.2 Οπισθοδιάδοση στο χρόνο (Backpropagation Through Time).... 23 ix

x ΠΕΡΙΕΧΟΜΕΝΑ 2.6.3 LSTM δίκτυα (Long Short Term Memory).............. 24 2.6.4 Ανατροφοδοτούμενα Δίκτυα Δύο Κατευθύνσεων (Bidirectional RNN) 26 2.6.5 Μηχανισμός Έμφασης (Attention Mechanism)............ 27 2.7 Τεχνικές Βελτίωσης Απόδοσης......................... 29 2.7.1 Ensemble Averaging.......................... 29 2.7.2 Μέθοδος της Ορμής (Momentum)................... 30 2.7.3 Dropout................................. 31 2.7.4 Θορυβώδης Παράγωγος (Gradient Noise)............... 31 2.7.5 Κανονικοποίηση παρτίδας (Batch Normalization).......... 32 2.7.6 Δίκτυα Υπολείμματος (Residual Networks).............. 33 3 Εργαλεία και Υλοποιήση Νευρωνικών δικτύων 35 3.1 Εισαγωγή.................................... 35 3.2 Numpy...................................... 35 3.2.1 Υλοποίηση Απλού Νευρωνικού σε numpy............... 36 3.3 Theano..................................... 36 3.3.1 Αυτόματη Παραγώγιση......................... 36 3.3.2 Υλοποίηση Απλού Νευρωνικού σε Theano.............. 37 3.3.3 Blocks.................................. 38 3.4 Pandas...................................... 38 3.5 Bokeh...................................... 38 4 Πειράματα Νευρωνικών Δικτών 41 4.1 Εισαγωγή.................................... 41 4.1.1 Μέθοδος Αρχικοποίησης........................ 41 4.1.2 Μέθοδος Εκπαίδευσης......................... 41 4.1.3 Συνάρτηση Κόστους.......................... 41 4.1.4 Μέτρηση Ευστοχίας.......................... 42 4.1.5 Ακρίβεια Αριθμών Κινητής Υποδιαστολής (Floating Point Presicion) 42 4.2 MNIST..................................... 42 4.2.1 Απλά Νευρωνικά Δίκτυα........................ 42 4.2.2 Συνελικτικά δίκτυα........................... 43 4.3 Τιμές Ανταλλακτηρίων Bitcoin......................... 46 4.3.1 Περιγραφή Δεδομένων......................... 46 4.3.2 Απλό Νευρωνικό Δίκτυο για την Πρόβλεψη της Επιστροφής.... 50 4.3.3 Συνελικτικό Δίκτυο για την Πρόβλεψη της Επιστροφής....... 50 4.3.4 LSTM για την Πρόβλεψη της Επιστροφής.............. 54 4.3.5 Προτάσεις Επέκτασης.......................... 55

ΠΕΡΙΕΧΟΜΕΝΑ xi Βιβλιογραφία 59

Λίστα Σχημάτων 2.1 Γράφημα σιγμοειδούς συναρτησης....................... 6 2.2 Παραδείγματα απλών νευρωνικών δικτύων................... 8 2.3 Σύγκριση Κοστους Huber και Διαφορά μέσων τετραγώνων......... 10 2.4 Παράδειγμα επιφάνειας κόστους σε μοντέλο δύο παραμετρων με εκπαίδευση χρησιμοποιώντας ταχύτερη κάθοδο....................... 11 2.5 Γράφημα άποψης περιγράμματος του Σχήματος 2.4.............. 12 2.6 Παραδείγματα οπισθοδιάδοσης απόκλισης χρησιμοποιώντας τον κανόνα της αλυσίδας..................................... 14 2.7 Παραδείγματα άθροισης των αποκλίσεων της ενεργοποίησης σε ένα νευρώνα για κάθε επίπεδο κατά την οπισθοδιαδοση. Η ίδια διαδικασία άθροισης συμβαίνει σε όλους τους νευρώνες κάθε επιπέδου, αλλά απεικονίζεται η διαδικασία μόνο σε έναν νευρώνα κάθε επιπέδου για λόγους σαφήνειας του σχήματος. 15 2.8 Παραδείγματα των εικόνων που περιέχονται στο σετ δεδομένων MNIST.. 17 2.9 Παραδείγματα αυτοκοδικωποιητή με δεμένα βάρη (tied weights)....... 18 2.10 Ζευγάρια ψηφίων MNIST και αυτοκωδικοποιήσεων τους απο νευρωνικό δίκτυο [Sub15].................................. 19 2.11 Εφαρμογή μιας συνέλιξης πάνω σε ενα διάνυσμα εισόδου [Ola14a]...... 19 2.12 Εφαρμογή συνέλιξης σε δι-διάστατη είσοδο [Ola14a]............. 21 2.13 Εφαρμογή 2 επιπέδων συνέλιξης σε μονο-διάστατη είσοδο [Ola14a]..... 21 2.14 Απεικόνηση φίλτρου σε ένα συνελικτικό δίκτυο εκπαιδευμένο στην MNIST [Mak15]..................................... 22 2.15 Απεικόνηση φίλτρου σε ένα συνελικτικό δίκτυο εκπαιδευμένο σε βάση προσώπων [Mak15]................................. 22 2.16 Εφαρμογή 2 επιπέδων συνέλιξης με max pooling σε δι-διάστατη είσοδο [Ola14a] 23 2.17 Παραδείγματα απλών νευρωνικών δικτύων................... 24 2.18 Οπισθοδιάδοση στο χρόνο........................... 25 2.19 Μεταφορά και υπολογισμός ενεργοποιήσεων μέσα απο πύλες LSTM.... 26 2.20 Bidirectional RNN [Ola15]........................... 27 2.21 Μηχανισμός ντετερμινιστικης έμφασης..................... 28 2.22 Μηχανισμός έμφασης με χρήση ανατροφοδοτούμενων νευρωνικών δικτύων για δημιουργία περιγραφών για εικόνες (πάνω ντετερμινιστικής, κάτω μήντετερμινιστικής) [XBK + 15].......................... 29 xiii

xiv ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ 2.23 Σύγκριση μεταξύ απλών συνελικτικών δικτύων και ενός δικτύου υπολείμματος [HZRS15a]................................. 34 4.1 Παραδείγματα δεδομένων των ανταλλακτηρίων πριν την προεπεξεργασία... 47 4.2 Παραδείγματα candlestick chart όπου το χρονικό μέγεθος των κάδων είναι 2 ώρες. Το γράφημα προήλθε απο τον ιστότοπο bitcoinwisdom.com και ανταποκρίνεται στη δραστηριότητα ανταλλαγών στο ανταλλακτήριο bitcoin www.huobi.com. Στο πάνω μέρος της εικόνας φαίνονται οι τιμες OHLC και στο κάτω μέρος το συνολικό ποσό των bitcoin που ανταλλάχθηκαν σε εκείνο το χρονικό διάστημα.............................. 48 4.3 Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) χρησιμοποιώντας το πλήρως συνδεδεμένο νευρωνικό δίκτυο. 49 4.4 Σύγκλιση κόστους κατά την εκπαίδευση.................... 50 4.5 Μετρικές των δεδομένων εκπαίδευσης (πάνω) και δεδομένων δοκιμής (κάτω) ανά εποχή για την απλή προσέγγιση τιμής................... 51 4.6 Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) με το απλό συνελικτικό μοντέλο............... 52 4.7 Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) χρησιμοποιώντας το συνελικτικό μοντέλο που χρησιμοποιεί διαβαθμίσεις στη συνάρτηση κόστους..................... 53 4.8 LSTM μοντέλο για την πρόβλεψη των επόμενων επιστροφών........ 54 4.9 Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) χρησιμοποιώντας το ανατροφοδοτούμενο δίκτυο τύπου LSTM 55

Λίστα Πινάκων 4.1 Νευρωνικά δίκτυα με 1 κρυφό επίπεδο..................... 44 4.2 Νευρωνικά δίκτυα με 2 κρυφά επίπεδα..................... 44 4.3 Νευρωνικά δίκτυα με 5 κρυφά επίπεδα..................... 44 4.4 Νευρωνικά δίκτυα με 10 κρυφά επίπεδα.................... 44 4.5 Αποτελέσματα Πειραμάτων με χρήση κανονικοποίησης παρτίδας....... 45 4.6 Αποτελέσματα Πειραμάτων με χρήση συνελικτικών δικτύων......... 45 4.7 Αποτελέσματα Πειραμάτων με χρήση συνελικτικών δικτύων και max pooling 45 4.8 Αποτελέσματα Πειραμάτων με χρήση κανονικοποίησης παρτίδας....... 46 xv

ΛΙΣΤΑ ΠΙΝΑΚΩΝ 1

1 Εισαγωγή Καθ όλη τη διάρκεια της ανθρώπινης ιστορίας όσο η τεχνολογία εξελισσόταν, τόσο περισσότερες αυτοματοποιήσεις εμφανίζονταν στη καθημερινή ζωή των ανθρώπων. Οι εργασίες που κατάφερε ο άνθρωπος να αυτοματοποιήσει, χαρακτηρίζονται μηχανικές που σημαίνει οτι κάποιος μπορεί να τις φέρει εις πέρας ακολουθώντας μια συγκεκριμένη σειρά βημάτων και κανόνων. Η αυτοματοποίηση μπορεί να περιλαμβάνει κάτι τόσο απλό όσο ένας ανεμόμυλος, που μπορεί να αλέσει δημητριακά, αλλά και κάτι πιο σύνθετο όπως η μονάδα κεντρικού ελέγχου μιας μηχανής αυτοκινήτου. Τα τελευταία 100 χρονια, χάρις στην πρόοδο της επιστήμης των υπολογιστών σε συνδυασμό με τη βαθύτερη κατανόηση του ανθρώπινου εγκεφάλου, πολλοί επιστήμονες, όπως ο Alan Turing, αναρωτήθηκαν αν μπορούμε να προσομοιώσουμε την λειτουργία του ανθρώπινου εγκεφάλου με ένα ηλεκτρονικό συστημα. Έτσι το 1956 δημιουργήθηκε για πρώτη φορα το πεδίο της Τεχνητής Νοημοσύνης, με σκοπό να δημιουργηθούν ηλεκτρονικοί υπολογιστές και αλγόριθμοι που να έχουν τις ίδιες ικανότητες με έναν άνθρωπο. Κατά τα τελευταία χρόνια ένα πεδίο της τεχνητής νοημοσύνης που εξελίσσεται με ραγδαίους ρυθμούς, είναι η μηχανική μάθηση, λόγω των εξαιρετικών αποτελεσμάτων που έχει δώσει σε ένα ευρύ φάσμα προβλημάτων που αφορούν τομείς όπως το business intelligence, η επεξεργασία φυσικής γλώσσας, οι ιατρικές διαγνώσεις, επιστημονικές και επενδυτικές συμβουλές. Από όλους τους τομείς της μηχανικής μάθησης το μεγαλύτερο ερευνητικό ενδιαφέρον έχουν μαζέψει τα νευρωνικά δίκτυα και συγκεκριμένα οι τεχνικές της βαθιάς μάθησης (deep learning), καθώς έχουν ξεπεράσει όλες τις προηγούμενες μεθόδους που έχουν χρησιμοποιηθεί σε προβλήματα όπως η μηχανική όραση, η επεξεργασία φυσικής γλώσσας, η μετάφραση κειμένων και η παραγωγή μουσικής. Αυτό κατέστη εφικτό τα τελευταία χρόνια λόγω της ραγδαίας αύξησης της ποσότητας των επεξεργάσιμων δεδομένων και της ευρείας διαθεσιμότητας φθηνών και γρήγορων καρτών γραφικών πάνω στις οποίες μπορεί κανείς να επιταχύνει την εκπαίδευση των νευρωνικών δικτύων κατά τάξεις μεγέθους σε σχέση με τους συμβατικούς επεξεργαστές. Ο στόχος της βαθιάς μάθησης είναι να σπρώξει την έρευνα πάνω στη μηχανική μάθηση πιο κοντά στον αρχικό της στόχο, τη δημιουργία τεχνητής νοημοσύνης εμπνευσμένης από 3

4 Εισαγωγή την νοημοσύνη του ανθρώπου. Οι τεχνικές της βαθιάς μάθησης, κατά τη διάρκεια της εκπαίδευσης, μαθαίνουν χαρακτηριστικά από τα δεδομένα χωρίς καμία προηγούμενη γνώση για το αντικείμενο πάνω στο οποίο εκπαιδεύονται.

2 Μοντέλα και Τεχνικές 2.1 Εισαγωγή Στον παρόν κεφάλαιο, αρχικά παρουσιάζονται τα δομικά υλικά ενός νευρωνικού και το πώς εκπαιδεύονται πάνω στα δεδομένα. Στη συνέχεια αναλύουμε τα πιο διαδεδομένα προβλήματα που προσπαθεί να λύσει η μηχανική μάθηση καθώς και τις κατηγορίες στις οποίες τα ανάγουμε για να μπορούμε εύκολα να επιλέξουμε την σωστή μεθοδολογία επίλυσης. Τέλος, αποτυπώνονται τεχνικές που συνδυάζονται με τα νευρωνικά δίκτυα, για να δημιουργήσουν πιο περίπλοκα μοντέλα. 2.2 Απλό Νευρωνικό Δίκτυο 2.2.1 Γραμμική Παλινδρόμηση (Linear Regression) Η πιο απλή μορφή νευρωνικού δικτύου μπορεί να θεωρηθεί η γραμμική παλινδρόμηση και αναπαρίσταται από ένα νευρωνικό δίκτυο που έχει μόνο ένα επίπεδο νευρώνων εισόδου και ένα επίπεδο νευρώνων εξόδου όπως φαίνεται στο Σχήμα 2.2(αʹ). Το διάνυσμα εξόδου στο συγκεκριμένο παράδειγμα θα είναι 2 διαστάσεων και θα υπολογιστεί με την συνάρτηση: N y j = W i,j x i (2.1) i=0 ή αλλιώς με σημειογραφία γραμμικής άλγεβρας y = W x, όπου W είναι ο πίνακας με διαστάσεις (x, y) των βαρών μεταξύ των νευρώνων του δικτύου και x είναι το διανυσμα των δεδομένων εισόδου. 2.2.2 Λογιστική Παλινδρόμηση (Logistic Regression) Συνήθως όταν χρησιμοποιούμε νευρωνικά δίκτυα, η έξοδος και πολλές φορές η είσοδος δεν έχουν συνεχείς τιμές αλλά διακριτές, δηλαδή κάθε τιμή εξόδου συμβολίζει μια πιθανότητα ενός γεγονότος. Για να μπορέσουμε να εφαρμόσουμε αυτή την ιδιότητα πρέπει να 5

6 Μοντέλα και Τεχνικές περιορίσουμε το εύρος τιμών των εξόδων στο [0, 1], το οποίο μπορούμε να το πετύχουμε χρησιμοποιώντας την σιγμοειδή συνάρτηση στις εξόδους. Η σιγμοειδής συνάρτηση ορίζεται ως εξής: S(t) = 1 1 + e t (2.2) f(x) = 1 1+e x 1 0.8 y 0.6 0.4 0.2 6 5 4 3 2 1 1 2 3 4 5 6 x Σχήμα 2.1: Γράφημα σιγμοειδούς συναρτησης και το γράφημα της φαίνεται στο Σχήμα 2.1. Αν εφαρμόσουμε τη σιγμοειδή συνάρτηση στη γραμμική παλινδρόμηση, καταλήγουμε στη λογιστική παλινδρόμηση (Logistic regression), που στη δεσμευμένη κατανομή (conditional distribution) (y x) έχει τη μορφή κατανομής Μπερνουλί, σε αντίθεση με την γραμμική παλινδρόμηση που έχει Γκαουσιανή κατανομή [Fre09]. Η σιγμοειδής συνάρτηση χρησιμοποιείται περισσότερο στα κρυφά επίπεδα ενός νευρωνικού δικτύου. 2.2.3 Rectified Linear Units (ReLU) Η ενεργοποίηση ανόρθωσης είναι μια από τις πλέον διαδεδομένες μεθόδους ενεργοποίησης και όπως θα δείξουμε στην ενότητα 4.2.1, για τα περισσότερα παραδείγματα αναγνώρισης ψηφίων μας δίνει καλύτερα αποτελέσματα από την λογιστική παλινδρόμηση. Ορίζεται ως εξής: x, Για x 0, ReLu(x) = (2.3) 0, Αλλιώς. ή πιό απλα ReLU(x) = max(0, x)

2.2 Απλό Νευρωνικό Δίκτυο 7 Τα πλεονεκτήματα που μας δίνει η ενεργοποίηση ανόρθωσης είναι πολύ σημαντικά για τα νευρωνικά δίκτυα και περιλαμβάνουν το μικρό υπολογιστικό κόστος της, που απαιτεί μόνο σύγκριση αριθμών, την πρόληψη της εκλειπόμενης παραγώγου (περισσότερα για την εκλειπόμενη παράγωγο στο κεφάλαιο 2.6.3), τον εύκολο υπολογισμό αυτής, καθώς και μεγαλύτερη βιολογική βασιμότητα. Leaky ReLu Ένα σοβαρό μειονέκτημα της ενεργοποίησης ανόρθωσης είναι ότι άν κάποιος νευρώνας καταλήξει να δέχεται μόνο αρνητικές εισόδους, τότε δεν ενεργοποιείται καθόλου και κατ επέκταση, έχει μηδενική παράγωγο. Αυτό σημαίνει, ότι όσο και αν εκπαιδευτεί το δίκτυο από εκείνο το σημείο και μετά, ο συγκεκριμένος νευρώνας δεν πρόκειται ποτέ να προκαλέσει αλλαγή στα προηγούμενα βάρη αφού είναι μόνιμα απενεργοποιημένος. Αυτό το πρόβλημα ονομάζεται νέκρωση ανορθωτών (dying ReLUs) και όσο περισσότερο εκπαιδεύεται ένα δίκτυο με ανορθωτές, τόσο περισσότεροι θα αποκτήσουν αυτό το πρόβλημα. Ο τρόπος με τον οποίο μπορούμε να το ξεπεράσουμε, είναι να επιτρέψουμε στις αρνητικές εισόδους να παράγουν μια μικρή ενεργοποίηση, ώστε η παράγωγος να μπορέσει να διαδοθεί μέσα από έναν τέτοιο νευρώνα. Αυτό επιτυχάνεται χρησιμοποιώντας μία διαπερατή ανόρθωση [MHN13], x, Για x 0, ReLu(x) = (2.4) ax, Αλλιώς. όπου a (0, 1) (συνήθως χρησιμοποιούμε a = 0.1). Επίσης μπορούμε να εκπαιδεύσουμε την παραμέτρο a του ανορθωτή όπως εκπαιδεύουμε το υπόλοιπο δίκτυο με την οπισθοδιάδοση [HZRS15b] (κεφάλαιο 2.3.3) το οποίο φαίνεται να δίνει ακόμα καλύτερα αποτελέσματα. 2.2.4 Συνάρτηση Softmax Για το επίπεδο εξόδου χρησιμοποιούμε μια γενίκευση της σιγμοειδούς συνάρτησης, τη συνάρτηση Softmax[Bis06] που ορίζεται: σ(z) j = e zj K, for j = 1,..., K (2.5) k=1 ezk Η συνάρτηση αυτή είναι o λογαριθμικός κανονικοποιητής της γενικευμένης κατανομής Μπερνουλί και χρησιμοποιείται ετσι ώστε το άθροισμα όλων των πιθανοτήτων να είναι 1. Η εφαρμογή της μας δίνει τις προβλεπόμενες πιθανότητες για κάθε κλάση δεδομένου ενός διανύσματος x P (y = j x) = e xt w j K k=1 ext w k (2.6)

8 Μοντέλα και Τεχνικές 2.2.5 Κρυφά Επίπεδα Εάν θέλουμε το νευρωνικό δίκτυο να κάνει πιο περίπλοκους υπολογισμούς και κατ επεκταση να μας δίνει καλύτερα αποτελέσματα πρέπει να προσθέσουμε κι άλλα επιπεδα που ονομάζονται κρυφά επίπεδα, γιατί δεν έχουν άμεση επίδραση με τον έξω κόσμο 1. Ένα παράδειγμα νευρωνικού δικτύου με ένα κρυφό επίπεδο φαίνεται στο Σχήμα 2.2(βʹ). Αν χρησιμοποιήσουμε σιγμοειδή ενεργοποίηση στα κρυφά επίπεδα και softmax για το επίπεδο εξόδου, τότε οι συναρτήσεις που υπολογίζει είναι: h = S(W 1 x) ενεργοποίηση κρυφού επιπέδου (2.7) y = σ(w 2 h) ενεργοποίηση εξόδου (2.8) Μία πιο εμφωλευμένη μορφή του δικτύου είναι y = σ(w 2 S(W 1 x)). Κατ αντιστοιχία, όταν έχουμε περισσότερα από ένα κρυφά επίπεδα, χρησιμοποιούμε την έξοδο κάθε προηγούμενου επιπέδου για την είσοδο του επόμενου. επίπεδο εισόδου επίπεδου εξόδου επίπεδο εισόδου κρυφό επίπεδο επίπεδου εξόδου h 1 x 1 x 2 W x 1 x 2 W 1 h 2 h 3 W 2 x 3 y 1 x 3 h 4 y 1 x 4 y 2 x 4 h 5 y 2 x 5 x 5 h 6 x 6 x 6 h 7 (αʹ) Γραμμική παλινδρόμιση σε μορφή νευρωνικού δικτύου h 8 (βʹ) Νευρωνικό δίκτυο με 1 κρυφό επίπεδο Σχήμα 2.2: Παραδείγματα απλών νευρωνικών δικτύων 1 Αν και έχει λογική η εξήγηση του όρου κρυφό επιπεδο / κρυφοί νευρώνες, ο δημιουργός του όρου, Geoffrey Hinton, παραδέχεται ότι απλά έκλεψε την έκφραση επειδή του άρεσε: The term I m most pleased with is hidden units. As soon as Peter Brown explained Hidden Markov Models to me I realized that hidden was a great name so I just stole it. [Hin14a]

2.3 Εκπαίδευση Μοντέλου 9 2.3 Εκπαίδευση Μοντέλου 2.3.1 Συνάρτηση Κόστους Ο τρόπος με τον οποίο ένα μοντέλο εκπαιδεύεται, είναι χρησιμοποιώντας μία διαφορίσιμη συνάρτηση κόστους που βαθμολογεί με έναν αριθμό πόσο λανθασμένες είναι οι προβλέψεις του αλγόριθμου. Βάσει του κόστους μπορούμε να βρούμε πόσο θα πρέπει να τροποποιηθούν οι παράμετροί του μοντέλο ώστε να δώσει σωστότερα αποτελέσματα. Έστω f η συνάρτηση που υλοποιεί το μοντέλο μας, η οποία δέχεται σαν είσοδο τις παραμέτρους του μοντέλου W και τα δεδομένα εισόδου x και δίνει σαν έξοδο την πρόβλεψη ŷ. f(w, x i ) = ŷ i Μέσο Τετραγωνικό Σφάλμα (Mean Square Error) Μία από τις πιο απλές συναρτήσεις για τον υπολογισμό του κόστους ενός μοντέλου, είναι το μέσο τετραγωνικό σφάλμα και υπολογίζεται ως εξής Cost f (W, x N, y N ) = 1 N N f(w, x i ) ŷ i 2 (2.9) Αποτελείται από τη μέση τιμή των τετραγωνισμένων διαφορών μεταξύ των προβλέψεων του μοντέλου και των δεδομένων που προσπαθούμε να προσεγγίσουμε. Το τετράγωνο της διαφοράς βοηθά, ώστε οι μεγάλες διαφορές στις προβλέψεις του μοντέλου να τιμωρούν περισσότερο τις παραμέτρους που τις προκάλεσαν. i=0 Κόστος Huber (Huber Loss) Συχνά μέσα στα δεδομένα υπάρχουν πολλές ακραίες περιπτώσεις (outliers), που δεν θέλουμε να λάβουμε υπ όψιν στο μοντέλο που εκπαιδεύουμε. Όμως η μέση τιμή της διαφοράς τετραγώνων, δίνει ανεπανόρθωτα μεγάλο κόστος σε τέτοια σημεία και έτσι προσπαθεί λανθασμένα να τα συμπεριλάβει στην εκπαίδευση των προβλέψεων ενός μοντέλου, εμποδίζοντας την εύρεση των πραγματικών μοτίβων στα δεδομένα. Σε αυτές τις περιπτώσεις το κόστος Huber [H + 64] δίνει καλύτερα αποτελέσματα. Η συνάρτηση Huber ορίζεται ως: 1 L δ (y, f(x)) = 2 (y f(x))2, Για y f(x) δ, δ y f(x) 1 (2.10) 2 δ2, Αλλιώς. Το κόστος Huber μπορεί να χαρακτηριστεί, ως ο συνδυασμός της μέσης διαφοράς τετραγώνων και της μέσης απόλυτης διαφοράς, όπου απο δ έως δ ισχύει η διαφορά τετραγώνων

10 Μοντέλα και Τεχνικές Huber Loss δ = 1 MSE Loss 6 5 y 4 3 2 1 4 3.5 3 2.5 2 1.5 1 0.5 0.5 1 1.5 2 2.5 3 3.5 4 x Σχήμα 2.3: Σύγκριση Κοστους Huber και Διαφορά μέσων τετραγώνων που έχει πιο απότομη κλίση για σημεία που προβλέπονται με σχετικά καλή ακρίβεια, ενώ σε όλο το υπόλοιπο διάστημα της καμπύλης, ισχύει η απόλυτη διαφορά που έχει μικρότερη καμπύλη δίνοντας έτσι λιγότερη σημασία στα έκτοπα σημεία κατά την εκπαίδευση. Λογαριθμικό Κόστος Πιθανοφάνειας (Negative Log Likelihood) Στην περίπτωση που πρέπει να επιλέξουμε κλάσεις για τα δεδομένα, η πιο γνωστή συνάρτηση κόστους είναι αυτή της αρνητικής λογαριθμικής πιθανοφάνειας (Negative log likelihood). Η συνάρτηση αυτού του κόστους ορίζεται ως: NLL(f(x), y) = y log(f(x)) (2.11) Χρησιμοποιείται συνήθως σε συνδυασμό με την ενεργοποίηση εξόδου Softmax (ενότητα 2.2.4). Tο κόστος αφορά την πιθανότητα που δίνει το μοντελό στη σωστή απάντηση και χρησιμοποιείται ο λογάριθμος της προβλεπόμενης πιθανότητας, έτσι ώστε όσο πιο υψηλή πιθανότητα δίνει το μοντέλο στη σωστή απάντηση, τοσο πιο κοντά πλησιάζει το κόστος στο log(1) = 0. Κόστος Διασταυρωμένη Εντροπίας (Cross Entropy Cost) Όταν το μοντέλο εκπαιδεύεται σε κάποιου είδους κωδικοποίηση, η πιο κατάλληλη συνάρτηση κόστους είναι η διασταυρωμένη εντροπία η οποία ορίζεται ως: CE(f(x), y) = (y log(f(x)) + (1 y) log(1 f(x))) (2.12) Όπως φαίνεται και από τον τύπο της, μοιάζει με την λογαριθμική πιθανοφάνεια διότι αυξάνει

2.3 Εκπαίδευση Μοντέλου 11 το κόστος για τις λανθασμένα απενεργοποιημένες εξόδους, αλλά διαφέρει απο αυτήν στο ότι τιμωρεί και τις λανθασμένα ενεργοποιημένες εξόδους. 2.3.2 Μέθοδος Ταχύτερης Καθόδου (Gradient Descent) Για να μειωθεί το κόστος του μοντέλου πρέπει να προσαρμοστούν οι παράμετροι, χρησιμοποιώντας αλγορίθμους όπως η Μέθοδος της Ταχύτερης Καθόδου (Gradient Descent), που χρησιμοποιεί τις παραγώγους του κόστους ως προς κάθε παράμετρο του μοντέλου. Η παράγωγος των παραμέτρων μας δίνει την κατεύθυνση προς την οποία πρέπει να κινηθούν οι παράμετροι W, ώστε να μειωθεί το κόστος, ενώ το μέγεθος του βήματος προς αυτή την κατεύθυνση μας το δίνει ο ρυθμος μάθησης (learning rate) λ, ο οποίος προσδιορίζεται ευριστικά. Η εξίσωση στην οποία καταλήγουμε για να κάνουμε ένα βήμα μαθησης στις παραμέτρους του αλγόριθμου ειναι: W i+1 = W i λ Cost f(w i, x N, y N ) W i, όπου i είναι το βήμα στο χρόνο. (2.13) Σχήμα 2.4: Παράδειγμα επιφάνειας κόστους σε μοντέλο δύο παραμετρων με εκπαίδευση χρησιμοποιώντας ταχύτερη κάθοδο. Πολλές φορές, το μέγεθος των δεδομένων εκπαίδευσης είναι υπερβολικά μεγάλο για να εκπαιδεύσουμε ένα μοντέλο με όλα τα δεδομένα ταυτόχρονα σε κάθε βήμα, οπότε πρέπει να τα χωρίσουμε σε παρτίδες (batches). Για κάθε παρτίδα των δεδομένων κάνουμε ένα βήμα προς την κατεύθυνση που ορίζουν οι παράγωγοι των παραμέτρων ως προς το κόστος της παρτίδας. Αυτή η τεχνική, αν και φαίνεται προβληματική για την εκπαίδευση, αφού υπολογίζει

12 Μοντέλα και Τεχνικές 2 1 0 2 1.5 1 0.5 0 0.5 1 1.5 2 2 1 Σχήμα 2.5: Γράφημα άποψης περιγράμματος του Σχήματος 2.4 μια θορυβώδη προσέγγιση της πραγματικής παραγώγου όλων των δεδομένων, έχει μερικά πλεονεκτήματα τα οποία είναι επιθυμητά από τετοιες τεχνικές. Ο διαχωρισμός των δεδομένων σε παρτίδες, μπορεί να διευκολύνει την online μάθηση, αφού το μοντέλο μπορεί να εκπαιδεύεται με κάθε καινούργιο σετ δεδομένων που παραλαμβάνεται άμεσα. Επίσης, επιτρέπει την εκπαίδευση σε τεράστια σετ δεδομένων αφού μειώνει δραματικά την απαίτηση των υπολογιστικών πόρων. Τέλος, σε πολλά προβλήματα αυξάνει την απόδοση αφού η θορυβώδης φύση του αλγορίθμου εξερευνεί καλύτερα την επιφάνεια του κόστους των παραμέτρων [Saa][Bot10]. Η μέθοδος αυτή ανήκει στους αλγορίθμους βελτιστοποίησης πρώτης τάξης, γιατί χρησιμοποιεί την πρώτη παράγωγο του κόστους. Δεν μας δίνει εγγύηση οτι θα βρεί το ολικό ελάχιστο της συνάρτησης κόστους, το οποίο για τα απλά μοντέλα μπορεί να είναι προβληματικό. Όμως, από τα πειράματα που έχουν γίνει μέχρι σήμερα φαίνεται ότι, αν και τα νευρωνικά δίκτυα έχουν πάρα πολλά τοπικά ελάχιστα, τα περισσότερα από αυτά μας δίνουν ικανοποιητικές λύσεις στα προβλήματα που τα χρησιμοποιούμε [CHM + 14]. 2.3.3 Αλγόριθμος Οπισθοδιάδοσης (Backpropagation algorithm) Ας υποθέσουμε ότι η συνάρτηση κόστους που χρησιμοποιούμε είναι το άθροισμα του τετραγώνου της διαφοράς μεταξύ των πραγματικών τιμών και των τιμών που προβλέπει το μοντέλο:

2.3 Εκπαίδευση Μοντέλου 13 Cost f (W) = 1 2 N f(w, x i ) ŷ i 2 i=0 Το κλάσμα 1 χρησιμοποιείται για να κάνει πιο απλή την παράγωγο του κόστους 2 Ο υπολογισμός της παραγώγου του κόστους, ως προς τα βάρη του επιπέδου εξόδου, γίνεται εύκολα χρησιμοποιώντας τον κανόνα της αλυσίδας: Cost f W out = Cost f f out f out W out = N j=1 (y j f(x j )) f out W outj Η συνάρτηση f out αναπαριστά την ενεργοποίηση του επιπέδου εξόδου που είναι: f out = σ( K w i h i ) όπου σ είναι η συνάρτηση ενεργοποίησης και μπορεί να είναι είτε η σιγμοειδής είτε η συνάρτηση ανόρθωσης. Στη συγκεκριμένη περίπτωση θα υποθέσουμε οτι είναι η ταυτοτική συνάρτηση, (Identity function) για ευκολία στους υπολογισμούς. Η παράγωγος f out k=1 προς κάθε βάρος εξόδου w j W out έιναι h j. Άρα: Cost f W out = N (y j f(x j ))h j j=1 Έτσι έχουμε την κατεύθυνση προς την οποία πρέπει να αλλάξουμε τα βάρη που συνδέουν τους νευρώνες εξόδου με τους νευρώνες του τελευταίου κρυφού επιπέδου. Πώς όμως μπορούμε να υπολογίσουμε το ίδιο πράγμα για τα βάρη των υπόλοιπων επιπέδων, αφού δεν έχουν άμεση επίδραση στην απόκλιση της εξόδου απο τα δεδομένα; Για να καταφέρουμε να διαδώσουμε την απόκλιση στα πιο βαθιά επίπεδα, εκμεταλλευόμαστε τον κανονα της αλυσίδας. Αυτό σημαίνει οτι χρησιμοποιούμε όλες τις ενδιάμεσες παραγώγους από την έξοδο έως την είσοδο των βαρών και των ενεργοποιήσεων. Στο Σχήμα 2.6 βλέπουμε τη διάδοση μέσα απο δίκτυο. Ο τρόπος που υπολογίζουμε την πιο μακροσκελή διάδοση, δηλαδή την παράγωγο του κόστους ως προς τα βάρη των νευρώνων που συνδέουν την είσοδο με το κρυφό επίπεδο είναι: ως Cost f W in = Cost f f out f out = Cost f f out h 1 W in f out h 1 W in Ενώ αρχικά ξεκινήσαμε με την παράγωγο Cost f, που δεν μπορούσαμε να υπολογίσουμε W in εύκολα κατευθείαν, χρησιμοποιώντας τον κανόνα της αλυσίδας καταλήξαμε σε 3 παραγώγους που κάθε μία είναι εύκολα υπολογίσιμη. Στην περίπτωση που έχουμε ένα πολύ βαθύ δίκτυο, χρησιμοποιούμε τον κανόνα της αλυσίδας από τη ενεργοποίηση του τελευταίου επιπέδου μέχρι την ενεργοποίηση του πρώτου.

14 Μοντέλα και Τεχνικές h 1 I 1 h 2 I 2 h 3 h 4 O 1 I 3 Σχήμα 2.6: Παραδείγματα οπισθοδιάδοσης απόκλισης χρησιμοποιώντας τον κανόνα της αλυσίδας Σε κάθε επίπεδο χρησιμοποιούμε την παράγωγο του επόμενου επιπέδου ως προς την παράγωγο του προηγούμενου για να υπολογίσουμε την παράγωγο των βαρών του προηγούμενου επιπέδου: Cost f W k = f k W k f k+1 f k f k+2 f k+1 Cost f f out (2.14) όπου W k και f k ειναι τα βάρη και οι ενεργοποιήσεις του επιπέδου k Σε ένα βαθύτερο νευρωνικό δίκτυο έχουμε συνήθως πολλές εξόδους από κάθε κρυφό νευρώνα ενός επιπέδου στους νευρώνες των διπλανών του επιπέδων, το οποίο σημαίνει οτι υπάρχουν πολλές παράγωγοι ενεργοποιήσεων, στις οποίες συνεισφέρει: hk h k+1 = h k+1 1 h k 1 h k+1 1 h k 2. h k+1 1 h k m h k+1 2 h k 1 h k+1 2 h k 2. h k+1 2 h k m...... h k+1 n h k 1 h k+1 n h k 2....... h k+1 n h k m Για να ωθήσουμε την απόκλιση ως προς μία μονο τιμη, αθροίζουμε όλες τις παραγώγους του επόμενου επιπέδου ως προς κάθε παράγωγο του προηγούμενου επιπέδου:

2.4 Τύποι Μάθησης 15 h k+1 h k = h k+1 1 h k 1 h k+1 1 h k 2 h k+1 1 h k m + hk+1 2 h k 1 + hk+1 2 h k 2 + hk+1 2 h k m. + + hk+1 n h k 1 + + hk+1 n h k 2 + + hk+1 n h k m Μια απεικόνιση αυτής της άθροισης υπάρχει στο Σχήμα 2.7 h 1 h 2 h 4 Σχήμα 2.7: Παραδείγματα άθροισης των αποκλίσεων της ενεργοποίησης σε ένα νευρώνα για κάθε επίπεδο κατά την οπισθοδιαδοση. Η ίδια διαδικασία άθροισης συμβαίνει σε όλους τους νευρώνες κάθε επιπέδου, αλλά απεικονίζεται η διαδικασία μόνο σε έναν νευρώνα κάθε επιπέδου για λόγους σαφήνειας του σχήματος Το βασικό πλεονέκτημα του αλγορίθμου της οπισθοδιάδοσης, σε σχέση με την απλή εφαρμογή του κανόνα της αλυσίδας, είναι οτι αποφεύγει να κάνει τους ίδιους υπολογισμούς παραγώγων πολλές φορές. Έτσι μία διάδοση των αποκλίσεων προς τα πίσω κοστίζει σχεδόν το ίδιο με μια διάδοση των ενεργοποιήσεων προς την έξοδο ενος δικτύου. Αυτό επιτυγχάνεται κρατώντας το γινόμενο των παραγώγων της ενεργοποίησης κάθε επιπέδου όπως περιγράφεται στην εξίσωση 2.3.3 και σε κάθε βήμα προς την είσοδο κατά την οπισθοδιάδοση πολλαπλασιάζουμε το υπάρχον γινόμενο μέχρι το επίπεδο k με την καινούργια παράγωγο του επιπέδου k 1 που μας δίνει ο κανόνας της αλυσίδας. Ο αλγόριθμος περιγράφεται περιληπτικά στον Αλγόριθμο 1. 2.4 Τύποι Μάθησης Οι δύο βασικότερες κατηγορίες μηχανικής μάθησης είναι η επιβλεπόμενη (supervised) και η μη-επιβλεπόμενη (unsupervised) μάθηση. Η επιβλεπόμενη μάθηση αποτελείται από τη

16 Μοντέλα και Τεχνικές Algorithm 1: Αλγόριθμος οπισθοδιάδοσης των αποκλίσεων 1 Διαδίδουμε τις ενεργοποιήσεις μέσα απο το δίκτυο κρατώντας κάθε μία απο αυτές σε ένα πίνακα F ; 2 δ current Cost f F last ; 3 for επίπεδο k in K... 1 do Cost f 4 F k δ current ; W k W k 1 5 δ current δ current F k F k 1 ; δημιουργία μιας συνάρτησης που δεδομένης κάποιας εισόδου, όπως μια εικόνα, μπορεί να μας δώσει μία ζητούμενη έξοδο, π.χ. αν περιέχει η εικόνα έναν άνθρωπο. Στην μη-επιβλεπόμενη μάθηση, δημιουργούμε ένα μοντέλο που μπορεί να βρει χαρακτηριστικά πάνω στα δεδομένα εισόδου χωρίς να έχει καμία εξειδικευμένη πληροφορία γι αυτά, όπως το σε ποια κατηγορία ανήκουν. Τα νευρωνικά δίκτυα, με διάφορες παραλλαγές, μπορούν να χρησιμοποιηθούν και στις δυο αυτές περιπτώσεις. 2.4.1 Επιβλεπόμενη Μάθηση (Supervised Learning) Η μάθηση με επίβλεψη είναι ο πιο κοινός τροπος μάθησης που χρησιμοποιείται στα νευρωνικά δίκτυα. Δεδομένου ενός χώρου εισόδου X, ενός χώρου εξόδου Y και D η κατανομή των δεδομένων πάνω στο χώρο X Y και περιγράφει τα δεδομένα που συνήθως συναντάμε. Για κάθε ζευγάρι (x, y) D, x είναι το διάνυσμα εισόδου, και y είναι το αντίστοιχο και συχνά θορυβώδες διάνυσμα εξόδου. Ο στόχος της επιβλεπόμενης μάθησης είναι να χρησημοποιήσουμε τα διανύσματα εισόδου x απο το σύνολο δεδομένων D training για να βρούμε μια συναρτηση τέτοια ώστε: f : X Y. Αυτό το καταφέρνουμε χρησιμοποιώντας μια συνάρτηση κόστους (όπως περιγράψαμε στην ενότητα 2.3.1) Το πιο γνωστό πρόβλημα, που χρησιμοποιείται ως παράδειγμα για την χρήση των νευρωνικών δικτύων, είναι η αναγνώριση χειρόγραφων ψηφίων και το σετ δεδομένων που χρησιμοποιείται ονομάζεται MNIST [LCB98]. Το σετ δεδομένων αποτελείται απο εικόνες μεγέθους 28 28 px που περιέχουν ένα ψηφίο (από το 0 έως το 9), όπως φαίνεται στο Σχήμα 2.8. Aναγνώριση των ψηφίων της MNIST με νευρωνικά δίκτυα Στη συγκεκριμένη περίπτωση τα δεδομένα εισόδου μας είναι τα pixel κάθε εικόνας. Αυτά αναπαριστώνται από 28 28 διαφορετικές τιμές έντασης για κάθε pixel με διακύμανση απο 0 έως 255 όπου 0 σημαίνει μαύρο και 255 σημαίνει λευκό. Για να τροφοδοτήσουμε το δίκτυο με τα δεδομένα εισόδου, ξεδιπλώνουμε το πίνακα 28 28 σε ένα διάνυσμα 784 διαστάσεων όπου

2.4 Τύποι Μάθησης 17 Σχήμα 2.8: Παραδείγματα των εικόνων που περιέχονται στο σετ δεδομένων MNIST κάθε διάσταση αναπαριστά ένα pixel και κάθε μία απο τις διαστάσεις θα χρησιμοποιηθούν ως ξεχωριστοί νευρώνες εισόδου στο δίκτυο. Στην έξοδο του δικτύου έχουμε 10 διαφορετικούς νευρώνες, ένα για κάθε διαφορετικό ψηφίο που περιμένουμε. Για κάθε δείγμα/εικόνα που τροφοδοτείται στο νευρωνικό διαλέγουμε των νευρώνα εξόδου που αντιστοιχεί στην πρόβλεψη του δικτύου χρησιμοποιώντας τη συνάρτηση arg max για να επιλέξουμε ποια απο τις εξόδους έχει την μέγιστη ενεργοποίηση. Η έξοδος που έχει τη μεγαλύτερη ενεργοποίηση θεωρείται η επιλογή του νευρωνικού ως προς το ποιο ψηφίο περιείχε η εικόνα που δόθηκε ως είσοδος. Ο πιο απλός τροπος για να εκπαιδευτεί αυτό το μοντέλο είναι η συνάρτηση κόστους της διαφοράς τετραγώνων, όπως περιγράφεται στην ενότητα 2.9. Το διάνυσμα εξόδου στη συγκεκριμένη περίπτωση συγκρίνεται με ένα διάνυσμα ίδιου μεγέθους που έχει μηδενικά στοιχεία σε όλες τις διαστάσεις εκτός απο εκείνη που ανταποκρίνεται στο ψηφίο που υπάρχει στην εικόνα. 2.4.2 Μη-Επιβλεπόμενη Μάθηση (Unsupervised Learning) Η μάθηση χωρίς επίβλεψη είναι μια μέθοδος μάθησης, που δεν χρησιμοποιεί τις ετικέτες (labels) των δεδομένων, για να προβλέψει τις αντίστοιχες ετικέτες άλλων δεδομένων. Ο σκοπός της μη-επιβλεπόμενης μάθησης είναι να εξάγει χρήσιμα χαρακτηριστικά από τα δεδομένα τα οποία μπορούν να χρησιμοποιηθούν είτε για τη μείωση διαστάσεων των δεδομένων είτε για τη δημιουργία embeddings για χρήση σε μεθόδους όπως η word2vec [GL14]. Επίσης τα μοντέλα που δημιουργούνται από αυτού του τύπου την μάθηση μπορούν να χρησιμοποιηθούν ως generative models δηλαδή να παράγουν πιθανα παραδείγματα όμοια με αυτά του αρχικού

18 Μοντέλα και Τεχνικές σετ εκπαίδευσης. Μία ακόμη χρήση τους είναι η προεκπαίδεση (pretraining) ενός μοντέλου που στη συνέχεια θα εκπαιδευτεί με επίβλεψη. Κωδικοποιητής Αποκωδικοποιητής h 1 1 h 3 1 x 1 h 1 2 W 1 W 2 h 2 W T 2 h 3 2 W T 1 ˆx 1 x 2 h 1 3 1 h 3 3 ˆx 2 x 3 h 1 4 h 2 2 h 3 4 ˆx 3 x 4 h 1 5 h 2 3 h 3 5 ˆx 4 x 5 h 1 6 h 2 4 h 3 6 ˆx 5 x 6 h 1 7 h 3 7 ˆx 6 h 1 8 h 3 8 Σχήμα 2.9: Παραδείγματα αυτοκοδικωποιητή με δεμένα βάρη (tied weights) Ο πιο απλός τρόπος να χρησιμοποιηθούν τα νευρωνικά δίκτυα στην μάθηση χωρίς επίβλεψη είναι μέσω της λογικής των αυτοκωδικοποιητών (autoencoders), το οποίο σημαίνει ότι προσπαθούμε να εκπαιδεύσουμε ένα νευρωνικό δίκτυο ώστε να μας δίνει σαν έξοδο ότι δεχθεί στην είσοδο. Μπορεί να ακούγεται εύκολο όμως εάν μέσα στο νευρωνικό υπάρχει κάποιο επίπεδο που έχει λιγότερους νευρώνες απο το επίπεδο εισόδου, τότε το νευρωνικό αναγκάζεται να συμπιέσει την πληροφορία για να μπορέσει να αναπαράγει την είσοδο στην έξοδο. Ένα παράδειγμα ενός αυτοκωδικοποιητή φαίνεται στο Σχήμα 2.9. Αυτή η συμπίεση της πληροφορίας, βοηθάει στην εξαγωγή μόνο της χρήσιμης πληροφορίας που περιέχεται στα δεδομένα και του φιλτραρίσματος του θορύβου. 2.5 Συνελικτικά Νευρωνικά Δίκτυα (Convolutional Neural Networks) Ένα από τα συστατικά που έχουν καταφέρει να αυξήσουν δραματικά την ακρίβεια των νευρωνικών δικτύων, είναι τα συνελικτικά δίκτυα/επίπεδα. Ένας απλός τρόπος εξήγησης των συνελικτικλων επιπέδων, είναι ως ένα κανονικό επίπεδο νευρωνικού δικτύου που έχει πολλούς κλώνους του ίδιου νευρώνα, δηλαδή των βαρών που συνδέονται με το προηγούμενο επίπεδο. Μπορεί να παρομοιαστεί ως εφαρμογή μίας κυλιόμενης συνάρτησης πάνω σε μία είσοδο.

2.5 Συνελικτικά Νευρωνικά Δίκτυα (Convolutional Neural Networks) 19 Σχήμα 2.10: Ζευγάρια ψηφίων MNIST και αυτοκωδικοποιήσεων τους απο νευρωνικό δίκτυο [Sub15] 2.5.1 Συνέλιξη (Convolution) Σχήμα 2.11: Εφαρμογή μιας συνέλιξης πάνω σε ενα διάνυσμα εισόδου [Ola14a] Στην περίπτωση του Σχήματος 2.11 έχουμε: y 0 = A(x 0, x 1 ) y 1 = A(x 1, x 2 ). y 7 = A(x 7, x 8 ) όπου A είναι μια συνάρτηση που χρησιμοποιεί τα ίδια βάρη κάθε φορά A(x i, x j ) = σ(w 0 x i + w 1 x j + b) = σ(wx + b) Αν και η εξήγηση αυτή μας διευκολύνει στο να καταλάβουμε πως λειτουργούν τα συνε-

20 Μοντέλα και Τεχνικές λικτικά επίπεδα, στην πραγματικότητα προσθέτει πολυπλοκότητα στον υπολογισμό τους. Γι αυτό θα χρησιμοποιήσουμε την μαθηματική έννοια της συνέλιξης, η οποία είναι πολύ πιο αποδοτική στους υπολογισμούς και είναι η ρίζα του όρου συνελικτικά δίκτυα. Ο μαθηματικός ορισμός της συνέλιξης είναι (f g)(t) = f(τ)g(t τ)dt (2.15) ο οποίος εφαρμόζεται στις συνεχείς συναρτήσεις. Ο αντίστοιχος ορισμός για τις διακριτές συναρτήσεις είναι (f g)[n] = f(m)g(n m) (2.16) m= και αφού η χρήση της συνέλιξης στη περίπτωση των νευρωνικών δικτύων είναι σε πεπερασμένες συναρτήσεις τότε η συνέλιξη παίρνει πεπερασμένες τιμές M (f g)[n] = f(m)g(n m) (2.17) m= M Ο τρόπος που υλοποιούμε την συνέλιξη για να έχουμε πλεονεκτήματα στην ταχύτητα είναι χρησιμοποιώντας το διακριτό μετασχηματισμό Φουριέρ. (f g) = F 1 (F(f)F(g)) (2.18) Όπου F είναι ο διακριτός μετασχηματισμός Φουριέρ και F 1 ο αντίστροφος διακριτός μετασχηματισμός Φουριέρ. Αν και η χρήση αυτών των συναρτήσεων για την περίπτωση των συνελικτικών δικτύων φαίνεται περίπλοκη, τα πλεονεκτήματα που προσφέρει υπερισχύουν. Το βασικότερο πλεονέκτημα είναι, ότι χρησιμοποιώντας τις διαθέσιμες υλοποιήσεις του γρήγορου μετασχηματισμού Φουριέρ (FFT), για αρκετά μεγάλα φίλτρα, έχουμε πολύ μικρότερη πολυπλοκότητα της τάξης του O(nlogn) ενώ με την απλή χρήση της συνέλιξής θα είχαμε O(n 2 ). Επίσης, η συνέλιξη και ο μετασχηματισμός Φουριέρ έχουν ευρεία χρήση σε όλους τους τομείς των μαθηματικών αλλά και της πληροφορικής, οπότε υπάρχουν βελτιστοποιημένες υλοποιήσεις που δίνουν δραματικά αυξημένες αποδόσεις σε σχέση με τις απλές υλοποιήσεις που ακολουθούν την προηγούμενη λογική. Ένα παράδειγμα πρόσφατης υλοποίησης του μετασχηματισμού Φουριερ είναι τα φίλτρα Winograd [Lav15]. Επίσης ένα ακόμη πλεονέκτημα αυτών των μεθόδων είναι ότι δεν χρειάζεται να υλοποιήσουμε επαναληπτικά την εφαρμογή της συνάρτησης πάνω στα υποσύνολα κάθε εισόδου, αφού αυτό το αναλαμβάνει η λογική του μετασχηματισμού Φουριέρ. Χρησιμοποιώντας την ίδια τεχνική μπορούμε να εφαρμόσουμε συνελικτικές συναρτήσεις πάνω σε δι-διάστατα δεδομένα όπως είναι οι εικόνες. Η αντίστοιχη συνάρτηση συνέλιξης για

2.5 Συνελικτικά Νευρωνικά Δίκτυα (Convolutional Neural Networks) 21 τις δύο διαστάσεις θα είναι: (f g)[i, j] = M N f(m, n)g(i m, j n) (2.19) m= M n= N Σχήμα 2.12: Εφαρμογή συνέλιξης σε δι-διάστατη είσοδο [Ola14a] Η λογική των συνελικτικων δικτύων είναι ότι εφαρμόζοντας την συνέλιξη με πολλά φίλτρα πάνω σε μια είσοδο (π.χ. μια εικόνα) αυξάνονται οι ενεργοποιήσεις των νευρώνων στα σημεία που τα φίλτρα ταιριάζουν με την είσοδο και έτσι αυτά χρησιμοποιούνται ως πιθανά χαρακτηριστικά της εικόνας. Σωρεύοντας αυτά τα επίπεδα το ένα μετα το άλλο (όπως στο Σχήμα 2.16), μπορεί το δίκτυο να μάθει χαρακτηριστικά υψηλότερου επιπέδου. Σχήμα 2.13: Εφαρμογή 2 επιπέδων συνέλιξης σε μονο-διάστατη είσοδο [Ola14a] 2.5.2 Max Pooling Μία τεχνική που έχει αυξήσει την απόδοση των συνελικτικών δικτύων είναι τα επίπεδα συγκέντρωσης (pooling layers) που βοηθούν στη μείωση του αριθμού εξόδων κάθε επιπέδου και στην επιλογή των πιο σημαντικών χαρακτηριστικών (στην περίπτωση της μέγιστης

22 Μοντέλα και Τεχνικές Σχήμα 2.14: Απεικόνηση φίλτρου σε ένα συνελικτικό δίκτυο εκπαιδευμένο στην MNIST [Mak15] Σχήμα 2.15: [Mak15] Απεικόνηση φίλτρου σε ένα συνελικτικό δίκτυο εκπαιδευμένο σε βάση προσώπων συγκέντρωσης (max pooling)). Αυτή η τεχνική αν και βελτιώνει την ακρίβεια των αποτελεσμάτων, έχει κατακριθεί [Hin14b] διότι όταν οι συγκεντρώσεις υπερκαλύπτουν η μία την άλλη, τότε χάνεται πολύτιμη πληροφορία της τοπολογίας του σημείου, από το οποίο προήλθε η συγκεκριμένη ενεργοποίηση. 2.6 Ανατροφοδοτούμενα Νευρωνικά Δίκτυα (RNN) Τα ανατροφοδοτούμενα νευρωνικά δίκτυα (Recurrent Neural Networks), είναι ένα είδος νευρωνικού δικτύου που χρησιμοποιείται σε δεδομένα χωρισμένα σε διακριτά χρονικά βήματα όπως οι χρονοσειρές. Η διαφορά τους με τα απλά νευρωνικά δίκτυα είναι, ότι εκτός από την κανονική είσοδο στην συνάρτηση ενεργοποίησης τους, παίρνουν και την ενεργοποίηση που είχαν στο προηγούμενο χρονικό βήμα τους. Χρησιμοποιώντας αυτήν την ενεργοποίηση που έχουν ως μνήμη μπορούν να έχουν μια διαμοιρασμένη αναπαράσταση των δεδομένων που έχουν ήδη επεξεργαστεί και να τη χρησιμοποιήσουν συνδυαστικά με τις καινούργιες εισόδους. Αυτό επιτρέπει στα ανατροφοδοτούμενα δίκτυα να μπορούν να επεξεργαστούν εισόδους απροσδιόριστου μεγέθους όπως ομιλίες ή κείμενα.

2.6 Ανατροφοδοτούμενα Νευρωνικά Δίκτυα (RNN) 23 Σχήμα 2.16: Εφαρμογή 2 επιπέδων συνέλιξης με max pooling σε δι-διάστατη είσοδο [Ola14a] 2.6.1 Απλό Ανατροφοδοτούμενο δίκτυο Η πιο απλή μορφή ανατροφοδοτούμενου δικτύου όπως φαίνεται στο Σχήμα 2.17(αʹ) έχει συνδέσεις με την είσοδο, αλλά και μεταξύ των κρυφών νευρώνων του. Οι ενεργοποιήσεις του κρυφού επιπέδου για κάθε βήμα στο χρόνο υπολογίζεται χρησιμοποιώντας την είσοδο για το συγκεκριμένο χρονικό βήμα και τις ενεργοποιήσεις του κρυφού επιπέδου του προηγούμενου χρονικού βήματος h t = σ(w h h t 1 + W i x t + b h ) (2.20) y t = σ(w o h t + b o ) (2.21) όπου h t είναι οι ενεργοποιήσεις των κρυφών νευρώνων στο χρονικό βήμα t, x t και y t είναι η είσοδος και η έξοδος του δικτύου σε εκείνο το χρονικό βήμα. 2.6.2 Οπισθοδιάδοση στο χρόνο (Backpropagation Through Time) Επειδή τα ανατροφοδοτούμενα δίκτυα διατηρούν και μεταφέρουν την κρυφή ενεργοποίηση τους στο χρόνο, δεν είναι δυνατό να χρησιμοποιήσουμε την εκπαίδευση μέσω της οπισθοδιάδοσης με τον ίδιο τροπο που εξηγήσαμε στη Ενότητα 2.3.3 που εφαρμόζεται σε απλά

24 Μοντέλα και Τεχνικές κρυφό επίπεδο Y t-1 Y t Y t+1 x 1 h 1 y 1 x 2 h 2 y 2 H t-1 H t H t+1 x 3 y 3 x 4 h 3 y 4 X t-1 X t X t+1 (αʹ) Σχήμα απλού αυτοτροφοδοτούμενου νευρωνικού δικτύου (βʹ) Σχήμα ανατροφοδοτούμενο δικτύου ξεδιπλωμένο στο χρόνο Σχήμα 2.17: Παραδείγματα απλών νευρωνικών δικτύων νευρωνικά δίκτυα. Τροποποιούμε την εκπαίδευση ξεδιπλώνοντας τις ενεργοποιήσεις του δικτύου στο χρόνο και εφαρμόζουμε την οπισθοδιάδοση αντίθετα στο χρόνο. Τελικά εφαρμόζουμε την μέθοδο της ταχύτερης καθόδου χρησιμοποιώντας το άθροισμα των παραγώγων κάθε βηματος ώς προς τα βάρη του. Ο τρόπος που θα εφαρμόσουμε τον κανόνα της αλυσίδας πίσω στο χρόνο, φαίνεται στο Σχήμα 2.18 και ορίζεται ως εξής: Cost t W h = t i=0 h i h i+1... Cost t W h h i h t Φυσικά όπως δείξαμε και για την απλή οπισθοδιάδοση εφαρμόζουμε δυναμικό προγραμματισμό για να μειώσουμε το κόστος του υπολογισμού των παραγώγων, διατηρώντας κάθε φορά τις παραγώγους και της ενεργοποιήσεις που θα ξαναχρησιμοποιήσουμε όσο διαδίδουμε τις παραγώγους πίσω στο χρόνο. 2.6.3 LSTM δίκτυα (Long Short Term Memory) Ένα από τα μεγαλύτερα προβλήματα που έχουν τα ανατροφοδοτούμενα νευρωνικά δίκτυα είναι η εκλειπώμενη παράγωγος (vanishing gradient), που σημαίνει οτι οι παράγωγοι που διαδίδονται πίσω στο χρόνο χάνουν πολύ γρήγορα την επιρροή τους. Έτσι η συσχέτιση γεγονότων που συνέβησαν σε προηγούμενα βήματα με γεγονότα σε επόμενα βήματα είναι όλο και πιο περιορισμένη όσο η απόσταση τους στο χρόνο μεγαλώνει. Αυτό το πρόβλημα λύθηκε με την δημιουργία των δικτύων LSTM [HS97] τα οποία χρησιμοποιούν προστατευμένα κελιά ενεργοποίησης με πυλες που περιορίζουν την είσοδο και την

2.6 Ανατροφοδοτούμενα Νευρωνικά Δίκτυα (RNN) 25 Y t-1 Y t Y t+1 H t-1 H t H t+1 X t-1 X t X t+1 Σχήμα 2.18: Οπισθοδιάδοση στο χρόνο έξοδο των ενεργοποιήσεων των κρυφών νευρώνων και έτσι μπορούν να διαδώσουν την παράγωγο των ενεργοποιήσεων στον χρόνο χωρίς το πρόβλημα τις εκλειπώμενης παραγώγου. f t = σ(w xf x + W hf h t 1 + b f ) (2.22) i t = σ(w xi x + W hi h t 1 + b i ) (2.23) c t = tanh(w hc h t 1 + W xc x t + b c ) (2.24) c t = f t c t 1 + i t c t (2.25) o t = σ(w oc c t + W oh h t 1 + b o ) (2.26) h t = o t σ(c t ) (2.27) Η λογική αυτών των δικτύων μπορεί να πλαισιωθεί ως μια απλή επέκταση των απλών ανατροφοδοτούμενων δικτύων. Τα απλά ανατροφοδοτούμενα δίκτυα έχουν 3 διαφορετικές προβολές των ενεργοποιήσεων τους οι οποίες είναι 1. Είσοδος προς κρυφό επιπέδο 2. Κρυφό επίπεδο προς κρυφό επίπεδο 3. Κρυφό επίπεδο πρός έξοδο Τα LSTM εισάγουν την έννοια των πυλών οι οποίες περιορίζουν και ρυθμίζουν όλες αυτές τις προβολές και έτσι οι κρυφές ενεργοποιήσεις αποκτούν αντοχή στις προβολές που μπορεί

26 Μοντέλα και Τεχνικές να τις επηρεάσουν αρνητικά. c t-1 + c t σ σ h t-1 σ tanh h t x t Σχήμα 2.19: Μεταφορά και υπολογισμός ενεργοποιήσεων μέσα απο πύλες LSTM Οι συναρτήσεις που εφαρμόζουν οι πύλες αυτές είναι διαφορίσιμες οπότε μπορούν να χρησιμοποιηθούν σε συνδυασμό με την οπισθοδιάδοση στο χρόνο για την μάθηση με ταχύτερη κάθοδο. 2.6.4 Ανατροφοδοτούμενα Δίκτυα Δύο Κατευθύνσεων (Bidirectional RNN) Τα ανατροφοδοτούμενα δίκτυα, όπως έχουμε περιγράψει, εκμεταλλεύονται την χρονική εξάρτηση των δεδομένων που αποτελούνται από διακριτά βήματα στο χρόνο. Πολλές χρήσεις τους όμως δεν περιλαμβάνουν άγνωστα μελλοντικά δεδομένα, όπως είναι η πρόβλεψη του καιρού ή της τιμής μίας μετοχής. Προβλήματα όπως η μετάφραση από μία γλώσσα σε μια άλλη, επιτρέπουν να έχουμε ολόκληρη τη χρονοσειρά που θα αναλύσουμε εξ αρχής. Τα μοντέλα που δείξαμε μέχρι τώρα όμως εκμεταλλεύονται μόνο την εξάρτηση του χρόνου με κατεύθυνση από την αρχή προς το τέλος της χρονοσειράς. Τα ανατροφοδοτούμενα δίκτυα διπλής κατεύθύνσης μας επιτρέπουν να εκμεταλλευτούμε την εξάρτηση που έχουν τα δεδομένα και αντίστροφα από τη σειρά που εμφανίζονται [GMH13]. Ο τρόπος που το επιτυγχάνουν είναι χρησιμοποιώντας ένα δεύτερο ανατροφοδοτούμενο επίπεδο που αναλύει τα δεδομένα με την αντίστροφη φορά, όπως φαίνεται στο σχήμα 2.20. Το επίπεδο εξόδου ενώνει τις κρυφές ενεργοποιήσεις από κάθε αντίστοιχο βήμα των δύο νευρωνικών και τις χρησιμοποιεί για να υπολογίσει την επιθυμητή έξοδο. Η χρήση των Bidirectional RNN έχει δώσει σημαντικές βελτιώσεις στην ακρίβεια των αποτελεσμάτων σε προβλήματα αναγνώρισης λόγου [GFS05] και μετάφρασης [GMH13] και είναι ένας κλασσικός τρόπος που μπορεί να βελτιώσει την απόδοση των ανατροφοδοτούμενων

2.6 Ανατροφοδοτούμενα Νευρωνικά Δίκτυα (RNN) 27 Σχήμα 2.20: Bidirectional RNN [Ola15] δικτύων όταν τα δεδομένα εισόδου δίνονται όλα μαζί και όχι κάθε χρονικό ξεχωριστά. 2.6.5 Μηχανισμός Έμφασης (Attention Mechanism) Η τελευταία μεγάλη εξέλιξη στον τομέα των νευρωνικών δικτύων μετά την δημιουργία των LSTM είναι ο μηχανισμός της έμφασης. Αυτός ο μηχανισμός επιτρέπει σε ένα ανατροφοδοτούμενο νευρωνικό δίκτυο να ενισχύσει κάποια κομμάτια μιας εισόδου και να σιγάσει κάποια άλλα, έτσι ώστε τα εξέχοντα χαρακτηριστικά (salient features) που βρίσκονται σε διαφορετικά σημεία μιας εισόδου να παρατηρηθούν ταυτόχρονα. Η κλασσική προσέγγιση είναι να μετατραπεί όλη η είσοδος σε μία στατική αναπαράσταση, που εισάγεται αυτούσια στο νευρωνικό και έτσι προσθέτει θόρυβο και πολλαπλά χαρακτηριστικά, από τα οποία μπορεί να υπερισχύσει μόνο τα πιο ισχυρά. Υπάρχουν όμως περιπτώσεις που τα λιγότερα ισχυρά χαρακτηριστικά σε μία εικόνα είναι αυτά που αναζητούμε περισσότερο (π.χ. εικόνες στις οποίες το αντικείμενο που αναζητείται είναι κρυμμένο πίσω από κάποιο ημιδιαφανές εμπόδιο.) Μία απο τις πρώτες φορές που εφαρμόστηκε η έμφαση στα ανατροφοδοτούμενα δίκτυα, ήταν για την δημιουργία περιγραφών για εικόνες [XBK + 15] και για μετάφραση κειμένου [BCB14]. Η πιο βασική υλοποιήση της έμφασης πάνω σε μία είσοδο, είναι με την εξαγωγή διανυσματικών χαρακτηριστικών της εισόδου και στη συνέχεια την εύρεση κάποιων παραμέτρων α που δίνουν ένα βάρος σε κάθε διάνυσμα και έτσι αυξάνουν ή μειώνουν την έμφαση που δίνεται σε κάθε χαρακτηριστικό της εικόνας όπως φαίνεται στο σχήμα 2.21. Οι τιμές α i υπολογίζονται συνήθως χρησιμοποιώντας ένα απλό νευρωνικό δίκτυο το οποίο δέχεται σαν είσοδο την ενεργοποίηση του ανατροφοδοτούμενου δικτύου στο βήμα t και το διάνυσμα χαρακτηριστικών a i, i = 1,..., L, όπου L το πλήθος όλων των σημείων της εισόδου απ όπου παίρνουμε το διανύσματα χαρακτηριστικών. Το απλό νευρωνικό δίκτυο επιστρέφει μία τιμή ϵ η οποία αφού περάσει από μια softmax συνάρτηση χρησιμοποιείται σαν πολλαπλασιαστής στο συνδυασμό όλων των διανυσμάτων με τα χαρακτηριστικά.

28 Μοντέλα και Τεχνικές rnn 2 c t h t-1 h t + α 1 α 2 α 3 α 4 α 5 Softmax mlp mlp mlp mlp mlp a 1 a 2 a 3 a 4 a 5 rnn 1 rnn 1 rnn 1 rnn 1 rnn 1 x 1 x 2 x 3 x 4 x 5 x 6 x 8 Σχήμα 2.21: Μηχανισμός ντετερμινιστικης έμφασης Tx j=1 c i = α ija j, για ντετερμινιστική έμφαση, a j, P r(a j ) = α ij, για μη-ντετερμινιστική έμφαση α tj = exp(e tj ) Tx k=1 exp(e tk) (2.28) (2.29) e tj = f mlp (h t 1, a j ) (2.30) Η τελική προβολή της εισόδου c t που χρησιμοποιούμε στις εξισώσεις 2.28, είναι η είσοδος που χρησιμοποιείται για το RNN αφού εφαρμοστεί ο μηχανισμός της έμφασης. Υπάρχουν δύο διαφορετικοί τρόποι για το πώς θα χρησιμοποιήσουμε τους πολλαπλασιαστές α i για να εστιάσουμε την προσοχή του δικτύου μας.

2.7 Τεχνικές Βελτίωσης Απόδοσης 29 Μη-Ντετερμινιστική Έμφαση (Hard Attention) Σε αυτήν την περίπτωση προσπαθούμε να αφοσιώσουμε την είσοδο του δικτύου σε μία μόνο σειρά από τoν πίνακα a i. Για να διαλέξουμε μία είσοδο χρησιμοποιούμε το α ως μια κατανομή πιθανοτήτων για τα χαρακτηριστικά a i και διαλέγουμε τυχαία κάποιο απο τα στοιχεια a i βάσει αυτής της κατανομής. Για να μπορέσουμε να εκπαιδεύσουμε το μοντέλο με τη μέθοδο της οπισθοδιάδοσης, κατα την εκπαίδευση σε αυτό το σημείο διαλέγουμε πάντα το στοιχείο argmax(α i ) και δίνουμε σαν είσοδο το a i Σχήμα 2.22: Μηχανισμός έμφασης με χρήση ανατροφοδοτούμενων νευρωνικών δικτύων για δημιουργία περιγραφών για εικόνες (πάνω ντετερμινιστικής, κάτω μή-ντετερμινιστικής) [XBK + 15] Ντετερμινιστική Έμφαση (Soft Attention) Με αυτόν τον τρόπο προσπαθούμε να δημιουργήσουμε την είσοδο του αποκωδικοποιητή συνδυαστικά με όλες τις τιμές του πίνακα a i. Οι τιμές α i χρησιμοποιούνται ως πολλαπλασιαστές για κάθε διάνυσμα που περιέχει το a i και το άθροισμα τους τελικά χρησιμοποιείται σαν είσοδος στον αποκωδικοποιητή, όπως φαίνεται στην εξίσωση 2.28. 2.7 Τεχνικές Βελτίωσης Απόδοσης 2.7.1 Ensemble Averaging Μια από τις πιο γνωστές μεθόδους στον κλάδο της μηχανικής μάθησης για την βελτίωση των αποτελεσμάτων ενός μοντέλου, είναι η χρήση πολλών (είτε δομικά διαφορετικών είτε διαφορετικά αρχικοποιημένων) μοντέλων, τα οποία χρησιμοποιούνται ταυτόχρονα συνδυάζοντας τις προβλέψεις και δίνοντας ως τελικό αποτέλεσμα το μέσο όρο αυτών. Με αυτόν τον τρόπο μειώνεται σημαντικά η απόκλιση που θα είχε η έξοδος αν δινόταν από μόνο ένα εκπαιδευμένο μοντέλο [Wol92]. Αυτή η τεχνική δίνει σχεδόν πάντοτε μια μικρή αύξηση στην απόδοση και επίσης μπορεί να συνδυαστεί με μεθόδους εκπαίδευσης που χρησιμοποιούν μικρότερα τυχαία κομμάτια των διαθέσιμων δεδομένων, έτσι ώστε να μειώσουν σημαντικά και την υπερπροσαρμογή (overfitting).

30 Μοντέλα και Τεχνικές 2.7.2 Μέθοδος της Ορμής (Momentum) Η κλασσική μέθοδος της ορμής [Pol64] χρησιμοποιείται για την επιτάχυνση της μάθησης σε συνδυασμό με τη μέθοδο της ταχύτερης καθόδου και έχει δειχτεί ότι μειώνει τον αριθμό τον βημάτων που πρέπει να γίνουν απο την κλασίκή μέθοδο της ταχύτερης καθόδου κατά R βήματα σε μη στοχαστικά περιβάλλοντα. Η κλασσική μέθοδος της ορμής ορίζεται ως u t+1 = µu t ϵ f(θ t ) (2.31) θ t+1 = θ t + u t+1 (2.32) όπου µ είναι η παράμετρος της ορμής, δηλαδή το κατα πόσο διατηρούνται οι κλίσεις των προηγούμενων βημάτων, θ t είναι οι παράμετροι που προσπαθούμε να μάθουμε και ϵ είναι ο ρυθμός μάθησης. Όπως φάινεται και απο τους ορισμούς των βημάτων, η μέθοδος της ορμής συσσωρεύει την κλίση των προηγούμενων βημάτων στην παράμετρο u t και σε συνδυασμό με την κλίση του βήματος t εφαρμόζει την αλλαγή στις παραμέτρους θ t. Η παράμετρος mu χρησιμοποιείται για να μικραίνει αυτή τη συσσώρευση της κλίσης και ταυτόχρονα ως ένας τρόπος για να μειώνεται η επίδραση των κλίσεων των βημάτων που εκτελέστηκαν πολύ πριν. Μια παραλλαγή της κλασσικής ορμής είναι η επιταχυνόμενη παράγωγος Nesterov (Nesterov s Accelerated Gradient) [Nes83] και η διαφορά της απο την κλασσική ορμή, έγκειται στο σημείο που συμπεριλαμβάνεται η καινούργια κλίση των βαρών στη συσσωρεμένη κλίση των προηγούμενων βημάτων για των υπολογισμό του καινούργιου βήματος: u t+1 = µu t ϵ f(θ t + µu t ) (2.33) θ t+1 = θ t + u t+1 (2.34) Όπως έχει δειχτεί [SMDH13], η μέθοδος επιταχυνόμενης παραγώγου Nesterov παράγει καλύτερα αποτελέσματα και έχει γρηγορότερη σύγκλιση απο την κλασσική ορμή. Μέθοδος ορμής Adam Η πλέον πιο χρησιμοποιούμενη μέθοδος ορμής είναι ο αλγόριθμος Adam [KB14], που χρησιμοποιεί και την εκθετική μέση κινούμενη απόκλιση σε συνδυασμό με την εκθετική κινούμενη μέση τιμή, ώστε να εφαρμόζει βήματα στις παραμέτρους, τα οποία είναι αμετάβλητα σε διαφορετικές κλίμακες.

2.7 Τεχνικές Βελτίωσης Απόδοσης 31 t t + 1, μετάβαση στο επόμενο χρονικό βήμα (2.35) g t θ f t (θ t 1 ), παράγωγος του παρόντος χρονικού βήματος (2.36) m t β 1 m t 1 + (1 β 1 ) g t, ενημέρωση εκθετικού μέσου (2.37) v t β 2 v t 1 + (1 β 2 ) g 2 t, ενημέρωση εκθετικής απόκλισης (2.38) m t m t, υπολογισμός μη-πολωμένου μέσου (2.39) (1 β1) t v t v t, υπολογισμός μη-πολωμένης απόκλισης (2.40) (1 β2) t m t θ t θ t 1 α ( v, ενημέρωση παραμέτρων (2.41) t + ϵ) Οι μεταβλητές m και u αναπαριστούν τον εκθετικό κινούμενο μέσο και την εκθετική κινούμενη απόκλιση. Επειδή αρχικοποιούνται με μηδενικά στοιχεία, είναι πολωμένα προς το μήδεν, και για να το αποφύγουμε αυτό χρησιμοποιούμε τις παραμέτρους β 1 και β 2 στις εξισώσεις 2.39 και 2.40. 2.7.3 Dropout Η τεχνική Dropout χρησιμοποιήθηκε στη νικητήρια συμμετοχή στον διαγωνισμό ILSVRC- 2012 [SHK + 14] και ήταν ένα από τα πρώτα γεγονότα που επανεκκίνησαν την ευρεία έρευνα πάνω στα νευρωνικά δίκτυα και τη βαθιά μάθηση. Το dropout αλλάζει τα επίπεδα των νευρωνικών δικτύων απενεργοποιώντας τυχαία ένα κομμάτι, συνήθως το 50%, των ενεργοποιήσεων κάθε επιπέδου. Αυτό εμποδίζει την συμπροσαρμογή (coadaptation) των νευρώνων κάθε επιπέδου, αναγκάζοντας έτσι κάθε νευρώνα να εντοπίζει κάτι χρήσιμο από το προηγούμενο επίπεδο ανεξάρτητα από τους υπόλοιπους νευρώνες του επιπέδου. Αυτός είναι και ο λόγος, που η χρήση της μεθόδου dropout προλαμβάνει την υπερπροσαρμογή ενός μοντέλου. Όταν τελειώσει η εκπαίδευση και το μοντέλο χρησιμοποιηθεί σε δεδομένα τεστ, δεν απενεργοποιεί τους μισούς νευρώνες του, αλλα τους χρησιμοποιεί όλους μαζι, μειώνοντας όλες τις παραμέτρους του δικτύου στο επίπεδο που πρέπει να είναι ώστε το άθροισμα των ενεργοποιήσεων που δεν θα λειτουργούσαν να είναι 1 (δηλαδή στην περίπτωση που απενεργοποιούμε το 50% των νευρώνων για την εκπαίδευση, στο τέλος για την δοκιμή πολλαπλασιάζουμε όλες τις παραμέτρους με 1 2 ). 2.7.4 Θορυβώδης Παράγωγος (Gradient Noise) Προσθέτοντας θόρυβο στην εφαρμογή της παραγώγου για την ταχεία κάθοδο κατά την εκπαίδευση ενός νευρωνικού δικτύου φαίνεται να αυξάνεται σημαντικά η τελική του απόδοση

32 Μοντέλα και Τεχνικές [NVL + 15]. Ο θόρυβος που προσθέτουμε στη παράγωγο g t είναι γκαουσιανός: g t g t + N (0, σ 2 t ) (2.42) Όπως στον αλγόριθμο Adam χρησιμοποιούμε την μέθοδο της ανόπτησης (annealing) στο μέγεθος βήματος, έτσι και σε αυτήν την περίπτωση, μικραίνοντας την απόκλιση σt 2 του θορύβου της παραγώγου, επιτρέπουμε να συμπεριληφθούν οι μικρές κλίσης των βαρών στα τελευταία στάδια της εκπαίδευσης χωρίς να διασκορπίζονται απο τον θόρυβο. Η ανόπτηση του θορύβου μπορεί να επιτευχθεί χρησιμοποιώντας την εξής συνάρτηση: σ 2 t = n (1 + t) γ (2.43) Όπου n μπορεί να επιλεχθεί ανάμεσα σε [0.01, 1.0], γ = 0.55 και t είναι το βήμα της εκπαίδευσης την κάθε στιγμή. 2.7.5 Κανονικοποίηση παρτίδας (Batch Normalization) Ένα από τα προβλήματα που αντιμετωπίζονται κατα την εκπαίδευση των νευρωνικών δικτύων, είναι η συνεχής αλλαγή της εισόδου των κρυφών επιπέδων και κατ επέκταση των κατανομών αυτών των εισόδων. Αυτή η αλλαγή ονομάζεται εσωτερική συνδιακυμαίνουσα μετατόπιση (internal covariate shift) [IS15b] και είναι ένας από τους λόγους που κατά την εκπαίδευση ενός νευρωνικού δικτύου είναι απαραίτητη η μείωση του ρυθμού μαθήσης ώστε να συνεχίσει να μειώνεται το κόστος. Ο προτεινόμενος μηχανισμός [IS15b] για την αντιμετώπιση αυτού του προβλήματος λέγεται κανονικοποίηση παρτίδας και υλοποιείται έχοντας μεταξύ όλων των επιπέδων μια συνεχή μέτρηση των κατανομών όλων των ενεργοποιήσεων για κάθε παρτίδα παραδειγμάτων εκπαίδευσης. Καθώς υπολογίζονται οι ενεργοποιήσεις κατά την εμπροσθοδιάδοση των ενεργοποιήσεων, γίνεται κανονικοποίηση βάσει των στατιστικών της παρτίδας για το κάθε επίπεδο, ώστε ο μέσος όρος να έιναι το 0 και η απόκλιση το 1. Μέσος Παρτίδας Απόκλιση Παρτίδας Κανονικοποιημένη Ενεργοποίηση µ B 1 m σ 2 B 1 m m x i (2.44) i=1 m (x i µ B ) 2 (2.45) i=1 ˆx i x i µ B σ 2 B + ϵ (2.46) Αλλαγή κλίμακας και μετατόπιση y i γ ˆx i + β BN γ,β (x i ) (2.47) Όπου µ B, σb 2 είναι ο μέσος όρος και η απόκλιση της παρτίδας, x είναι οι ενεργοποιήσεις

2.7 Τεχνικές Βελτίωσης Απόδοσης 33 κάθε επιπέδου, γ, β είναι οι παράμετροι που πρέπει να μάθουμε και εφαρμόζονται πάνω στην κανονικοποιημένη ενεργοποίηση για να αλλάξει την κλίμακα και να την μετατοπίσει. Ένα τέχνασμα για να αποφύγουμε τον υπολογισμό των στατιστικών σε παρτίδες που μπορεί να είναι πολύ μικρές, είναι να χρησιμοποιούμε εκθετικά κινούμενα στατιστικά για την προσέγγιση των πραγματικών στατιστικών ολόκληρου του πληθυσμού και όχι μόνο της εκάστοτε παρτίδας. 2.7.6 Δίκτυα Υπολείμματος (Residual Networks) Τα δίκτυα υπολείμματος είναι μία από τις πρώτες υλοποιήσεις που επέτρεψαν να έχουμε αποτελεσματικά νευρωνικά δίκτυα που αυξάνεται η απόδοση τους όσο αυξάνεται το βάθος τους έχοντας καταφέρει να εκπαιδεύσουν μοντέλα που έχουν περισσότερα απο 100 επίπεδα [HZRS15a]. Το μεγαλύτερο πρόβλημα που εμφανίζεται στα πολύ βαθιά δίκτυα είναι πως η παράγωγος κατά την οπισθοδιάδοση μικραίνει κάθε φορά που διαδίδεται μεσα απο μία μη-γραμμικη ενεργοποίηση. Για να καταπολεμηθεί αυτό το πρόβλημα τα δίκτυα υπολείμματος εφαρμόζουν ενα γραμμικό μετασχηματισμό στην έξοδο ενός επιπέδου και το προσθέτουν στην είσοδο του τρίτου επόμενου επιπέδου. Η έλλειψη μη γραμμικής συνάρτησης μεταξύ εξόδων, επιτρέπει στις αποκλίσεις να φτάσουν στα αρχικά επίπεδα του νερωνικού χωρίς να χάσουν μεγάλο κομμάτι τους.

34 Μοντέλα και Τεχνικές VGG-19 34-layer plain 34-layer residual image image image output size: 224 3x3 conv, 64 3x3 conv, 64 output size: 112 pool, /2 3x3 conv, 128 3x3 conv, 128 7x7 conv, 64, /2 7x7 conv, 64, /2 output size: 56 pool, /2 3x3 conv, 256 pool, /2 3x3 conv, 64 pool, /2 3x3 conv, 64 3x3 conv, 256 3x3 conv, 64 3x3 conv, 64 3x3 conv, 256 3x3 conv, 64 3x3 conv, 64 3x3 conv, 256 3x3 conv, 64 3x3 conv, 64 3x3 conv, 64 3x3 conv, 64 3x3 conv, 64 3x3 conv, 64 output size: 28 pool, /2 3x3 conv, 512 3x3 conv, 128, /2 3x3 conv, 128 3x3 conv, 128, /2 3x3 conv, 128 3x3 conv, 512 3x3 conv, 128 3x3 conv, 128 3x3 conv, 512 3x3 conv, 128 3x3 conv, 128 3x3 conv, 512 3x3 conv, 128 3x3 conv, 128 3x3 conv, 128 3x3 conv, 128 3x3 conv, 128 3x3 conv, 128 3x3 conv, 128 3x3 conv, 128 output size: 14 pool, /2 3x3 conv, 256, /2 3x3 conv, 256, /2 3x3 conv, 512 3x3 conv, 256 3x3 conv, 256 3x3 conv, 512 3x3 conv, 256 3x3 conv, 256 3x3 conv, 512 3x3 conv, 256 3x3 conv, 256 3x3 conv, 512 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 3x3 conv, 256 output size: 7 pool, /2 3x3 conv, 512, /2 3x3 conv, 512, /2 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 3x3 conv, 512 output size: 1 fc 4096 avg pool avg pool fc 4096 fc 1000 fc 1000 fc 1000 Σχήμα 2.23: [HZRS15a] Σύγκριση μεταξύ απλών συνελικτικών δικτύων και ενός δικτύου υπολείμματος Left

3 Εργαλεία και Υλοποιήση Νευρωνικών δικτύων 3.1 Εισαγωγή Σε αυτό το κεφάλαιο, θα αναλύσουμε τις μεθόδους που χρησιμοποιούμε για να υλοποιήσουμε τα νευρωνικά δίκτυα και θα παρουσιάσουμε τα αποτελέσματα που μας δίνουν, όταν χρησιμοποιούνται σε κάποια σετ δεδομένων. Η γλώσσα προγραμματισμού που θα χρησιμοποιήσουμε για την υλοποίηση είναι η python, που επιλέχθηκε λόγω της πληθώρας πακέτων που βοηθούν στην διαχείριση των δεδομένων, τη δημιουργία περίπλοκων δομών και την εφαρμογή έτοιμων μοντέλων που παρέχονται απο βιβλιοθήκες μηχανικής μάθησης. 3.2 Numpy Το numpy είναι ένα θεμελιώδες πακέτο της python για επιστημονικούς υπολογισμούς. Περιέχει βελτιστοποιημένες υλοποιήσεις δομών για ν-διάστατους πίνακες, καθώς και περίπλοκες μορφές μετάδοσης διαστάσεων [vdwcv11]. Επίσης παρέχει πολλές κλασικές μαθηματικές συναρτήσεις (όπως η σιγμοειδής) και πράξεις που μπορούν να εφαρμοστούν παραμετροποιημένες με διαφορετικούς τρόπους στις δομές των πινάκων. Είναι το κυριότερο εργαλείο που χρησιμοποιείται στην python για γραμμική άλγεβρα και κατ επέκταση στη δική μας περίπτωση μπορεί να χρησιμοποιηθεί για την υλοποίηση νευρωνικών δικτύων. 35

36 Εργαλεία και Υλοποιήση Νευρωνικών δικτύων 3.2.1 Υλοποίηση Απλού Νευρωνικού σε numpy Για να δείξουμε την εκφραστικότητα που έχει το numpy, υλοποιούμε ένα πολύ απλό νευρωνικό δίκτυο με ένα κρυφό επίπεδο σε μόλις 11 γραμμές κώδικα (εξαιρώντας τα σχόλια) [Tra15]. 1 import numpy as np 2 3 # Δεδομένα εισόδου και εξόδου 4 X = np.array([[0,0,1],[0,1,1],[1,0,1],[1,1,1] ]) 5 y = np.array([[0,1,1,0]]).t 6 7 # Παράμετροι μεταξύ των επιπέδου 8 syn0 = 2*np.random.random((3,4)) - 1 9 syn1 = 2*np.random.random((4,1)) - 1 10 11 for j in range(60000): 12 # Ενερ οποίηση πρώτου και δεύτερου επιπέδου 13 l1 = 1/(1+np.exp(-(np.dot(X,syn0)))) 14 l2 = 1/(1+np.exp(-(np.dot(l1,syn1)))) 15 16 # Ευρεση παρα ώ ων ως προς το κόστος με χρηση οπισθοδιάδωσης 17 l2_delta = (y - l2)*(l2*(1-l2)) 18 l1_delta = l2_delta.dot(syn1.t) * (l1 * (1-l1)) 19 20 # Αλλα ή παραμέτρων δευτερου επιπέδου ως προς την παρά ω ο 21 syn1 += l1.t.dot(l2_delta) 22 syn0 += X.T.dot(l1_delta) 3.3 Theano Η Theano είναι μια βιβλιοθήκη που αναπτύσσεται κυρίως από μία ομάδα στο πανεπιστήμιο του Montreal και επιτρέπει τη δημιουργία ενός συμβολικού υπολογιστικού γράφου (χρησιμοποιώντας παρόμοιες διεπαφές (api) με το numpy) [BBB + 10] [BLP + 12]. Ο γράφος που δημιουργείται μπορεί να μεταφραστεί σε C και CUDA ώστε να μπορεί να εκτελεστεί σε κάρτα γραφικών δίνοντας τεράστια επιτάχυνση. 3.3.1 Αυτόματη Παραγώγιση Μία από τις λειτουργίες που κάνουν τη Theano να ξεχωρίζει από άλλα επιστημονικά εργαλεία για γραμμική άλγεβρα είναι η δυνατότητα της αυτόματης παραγώγισης ενός γράφου ως προς κάποιες παραμέτρους αυτού του γράφου. Προϋπόθεση για να επιτευχθεί αυτή η λειτουργία είναι να υπάρχει για κάθε συνάρτηση και πράξη πάνω στο γράφο δηλωμένος ο τρόπος που υπολογίζεται η παράγωγος του και το πως αυτή μπορεί να οπισθοδιαδοθεί μέσα απο κάθε πράξη.

3.3 Theano 37 3.3.2 Υλοποίηση Απλού Νευρωνικού σε Theano Υλοποιούμε το ίδιο νευρωνικό δίκτυο που υλοποιήσαμε με το πακέτο numpy, αλλά αυτή τη φορά χρησιμοποιώντας τη Theano και τον συμβολικό γράφο που παρέχει. 1 import theano 2 from theano import tensor as T 3 import numpy as np 4 5 # Δημιουρ ία συμβολικής εισόδου και εξόδου 6 x = T.matrix( x ) 7 y = T.matrix( y ) 10 8 x_data = np.array([[0,0,1],[0,1,1],[1,0,1],[1,1,1]], dtype= float32 ) 9 y_data = np.array([[0,1,1,0]], dtype= float32 ).T 11 # Δημιουρ ία συμβολικών παραμέτρων και ανάθεση αρχικής τους τιμής 12 syn0 = theano.shared(np.random.random((3, 4))) 13 syn1 = theano.shared(np.random.random((4, 1))) 14 15 # Υπολο ισμός ενερ οποιήσεων κάθε επιπέδου 16 l1 = 1/(1 + T.exp(-(T.dot(x, syn0)))) 17 l2 = 1/(1 + T.exp(-(T.dot(l1, syn1)))) 18 19 # Υπολο ισμός κόστους 20 cost = (y-l2).mean() 21 22 # Χρήση της συνάρτησης grad() ια να υπολο ίσουμε αυτόματα 23 # τις παρα ώ ους του κόστους ως προς κάθε παραμέτρο με χρήση 24 # οπισθοδιάδωσης 25 syn0_grad, syn1_grad = T.grad(cost, [syn0, syn1]) 26 27 # Ορισμός αλλα ών κάθε παραμέτρου βάσει των παρα ώ ων με αλ όριθμο 28 # ταχύτερης καθόδου 29 updates = [(syn0, syn0-syn0_grad), (syn1, syn1-syn1_grad)] 30 31 # Μετάφραση ράφου σε βελτιστοποιημένη έκδοση συνάρτησης ια 32 # συ κεκριμένες εισόδους και εξόδους, και αλλα ή των παραμέτρων 33 # βάσει των ορισμένων αλλα ών 34 train_function = theano.function([x, y], cost, updates=updates) 35 36 # Εκπαίδευση 37 for i in range(60000): 38 print train_function(x_data, y_data) 39

38 Εργαλεία και Υλοποιήση Νευρωνικών δικτύων 3.3.3 Blocks Η Theano αν και είναι πιο γνωστή για τις υλοποιήσεις των νευρωνικών δικτύων στις οποίες χρησιμοποιείται, είναι αρκετά γενική και μπορεί να χρησιμοποιηθεί για τη βελτιστοποίηση πολλών ειδών προβλημάτων. Αυτή όμως η ευελιξία δυσκολεύει την τυποποίηση μιας πιο περιορισμένης διεπαφής, που επιτρέπει την ευκολότερη ανάπτυξη νευρωνικών δικτύων, παίρνοντας πολλές πρωτοβουλίες, για το πώς θα υλοποιηθεί ένα νευρωνικό δίκτυο χρησιμοποιώντας την Theano. Υπάρχουν πολλές βιβλιοθήκες που προσπαθούν να κάνουν κάτι τέτοιο όπως το Lasagne [DSR + 15], το Keras [Cho15] και το GroundHog [Pas15]. Το πακέτο που θα χρησιμοποιηθεί στην συγκεκριμένη εργασία λέγεται blocks [vmbd + 15] και επιλέχθηκε επειδή έχει δώσει ιδιαίτερη βάση στην υλοποίηση του για να υποστηρίξει τα ανατροφοδοτούμενα νευρωνικά δίκτυα και στο να μην κρύβει των υπολογιστικό γράφο της Theano, πίσω απο κάποια δικιά του επαφή (καθιστώντας το πιο επεκτάσιμο απο άλλα πακέτα). 3.4 Pandas Το πακέτο Pandas παρέχει εύχρηστες δομές, που διευκολύνουν την επεξεργασία δομημένων δεδομένων, που πολλές φορές συναντώνται σε πραγματικές εφαρμογές ανάλυσης δεδομένων στον κόσμο, όπως σε χρηματιστηριακές υπηρεσίες και προβλεψεις [M + 10] [McK11]. Έχει διεπαφές για επεξεργασία δεδομένων με εντολές SQL καθώς και έτοιμες συναρτήσεις για χρηματιστηριακά δεδομένα (όπως η αναδειγματοληψία χρησιμοποιώντας ohlc (open-highlow-close)). 3.5 Bokeh Το πακέτο bokeh της python χρησιμοποιείται για την δημιουργία γραφημάτων, τα οποία μπορούν να αναβαθμίζονται κατα τη διαρκεια τις εκπαίδευσης και έτσι να μπορεί κανείς να παρακολουθήσει ακριβώς την πρόοδο του μοντέλου που εκπαιδεύει. Επίσης, δίνει δυνατότητες για σύνδεση με κάποιο webserver και διεπαφές ώστε κάποιος να μπορεί να επηρεάσει το ίδιο

3.5 Bokeh 39 το πρόγραμμα το οποίο ενημερώνει τα γραφήματα αλλάζοντας παραμέτρους ή ενεργοποιώντας κάποιου είδους event στον κώδικα ώστε να αλλάξει κάτι στη ροή του προγράμματος.

4 Πειράματα Νευρωνικών Δικτών 4.1 Εισαγωγή Στο συγκεκριμένο κεφάλαιο θα χρησιμοποιήσουμε 2 σετ δεδομένων για να δοκιμάσουμε τις επιδόσεις διαφόρων ειδών νευρωνικών δικτύων και να τα συγκρίνουμε μεταξύ τους. Για λόγους συντομίας θα αναφέρουμε κάποιες μεθόδους αρχικοποίησης, εκπαίδευσης και μέτρησης ευστοχίας που θα χρησιμοποιηθούν σε όλα τα ακόλουθα πειράματα. 4.1.1 Μέθοδος Αρχικοποίησης Για την αρχικοποίηση του πίνακα των βαρών χρησιμοποιούμε τυχαία ισοτροπική γκαουσιανή με μέσο 0 και απόκλιση 0.1. Η αρχικοποίηση της πόλωσης (b) ειναι πάντα στο 0 εκτός απο την περίπτωση των LSTM που χρησιμοποιούμε πόλωση στην πύλη forget με 1 όπως προτείνεται [Zar15]. 4.1.2 Μέθοδος Εκπαίδευσης Πολλά σημαντικά δημοσιεύματα τους τελευταίους μήνες [XBK + 15] [GDGW15] [CGCB15], χρησιμοποιούν τον αλγόριθμο εκπαίδευσης ADAM [KB14], επειδή έχει καλύτερα αποτελέσματα από την απλή μέθοδο της ταχύτερης καθόδου. Γι αυτό θα τον χρησιμοποιήσουμε σε όλα τα πειράματα ως τον βασικό αλγόριθμο εκπαίδευσης. Το βήμα που επιλέγουμε είναι αυτό που προτείνεται από τους συγγραφείς του αλγορίθμου, η = 0.002. Επίσης, προσθέτουμε και έναν ακόμη περιορισμό ώστε ο λόγος της νόρμας του βήματος προς τη νόρμα της παραμέτρου να είναι πάντοτε μικρότερος απο 1e 3, μειώνοντας το βήμα όταν αυτός ο κανόνας παραβιάζεται, όπως προτείνεται απο τον Ilya Sutskever [IS15a]. 4.1.3 Συνάρτηση Κόστους Η συνάρτηση κόστους που χρησιμοποιούμε για τις προσεγγίσεις (regression) είναι συνήθως το μέσο τετραγωνικό σφάλμα, αλλά επειδή αυτός ο τρόπος βελτιστοποίησης έχει πολλές 41

42 Πειράματα Νευρωνικών Δικτών παρενέργειες για την εκπαίδευση, θα προτιμήσουμε σε κάποιες περιπτώσεις να χρησιμοποιήσουμε το κόστος Huber, όπως αυτό περιγράφεται στην ενότητα 2.3. Για τις διαδικασίες επιλογής κλάσης (classification) χρησιμοποιούμε αρνητική λογαριθμική πιθανοφάνεια. 4.1.4 Μέτρηση Ευστοχίας Η μέτρηση ευστοχίας για τις προσεγγίσεις γίνεται με την απόλυτη μέση απόκλιση και για την κατηγοριοποίηση γίνεται με το ποσοστό συνολικής επιτυχιάς πρόβλεψης ως ποσοστό για όλα τα δεδομένα, σε κάθε σετ (training, validation, test). 4.1.5 Ακρίβεια Αριθμών Κινητής Υποδιαστολής (Floating Point Presicion) Αν και σε πολλές εφαρμογές στον πραγματικό κόσμο, η ακρίβεια των πραγματικών αριθμών είναι πολύ σημαντική και η ανακρίβειες που προκαλούν οι αριθμοί κινητής υποδιαστολής που χρησιμοποιούν οι ηλεκτρονικοί υπολογιστές δημιουργούν σημαντικά προβλήματα, στις εφαρμογές των νευρωνικών δικτύων δεν ισχύει κατι τέτοιο. Η κλασσική ακρίβεια που χρησιμοποιείται είναι 32-bit float, αλλά υπάρχουν εφαρμογές που προσπαθούν να εκμεταλλευτούν το μικρό μέγεθος και την ταχύτητα ακόμα μικρότερης ακρίβειας αριθμών (16-bit float). Μερικές ακόμη πιο καινούργιες μέθοδοι χρησιμοποιούν κβαντισμένους ακέραιους αριθμούς των 8-bit ώστε να έχουν ακόμα πιο γρήγορη εκτέλεση και χρησιμοποιούν λιγότερο χώρο στο να αποθηκευτούν στο δίσκο [War16]. Στις συγκεκριμένες εφαρμογές θα χρησιμοποιήσουμε 32-bit floats διότι είναι η μόνη ακρίβεια που υποστηρίζεται για χρήση με την κάρτα γραφικών από την Theano. 4.2 MNIST Όπως αναφέρουμε και στην ενότητα 2.4.1 το σετ δεδομένων MNIST [LCB98] χρησιμοποιείται για ένα από τα πιο διαδεδομένα προβλήματα που προσπαθεί να λύσει η μηχανική μάθηση και κατά ένα μεγάλο ποσοστό έχει καταφέρει. Αποτελείται από ασπρόμαυρες εικόνες αριθμών από το 0 εώς το 9. Ο σκοπός του συγκεκριμένου πειράματος είναι να προβλέψουμε ποιο χειρόγραφο ψηφίο προβάλλεται, δεδομένων των τιμών κάθε pixel της εικόνας. 4.2.1 Απλά Νευρωνικά Δίκτυα Τα ακόλουθα αποτελέσματα συγκρίνουν νευρωνικά δίκτυα αντίστοιχα με αυτά του διαγράμματος 2.2(βʹ) με διαφορετικό αριθμό κρυφών επιπέδων, διαφορετικά μεγέθη κάθε επιπέδου και διαφορετικές συναρτήσεις ενεργοποίησης. Η ενεργοποίηση που χρησιμοποιούμε στο

4.2 MNIST 43 τελευταίο επίπεδο για να διαλέξει το νευρώνα εξόδου που αντιστοιχεί σε κάθε ψηφίο είναι πάντα η συνάρτηση Softmax, όπως αυτή περιγράφεται στο κεφάλαιο 2.2.4. Σε όλα τα πειράματα έχουμε εκπαιδεύσει το κάθε μοντέλο για 30 εποχές (δηλαδή 30 φορές σε όλα τα δεδομένα) και έχουμε χρησιμοποιήσει μέγεθος παρτίδας 300. Κάποια από τα μοντέλα που έχουν πολλά επίπεδα, θα μπορούσαν να δώσουν καλύτερα αποτελέσματα στα δεδομένα εκπαίδευσης αν επιτρέπαμε στα δίκτυα να εκπαιδευτούν περισσότερα, αλλα το αποφεύγουμε διότι η παραπάνω ακρίβεια που θα μας έδιναν είναι δυσανάλογη με το χρόνο που χρειάζονται για να εκπαιδευτούν πλήρως. Παρατηρούμε στους πίνακες των αποτελεσμάτων ότι αρχικά αυξάνοντας τον αριθμό των νευρώνων και των κρυφών επιπέδων αυξάνεται και η ακρίβεια των αποτελεσμάτων. Από ένα σημείο και μετά όμως, παρ όλο που τα δεδομένα εκπαίδευσης μαθαίνονται σχεδόν τέλεια από το νευρωνικό, τα δεδομένα ελέγχου που δεν έχουν χρησιμοποιηθεί για την εκπαίδευση δεν προβλέπονται σωστά, το οποίο είναι δείγμα υπερπροσαρμογής. Νευρωνικό Δίκτυο με Κανονικοποίηση Παρτίδας Για να βελτιώσουμε αυτά τα αποτελέσματα, θα χρησιμοποιήσουμε τη μέθοδο της κανονικοποίησης παρτίδας και θα επαναλάβουμε τα ίδια πειράματα για να διαπιστώσουμε αν υπάρχει βελτίωση. Αυτή τη φορά δεν χρησιμοποιούμε τα ίδια μικρά μεγέθη επιπέδων αλλά κατευθείαν δοκιμάζουμε τα μεγαλύτερα που περιμένουμε να μας δώσουν και καλύτερες αποδόσεις. Παρατηρούμε ότι περισσότερα απο τα δίκτυα που εκπαιδεύσαμε μπόρεσαν να υπερπροσαρμοστούν στα δεδομένα εκπαίδευσης και τα καλύτερα αποτελέσματα στα δεδομένα ελέγχου ξεπερνούν αυτά από τα προηγουμένα δίκτυα που δεν χρησιμοποιήθηκε κανονικοποίηση παρτίδας. 4.2.2 Συνελικτικά δίκτυα Υλοποιούμε ένα απλο συνελικτικό δίκτυο για να προσπαθήσουμε να αυξήσουμε την καλύτερη δυνατή απόδοση που είχαμε μέχρι αυτό το σημείο με το απλό νευρωνικό δίκτυο. Ο λόγος που περιμένουμε πως τα συνελικτικά δίκτυα θα δουλέψουν καλύτερα, είναι επειδή μπορούν και εντοπίζουν τα μοτίβα σε εικόνες και δημιουργούν υψηλού επιπέδου χαρακτηριστικά, το οποίο είναι ιδανικό για την αναγνώριση των χαρακτήρων που έχουμε. Όπως φαίνεται στον πίνακα 4.6 καταφέρνουμε να ξεπεράσουμε την ευστοχία των απλών νευρωνικών δικτύων χωρίς κανένα πρόβλημα. Τα συνελικτικά δίκτυα τα καταφέρνουν πολύ καλύτερα σε αυτές τις περιπτώσεις αφού το μικρότερο σφάλμα που παίρνουμε με τα απλά νευρωνικά είναι 1.764% ενώ με τα συνελικτικά είναι 0.952%.

44 Πειράματα Νευρωνικών Δικτών Πίνακας 4.1: Νευρωνικά δίκτυα με 1 κρυφό επίπεδο Error train Error test Rectifier 100 neurons 3.07% ± 0.13 3.74% ± 0.15 Rectifier 200 neurons 1.87% ± 0.09 2.99% ± 0.12 Rectifier 500 neurons 0.83% ± 0.09 2.44% ± 0.12 Rectifier 1000 neurons 0.39% ± 0.07 2.33% ± 0.10 Rectifier 2000 neurons 0.14% ± 0.05 2.26% ± 0.13 Logistic 100 neurons 5.87% ± 0.09 6.00% ± 0.09 Logistic 200 neurons 5.21% ± 0.12 5.37% ± 0.15 Logistic 500 neurons 4.56% ± 0.15 4.95% ± 0.16 Logistic 1000 neurons 4.10% ± 0.17 4.67% ± 0.18 Logistic 2000 neurons 3.68% ± 0.22 4.50% ± 0.23 Πίνακας 4.2: Νευρωνικά δίκτυα με 2 κρυφά επίπεδα Error train Error test Rectifier 100 neurons 1.97% ± 0.12 3.08% ± 0.12 Rectifier 200 neurons 0.86% ± 0.12 2.51% ± 0.16 Rectifier 500 neurons 0.19% ± 0.07 2.23% ± 0.13 Rectifier 1000 neurons 0.02% ± 0.02 2.17% ± 0.10 Rectifier 2000 neurons 0.00% ± 0.01 2.29% ± 0.09 Logistic 100 neurons 4.97% ± 0.11 5.34% ± 0.11 Logistic 200 neurons 4.14% ± 0.10 4.59% ± 0.13 Logistic 500 neurons 3.45% ± 0.12 4.01% ± 0.14 Logistic 1000 neurons 3.05% ± 0.21 3.75% ± 0.17 Logistic 2000 neurons 2.81% ± 0.31 3.56% ± 0.25 Πίνακας 4.3: Νευρωνικά δίκτυα με 5 κρυφά επίπεδα Error train Error test Rectifier 100 neurons 1.59% ± 0.21 3.12% ± 0.21 Rectifier 200 neurons 0.85% ± 0.28 2.84% ± 0.30 Rectifier 500 neurons 0.60% ± 0.23 3.20% ± 0.28 Rectifier 1000 neurons 0.02% ± 0.04 3.81% ± 0.13 Rectifier 2000 neurons 1.03% ± 0.21 4.32% ± 0.35 Logistic 100 neurons 5.37% ± 0.57 6.24% ± 0.57 Logistic 200 neurons 3.41% ± 0.21 4.35% ± 0.17 Logistic 500 neurons 2.89% ± 0.33 3.74% ± 0.29 Logistic 1000 neurons 2.58% ± 0.26 3.50% ± 0.24 Logistic 2000 neurons 3.05% ± 0.58 3.86% ± 0.52 Πίνακας 4.4: Νευρωνικά δίκτυα με 10 κρυφά επίπεδα Error train Error test Rectifier 1000 neurons 2.51% ± 0.43 7.71% ± 0.72 Rectifier 2000 neurons 2.77% ± 0.47 6.91% ± 0.53 Logistic 1000 neurons 10.04% ± 9.92 10.36% ± 9.66 Logistic 2000 neurons 89.73% ± 0.72 89.69% ± 0.72

4.2 MNIST 45 Πίνακας 4.5: Αποτελέσματα Πειραμάτων με χρήση κανονικοποίησης παρτίδας Error train Error test 1-layers Rectifier 1000 neurons 0.000% ± 0.000 1.813% ± 0.049 1-layers Rectifier 2000 neurons 0.000% ± 0.000 1.808% ± 0.073 1-layers Logistic 1000 neurons 0.000% ± 0.000 1.928% ± 0.061 1-layers Logistic 2000 neurons 0.019% ± 0.025 2.019% ± 0.093 2-layers Rectifier 1000 neurons 0.000% ± 0.000 1.955% ± 0.028 2-layers Rectifier 2000 neurons 0.000% ± 0.000 1.992% ± 0.076 2-layers Logistic 1000 neurons 0.058% ± 0.104 1.906% ± 0.181 2-layers Logistic 2000 neurons 0.061% ± 0.127 1.764% ± 0.219 5-layers Rectifier 1000 neurons 0.000% ± 0.000 3.305% ± 0.112 5-layers Rectifier 2000 neurons 0.565% ± 0.118 2.971% ± 0.164 5-layers Logistic 1000 neurons 0.239% ± 0.131 2.172% ± 0.157 5-layers Logistic 2000 neurons 0.273% ± 0.126 2.150% ± 0.125 10-layers Rectifier 1000 neurons 1.094% ± 0.275 4.209% ± 0.376 10-layers Rectifier 2000 neurons 1.174% ± 0.364 4.069% ± 0.333 10-layers Logistic 1000 neurons 0.584% ± 0.190 2.439% ± 0.242 10-layers Logistic 2000 neurons 89.763% ± 0.526 89.638% ± 0.520 Πίνακας 4.6: Αποτελέσματα Πειραμάτων με χρήση συνελικτικών δικτύων Error train Error test 2-2-4-4 filters 0.466% ± 0.153 1.719% ± 0.171 4-4-8-8 filters 0.239% ± 0.051 1.274% ± 0.119 8-8-16-16 filters 0.190% ± 0.083 1.075% ± 0.115 16-16-32-32 filters 0.123% ± 0.036 0.952% ± 0.104 Συνελικτικό Δίκτυο με Max Pooling Για να μειώσουμε τον πιθανό θόρυβο των δεδομένων και να βελτιώσουμε τη γενικότητα του μοντέλου μας, χρησιμοποιούμε max pooling, όπως το έχουμε εξηγήσει στην ενότητα 2.5.2 Πίνακας 4.7: Αποτελέσματα Πειραμάτων με χρήση συνελικτικών δικτύων και max pooling Error train Error test 2-2-4-4 filters 0.518% ± 0.157 1.793% ± 0.232 4-4-8-8 filters 0.194% ± 0.041 1.257% ± 0.042 8-8-16-16 filters 0.159% ± 0.082 1.032% ± 0.154 16-16-32-32 filters 0.154% ± 0.090 0.932% ± 0.060 Από τα αποτελέσματα φαίνεται πως παρ όλο που μειώνεται η ακρίβεια στα δεδομένα εκπαίδευσης, η ακρίβεια στα δεδομένα ελέγχου αυξάνεται, το οποίο σημαίνει ότι καταφέρνουμε να μειώσουμε την υπερπροσαρμογή του μοντέλου.

46 Πειράματα Νευρωνικών Δικτών Συνελικτικό Δίκτυο με Κανονικοποίηση Παρτίδας Για να βελτιώσουμε ακόμη περισσότερο την ακρίβεια στα δεδομένα δοκιμής χρησιμοποιούμε κανονικοποίηση παρτίδας στο ίδιο συνελικτικό δίκτυο, μεταξύ όλων των συνελικτικών επιπέδων. Πίνακας 4.8: Αποτελέσματα Πειραμάτων με χρήση κανονικοποίησης παρτίδας Error train Error test 2-2-4-4 filters 0.214% ± 0.112 1.526% ± 0.200 4-4-8-8 filters 0.292% ± 0.281 1.227% ± 0.267 8-8-16-16 filters 0.144% ± 0.082 0.894% ± 0.161 16-16-32-32 filters 0.239% ± 0.051 1.107% ± 0.081 Όπως φαίνεται από τα αποτελέσματα στον Πίνακα 4.8, καταφέρνουμε να πετύχουμε καλύτερα αποτελέσματα από το απλό συνελικτικό δίκτυο με max-pooling. 4.3 Τιμές Ανταλλακτηρίων Bitcoin 4.3.1 Περιγραφή Δεδομένων Το bitcoin [Nak08] είναι ένα ψηφιακό νόμισμα το οποίο δεν έχει κάποια κεντρική αρχή και βασίζεται στην χρήση ενός κοινού και ανοιχτού βιβλίου ανταλλαγών (ledger), το οποίο διαμοιράζεται σε όλους τους κόμβους του δικτύου, έτσι ώστε να γνωρίζουν τα ποσά που βρίσκονται μέσα σε κάθε ψηφιακό πορτοφόλι του δικτύου. Η συμφωνία μεταξύ των κόμβων για το ποσα bitcoin περιέχει κάθε πορτοφόλι και για το ποιές ανταλλαγές ισχύουν, επιτυγχάνεται με την χρήση ενος συστήματος απόδειξης εργασίας (Proof of Work) και ονομάζεται mining. Το σετ δεδομένων που θα χρησιμοποιηθεί, προέρχεται απο τον ιστότοπο bitcoincharts.com και περιέχει όλες (με μερικά κενά λόγω τεχνικών προβλημάτων) τις ανταλλαγές που έχουν γίνει σε κάθε ανταλλακτήριο bitcoin. Τα ανταλλακτήρια bitcoin είναι ιστότοποι που μπορεί κανείς να ανταλλάξει bitcoin με δολάρια, όπως ακριβώς γίνεται και το FOREX. Τα δεδομένα που χρησιμοποιούμε αποτελούνται απο 3 στήλες, την χρονική στιγμή που έγινε κάθε συναλλαγή σε μορφή δευτερολέπτων POSIX time, την τιμή στην οποία έγινε η συναλλαγή και το ποσό των bitcoin που ανταλλάχθηκαν. Αντίστοιχα με το FOREX η τιμή των bitcoin στα ανταλλακτήρια δεν είναι σταθερή, και πολλές φορές η αστάθεια της είναι αρκετά μεγάλη και δημιουργεί ευκαιρίες που μπορεί κανείς να εκμεταλλευτεί, επενδύοντας τις κατάλληλες στιγμές που η τιμή αποκλίνει από την πραγματική πορεία της. Μια άλλη στρατηγική για επενδύσεις είναι η ανάλυση των αλλαγών της τιμής στο χρονο, της ρευστότητας που παρέχουν τα ανταλλακτήρια και άλλες μετρικές που δυνητικά έχουν την δυνατότητα να προβλέψουν την κατεύθυνση της τιμής.

4.3 Τιμές Ανταλλακτηρίων Bitcoin 47 (αʹ) Τιμές κάθε συναλλαγής πριν την αναδειγματοληψία (βʹ) Μέγεθος (σε bitcoin) κάθε συναλλαγής πριν την αναδειγματοληψία Σχήμα 4.1: Παραδείγματα δεδομένων των ανταλλακτηρίων πριν την προεπεξεργασία Ένα πρόβλημα που έχουν τα δεδομένα των ανταλλακτηρίων είναι ότι οι αλλαγές της κατεύθυνσης σε βραχυπρόθεσμο ορίζοντα είναι χαοτικές και στις περισσότερες περιπτώσεις δεν μπορούν να προβλεφθούν. Χρησιμοποιώντας αυτά τα δεδομένα προσπαθούμε να διερευνήσουμε αν υπάρχουν κάποιες καταστάσεις και στιγμιότυπα, τα οποία μπορούν να προβλεφθούν σε αρκετά ικανοποιητικό επίπεδο ώστε να μπορεί κανείς να τα εκμεταλλευτεί για να επενδύσει με μικρό ρίσκο. Οι συναλλαγές είναι διασκορπισμένες ανόμοια, πάνω στον χρονικό άξονα, διότι σε κάποιες περιόδους υπάρχει έντονη δραστηριότητα ενώ σε άλλες δεν συμβαίνουν σχεδόν καθόλου συναλλαγές. Για να αποφύγουμε τυχόν ασυμβατότητες μεταξύ χρονικών παραθύρων αποφεύγουμε να χρησιμοποιήσουμε απευθείας τα ανεπεξέργαστα δεδομένα αλλά εφαρμόζουμε αναδειγματοληψία στα δεδομένα. Δημιουργούμε χρονικούς κάδους των t δευτερολέπτων και χρησιμοποιούμε τα στοιχεία που ανήκουν σε κάθε κάδο για να υπολογίσουμε τις τιμές της χρονοσειράς. Προεπεξεργασία Δεδομένων Αφού εφαρμόσουμε την αναδειγματοληψία που περιγράφουμε στην προηγούμενη ενότητα, πρέπει να κανονικοποιήσουμε τα δεδομένα πριν τα χρησιμοποιήσουμε σαν είσοδο στο νευρωνικό δίκτυο. Αντί για την τιμή χρησιμοποιούμε τη λογαριθμική επιστροφή (log return) του κάθε βήματος, σε σχέση με τη μέση τιμή των προηγούμενων k βημάτων. Χρησιμοποιούμε πολλαπλές τιμές για το k (π.χ. 10,20,40) για να φτιάξουμε διαφορετικές χρονοσειρές τις οποίες θα ενώσουμε για να δημιουργήσουμε μια κοινή είσοδο.

48 Πειράματα Νευρωνικών Δικτών Σχήμα 4.2: Παραδείγματα candlestick chart όπου το χρονικό μέγεθος των κάδων είναι 2 ώρες. Το γράφημα προήλθε απο τον ιστότοπο bitcoinwisdom.com και ανταποκρίνεται στη δραστηριότητα ανταλλαγών στο ανταλλακτήριο bitcoin www.huobi.com. Στο πάνω μέρος της εικόνας φαίνονται οι τιμες OHLC και στο κάτω μέρος το συνολικό ποσό των bitcoin που ανταλλάχθηκαν σε εκείνο το χρονικό διάστημα r t = p t p k p k όπου p k είναι ο μέσος των προηγουμενων k τιμών (4.1) log returns = log(r t + 1) (4.2) Για να κανονικοποιήσουμε τον όγκο των συναλλαχθέντων bitcoin κάθε κάδου, εφαρμόζουμε μια συνάρτηση λογαρίθμου όπως κάνουμε και με τις επιστροφές. Για την παλινδρόμηση, των τιμών που θα προβλεφθούν χρησιμοποιούμε τη μέγιστη και την ελάχιστη επιστροφή κάθε τιμής στο χρόνο για τους επόμενους w κάδους των s δευτερολέπτων που την ακολουθούν. Για την κατηγοριοποίηση, προσθέτουμε αυτές τις τιμές μεταξύ τους για κάθε χρονικό σημείο και θέτουμε ένα όριο threshold για το οποίο θεωρούμε την πορεία ανοδική, καθοδική ή σταθερή: Upward, if w t + w t > threshold, Price Direction t = Downward, if w t + w t < threshold, Neither, if threshold < w t + w t < threshold (4.3) Όπου w t είναι η μέγιστη επιστροφή της τιμής του κάδου t σε σχέση με τη μέγιστη τιμή

4.3 Τιμές Ανταλλακτηρίων Bitcoin 49 μέσα στους κάδους [t, t+w], και αντίστοιχα w t είναι η ελάχιστη επιστροφή σε σχέση με τους κάδους [t, t + w]. Ορίζουμε την κατεύθυνση της τιμής με αυτόν τον τρόπο, για να μπορούμε να διαλέξουμε τις καταστάσεις στις οποίες θα πρέπει να γίνει αγορά (οταν ανεβαίνει η τιμή) και πότε πώληση (όταν πέφτει η τιμή). Τα συνεχή δεδομένα που αφορούν επιστροφές από τις παραπάνω κανονικοποιήσεις, εφαρμόζουμε και κανονικοποίηση σε όλα τα δεδομένα ξεχωριστά (κάθε μία απο τις λογαριθμικές επιστροφές και τον λογαριθμικό όγκο) ώστε ο μέσος τους να γίνει 0 και η απόκλιση τους 1. Επειδή υπάρχουν πολλές ακραίες περιπτώσεις μεταβολών στην τιμή, χρησιμοποιούμε τη συνάρτηση υπερβολικής εφαπτομένης, ώστε να έχουμε τις μικρές διαφοροποιήσεις των πολύ μεγάλων τιμών αλλά και των μικρών τιμών. (αʹ) Μέγιστη επιστροφή (βʹ) Ελάχιστη επιστροφή (γʹ) Μέγιστη επιστροφή (δʹ) Ελάχιστη επιστροφή Σχήμα 4.3: Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) χρησιμοποιώντας το πλήρως συνδεδεμένο νευρωνικό δίκτυο

50 Πειράματα Νευρωνικών Δικτών 4.3.2 Απλό Νευρωνικό Δίκτυο για την Πρόβλεψη της Επιστροφής Αρχικά, για να έχουμε μια βασική ιδέα για την δυνατότητα πρόβλεψης που υπάρχει στα δεδομένα που περιγράψαμε υλοποιούμε πρόβλεψη των τιμών w t και w t με ένα απλό νευρωνικό δίκτυο όπως αυτό που παρουσιάζεται στο σχήμα 2.2(βʹ) Χρησιμοποιούμε ανορθωτές με μια μικρή διαρροή για ενεργοποίηση και κανονικοποίηση παρτίδας μεταξύ των πλήρως συνδεδεμένων επιπέδων. Για το τελευταίο επίπεδο χρησιμοποιούμε γραμμική ενεργοποίηση αφού κάνουμε παλινδρόμηση μιας μη-φραγμένης τιμής. Μετά από εκτεταμένα πειράματα καταλήγουμε ότι τα καλύτερα αποτελέσματα μας δίνονται από νευρωνικό δίκτυο με 3 κρυφά επίπεδα με μεγέθη 512-256-8. Παρατηρούμε και από τα διαγράμματα 4.3 ότι το απλό νευρωνικό δίκτυο δεν μπορεί να κάνει ακριβείς προσεγγίσεις στα δεδομένα δοκιμής αλλά στα δεδομένα εκπαίδευσης καταφέρνει να βρει κάποια χαρακτηριστικά της κατεύθυνσης 4.3.3 Συνελικτικό Δίκτυο για την Πρόβλεψη της Επιστροφής Έχοντας μια βασική ιδέα της δυνατότητας πρόβλεψης της επιστροφής από ένα απλό νευρωνικό δίκτυο, προχωράμε στην υλοποίηση ενός συνελικτικού δικτύου που είναι πιο κατάλληλο για την ανάλυση χρονοσειρών (αφού όμοια χαρακτηριστικά σε όλα τα σημεία της χρονοσειράς που είναι χρήσιμα για την πρόβλεψη). Σχήμα 4.4: Σύγκλιση κόστους κατά την εκπαίδευση

4.3 Τιμές Ανταλλακτηρίων Bitcoin 51 Μοντέλο Το μοντέλο που θα χρησιμοποιήσουμε σε αυτό το πείραμα είναι ενα απλό συνελικτικό δίκτυο με 4 επίπεδα, με μέγεθος φίλτρων 12-9-9-6-6-6-6-6 αριθμό από φίλτρα 32-32-32-32- 64-64-128-128 και mean-pooling ανά δύο επίπεδα. Συνδέουμε το τελευταίο επίπεδο με ένα πλήρως συνδεδεμένο δίκτυο με μέγέθη επιπέδων 512-128-8-2. (αʹ) Μέσο τετραγωνικό σφάλμα (βʹ) Μέσο απόλυτο σφάλμα (γʹ) Μέσο τετραγωνικό σφάλμα (δʹ) Μέσο απόλυτο σφάλμα Σχήμα 4.5: Μετρικές των δεδομένων εκπαίδευσης (πάνω) και δεδομένων δοκιμής (κάτω) ανά εποχή για την απλή προσέγγιση τιμής Η είσοδος του νευρωνικού είναι ένα παράθυρο μεγέθους 512 κάδων, που ο καθένας περιέχει τις τιμές επιστροφής και όγκου συναλλαγών όπως περιγράφουμε στην προεπεξεργασία. Κάθε διαφορετικός τύπος επιστροφής και ο όγκος, συνδυάζονται ως διαφορετικά κανάλια της εισόδου στο συνελικτικό δίκτυο. Οι ενεργοποιήσεις ολόκληρου του δικτύου είναι και πάλι ανορθωτές με μια μικρή διαρροή

52 Πειράματα Νευρωνικών Δικτών εκτός απο το τελευταίο επίπεδο που είναι πλήρως γραμμικό, επειδή κάνουμε πρόβλεψη τιμής. Το κόστος που θα χρησιμοποιήσουμε για την προσσέγιση είναι το μέσο τετραγωνικό σφάλμα. Για να αποφύγουμε όσο είναι δυνατόν την υπερεκπαίδευση χρησιμοποιούμε κανονικοποίηση παρτίδας (batch normalization). (αʹ) Μέγιστη επιστροφή (βʹ) Ελάχιστη επιστροφή (γʹ) Μέγιστη επιστροφή (δʹ) Ελάχιστη επιστροφή Σχήμα 4.6: Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) με το απλό συνελικτικό μοντέλο Παρατηρούμε πως παρ όλα τα μέτρα που πήραμε, το μοντέλο υπερεκπαιδεύτηκε, και σε κανένα από τα στάδια της εκπαίδευσης δεν κατάφερε να χαμηλώσει το κόστος των δοκιμαστικών δεδομένων όπως αυτό των δεδομένων εκπαίδευσης.

4.3 Τιμές Ανταλλακτηρίων Bitcoin 53 Πολλαπλές Διακυμάνσεις Τιμής Κόστους Για να μειώσουμε την υπερεκπαίδευση του μοντέλου μας χρησιμοποιούμε μια παραλλαγή του Hinge Loss με πολλαπλές διακυμάνσεις, ώστε να μην τιμωρούμε το μοντέλο μας όταν βρίσκεται αρκετά κοντά στη σωστή απάντηση. (y f(x)) 2, αν f(x) και y διαφορετικά όρια [a, b], L δ (y, f(x)) = 1 100 (y f(x))2, αλλιώς. (4.4) (αʹ) Μέγιστη επιστροφή (βʹ) Ελάχιστη επιστροφή (γʹ) Μέγιστη επιστροφή (δʹ) Ελάχιστη επιστροφή Σχήμα 4.7: Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) χρησιμοποιώντας το συνελικτικό μοντέλο που χρησιμοποιεί διαβαθμίσεις στη συνάρτηση κόστους Τα αποτελέσματα είναι αντίστοιχα με αυτά της προσέγγισης που χρησιμοποιεί το μέσο τετραγωνικό σφάλμα, με τη διαφορά ότι το μοντέλο δεν προσπαθεί να προβλέψει τις μικρές

54 Πειράματα Νευρωνικών Δικτών τιμές αλλά μόνο αυτές που ξεπερνούν το κατώτατο όριο. 4.3.4 LSTM για την Πρόβλεψη της Επιστροφής Ένα ακόμη μοντέλο που ενδείκνυται για την χρήση σε χρονοσειρές είναι το ανατροφοδοτούμενο νευρωνικό δίκτυο. Στη συγκεκριμένη περίπτωση χρησιμοποιούμε τον τύπο δικτύου που περιγράψαμε στην ενότητα 2.6.3 LSTM............. LSTM layer LSTM layer LSTM layer LSTM layer Max return Min return Max return Min return Max return Min return Max return Min return Σχήμα 4.8: LSTM μοντέλο για την πρόβλεψη των επόμενων επιστροφών Όπως και στη ενότητα 4.3.3 θα προσπαθήσουμε να προβλέψουμε τις επόμενες επιστροφές. Αντί για 2-3 δευτερόλεπτα η δειγματοληψία θα γίνεται για 6-20 δευτερόλεπτα. Τα δεδομένα εισόδου για κάθε βήμα θα είναι οι λογαριθμικές επιστροφές και ο λογαριθμικός όγκος όπως περιγράφονται στην προεπεξεργασία, αλλά σε αντίθεση με το συνελικτικό δίκτυο, που χρησιμοποιεί ένα παράθυρο πολλαπλών χρονικόν βημάτων από τιμές σαν είσοδο, στο αναδρομικό δίκτυο χρησιμοποιούμε τις τιμές κάθε κανάλιού (επιστροφές και όγκο) μόνο ενός χρονικού βήματος. Το δίκτυο που θα χρησιμοποιήσουμε έχει δυο επίπεδα LSTM μεγέθους 512-1024 και ένα πλήρως συνδεδεμένο δίκτυο με μεγέθη επιπέδων 512-128-8-2 Από τα διαγράμματα των προβλέψεων της επιστροφής του LSTM 4.9, παρατηρούμε ότι καταφέρνει να υπερεκπαιδευτεί στα δεδομένα εκπαίδευσης, ενώ οι προβλέψεις για τα δεδομένα δοκιμής έχουν πολύ μεγάλη απόκλιση από την πραγματικότητα.

4.3 Τιμές Ανταλλακτηρίων Bitcoin 55 (αʹ) Μέγιστη επιστροφή (βʹ) Ελάχιστη επιστροφή (γʹ) Μέγιστη επιστροφή (δʹ) Ελάχιστη επιστροφή Σχήμα 4.9: Προσέγγιση επιστροφής για τα δεδομένα εκπαίδευσης (πάνω) και τα δεδομένα δοκιμής (κάτω) χρησιμοποιώντας το ανατροφοδοτούμενο δίκτυο τύπου LSTM 4.3.5 Προτάσεις Επέκτασης Τα πορίσματα που μας δίνουν τα παραπάνω πειράματα είναι είτε πως τα μοντέλα μας δεν είναι αρκετά ευέλικτα ώστε να μάθουν τα χαρακτηριστικά των δεδομένων που χρησιμοποιούμε, είτε οτι τα δεδομένα της τιμής και των κινήσεων έχουν χαοτική συμπεριφορά που χρησιμοποιώντας τα απο μόνα τους δεν επιτρέπουν την πρόβλεψη των τιμών στο μέλλον. Μια πιθανή επέκταση των πειραμάτων που παρουσιάστηκαν είναι η χρήση ενός συνελικτικού δικτύου για την εξαγωγή χρήσιμων χαρακτηριστικών απο τη χρονοσειρά και στη