An Automatic Differentiation Algorithm for Recursive Functions and its Implementation in TensorFlow

This item is provided by the institution :
/aggregator-openarchives/portal/institutions/uoa   

Repository :
Pergamos Digital Library   

see the original item page
in the repository's web site and access all digital files if the item*



An Automatic Differentiation Algorithm for Recursive Functions and its Implementation in TensorFlow

ΒΑΣΙΛΑΚΟΠΟΥΛΟΣ ΓΕΩΡΓΙΟΣ-ΑΛΕΞΑΝΔΡΟΣ (EL)
VASILAKOPOULOS GEORGIOS ALEXANDROS (EN)

born_digital_graduate_thesis
Πτυχιακή Εργασία (EL)
Graduate Thesis (EN)

2024


Τα τελευταία έτη, λόγω αξιοσημείωτης προόδου σε υπολογιστικές δυνατότητες, η κοινότητα της μηχανικής μάθησης πειραματίζεται με ολοένα και πιο περίπλοκους αλγορίθμους που έχουν σκοπό την αναγνώριση μοτίβων σε δεδομένα. Υπο αυτές τις συνθήκες, οι σύγχρονες βιβλιοθήκες μηχανικής μάθησης οφείλουν να παρέχουν εκφραστικότητα, προσφέροντας εργαλεία τα οποία καθιστούν εφικτή την υλοποίηση οποιασδήποτε πολύπλοκης νευρωνικής αρχιτεκτονικής. Ταυτόχρονα, προκειμένου η οποιαδήποτε δομή να είναι εκπαιδεύσιμη, η εκάστοτε βιβλιοθήκη πρέπει να υλοποιεί ορισμένους αλγορίθμους βελτιστοποίησης, οι οποίοι, κατά κανόνα, βασίζονται στον υπολογισμό παραγώγων, μέσω μίας διαδικασίας που ονομάζεται Αυτόματη Παραγώγιση. Επιπλέον, οι περισσότερες βιβλιοθήκες αξιοποιούν την παράλληλη επεξεργασία δεδομένων, με σκοπό να επιταχύνουν τις διαδικασίες εκπαίδευσης και συμπερασμού στη μηχανική μάθηση. Το TensorFlow, συγκεκριμένα, είναι μια βιβλιοθήκη η οποία λειτουργεί βάσει του υπολογιστικού μοντέλου dataflow, που είναι ένα εναλλακτικό μοντέλο, το οποίο διευκολύνει την παραλληλοποίηση υπολογισμών, με σκοπό την ταχύτερη διεκπεραίωση σε κατανεμημένα υπολογιστικά συστήματα. Παρ'όλ'αυτά, η εγγενής φύση αυτού του μοντέλου διαφέρει ριζικά απο το παραδοσιακό μοντέλο του προστακτικού προγραμματισμού. Ως εκ τούτου, η ευκολία χρήσης θυσιάζεται χάριν της απόδοσης, ενώ έχουν γίνει σημαντικές προσπάθειες κάλυψης αυτού του χάσματος, με την εισαγωγή μηχανισμών που επιχειρούν την ενσωμάτωση των δομών dataflow σε προστακτική εκτέλεση. Όμως, παρά τις διάφορες προσπάθειες βελτίωσης της εκφραστικότητας, η βιβλιοθήκη επίσημα δεν υποστηρίζει αναδρομικούς ορισμούς συναρτήσεων, εως και στην έκδοση 2.16. Η αναδρομή, γενικώς, θεωρείται μια εξαιρετικά εύελικτη προγραμματιστική τεχνική, ενω οι περισσότερες γλώσσες προγραμματισμού υψηλού επιπέδου την υποστηρίζουν. Για τον λόγο αυτό πιστεύουμε οτι το TensorFlow, μπορεί να επωφεληθεί εισάγοντας μια τόσο διαδεδομένη λειτουργικότητα στο μοντέλο της. Η παρούσα πτυχιακή έχει στόχο να παρουσιάσει ένα συστηματικό τρόπο διαχείρισης αναδρομικών ορισμών συναρτήσεων στο TensorFlow, με ενα τρόπο συμβατό αλλά και συνεπή με το υπολογιστικό μοντέλο dataflow, επι του οποίου το TensorFlow βασίζεται. Ένα μεγάλο μέρος της εργασίας αναφέρεται στο πρόβλημα υλοποίησης αλγορίθμου Αυτόματης Παραγώγισης για τέτοιες συναρτήσεις, ώστε αυτές να μπορούν να εφαρμοστούν σε πρακτικές περιστάσεις, στα πλαίσια μηχανικής μάθησης. (EL)
In recent years, due to significant advancements in computational power, the machine learning community is experimenting with increasingly complex algorithms that are designed to detect patterns in data. Under these circumstances, modern machine learning frameworks are expected to be expressive, so as to provide tools for defining arbitrarily complicated neural architectures. At the same time, in order for such models to be trainable, each underlying framework needs to implement certain optimization algorithms that rely on computing the derivatives of functions, through a process called Automatic Differentiation. What's more, the majority of popular frameworks is exploiting parallel data processing, in order to accelerate the training and inference procedures of machine learning algorithms. TensorFlow, in particular, is a framework that operates based on the dataflow computational model, which is an alternative programming paradigm that is designed to parallelize computations, so that they can run efficiently in distributed execution environments. However, this inherent design pattern differs fundamentally from traditional, imperative style programming. As a result, efficiency has come at the expense of ease of use, and the framework has attempted to bridge this gap by introducing various features that aim to adapt dataflow constructs into imperative execution. In spite of these efforts to provide expressiveness, as of version 2.16, the framework officially lacks support for recursive function definitions. Recursion is generally regarded as a powerful programming abstraction and is supported in most high level programming languages. For that reason, we believe that TensorFlow, as a machine learning framework, could benefit from supporting such a common feature that programmers are familiar with. This thesis aims to propose a systematic way of handling recursive function definitions in TensorFlow, in a manner that is compatible and consistent with the dataflow computational model, upon which the framework is based. A significant portion of this work addresses the problem of implementing Automatic Differentiation on such functions, so that they can be used in practical situations, for machine learning. (EN)

Τεχνολογία – Πληροφορική

Τεχνολογία – Πληροφορική (EL)
Technology - Computer science (EN)

English

Βιβλιοθήκη και Κέντρο Πληροφόρησης » Βιβλιοθήκη Σχολής Θετικών Επιστημών » Πληροφορική
Σχολή Θετικών Επιστημών » Τμήμα Πληροφορικής & Τηλεπικοινωνιών

https://creativecommons.org/licenses/by-nc/4.0/




*Institutions are responsible for keeping their URLs functional (digital file, item page in repository site)