Professional Documents
Culture Documents
12 DeepLearningIntroduction
12 DeepLearningIntroduction
12 DeepLearningIntroduction
Learning
Προσδιορισμός
• Υποσύνολο της μηχανικής • Χρήση εκτεταμένων
μάθησης αρχιτεκτονικών και πολλαπλών
• Βασίζεται στο τεχνητά αναπαραστάσεων. [1], [2], [3]
νευρωνικά δίκτυα
[5]
Κύρια Χαρακτηριστικά
• State of the art αποτελέσματα σε [3]
διάφορους τομείς.
• Αύξουσα μονοτονία της επίδοσης με το
πλήθος των δεδομένων και των
υπολογισμών
• Συνοψίζει διάφορα στάδια
προεπεξεργασίας.
• Πλειοψηφικά (όχι αποκλειστικά)
αναφέρεται σε επιβλεπόμενη μάθηση.
• Υπολογιστικά ακριβή διαδικασία
• Δυνητικά δύσκολη ερμηνεία των [4]
διαδικασιών.
Εισαγωγή Νευρωνικών
Δικτύων
Single Layer Perceptron
Νευρώνας
Επεξεργασίας
𝑥 1 𝑤
1
𝑥 2 𝑤
2
/
Επίπεδο
Εισόδου
𝑛
𝑤
𝑥𝑛
b
Έξοδος
Forward Propagation - Παράδειγμα
Positive
b=+1 Classification
X1 = +5.2 W1 = +1.0
/=
X2 = +1.6 W2 = -0.5 0.703>0.5
0. 703
X3 = -4.3 W3 = +1.0
X2
Επίπεδο
Εισόδου
/ / Yk
Xn
Επίπεδο
Κρυφά Επίπεδα Εξόδου
Backpropagation with Gradient Descent
(MLP με ένα κρυφό επίπεδο)
𝑤
𝑤
2
6
3
• Επιθυμούμε να προβλέψει το
7
𝑤
𝑤
αποτέλεσμα {0.5, 0.5}. (labels) 𝑤 4 𝑤 8
X2 / Y2
0 .
3
4
• 66
5
0 .
0 .
0 .1
2
X2=0.9 0.82 0.66
0.5 0.3
Backpropagation with Gradient Descent –
Loss
•
X1=0.4
0
.2 0 .6
0.77 0.76
0 .
3
4
𝐸=0.047
•
5
0 .
0 .
0 .1
2
X2=0.9 0.82 0.66
• (mean squared error loss)
0.5 0.3
Backpropagation with Gradient Descent –
Local Gradients & updates (1)
•
𝑤 1 𝑤 5
• X1=0.4
0.76
𝑤
𝑤
2
6
• Συχνή ανάθεση: 𝐸=0.047
7
𝑤
𝑤
X2=0.9
𝑤 4
h2
𝑤 8
0.66
𝑤
𝑤
2
6
𝐸=0.047
7
𝑤
𝑤
X2=0.9
𝑤 4
h2
𝑤 8
0.66
• Adagrad [9]
• Adadelta
• Παρόμοιος με RMSprop, αναπτύχθηκαν ανεξάρτητα κατά την ίδια περίοδο.
• Εκτενής περιγραφή: [8]
Παράδειγμα σύγκλισης
σε saddle point.
(, όχι βέλτιστο)
Πηγή: [8]
Αλγόριθμοι Μάθησης - Tips
• Δημοφιλέστεροι: Adam, RMSprop
• ΔEN υπάρχει καθολικά καλύτερος αλγόριθμος μάθησης [10]
(κάποιοι γενικεύουν καλύτερα, κάποιοι συγκλίνουν γρηγορότερα
κτλ.)
• Εξάρτηση καταλληλότητας αλγορίθμου από το πρόβλημα που
επιλύεται.
• Διαρκώς εξελισσόμενο πεδίο (βλ. Nadam [11] κ.α.).
Συναρτήσεις Ενεργοποίησης
Συναρτήσεις Ενεργοποίησης
[12]
• Προσφέρουν μη γραμμικότητα
στο μοντέλο.
(διαφορετικά τα νευρωνικά θα Activation
μπορούσαν να προσεγγίσουν function
μόνο γραμμικές συναρτήσεις)
• Ρυθμίζουν και διαμορφώνουν
την έξοδο των κρυφών /
επιπέδων.
• Επηρεάζουν αντίστοιχα την
εκπαιδευτική διαδικασία.
Συναρτήσεις Ενεργοποίησης –
Σιγμοειδής (Λογιστική)
•
• Χαρακτηριστικά: • Μειονεκτήματα:
• Μη γραμμική • Μη συμμετρία ως προς το 0
• Συνεχές πεδίο τιμών ενεργοποίησης υπολογιστικές δυσκολίες
• Σχετικά ήπια κλίση. • Αρκετά μικρή κλίση για ακραίες τιμές
• Κατ’ επέκταση, εξασθένιση των παραγώγων
• Εύρος πεδίου τιμών: (0, 1) μέσω των αλλεπάλληλων πολ/μων κατά το
• Εμφανείς αποκλίσεις στο διάστημα [- backpropagation.
2, +2] (άρα κατάλληλο για • Δυνητικά δυσκολεύει / καθυστερεί τη
classification) μάθηση
Συναρτήσεις Ενεργοποίησης –
Υπερβολική Εφαπτομένη
•
• Χαρακτηριστικά
• Χαρακτηριστικά:
• Μη γραμμική
• Μειονεκτήματα:
(,
) • Δεν είναι άνω φραγμένη
• Για αρνητικές παραμέτρους, η τοπική
• Αραιότερες ενεργοποιήσεις – παράγωγος είναι 0, επομένως δεν
υπολογιστικά ευνοϊκή ανταποκρίνονται κατά την εκπαίδευση
• Ιδανική για βαθιά δίκτυα (dying Relu problem)
Συναρτήσεις Ενεργοποίησης –
Leaky Relu
•
• Χαρακτηριστικά:
• Αποτελεί προσπάθεια διόρθωσης
του dying Relu problem.
• Αρκετά παρόμοια με την Relu
• Μέσω του τελεστή αποφεύγονται
οι μηδενικές τοπικές παράγωγοι.
Συναρτήσεις Ενεργοποίησης - Softmax
• • Χαρακτηριστικά:
• Απεικονίζει ένα διάνυσμα
πραγματικών αριθμών στον
πιθανοτικό χώρο .
• Λειτουργεί ως γενίκευση της
λογιστικής για πολλές διαστάσεις.
• Εφαρμόζεται πριν την παραγωγή
εξόδου κατά το multiclass
classification.
• Κατασκευάζει μια κατανομή των
προβλέψεων βάση των logits.
Συναρτήσεις Ενεργοποίησης –
Παρατηρήσεις
• Η καταλληλότερη επιλογή της συνάρτησης κόστους διαφέρει
ανάλογα με το πρόβλημα.
• Υπάρχει μια γενική προτίμηση ως προς τη Relu ως αρχική
προσέγγιση.
• Ιδιαίτερη προσοχή ως προς το πρόβλημα Vanishing / Exploding
Gradient (χρήση τεχνικών gradient monitoring, gradient clipping).
• Σε multiclass classification, χρήση της συνάρτησης Softmax πριν την
παραγωγή της εξόδου.
Συνάρτηση Κόστους
Συνάρτηση Κόστους – Γενική Περιγραφή
• Σκοπός: Χρήση της συνάρτησης
κόστους που αντικατοπτρίζει
κατάλληλα το πρόβλημα. ⋯
⋯
Συνάρτηση Κόστους - Regression Loss
• Mean Squared Error : • Mean Absolute Error:
• Στην ουσία, υπολογίζει το σφάλμα της παραγόμενης κατανομής σε σχέση με την κατανομή των πραγματικών
τιμών (labels).
• Αποτελεί την κύρια συνάρτηση κόστους για multiclass classification.
• Απαιτεί one – hot encoding των labels.
𝑦𝑡
𝑦 1 𝑦 2 𝑦 3
h𝑡 h1 h2 h3 ⋯
𝑥 1 𝑥 2 𝑥 3
𝑥𝑡
𝐔𝐧𝐟𝐨𝐥𝐝𝐞𝐝
𝐑𝐍 𝐍
Αναδρομικά Νευρωνικά Δίκτυα –
Περιγραφή
• • Βασικό χαρακτηριστικό: η
έξοδος του κρυφού επιπέδου ()
τροφοδοτείται συμπληρωματικά
• : είσοδος του δικτύου κατά το
με τη νέα είσοδο () στο κρυφό
χρονοβήμα t.
επίπεδο.
• : έξοδος του κρυφού επιπέδου
(hidden state) κατά το χρονοβήμα • Το δίκτυο αποκτά “μνήμη”,
t. καθίσταται έτσι κατάλληλο για
την επεξεργασία ακολουθιακών
• : έξοδος του δικτύου (hidden
δεδομένων.
state) κατά το χρονοβήμα t.
• : Μητρώα βαρών.
Αδυναμία Μακροχρόνιων Εξαρτήσεων
• Όπως και τα απλά ΝΔ, τα ΑΝΔ είναι
universal function estimators.
• Θεωρητικά, έχουν την ικανότητα
απεριόριστης “μνήμης”.
• Αλλεπάλληλοι πολ/μοι τοπικών
κλίσεων (βλ. vanishing gradient
problem) αδυνατούν να
συγκρατήσουν μακροχρόνιες (long -
term) εξαρτήσεις.
• Ως απάντηση χρησιμοποιούνται
ανεπτυγμένες αρχιτεκτονικές και
τεχνικές κανονικοποίησης.
Long Short – Term Memory Units (LSTM)
h𝑡 𝑐 𝑡 −1 𝑐 𝑡
x +
𝑡𝑎𝑛h
𝑖 𝑡
x 𝑜 𝑡
𝜎 ( 𝑥 ) 𝑓 𝑡 ~ x
𝑐 𝑡
𝜎 𝜎 𝑡𝑎𝑛h
h 𝑡 − 1 h 𝑡 − 1
𝜎
h𝑡
𝑥𝑡 𝑥𝑡
•• Περιέχει
μια ροή της πληροφορίας εν ονόματι “cell state”, η οποία επηρεάζεται μόνο από
γραμμικούς μετασχηματισμούς και σκοπό έχει να διατηρεί την πληροφορία σχετικά
αμετάβλητη.
• Το προστίθεται με τη και διαδοχικά επηρεάζονται από τρεις διαφορετικές πύλες
(σιγμοειδείς νευρώνες): forget, input και output gates, με σκοπό να φιλτράρεται κατάλληλα η
πληροφορία.
• Η κάθε πύλη αποτελεί ένα κρυφό επίπεδο το οποίο απαρτίζεται από ένα σύνολο βαρών και
μια σιγμοειδή συνάρτηση.
• Η forget gate καθορίζει την πληροφορία που το σύστημα θα αποβάλλει από το διάνυσμα .
• Η input gate αντίστοιχα, σε συνδυασμό με μια tanh συνάρτηση ενεργοποίησης και
γραμμικούς μετασχηματισμούς, καθορίζει την πληροφορία που θα εισαχθεί στο cell state.
• Παρόμοια η output gate ορίζει την πληροφορία του που θα συνδυαστεί με το cell state και
θα αποτελέσει το νέο .
LSTM – Περιγραφή (2)
[14]
•
h𝑡
𝑐 𝑡 −1 𝑐 𝑡
x +
• 𝑡𝑎𝑛h
𝑖 𝑡
x 𝑜 𝑡
𝑓 𝑡 ~ x
𝑐 𝑡
𝜎 𝜎 𝑡𝑎𝑛h
h𝑡
𝜎
h 𝑡 − 1
•
𝑥𝑡
• Κύρια πηγή: [14]
Gated Recurrent Units (GRU)
• Η αρχιτεκτονική GRU [17]
αποτελεί μια απλοποιημένη
μορφή της LSTM.
• Δεν περιέχει cell state.
• Απαρτίζεται από μια update και
μια reset πύλη.
• Και οι δυο αρχιτεκτονικές
Εικόνα από:
θεωρούνται ισάξιες και εξίσου https://colah.github.io/posts/2015-08-Understan
δημοφιλείς. ding-LSTMs/
Κύριες πηγές: [14], [16]
Προχωρημένες Αρχιτεκτονικές –
Bidirectional RNN
• Παράλληλα με την κανονική 𝑦 1 𝑦 2 𝑦 3 ⋯
ανάγνωση των δεδομένων, ένα
έξτρα κρυφό επίπεδο
επεξεργασίας δέχεται την είσοδο ′
h 𝑡−1
h′
𝑡
h′
𝑡 +1 ⋯
με τα παρελθοντικά δεδομένα,
αλλά και με αυτά που έπονται.
Αναδρομικά Νευρωνικά Δίκτυα -
Χρήσιμοι Σύνδεσμοι
Χρήσιμοι σύνδεσμοι:
• https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-recurre
nt-neural-networks
• https://colah.github.io/posts/2015-08-Understanding-LSTMs/
• https://playground.tensorflow.org/
Τεχνικές Κανονικοποίησης
Τεχνικές Κανονικοποίησης – Dropout (1)
• Το dropout [18] αποτελεί τη
βασική τεχνική κανονικοποίησης
νευρωνικών δικτύων.
• Τυχαία επιλεγμένοι κόμβοι
απενεργοποιούνται κατά την
εκπαιδευτική διαδικασία.
Αποφεύγεται έτσι ενδεχόμενο
overfitting.
• Fully – Connected
Convolutional Layers (1)
• Χρησιμοποιεί φίλτρα (kernels), τα
οποία τομογραφούν την είσοδο
μέσω συνεχών συνελίξεων
(convolutions) για την
ανακάλυψη τοπικών
χαρακτηριστικών.
• Απαρτίζεται από τρεις κύριες
παραμέτρους:
• Number of filters
• Kernel size Παράδειγμα Input – Convolutional Layers, για
• Padding μια εικόνα διαστάσεων : . Πηγή:
http://cs231n.github.io/convolutional-networks/
Convolutional Layers (2)
• Η εικόνα εισόδου αποτελείται από τρεις
διαστάσεις: (μήκος, πλάτος, βάθος). Το
βάθος αναφέρεται στα channels (1 για
grayscale, 3 για rgb κ.α.) Kernel Shape: (2x2x1)
• Τα στοιχεία του πίνακα είναι ακέραιοι
συγκεκριμένου εύρους (π.χ. [0, 255]), που
αντιπροσωπεύουν την ένταση του
χρώματος.
• Ο kernel αποτελείται από ένα πίνακα
συντελεστών, ο οποίος φιλτράρει τοπικά
την εικόνα (εσωτερικό γινόμενο kernel και
μέρος του πίνακα), μετατοπίζοντας κάθε
φορά, οριζόντια ή κάθετα, κατά stride σε
πλήθος pixels.
• Για φίλτρα, προκύπτουν αναπαραστάσεις
(feature maps). Input Image: (5x5x1)
Convolutional Layers (3)
Kernel
…
Convolutions, παράδειγμα με
stride = (1,1)
…
Pooling Layer
• Χρήση: Συνηθίζεται να τοποθετείται • Είδη: Τα κυριότερα είναι τα
ανάμεσα από διαδοχικά Average και Max. Συνηθίζεται
convolutional layers. max pooling, ενώ τα kernel size
• Σκοπός: Συντελεί στη μείωση των
διαστάσεων των feature maps και
και stride ίσα με (2, 2). …
στην καταπολέμηση του overfitting.
• Περιγραφή: Πραγματοποιείται
επίσης μέσω της τοπικής εφαρμογής
ενός φίλτρου, που μετατοπίζεται
μέσω stride. Μπορεί να
χαρακτηρισθεί ως ένα επιπλέον
convolution, με μη γραμμικό kernel. Παράδειγμα για max pooling, με
pool_size=(3, 3) και stride=(2, 2).
Padding
• Βοηθά στη ρύθμιση των διαστάσεων 0 0 0 0 0 0 0
των output feature maps.
0 0
Πραγματοποιείται πάντα μέσω
μηδενικών. 0 0
⋯
⋯
• Συνηθίζεται να τροφοδοτείται σε
ένα πλήρως συνδεδεμένο επίπεδο
με κατάλληλη συνάρτηση
ενεργοποίησης.
• Εάν πρόκειται για classification
task, η έξοδος παράγεται μέσω
ενός τελικού Softmax επιπέδου.
Convolutional Neural Networks –
Σημειώσεις
• Περισσότερα convolutional επίπεδα συντελούν στην ανακάλυψη και αφαίρεση
προχωρημένων δομών και γνωρισμάτων των εικόνων. Αυξάνουν επίσης κατά
πολύ την πολυπλοκότητα του δικτύου.
• Συνηθίζεται τα επίπεδα συνελίξεων να ακολουθούνται από Pooling επίπεδα, για
τη μείωση τής διαστατικότητας, την αφαίρεση θορύβου και την αποφυγή
overfitting. Δεν είναι αναγκαίο, αλλά στην κρίση του σχεδιαστή του δικτύου.
• Αν και συνηθίζεται, ούτε η χρήση του πλήρως συνδεδεμένου επιπέδου είναι
αναγκαία. Συγκεκριμένα, στο state of the art μοντέλο ResNet, δε
χρησιμοποιείται. Aντικαθίσταται με Global Average Pooling (βλ. [27], case studies).
• Γενικά προτιμάται η μέθοδος κανονικοποίησης Batch Normalization [31] αντί της
Dropout στα Convolutional Neural Networks (βλ. [30]).
Convolutional Neural Networks –
Χρήσιμοι Σύνδεσμοι
• Official Tensorflow Introduction to CNN:
https://www.tensorflow.org/tutorials/images/cnn
• Stanford CS231n:
https://stanford.edu/~shervine/teaching/cs-230/cheatsheet-convoluti
onal-neural-networks
[27]
Input Output
(Προσεγγίζει τη ταυτοτική συνάρτηση)
⋮
⋮
παράγονται διαφορετικές
h 1
αναπαραστάσεις, , της εισόδου.
𝑥 2 𝑥 2 𝑥 2 𝑥 2
• Ανάλογα με το πρόβλημα που h 2
επιλύεται, οι encoder – decoder
μπορούν να απαρτίζονται από ⋮
⋮
⋮ ⋮
⋮
• [30]: https://www.kdnuggets.com/2018/09/dropout-convolutional-networks.html
References (4)
• [31]: “Batch Normalization: Accelerating Deep Network Training by
Reducing Internal Covariate Shift”, [Ioffe & Szegedy, 2015]
• [32]: http://yann.lecun.com/exdb/mnist/
• [33]: https://blog.keras.io/building-autoencoders-in-keras.html
• [34]: “Deep Learning Book”, [Goodfellow et al, 2016]
• [35]:
https://web.stanford.edu/class/archive/cs/cs294a/cs294a.1104/spars
eAutoencoder.pdf