From 6161ac750f48212aea471b03e94563521dde5bcd Mon Sep 17 00:00:00 2001 From: Christina Theodoridou Date: Mon, 7 Jan 2019 11:54:27 +0200 Subject: [PATCH] draft vol3 --- presentation/features_and_preprocessing.tex | 115 ++++++++++---------- presentation/models.tex | 45 ++++++-- 2 files changed, 93 insertions(+), 67 deletions(-) diff --git a/presentation/features_and_preprocessing.tex b/presentation/features_and_preprocessing.tex index 789032c..88ae6e4 100644 --- a/presentation/features_and_preprocessing.tex +++ b/presentation/features_and_preprocessing.tex @@ -1,6 +1,6 @@ \section{Χαρακτηριστικά και προεπεξεργασία δεδομένων} -Για την εξαγωγή των χαρακτηριστικών που φαίνονται στο από τα αρχεία ήχουν του σετ δεδομένων, αρχικά τμηματήσαμε κάθε σήμα αρχείου σε frames με μέγεθος 6144 δείγματα. Έπειτα, τα frames αυτά, παραθυροποιήθηκαν με παράθυρο τύπου Hamming, ίσου μεγέθους. Στη συνέχεια, έγινε η εξαγωγή των χαρακτηριστικών στο πεδίο του χρόνου, καθώς και στο πεδίο της συχνότητας.Παράλληλα, έγινε και η εξαγωγή των συντελεστών MFCC έτσι ώστε να είναι εφικτός ο υπολογισμός της διαμόρφωσης της ενέργειας σήματος στα 4 hz. Τα χαρακτηριστικά που εξήχθηκαν, θα αναλυθούν στη συνέχεια. Ως προεπεξεργασία, τα δεδομένα κλιμακοποιήθηκαν έτσι ώστε να έχουν μέσο 0 και τυπική απόκλιση ίση με 1 για κάθε συνιστώσα. Τέλος, εφαρμόστηκε και η μέθοδος Principal Component Analysis - PCA, έτσι ώστε να μειωθούν οι τελικές διαστάσεις των χαρακτηριστικών. +Για την εξαγωγή των χαρακτηριστικών που φαίνονται στο από τα αρχεία ήχουν του σετ δεδομένων, αρχικά τμηματήσαμε κάθε σήμα αρχείου σε frames με μέγεθος 6144 δείγματα. Έπειτα, τα frames αυτά, παραθυροποιήθηκαν με παράθυρο τύπου Hamming, ίσου μεγέθους. Στη συνέχεια, έγινε η εξαγωγή των χαρακτηριστικών στο πεδίο του χρόνου, καθώς και στο πεδίο της συχνότητας.Παράλληλα, έγινε και η εξαγωγή των συντελεστών MFCC έτσι ώστε να είναι εφικτός ο υπολογισμός της διαμόρφωσης της ενέργειας σήματος στα 4 hz. Τα χαρακτηριστικά που εξήχθηκαν είναι 27 και θα αναλυθούν στη συνέχεια. Ως προεπεξεργασία, τα δεδομένα κλιμακοποιήθηκαν έτσι ώστε να έχουν μέσο 0 και τυπική απόκλιση ίση με 1 για κάθε συνιστώσα. Τέλος, δίνουμε την δυνατότητα στον κώδικά μας να εφαρμοστεί και η μέθοδος Principal Component Analysis - PCA,αν αυτή είναι αναγκαία, έτσι ώστε να μειωθούν οι τελικές διαστάσεις των χαρακτηριστικών.Η χρήση της αυτής της μεθόδου, μειώνει τις διαστάσεις σε 10 από τις 27 που έχουμε τώρα αλλά ρίχνει την απόδοση στο 89.72\% , μικρότερη από αυτήν που πετυχαίνουμε εν τέλη όπως θα δούμε στη συνέχεια. %pinakas me arxikes kai telikes diastaseis xarakthristikwn % \begin{center} @@ -21,8 +21,7 @@ \text{ZCR} = \frac{\sum_{m=1}^{N} |sgn ~x(n) - sgn~x(n-1)| }{2N} \end{equation} -όπου sgn() η συνάρτηση προσήμου και x(m) το διακριτό σήμα ήχου. Όπως φαίνεται στο σχήμα %\ref{fig:fig}, - το ZCR για την μουσική είναι αρκετά υψιλότερο από ότι στην φωνή. +όπου sgn() η συνάρτηση προσήμου και x(m) το διακριτό σήμα ήχου. Στη γενική περίπτωση, το ZCR για την μουσική είναι αρκετά υψιλότερο από ότι στην φωνή. % \begin{figure}[H] % \begin{subfigure}{.5\textwidth} @@ -66,7 +65,7 @@ Qassim University, Saudi Arabia } \subsection{Envelope} -Το envelope εκφράζει τις αλλαγές στο πλάτο του σήματος. Αυτό το χαρακτηριστικό παίζει σημαντικό ρόλο στην ακουστική αντίληψη, συμπεριλαμβανομένου και της αντίληψης μουσικής και φωνής. Συγκεκριμένα για την φωνή, λόγω της διακύμασης του ρυθμού των συλλαβών, το μεγαλύτερο μέρος των ρυθμών του envelope βρίσκεται κάτω από τα 16Hz, ενώ στη μουσική,...... +Το envelope είναι ουσιαστικά μία ομαλή καμπύλη που καλύπτει το περίγραμμα ενός ταλαντούμενού σήματος.Εκφράζει, ουσιαστικά, τις χρονικές αλλαγές στο πλάτο του σήματος.Οι αλλαγές αυτές είναι υπεύθυνες για πολλές πτυχές της ακουστικής αντίληψης, συμπεριλαμβανομένου της έντασης, της χροιάς, της οξύτητας και τις χωρικής ακουστότητας. \subsection{Flatness} @@ -84,77 +83,79 @@ To flatness ή αλλιώς επιπεδότητα του ήχου, είναι \subsection{Spectral Complexity} + + To spectral complexity ή αλλιώς η φασματική πολυπλοκότητα, βασίζεται στον αριθμό των κορυφών του φάσματος του σήματος. +\subsection{Mel Frequency Cepstral Coefficient - MFCC } +Στην επεξεργασία ήχου, το cepstrum συχνοτήτων Mel (Μel frequency cepstrum - MFC) +είναι μια αναπαράσταση του βραχυπρόθεσμου φάσματος έντασης ενός ήχου, βασισμένου σε έναν γραμμικό μετασχηματισμό συνημιτόνου του λογαριθμισμένου φάσματος έντασης σε μια μη γραμμική κλίμακα της συχνότητας (μη γραμμικής κλίμακας Mel). Οι συντελεστές του cepstrum συχνότητας Μελ (MFCCs – Mel Frequency Cepstrum Coefficients) είναι οι συντελεστές εκείνοι που αποτελούν στο σύνολο τους το φάσμα MFC. -\subsection{4Hz Energy Modulation} -Τα φωνητικά σήματα έχουν χαρακτηριστικό μέγιστο στη διαμόρφωση ενέργειας γύρω στα 4Hz του ρυθμού συλλαβών. Για να μοντελοποιηθεί αυτή η ιδιότητα ακολουθείται η παρακάτω διαδικασία:\footnote{https://www.irit.fr/recherches/SAMOVA/FeaturesExtraction.htm\#me4hz} Το σήμα τμηματοποιείται σε frames και εξάγονται οι Mel Frequency Spectrum Coefficients \footnote{https://en.wikipedia.org/wiki/Mel-frequency\_cepstrum} και υπολογίζεται η ενέργεια σε 40 κανάλια αντίληψης. Αυτή η ενέργεια έπειτα φιλτράρεται με ένα ζωνοδιαβατό φίλτρο, κεντραρισμένο στα 4Hz. Η ενέργεια αθροίζεται για όλα τα κανάλια, και κανονικοποιείται με βάση το μέσο του κάθε frame. Η διαμόρφωση δίνεται από τον υπολογισμό της μεταβλητότητας της φιλτραρισμένης ενέργειας σε dB σε ένα δευτερόλεπτο του σήματος. Η φωνή περιέχει περισσότερη διαμόρφωση από την μουσική. -Παρακάτω φαίνονται τα παραπάνω χαρακτηριστικά και το πόσο αποτελεσματικά είναι το κάθε ένα: +\subsection{4Hz Energy Modulation} +Τα φωνητικά σήματα έχουν χαρακτηριστικό μέγιστο στη διαμόρφωση ενέργειας γύρω στα 4Hz του ρυθμού συλλαβών. Για να μοντελοποιηθεί αυτή η ιδιότητα ακολουθείται η παρακάτω διαδικασία:\footnote{https://www.irit.fr/recherches/SAMOVA/FeaturesExtraction.htm\#me4hz} Το σήμα τμηματοποιείται σε frames και εξάγονται οι Mel Frequency Spectrum Coefficients \footnote{https://en.wikipedia.org/wiki/Mel-frequency\_cepstrum} και υπολογίζεται η ενέργεια σε 40 κανάλια αντίληψης. Αυτή η ενέργεια έπειτα φιλτράρεται με ένα ζωνοδιαβατό φίλτρο, κεντραρισμένο στα 4Hz. Η ενέργεια αθροίζεται για όλα τα κανάλια, και κανονικοποιείται με βάση το μέσο του κάθε frame. Η διαμόρφωση δίνεται από τον υπολογισμό της μεταβλητότητας της φιλτραρισμένης ενέργειας σε dB σε ένα δευτερόλεπτο του σήματος. Η φωνή περιέχει περισσότερη διαμόρφωση από την μουσική. +Παρακάτω φαίνονται ενδεικτικά κάποια από τα παραπάνω χαρακτηριστικά και το πόσο αποτελεσματικά είναι στον διαχωρισμό: + \begin{figure}[h] \centering -\includegraphics[width=0.7\textwidth]{output/figure_1.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_2.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_3.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_4.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_5.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_6.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_7.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_8.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_9.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_10.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_11.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_12.png} -\end{figure} -\begin{figure}[h] -\centering -\includegraphics[width=0.7\textwidth]{output/figure_13.png} +\includegraphics[width=0.7\textwidth]{figure_1.png} \end{figure} \begin{figure}[h] \centering -\includegraphics[width=0.7\textwidth]{output/figure_14.png} +\includegraphics[width=0.7\textwidth]{figure_2.png} \end{figure} +Eπιπλέον, ελέγξαμε όλα τα χαρακτηριστικά ένα προς ένα έτσι ώστε να δούμε εάν υπάρχει τρόπος να φτάσουμε την πλήρη ακρίβεια του μοντέλου μας με λιγότερα ή να φτάσουμε αρκετά κοντά ίσως ακόμα και με μόνο ένα. +Tα αποτελέσματα έδειξαν ότι κανένα χαρακτηριστικό από μόνο του δεν είναι ικανό να δώσει ικανοποιητικό ποσοστό απόδοσης στο μοντέλο. Αν πάρουμε το καλύτερο feature και το δοκιμάσουμε σε συνδυασμό με τα υπόλοιπα βλέπουμε ότι η ακρίβεια αυξάνεται λίγο αλλά όχι αρκετά. +Τέλος, αν συνδυάσουμε ξανά αυτά τα features που δίνουν το καλύτερο αποτέλεσμα βλέπουμε ότι έχουμε και πάλι μια μικρή αύξηση στην ακρίβεια ,η οποία όμως είναι αρκετά μακρυά από την ακρίβεια που πετυχαίνουμε εν τέλει. + +\begin{table}[h] +\begin{tabular}{llll} +{\ul \textbf{Accuracy}} & {\ul \textbf{Individually}} & {\ul \textbf{with best 1}} & {\ul \textbf{with best 2}} \\ +4Hz Mod & 0.58 & 0.66 & 0.73 \\ +Flat & 0.63 & 0.71 & 0.75 \\ +HFC & 0.58 & 0.65 & 0.72 \\ +LAtt & 0.62 & 0.71 & 0.75 \\ +SC & 0.59 & 0.66 & 0.73 \\ +Scomp & 0.57 & 0.66 & 0.73 \\ +SDec & 0.63 & 0.65 & 0.72 \\ +SEFlat & 0.51 & 0.65 & 0.72 \\ +SF & 0.55 & 0.69 & 0.75 \\ +SFlat & 0.57 & 0.66 & 0.72 \\ +SLAtt & 0.63 & 0.71 & 0.74 \\ +SR & 0.60 & 0.66 & 0.72 \\ +SSDec & \textbf{0.65} & - & - \\ +ZCR & 0.58 & 0.65 & 0.72 \\ +mfcc0 & 0.61 & 0.66 & 0.73 \\ +mfcc1 & 0.58 & 0.67 & 0.73 \\ +mfcc2 & 0.52 & 0.66 & 0.73 \\ +mfcc3 & 0.56 & 0.69 & 0.76 \\ +mfcc4 & 0.54 & 0.67 & 0.74 \\ +mfcc5 & 0.57 & 0.70 & 0.75 \\ +mfcc6 & 0.61 & \textbf{0.72} & - \\ +mfcc7 & 0.57 & 0.68 & 0.75 \\ +mfcc8 & 0.55 & 0.67 & 0.74 \\ +mfcc9 & 0.54 & 0.67 & 0.73 \\ +mfcc10 & 0.54 & 0.65 & 0.73 \\ +mfcc11 & 0.51 & 0.66 & 0.73 \\ +mfcc12 & 0.54 & 0.67 & 0.73 +\end{tabular} +\end{table} + + +Άρα, είναι προφανές ότι δεν είναι κάποιο συγκεκριμένο feature το οποίο ευθύνεται για το μεγαλύτερο ποσοστό της ακρίβειας του μοντέλου αλλά ο συνδυασμός τους. + + + + + diff --git a/presentation/models.tex b/presentation/models.tex index 94b5a58..28c1834 100644 --- a/presentation/models.tex +++ b/presentation/models.tex @@ -1,16 +1,41 @@ \section{Machine Learning Model} -Για την υλοποίηση του ταξινομητή δοκιμάστηκαν διάφορες μέθοδοι οι οποίες πετυχαίνουν διαφορετική ακρίβεια. Επίσης , για την μέτρηση της απόδοσης των μοντέλων εφαρμόστηκε η μέθοδος K-Fold cross validation.Στον πίνακα \ref{table:1} φαίνονται οι διάφορες μέθοδοι και οι ακρίβειες που πέτυχαν. +Για την υλοποίηση του ταξινομητή δοκιμάστηκαν διάφορες μέθοδοι οι οποίες πετυχαίνουν διαφορετική ακρίβεια. Επίσης , για την μέτρηση της απόδοσης των μοντέλων εφαρμόστηκε η μέθοδος K-Fold cross validation.Στη συνέχεια αναφέρεται συνοπτικά η λειτουργία των μοντέλων που χρησιμοποιήθηκαν (Οι ορισμοί είναι σύμφωνα με την ιστοσελίδα της analytics vidhya \footnote{https://www.analyticsvidhya.com/}) ενώ στο τέλος παρατίθεται ένας πίνακας στο οποίο φαίνονται οι διάφορες μέθοδοι και οι ακρίβειες που πέτυχαν. + +\subsection{Support Vector Machine - SVM} + +Τα SVMs ανήκουν στα μοντέλα επιβλεπόμενης μάθησης, και ο σκοπός τους είναι η εύρεση ενός γραμμικού υπερεπιπέδου (σύνορο απόφασης) το οποίο θα διαχωρίσει τα δεδομένα. Σε αυτόν τον αλγόριθμο, σχεδιάζουμε κάθε δεδομένο ως ένα σημείο σε έναν ν-διάστατο χώρο (όπου ν είναι ο αριθμός των features) με την τιμή κάθε feature να είναι η τιμή της εκάστοτε συντεταγμένης. Έπειτα, κατηγοριοποιούμε βρίσκοντας ένα υπερεπίπεδο το οποίο διαχωρίζει τις 2 κλάσεις καλύτερα. + +\subsection{Decision Trees} + +Τα δένδρα απόφασης ή decision trees ανήκουν στα μοντέλα επιβλεπόμενης μάθησης και εφαρμόζονται τόσο σε κατηγορικά όσο και συνεχή δεδομένα. Σε αυτόν τον αλγόριθμο, χωρίζουμε τα δείγματα σε πιο ομοιογενείς υποομάδες βασιζόμενοι στο χαρακτηριστικό που τα διαχωρίζει καλύτερα κάθε φορά. + +\subsection{Multilayer Perceptron} + +Ένα perceptron , μπορεί να κατανοηθεί ως οτιδήποτε δέχεται πολλαπλές εισόδους και παράγει μία έξοδο. Ο τρόπος όμως με τον οποίο συσχετίζεται η είσοδος την έξοδο εμφανίζει ενδιαφέρον. Αρχικά σε κάθε είσοδο προστίθεται ένα βάρος, το οποίο σημαίνει ουσιαστικά το πόσο σημασία να δοθεί σε κάθε μία ενώ στην έξοδο ένα κατώφλι. Τέλος, προστίθεται και μία πόλωση η οποία μπορεί να θεωηθεί ως το ποσό ευελιξίας του perceptron. Για λόγους απόδοσης, χρησιμοποιούνται πολλά perceptrons σε layers, τα οποία είναι πλήρως συνδεδεμένα μεταξύ τους. + +\subsection{Naive Bayes} + +Είναι μία τεχνική ταξινόμησης η οποία βασίζεται στο θεώρημα του Bayes \footnote{https://en.wikipedia.org/wiki/Bayes\%27\_theorem}με την υπόθεση ανεξαρτησίας ανάμεσα στους προβλέπτες. Με απλά λόγια, ο ταξινομητής Naive Bayes, υποθέτει ότι η ύπαρξη ενός συγκεκριμένου feature σε μια κλάση είναι ασυσχέτιστη με την υπάρξη οποιουδήποτε άλλου. + +\subsection{Random Forest} + +O Random Forest είναι ένας αλγόριθμος τύπου Bootstrap, με δένδρα απόφασης. Αυτό που πορσπαθεί να κάνει, είναι να φτιάξει δίαφορα δένδρα με διαφορετικά δείγματα και διαφορετικές αρχικές τιμές. Επαναλαμβάνει την διαδικασία και κάνει μια τελική πρόβλεψη για κάθε παρατήρηση, η οποία είναι συνάρτηση όλων των προβλέψεων. + +\hfill + +Παρατίθεται στη συνέχει ο πίνακας στον οποίο φαίνονται οι ακρίβεις των μοντέλων για την ταξινόμηση. \begin{table}[h] -\begin{tabular}{lllll} -Method & Fold-0 & Fold-1 & Fold-2 & Fold-3 \\ -SVM & \% & \% & \% & \% \\ -Decision Tree & \% & \% & \% & \% \\ -MultiLayer Perceptron & \% & \% & \% & \% \\ -Naive Bayes & \% & \% & \% & \% \\ -Random Forest & \% & \% & \% & \% +\begin{tabular}{llllll} +{\ul \textbf{Method}} & {\ul \textbf{Fold-0}} & {\ul \textbf{Fold-1}} & {\ul \textbf{Fold-2}} & {\ul \textbf{Fold-3}} & {\ul \textbf{Fold-4}} \\ +SVM & 95.47\% & 95.05\% & 95.60\% & 95.44\% & \textbf{95.78}\% \\ +Decision Tree & 85.96\% & 86.15\% & 86.40\% & \textbf{86.51}\% & 86.20\% \\ +MultiLayer Perceptron & 90.22\% & \textbf{90.34}\% & 88.65\% & 89.83\% & 90.34\% \\ +Naive Bayes & \textbf{70.25}\% & 69.83\% & 69.59\% & 69.39\% & 68.75\% \\ +Random Forest & 95.29\% & 94.36\% & 95.42\% & 95.33\% & \textbf{95.49}\% \end{tabular} -\label{table:1} -\end{table} \ No newline at end of file +\end{table} + +Όπως φαίνεται παραπάνω, η καλύτερες μέθοδοι είναι τα Support Vector Machines και ο αλγόριθμος Random Forest με 95\% ακρίβεια, ενώ κοντά βρίσκεται και ο αλγόριθμος του Multilayer perceptron. Τέλος, βλέπουμε ότι ο χειρότερος είναι ο Naive Bayes με περίπουτ 70\% ακρίβεια.