You are on page 1of 44

Εισαγωγή στη Μηχανική Μάθηση και Βελτιστοποίηση

Τμήμα Μηχανικών Η/Υ και Πληροφορικής


Πανεπιστήμιο Πατρών

Χατζηλυγερούδης Κωνσταντίνος
costashatz@upatras.gr
• Ανάπτυξη και αξιολόγηση αλγορίθμων που επιτρέπουν σε υπολογιστικά
συστήματα να μαθαίνουν μέσα της διαδικασίας δοκιμής-λάθους (trial and error)

• Δηλαδή να βελτιώνονται ως προς κάποια εργασία όσο αυξάνεται ο όγκος των


δεδομένων χωρίς να έχουν προγραμματιστεί συγκεκριμένα για αυτή την εργασία

• Η ονομασία επινοήθηκε το 1959 από τον Arthur Samuel

• Επίσημος ορισμός από Tom Mitchell (1997): “Ένα πρόγραμμα υπολογιστή λέγεται ότι
μαθαίνει από την εμπειρία Ε σε σχέση με κάποια εργασία Τ και κάποιο μέτρο απόδοσης P,
εάν η απόδοσή του στο T, όπως μετριέται από το P, βελτιώνεται με την εμπειρία E”

2
Πηγή: https://www.datacamp.com/community/tutorials/object-detection-guide

Πηγή:
"Robots learning from robots: A proof of concept study for co-manipulation tasks."
Luka Peternel, and Arash Ajoudani.
IEEE Conference on Humanoid Robotics 2017.
3
4
• Επιβλεπόμενη Μάθηση (Supervised Learning)
• Δείγματα που έχουν είσοδο και επιθυμητή έξοδο (labeled samples)

• Ενισχυτική Μάθηση (Reinforcement Learning)


• Το σύστημα λαμβάνει ανταμοιβή (reward) ως αποτέλεσμα των ενεργειών του σε ένα
πιθανώς δυναμικό περιβάλλον

• Μη-επιβλεπόμενη Μάθηση (Unsupervised Learning)


• Δείγματα χωρίς επιθυμητή έξοδο ούτε ανταμοιβές: στόχος είναι να βρούμε τη δομή των
δεδομένων

• Ημι-επιβλεπόμενη Μάθηση (Semi-supervised Learning)


• Λίγα δείγματα με επιθυμητή έξοδο, και πολλά χωρίς να γνωρίζουμε την επιθυμητή
έξοδο
5
• Πολύ σημαντικά για τη Μηχανική Μάθηση
• : →
• Κατηγορίες
• Παραμετρικά (Parametric)
• Υποθέτουμε κάποιες παραμέτρους
• Αν θέσουμε μία τιμή στις παραμέτρους (π.χ., ), μελλοντικές προβλέψεις ( ) είναι
ανεξάρτητες από τα δεδομένα
• Εάν ξέρουμε τις παραμέτρους, μπορούμε να διαγράψουμε τα δεδομένα
• Μη-παραμετρικά (Non-parametric)
• Υποθέτουμε άπειρο αριθμό παραμέτρων
• Συνήθως βλέπουμε τις παραμέτρους σαν μία συνάρτηση
• Η πληροφορία που μπορεί να αναπαραστήσει το μοντέλο αυξάνεται όσο αυξάνονται τα
δεδομένα

6
• Παραμετρικά Μοντέλα
• Γραμμικά (Linear)

• Νευρωνικά Δίκτυα (Neural Networks)

• Μηχανές Διανυσμάτων Υποστήριξης (Support Vector Machines - SVM)

• Μη-Παραμετρικά Μοντέλα
• Gaussian Processes

• Bayesian μοντέλα (π.χ. Bayesian Linear Models)

• k-Πλησιέστεροι Γείτονες (k-Nearest Neighbors)

7
• Δεδομένα = {( , ), . . . , ( , )} όπου Ν είναι ο αριθμός των δειγμάτων,
είναι οι είσοδοι και οι επιθυμητές έξοδοι.
• Στόχος να βρούμε : →

• Παλινδρόμηση (Regression)
• Συνήθως, παίρνουν συνεχείς τιμές (δηλαδή ∈ℝ )
• π.χ., = 96( )

• Κατηγοριοποίηση (Classification)
• Συνήθως, παίρνουν διακριτές τιμές που αντιστοιχούν σε κατηγορίες
• π.χ., σκύλος, γάτα, ελέφαντας, ...

8
9
10
• Υπόθεση:
• = ( ) = + + , όπου , είναι οι παράμετροι της και ~ (0, ) είναι
θόρυβος που ακολουθεί Gaussian κατανομή
• Η έξοδος είναι γραμμικά συσχετιζόμενη με την είσοδο
• = ( ) = + αν υποθέσουμε πως στο περιλαμβάνεται το και στο
βάλουμε μία επιπλέον διάσταση που είναι πάντα ίση με τη μονάδα
• Τι σημαίνει πρακτικά αυτή η υπόθεση;

11
• = {( , ), . . . , ( , )}

• = ⋮ , = ⋮

• Εκτίμηση Μέγιστης Πιθανοφάνειας (Maximum Likelihood Estimation)

*
• = 39 . ( | , ), όπου ( | , ) η συνάρτηση πιθανοφάνειας

12
• , είναι ανεξάρτητα εάν γνωρίζουμε τα , (conditionally independent)

• ( | , )= ( ,..., | ,..., , )= 9=1


( | , )

• Για λόγους αριθμητικής ευστάθειας, αλλά και ευκολίας στις πράξεις


χρησιμοποιούμε τον λογάριθμο και θέλουμε να βρούμε το ελάχιστο της:

• ( ) =− log ( | , ) =− log 9=1


( | , ) =− 9=1
( | , )

13
• ( ) =− 9=1
( | , )

1
• ( | , ) =− ( − ) + const

• ...

1
• ( )= −

14
1
• ( )= −

• Αναλυτική βέλτιστη λύση:

*
• = ( )

* 1
• = =1
( − )

15
• Το μοντέλο είναι γραμμικό ως προς την είσοδο

• Δεν μας περιορίζει κανείς όμως να έχουμε συγκεκριμένη είσοδο

• Σε πραγματικά προβλήματα, μετατρέπουμε την είσοδο σε άλλη μορφή ( )

• Παραδείγμα: 1

( )=

16
17
• Πλεονεκτήματα
• Αναλυτική λύση - δεν χρειαζόμαστε βελτιστοποίηση (σχεδόν!)

• Scales to big data

• Πλήρως κατανοητό μοντέλο


• Μειονεκτήματα
• Γραμμική σχέση με την είσοδο

• Σταθερό variance

• Έξοδοι είναι σταθερές τιμές, όχι τυχαίες μεταβλητές

18
• Μία επέκταση της Gaussian κατανομής σε μια στοχαστική διαδικασία άπειρης
διάστασης για την οποία οποιοσδήποτε πεπερασμένος συνδυασμός διαστάσεων
θα είναι μία Gaussian κατανομή
• Ένα Gaussian Process (GP) ορίζεται πλήρως από την συνάρτηση μέσης τιμής
(mean function), (∙), και την συνάρτηση συνδιακύμανσης (covariance function),
(∙ , ∙), και γράφουμε ότι:

( )~ 3( ( ), ( , ))

• = {( , ), . . . , ( , )}

( )
• = ⋮ , = ⋮ , = ⋮ , συνήθως ( ) = 0
( )

19
• Για κάθε σημείο ένα GP ορίζει μία Gaussian κατανομή για τις πιθανές
τιμές ( ):
Αναλυτική Λύση
( ( )| , , )= ( ( ), ( )) Δεν χρειάζεται βελτιστοποίηση!

( )= ( )+ ( − )

( )= ( , )−

= [ ( , ), . . . , ( , )]
( , ) ⋯ (, )
= ⋮ ⋱ ⋮ +
( , ) ⋯ ( , )

20
21
• Η συνάρτηση συνδιακύμανσης, k, ή αλλιώς συνάρτηση πυρήνα (kernel function)
ορίζει μία μετρική ομοιότητας (similarity metric)
• Συνηθισμένοι kernels:
• Exponential kernel
− ’
• ( , ’) = exp −
2
• Polynomial kernel
• ( , ’) = [ , , ] [ ’, ’ , ’ ]
• Rational Quadratic kernel
− ’
• ( , ’) = ( )
2
• ...
• Κάθε kernel έχει κάποιες παραμέτρους

22
23
• Εκτίμηση Μέγιστης Πιθανοφάνειας για να βρούμε τις καλύτερες παραμέτρους για
του kernel (συνήθως καλούνται υπερπαράμετροι/hyperparameters)

1 1
• log ( | , ) =− − log | | − log 2
2 2 2
1
• data-fit: −
2
1
• complexity: − log | |, | | είναι η ορίζουσα
2
• normalization: − log 2
2

• Βελτιστοποίηση για να βρούμε τις καλύτερες παραμέτρους

24
• Πλεονεκτήματα
• Αναλυτική λύση - δεν χρειαζόμαστε βελτιστοποίηση (σχεδόν!)

• Δυνατή γενίκευση (generalization)

• Εύκολη η εισαγωγή πρότερης γνώσης


• Μειονεκτήματα
• Κυβική πολυπλοκότητα ως προς τον αριθμό των δεδομένων

• Περιορίζεται σε Gaussian κατανομές

• Δύσκολο να έχουμε πραγματικά πολλαπλές εξόδους με σωστή συσχέτιση

25
Perceptron Modern Neuron

26
27
• Νευρωνικό δίκτυο είναι ένας γράφος νευρώνων οποιασδήποτε
μορφής οι οποίοι συνδέονται μεταξύ τους με βάρη, biases και
πιθανώς συναρτήσεις ενεργοποίησης

• Η πιο συνηθισμένη αρχιτεκτονική είναι γράφοι χωρίς κύκλους


που είναι οργανωμένοι σε διαδοχικά επίπεδα (layers), όπου σε
κάθε επίπεδο οι είσοδοι είναι ένα σταθμισμένο άθροισμα
(weighted-sum) της εξόδου του προηγούμενου επιπέδου

28
29
30
Πηγή: "Confronting machine-learning with neuroscience for neuromorphic architectures design." Khacef, Lyes, Nassim Abderrahmane, and Benoît
Miramond. IEEE International Joint Conference on Neural Networks (IJCNN), 2018. 31
• Πλεονεκτήματα
• Scale to big data

• Εξαιρετικά πρακτικά αποτελέσματα

• Γενικό μοντέλο: μπορούμε να αναπαραστήσουμε σχεδόν οτιδήποτε επιθυμούμε


• Μειονεκτήματα
• Χρειαζόμαστε βελτιστοποίηση για να βρούμε τις παραμέτρους

• Δύσκολο tuning των υπερ-παραμέτρων

• Δύσκολη η εισαγωγή πρότερης γνώσης

• Όχι τόσο καλή γενίκευση

32
• Ορισμός
• Ο όρος “βελτιστοποίηση” (optimization) προέρχεται από την ίδια ρίζα με το “βέλτιστο”
(optimal), που σημαίνει το καλύτερο. Όταν βελτιστοποιούμε κάτι, το κάνουμε “το
καλύτερο δυνατό”.

• Έννοιες
• Αντικειμενική συνάρτηση (objective function) ( ), η συνάρτηση που θέλουμε να
ελαχιστοποιήσουμε ή να μεγιστοποιήσουμε
• Οι μεταβλητές ή παράμετροι (variables or parameters), οι παράμετροι είναι οι
είσοδοι, αυτές που μπορούμε να ελέγξουμε
• Περιορισμοί (constraints) είναι συναρτήσεις που θέτουν κάποια όρια στις μεταβλητές
μας (συνήθως ορίζονται ως ισότητες ή ανισότητες): ℎ( ) ή 9( )

33
• Με ή χωρίς περιορισμούς

• Μίας ή πολλών μεταβλητών

• Οι μεταβλητές παίρνουν διακριτές ή συνεχείς τιμές

• Στατικά ή δυναμικά προβλήματα

• Ντετερμινιστικές ή πιθανοτικές αντικειμενικές συναρτήσεις

• Γραμμικά προβλήματα ή μη-γραμμικά

• Αναλυτικές ή black-box αντικειμενικές συναρτήσεις


34
• Μεταβλητές με διακριτές τιμές
• Ικανοποίηση περιορισμών (Constraint Satisfaction)
• Μεταβλητές με συνεχείς τιμές
• Gradient Descent
• Stochastic Gradient Descent
• Προβλήματα με γραμμικούς περιορισμούς
• Evolutionary Strategies
• Bayesian Optimization/Active Learning

• Black-box αντικειμενικές συναρτήσεις


• Στατικά προβλήματα
• Ντετερμινιστικά και πιθανοτικά προβλήματα
35
• (.) = . + 7. + 5. − 17. + 3
• Θέλουμε να βρούμε το ελάχιστο. Πώς; Ας
λύσουμε ’(.) = 0
• ’(.) = 4. + 21. + 10. − 17
• Εφόσον είναι πολυώνυμο 3ου βαθμού, θα έχει
γενικά 3 πιθανές λύσεις
• . =− 4.5, . =− 1.4, . = 0.7
• Μπορεί όμως να είναι είτε μέγιστα είτε
ελάχιστα: πρέπει να ελέγξουμε το πρόσιμο
της ’’(.)
• ’’(.) = 12. + 41. + 10
• ’’(− . ) > , ’’(−1.4) < 0, ’’( . ) >
• Αν δεν μπορούμε να υπολογίσουμε τις
λύσεις;!
36
• Στη γενική περίπτωση, δεν μπορούμε να υπολογίσουμε αναλυτικά τις λύσεις
(ακόμα κι αν γνωρίζουμε την εξίσωση!)
• Η παράγωγος (ή κλίση), ’(.), μας δίνει πληροφορία ως προς την κατεύθυνση
που πρέπει να κινηθούμε για να φτάσουμε στο ’(.) = 0

• Ξεκινάμε από μία αρχική θέση . και ακολουθούμε την παράγωγο. Πόσο “πολύ”
θα ακολουθήσουμε την παράγωγο όμως;
• Χρησιμοποιούμε ένα βήμα (step size) ≥ 0 και έχουμε . =. − ’(. )
• Για αρκετά μικρό βήμα θα ισχύει (. ) ≤ (. ) και άρα η ακολουθία (. ) ≥
(. ) ≥ . . . ≥ (. ) θα καταλήξει σε τοπικό ελάχιστο

37
38
39
Πολύ μεγάλο βήμα Πολύ μικρό βήμα

40
• Βασικός αλγόριθμος για προσαρμογή του βήματος:
1. Αρχικοποιούμε το βήμα σε μία λογική τιμή =
2. . = . − ’(. )
3. Αν (. ) > (. ) τότε = * με 0 < < 1 και . = .
4. Αν (. ) < (. ) τότε = * με > 1
5. Πάμε στο βήμα 2 μέχρι να έχουμε σύγκλιση
• Αποδεικνύεται ότι συγκλίνει πάντα σε τοπικό ελάχιστο1. Συνήθως, = 1.2, = 0.5.
• Gradient Descent with momentum (ορμή):
= + (1 − ) ’(. )
. =. −
=
∈ [0,1]
• Γρηγορότερη σύγκλιση
• Ομαλοποίηση θόρυβου
Πηγή #1: Toussaint, Marc. 2012. Some Notes on Gradient Descent. https://ipvs.informatik.uni-stuttgart.de/mlr/marc/notes/gradientDescent.pdf 41
• Nesterov accelerated gradient
• Adagrad
• Adadelta
• RMSprop
• Adam - ίσως ο πιο δημοφιλής
• AdaMax
• Nadam
• AMSGrad
• Rprop
• .....

42
• Μαθηματικά για Μηχανική Μάθηση/Βελτιστοποίηση
• Mathematics for Machine Learning, Marc Peter Deisenroth, A. Aldo Faisal, and Cheng Soon
Ong, Cambridge University Press, 2020
• Δωρεάν: https://mml-book.github.io/
• Gaussian Processes
• Gaussian Processes for Machine Learning, C. E. Rasmussen & C. K. I. Williams,
MIT Press, 2006. Δωρεάν: http://www.gaussianprocess.org/gpml/chapters/RW.pdf
• Open-source βιβλιοθήκη σε C++: https://github.com/resibots/limbo
• Open-source βιβλιοθήκη σε python: https://github.com/SheffieldML/GPy
• A visual exploration of Gaussian Processes: https://www.jgoertler.com/visual-
exploration-gaussian-processes/
• Νευρωνικά Δίκτυα
• A Neural-Network Playground: https://playground.tensorflow.org/
• Neural Networks and Deep Learning, Michael Nielsen. Δωρεάν e-book:
http://neuralnetworksanddeeplearning.com/
43
• Βελτιστοποίηση με περιορισμούς (Constrained Optimization)
• Μεταβλητές με συνεχείς τιμές
• Πολλαπλασιαστές Langrange (Langrange Multipliers)
• Κυρτή Βελτιστοποίηση (Convex Optimization)
• Γραμμικός Προγραμματισμός (Linear Programming)
• Quadratic Programming

• Μεταβλητές με διακριτές τιμές


• Ικανοποίηση περιορισμών (Constraint Satisfaction)
• Αναζήτηση για επίλυση προβλημάτων ικανοποίησης περιορισμών

44

You might also like