Υλοποίηση μιας περιορισμένης μηχανής Boltzmann με την τεχνική FPGA-in-the-Loop
Implementation of a restricted Boltzmann machine using FPGA-in-the-Loop technique
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Μηχανική μάθηση ; Τεχνητά νευρωνικά δίκτυα ; Προσομοίωση ; Restricted Boltzmann Machines ; Field Programmable Gate ArraysΠερίληψη
Ένας εκ των τομέων της πληροφορικής που γνωρίζει μεγάλη άνθηση τα τελευταία χρόνια είναι αυτός της Μηχανικής Μάθησης (Machine Learning). Ο τομέας αυτός αναπτύσσεται ραγδαία και ενισχύεται με καινούργιες τεχνικές και τεχνολογίες. Με την ανάπτυξη καλύτερων αλγορίθμων ξεπερνιούνται παλιότερες δυσκολίες και πλέον καθίσταται δυνατή η επίλυση πολύπλοκων προβλημάτων που στο παρελθόν φαίνονταν αδύνατα. Ένας τέτοιος αλγόριθμος είναι αυτός των Περιορισμένων Μηχανών Boltzmann (Restricted Boltzmann Machines),τα οποία είναι ένα είδος Τεχνητού Νευρωνικού Δικτύου. Τα δίκτυα αυτά χρησιμοποιούνται σε ακόμα μεγαλύτερα νευρωνικά δίκτυα σχηματίζοντας τα λεγόμενα Δίκτυα Βαθιάς Πεποιθήσεως (Deep Belief Networks) που αποτελούν την καλύτερη τεχνική για επίλυση δύσκολων προβλημάτων Μηχανικής Μάθησης. Ο κύριος τρόπος υλοποίησης τους είναι το περιβάλλον Matlab και άλλα τέτοιου τύπου λογισμικά περιβάλλοντα. Αυτού του είδους τα δίκτυα όμως είναι απαιτητικά σε πόρους και χρειάζεται συνήθως μεγάλος χρόνος για να εκπαιδευτούν σωστά, κάτι που απαγορεύει την άμεση χρησιμοποίησή τους σε εμπορικές ή βιομηχανικές εφαρμογές. Για αυτό πλέον στο πεδίο έχουν εισέλθει και ερευνητές από το πεδίο της Ψηφιακής Σχεδίασης και Αρχιτεκτονικής Η/Υ,όπου σε συνεργασία με ερευνητές από το πεδίο των Τεχνητών Νευρωνικών Δικτύων, προσπαθούν να σχεδιάσουν υλικό που να εκτελεί τέτοιου είδους υπολογισμών προσπαθώντας να επιτύχουν καλύτερη απόδοση σε καλύτερους χρόνους. Έτσι έχουμε πλέον σχεδιάσεις σε FPGAs και GPUs που, με τους όποιους περιορισμούς, σημειώνουν αξιόλογη πρόοδο ανοίγοντας το δρόμο για επιπλέον ερευνητές που ακολουθούν.
Τα FPGAs (Field Programmable Gate Arrays) είναι ολοκληρωμένα κυκλώματα γενικής χρήσης ικανά για προγραμματισμό. Έχουν έμφυτη την έννοια της παραλληλίας και συχνά χρησιμοποιούνται ως μέσο επιτάχυνσης εφαρμογών. Κομμάτι υπολογισμών, και ειδικότερα παράλληλων, μπορεί να μεταφερθεί σε επίπεδο υλικού προσφέροντας καλύτερους χρόνους εκτέλεσης (επιτάχυνση υλικού). Έτσι έχουμε την δημιουργία εφαρμογών που μοιράζουν τους υπολογισμούς μεταξύ γενικού σκοπού επεξεργαστών (Software) και FPGA (Hardware) με σκοπό την μέγιστη απόδοση. Μια τεχνική για την επίτευξη τέτοιου είδους εφαρμογών αποτελεί και η τεχνική FPGA In the Loop. Σκοπός της παρούσης εργασίας είναι μια εναλλακτική πρόταση για την εκτέλεση λειτουργιών μιας Restricted Boltzmann Machine με χρησιμοποίηση Matlab Simulink και της τεχνικής FPGA In the Loop για επίτευξη Software - Hardware Co-Simulation. Στοχεύουμε στην δημιουργία ενός πλαισίου, με χρήση σχεδιαστικών τεχνικών, που θα καθιστά δυνατή την μεταφορά υπολογισμών σε επίπεδο υλικού, και που θα μπορεί να χρησιμοποιείται με διαφορετικές παραμέτρους ανάλογα με την εκάστοτε σχεδίαση ενός Restricted Boltzmann Machine.