Σχεδίαση ζεύγους νευρωνικών μοντέλων για την εκτέλεση εφαρμογών βαθιάς μάθησης σε κινητές συσκευές, μέσω κατανεμημένων συστημάτων
Διπλωματική Εργασία


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

Περιγραφή

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

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

Η επιλογή κατάλληλου ζεύγους μοντέλων αποτελεί πρωταρχική τεχνική πρόκληση στη σχεδίαση κατανεμημένων συστημάτων εκτέλεσης νευρωνικών δικτύων. Το ζεύγος μοντέλων θα πρέπει να πετυχαίνει τους στόχους απόδοσης της εφαρμογής ως προς πολλαπλές μετρικές, όπως την ορθότητα/ακρίβεια και τον χρόνο απόκρισης, καθώς και να ικανοποιεί τους περιορισμούς του συστήματος, όπως η μέγιστη χρήση μνήμης των συσκευών.

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

Απαραίτητες βασικές γνώσεις: Python, Deep Learning frameworks (TensorFlow).