Πανεπιστήμιο Ιωαννίνων Ακαδ. Έτος 2014-15 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Εαρινό Εξάμηνο Παρασκευάς Τσανταρλιώτης Α.Μ. 318 Μηχανική Μάθηση Εργασία 1 Άσκηση 1 a. Αρχικά πρέπει να βρούμε τις παραμέτρους της πολυωνυμικής κατανομής που αντιστοιχούν στους εκτιμητές μέγιστης πιθανοφάνειας. Έστω N ένας ακέραιος και p = (p i) ένα σύνολο θετικών πραγματικών τ.ω. i p i = 1. Η πολυωνιμική κατανομή με παραμέτρους τα N και p είναι η κατανομή f p στο σύνολο των θετικών ακεραίων x = (x i) τ.ω. i x i = N η οποία ορίζεται ως εξής: f p = N! p i n i Έστω ένα σύνολο n. Η πιθανοφάνεια είναι l(p) = f p (n) με τον περιορισμό C(p) = 1, όπου C(p) = i p i. Προκειμένου να μεγιστοποιήσουμε την πιθανοφάνεια θα χρησιμοποιήσουμε πολλαπλασιαστές Lagrange: L(p) = l(p) + λ (1 C(p)). Εξισώνοντας τις παραγώγους με το 0, παίρνουμε x i L(p) = λ, δηλαδή το p i πρέπει p i να είναι ανάλογο το x i. Αφού i p i = 1, τότε p i = x i για κάθε x. N Στη δικά μας περίπτωση, φορτώνουμε τα δεδομένα με την εντολή load της Matlab. Στη συνέχεια, βρίσκουμε τις πιθανότητες για κάθε κατηγορία δεδομένων {1,2,3} και υπολογίζουμε την πιθανότητα για την κάθε κατηγορία. Επομένως, έχουμε τους εκτιμητές μέγιστης πιθανοφανείας. Για τα δικά μας δεδομένα οι εκτιμητές είναι τα p 1 = 0.6040, p 2 = 0,3120, p 3 = 0,0840. Άρα η τιμή της λογαριθμικής πιθανοφάνειας δίνεται από τον τύπο: L(p) = log( N! 3 x1!x2!x3! ι 3 x i! p i x i i=1 ) = log N! i=1 x i + i=1 x i log p i = = -5.9823 Προκειμένου να μοντελοποιήσουμε την συνάρτηση πυκνότητας πιθανότητας, δημιουργούμε όλες τις πιθανές τριάδες για τα x i για έναν ακέραιο Ν (πρέπει ικανοποιείται ο περιορισμός i x i = N). Χρησιμοποιώντας τον πίνακα με όλες τις τριάδες S και τους εκτιμητές μέγιστης πιθανοφάνειας p i που βρήκαμε παραπάνω υπολογίζουμε την συνάρτηση πυκνότητας πιθανότητας για τα δεδομένα του S (συνάρτηση mvnpdf(s,p)). Παρατηρούμε ότι για μικρό Ν, οι εκτιμητές μέγιστης πιθανοφάνειας για τα νέα δεδομένα αποκλίνουν από τους αρχικούς, αλλά όσο μεγαλώνει το Ν οι εκτιμητές προσεγγίζονται όλο και καλύτερα. Ο κώδικας είναι διαθέσιμος στο cs.uoi.gr/~ptsantar/courses/ml/project1 b. Για την κανονική κατανομή η συνάρτηση πυκνότητας πιθανότητας 2 διαστάσεων δίνεται από τον τύπο: 3
Προκειμένου να βρούμε τους εκτιμητές μέγιστης πιθανοφάνειας λογαριθμίζουμε την παραπάνω συνάρτηση. Στη συνέχεια, παραγωγίζουμε ως προς μ x, μ y, σ x και σ y. Εξισώνουμε όλες τις παραγώγους με το μηδέν και τελικά καταλήγουμε στους εκτιμητές μέγιστης πιθανοφάνειας, που είναι διάνυσμα 2-διαστάσεων με τους μέσους όρους κάθε διάστασης και ο πίνακας συνδιακύμανσης (2x2). Επομένως, για τα δεδομένα που έχουμε οι εκτιμητές είναι μ = [ 0.0435, 0.0435] 1.0167 0.5568 και Σ = [ ]. Η αντίστοιχη τιμή τις λογαριθμικής πιθανοφάνειας είναι 0.5568 1.0200-1.6783. Για να μελετήσουμε τις περιπτώσεις του πίνακα συνδιακύμανσης χρησιμοποιούμε τη συνάρτηση contour της Matlab. Στις παρακάτω εικόνες βλέπουμε τις απεικονίσεις για πλήρη, διαγώνιο και σφαιρικό πίνακα. Πρέπει να σημειώσουμε ότι για καλύτερη απεικόνιση πήραμε μόνο 50 σημεία από τα δεδομένα και για τις περιπτώσεις του διαγώνιου και σφαιρικού πίνακα χρειάστηκε να πειράξουμε κατάλληλα τον πίνακα.
Άσκηση 2 Βήμα 1: Κατασκευάζουμε τα δεδομένα σύμφωνα με τις οδηγίες της εκφώνησης, χρησιμοποιώντας τη συνάρτηση mvnrnd() και δημιουργώντας τα κατάλληλα σύνολα εκπαίδευσης και ελέγχου. Αξίζει να σημειώσουμε ότι όσο αυξάνουμε το s τα σημεία μας έρχονται πιο κοντά, Όπως φαίνεται στην Εικόνα 1. Εικόνα 1. Πως πλησιάζουν τα σημεία όσο μεγαλώνουμε το s. Βήμα 2α: Στο ερώτημα αυτό αυτό θα χρησιμοποιήσουμε την μη παραμετρική μέθοδο Parzen Windows για να εκτιμήσουμε τη συνάρτηση πυκνότητας πιθανότητας. Επειδή η συνάρτηση ksdensity() ορίζεται μόνο για μία διάσταση, ενώ εμείς έχουμε δύο, θα πάρουμε την κάθε διάσταση ξεχωριστά. Επίσης, υπάρχουν 3 τύποι συναρτήσεων πυρήνα normal, box, triangle τις οποίες θα δούμε. Στην Εικόνα 2 βλέπουμε τις συναρτήσεις πυκνότητας πιθανότητας για την κάθε διάσταση. Παρατηρούμε ότι ο τύπος normal είναι πιο απαλό, ενώ ο box εμφανίζει περισσότερες γωνίες. Εικόνα 2. Οι κατανομές για κάθε διάσταση του συνόλου εκπαίδευσης.
Στη συνέχεια, προσπαθήσαμε να εκτιμήσουμε μία συνάρτηση πυκνότητας πιθανότητας που να συνδυάζει και τις δύο διαστάσεις, όπως φαίνεται στην Εικόνα 3. Παρατηρούμε δύο κώνους που αντιστοιχούν στις δύο κατανομές. Επίσης, και πάλι παρατηρούμε ότι ο τύπος πυρήνα normal είναι πιο λείος, αντίθετα από τον box. Εικόνα 3. Συνάρτηση πυκνότητας πιθανότητας που συνδιάζει και τις 2 διαστλασεις. Βήμα 2β: Στην Άσκηση 1β αποδείξαμε ποιοι είναι οι εκτιμητές μέγιστης πιθανοφάνειας για την κανονική κατανομή (μία διάσταση). Σε αυτή την άσκηση έχουμε δεδομένα 2 διαστάσεων που ακολουθούν 2 κανονικές κατανομές. Αποδεικνύεται ότι οι εκτιμητές είναι ένα διάνυσμα 2-διαστάσεων με τους μέσους όρους κάθε διάστασης και ο πίνακας συνδιακύμανσης (2x2). Άρα έχουμε μ Α = [-2, -2] και μ Β = [2, 2] για τις κατηγορίες Α, Β αντίστοιχα και ο πίνακας συνδιακύμανσης τον οποίο τον ορίζουμε διαφορετικά σε κάθε περίπτωση. Χρησιμοποιώντας τα τους εκτιμητές και τα δεδομένα εκπαίδευσης βρίσκουμε τη συνάρτηση πυκνότητας πιθανότητας για την κάθε κατηγορία χρησιμοποιώντας τη συνάρτηση mvnpdf(train, mean, Σ). Βήμα 3: i) Προκειμένου να αξιολογήσουμε τον κατηγοριοποιητή που δημιουργήσαμε στο βήμα 2α, πρέπει για κάθε σημείο του συνόλου ελέγχου να δούμε πια κατανομή είναι πιο πυκνή. Το σημείο είναι πιο πιθανό να ανήκει στην κατανομή με την μεγαλύτερη πυκνότητα. Αυτό το πετυχαίνουμε παρεμβάλλοντας τα σημεία του συνόλου ελέγχου στις καμπύλες της Εικόνας 3. Ωστόσο, αυτή δεν είναι καλή λύση καθώς αν έχουμε κάποιο σημείο που δεν ανήκει σε καμία από τις 2 κατανομές δεν μπορούμε να χρησιμοποιήσουμε παρεμβολή. ii) Προκειμένου να αξιολογήσουμε τον κατηγοριοποιητή που δημιουργήσαμε στο βήμα 2β, πρέπει να χρησιμοποιήσουμε την mvnpdf() με τα δεδομένα του συνόλου ελέγχου. Για κάθε σημείο του συνόλου ελέγχου η mvnpdf επιστρέφει πόσο πυκνή είναι η κατανομή στο συγκεκριμένο σημείο. Άρα καλούμε τη συνάρτηση 2 φορές, μία φορά με τις παραμέτρους της Α και μία με τις παραμέτρους της Β, και το σημείο θα ανήκει στην κατανομή που έχει μεγαλύτερη πυκνότητα στο σημείο αυτό.
Όπως είναι αναμενόμενο το σφάλμα αυξάνεται όσο το s μεγαλώνει, καθώς τα σημεία των δύο κατηγοριών μπλέκονται μεταξύ τους. Επίσης, αξίζει να σημειώσουμε ότι οι κατηγοριοποιητές βασισμένοι στη παραμετρική μέθοδο (με διαφορετικούς τύπους πυρήνα) αποδίδουν περίπου το ίδιο. Τέλος, παρατηρούμε ότι ο κατηγοριοποιητής που είναι βασισμένος στην παραμετρική μέθοδο αποδίδει καλύτερα, καθώς έχουμε πληροφορίες σχετικά με τα δεδομένα μας. Ο κώδικας είναι διαθέσιμος στο cs.uoi.gr/~ptsantar/courses/ml/project1