Μελέτη και Αξιολόγηση της Απόδοσης Μεθόδων Συμπίεσης Βαθιών Νευρωνικών Δικτύων - Study and Evaluation of the Performance of Deep Neural Network Compression Methods (1 Άτομο)
Διπλωματική Εργασία


Επιβλέπων Ιάκωβος Βενιέρης
Συσχετιζόμενο μάθημα Δίκτυα Ευρείας Ζώνης

Περιγραφή

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

Συγκριτικά με την εκτέλεση βαθιών νευρωνικών δικτύων σε έναν απομακρυσμένο εξυπηρετητή, η τοπική εκτέλεση στην κινητή συσκευή του χρήστη δεν προσθέτει επιπρόσθετη καθυστέρηση, διασφαλίζει την ιδιωτικότητα των δεδομένων κι επίσης δεν απαιτεί σύνδεση στο διαδίκτυο. Ωστόσο, τα state-of-the-art νευρωνικά δίκτυα που πετυχαίνουν σήμερα υψηλές ακρίβειες στις διάφορες διεργασίες Βαθιάς Μάθησης είναι απαιτητικά από άποψη υπολογιστικής ισχύος και μνήμης, επομένως οι τοπικοί πόροι της κινητής συσκευής μπορεί να μην είναι πάντοτε επαρκείς.

Ένας τρόπος προσπέρασης των παραπάνω ζητημάτων είναι η συμπίεση (ή βελτιστοποίηση) νευρωνικών δικτύων, μέσω της οποίας γίνεται επεξεργασία στις τιμές των παραμέτρων ενός δικτύου με στόχο τη μείωση του μεγέθους του και την πιο γρήγορη εκτέλεσή του. Κάποιες από τις πιο γνωστές μεθόδους συμπίεσης είναι η κβαντοποίηση (quantization), το κλάδεμα (pruning) και η ομαδοποίηση (clustering). Παρόλο που οι προαναφερθείσες μέθοδοι πετυχαίνουν σε πολύ καλό βαθμό τον σκοπό τους, έρχονται με μια μικρή πτώση στην ακρίβεια των μοντέλων.

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

Απαραίτητες γνώσεις προγραμματισμού (π.χ. Python, Java).

Επιθυμητές γνώσεις: Android mobile app development, Deep Learning frameworks (TensorFlow, TFLite).