Η όραση υπολογιστών είναι ένας από τους τομείς με τη μεγαλύτερη επιρροή της τεχνητής νοημοσύνης, που αλλάζει σχεδόν κάθε πτυχή της ζωής μας, στο ίδιο επίπεδο με τη γενετική τεχνητή νοημοσύνη. Από την ανάλυση ιατρικών εικόνων και τα αυτόνομα οχήματα έως τα συστήματα ασφαλείας, η όραση υπολογιστή με τεχνητή νοημοσύνη είναι ζωτικής σημασίας για τη βελτίωση της ασφάλειας, της αποτελεσματικότητας και της υγειονομικής περίθαλψης μέσω τεχνολογιών όπως η ανίχνευση αντικειμένων, η αναγνώριση προσώπου και η ταξινόμηση εικόνων.
Αλλά η όραση υπολογιστών δεν προκαλεί μόνο κύματα σε εξειδικευμένους τομείς. είναι επίσης μέρος των εφαρμογών για καταναλωτές που χρησιμοποιούμε καθημερινά. Βελτίωση της εστίασης της κάμερας, επεξεργασία φωτογραφιών, αναγνώριση και σάρωση κειμένου σε πραγματικό χρόνο με κάμερα smartphone, επιτρέποντας σε έξυπνες οικιακές συσκευές, όπως κάμερες ασφαλείας, να εντοπίζουν και να ειδοποιούν τους χρήστες σχετικά με την κίνηση, εκτίμηση πόζας για εφαρμογές παρακολούθησης φυσικής κατάστασης, αναγνώριση θερμίδων και τροφής για εφαρμογές παρακολούθησης δίαιτας, αναγνώριση προσώπου για ξεκλείδωμα τηλεφώνων και ανίχνευση και ταξινόμηση προσώπου για την οργάνωση φωτογραφιών ανά άτομο σε άλμπουμ. Αυτές οι εφαρμογές έχουν γίνει αναπόσπαστο μέρος της καθημερινής εμπειρίας εκατομμυρίων ανθρώπων.
Πηγή: Real Computer Vision από τον Boris Denisenko on Μέσον
Οι περισσότεροι μηχανικοί μηχανικής εκμάθησης δεν κατασκευάζουν τα μοντέλα τους από την αρχή για να ζωντανέψουν αυτά τα χαρακτηριστικά. Αντίθετα, βασίζονται σε υπάρχοντα μοντέλα ανοιχτού κώδικα. Αν και αυτή είναι η πιο εφικτή προσέγγιση, καθώς η κατασκευή ενός μοντέλου από το μηδέν είναι απαγορευτικά δαπανηρή, υπάρχει ακόμη πολλή δουλειά που πρέπει να γίνει για να μπορέσει να χρησιμοποιηθεί το μοντέλο σε μια εφαρμογή.
Πρώτον, το μοντέλο ανοιχτού κώδικα μπορεί να λύσει ένα παρόμοιο σενάριο αλλά όχι ακριβώς αυτό που χρειάζεται ένας μηχανικός. Για παράδειγμα, ένας μηχανικός ML μπορεί να χρειάζεται μια εφαρμογή που συγκρίνει διαφορετικά ποτά, αλλά το διαθέσιμο μοντέλο έχει σχεδιαστεί για να συγκρίνει τρόφιμα. Αν και έχει καλή απόδοση με τα τρόφιμα, μπορεί να δυσκολεύεται όταν εφαρμόζεται σε ποτά.
Δεύτερον, οι πραγματικές συνθήκες που πρέπει να λειτουργούν αυτά τα μοντέλα συχνά διαφέρουν σημαντικά από τα περιβάλλοντα για τα οποία σχεδιάστηκαν αρχικά. Για παράδειγμα, ένα μοντέλο μπορεί να έχει εκατοντάδες εκατομμύρια παραμέτρους, καθιστώντας το πολύ μεγάλο και υπολογιστικά εντατικό για να εκτελεστεί, ας πούμε, σε ένα smartphone. Η προσπάθεια εκτέλεσης ενός τέτοιου μοντέλου σε μια συσκευή με περιορισμένους υπολογιστικούς πόρους οδηγεί σε αργή απόδοση, υπερβολική εξάντληση της μπαταρίας ή αδυναμία λειτουργίας.
Προσαρμογή σε σενάρια και συνθήκες του πραγματικού κόσμου
Αυτό αργά ή γρήγορα οδηγεί τους περισσότερους μηχανικούς που εφαρμόζουν μηχανική εκμάθηση για όραση υπολογιστή σε εφαρμογές καταναλωτών να αντιμετωπίσουν την ανάγκη:
- Προσαρμογή ενός υπάρχοντος μοντέλου ανοιχτού κώδικα για να ταιριάζει στο συγκεκριμένο σενάριο.
- Βελτιστοποίηση του μοντέλου ώστε να λειτουργεί σε περιορισμένες χωρητικότητες.
Η προσαρμογή ενός μοντέλου δεν είναι κάτι που μπορείτε απλά να ξεπεράσετε. Ξεκινάτε με ένα προεκπαιδευμένο μοντέλο και το προσαρμόζετε στη συγκεκριμένη εργασία σας. Αυτό περιλαμβάνει την προσαρμογή πολλών παραμέτρων – τον αριθμό των επιπέδων, τον αριθμό των νευρώνων σε κάθε επίπεδο, τον ρυθμό εκμάθησης, το μέγεθος παρτίδας και πολλά άλλα. Ο τεράστιος αριθμός πιθανών συνδυασμών μπορεί να είναι συντριπτικός, με δυνητικά εκατομμύρια διαφορετικές διαμορφώσεις προς δοκιμή. Εδώ μπαίνει στο παιχνίδι η βελτιστοποίηση υπερπαραμέτρων (HPO). Το HPO βοηθά στον εξορθολογισμό αυτής της διαδικασίας, επιτρέποντάς σας να βρείτε την καλύτερη διαμόρφωση γρηγορότερα από ό,τι αν προσαρμόζατε με μη αυτόματο τρόπο τις παραμέτρους ξεχωριστά.
Αφού προσαρμόσετε το μοντέλο στο σενάριο σας, η επόμενη πρόκληση είναι να το κάνετε να εκτελεστεί σε μια συσκευή με περιορισμένους πόρους. Για παράδειγμα, ίσως χρειαστεί να αναπτύξετε το μοντέλο σε ένα smartphone με μόνο 6 GB μνήμης RAM. Σε τέτοιες περιπτώσεις, η συμπίεση του μοντέλου καθίσταται απαραίτητη για τη μείωση του μεγέθους του μοντέλου και τη διαχείριση του για συσκευές με περιορισμένη μνήμη και ισχύ επεξεργασίας.
Τεχνικές βελτιστοποίησης υπερπαραμέτρων (HPO).
Η βελτιστοποίηση υπερπαραμέτρων περιλαμβάνει την εύρεση του καλύτερου συνόλου παραμέτρων για το νευρωνικό σας δίκτυο για την ελαχιστοποίηση των σφαλμάτων σε μια συγκεκριμένη εργασία. Ας υποθέσουμε ότι εκπαιδεύετε ένα μοντέλο να υπολογίζει την ηλικία ενός ατόμου από μια φωτογραφία. Το σφάλμα σε αυτό το πλαίσιο αναφέρεται στην απόκλιση της εκτίμησης ηλικίας του μοντέλου από την πραγματική ηλικία του ατόμου — μετρούμενη, ας πούμε, με τον αριθμό των ετών που είναι εκτός λειτουργίας.
Αναζήτηση πλέγματος
Η αναζήτηση πλέγματος είναι μια μέθοδος ωμής δύναμης που βρίσκει τον βέλτιστο συνδυασμό δοκιμάζοντας κάθε δυνατό σύνολο παραμέτρων. Ξεκινάτε με ένα υπάρχον μοντέλο και το προσαρμόζετε στην εργασία σας. Στη συνέχεια, τροποποιείτε συστηματικά παραμέτρους – όπως τον αριθμό των νευρώνων ή των επιπέδων – για να δείτε πώς αυτές οι αλλαγές επηρεάζουν το σφάλμα του μοντέλου. Η αναζήτηση πλέγματος περιλαμβάνει τη δοκιμή κάθε συνδυασμού αυτών των παραμέτρων για να βρεθεί αυτή που παράγει το χαμηλότερο σφάλμα. Η πρόκληση είναι ότι υπάρχουν πολλές παράμετροι που θα μπορούσατε να προσαρμόσετε, η καθεμία με ένα ευρύ φάσμα πιθανών τιμών.
Αν και αυτή η μέθοδος εγγυάται την εύρεση της καλύτερης επιλογής, είναι απίστευτα χρονοβόρα και συχνά μη πρακτική.
Τυχαία αναζήτηση
Μια άλλη προσέγγιση είναι η τυχαία αναζήτηση, όπου λαμβάνετε τυχαία δείγματα ενός μέρους πιθανών συνδυασμών αντί να δοκιμάζετε κάθε συνδυασμό. Αυτή η μέθοδος περιλαμβάνει την επιλογή τυχαίων τιμών για κάθε παράμετρο εντός ενός καθορισμένου εύρους και τη δοκιμή αυτών των συνδυασμών. Αν και είναι ταχύτερη από την αναζήτηση πλέγματος, δεν εγγυάται το καλύτερο αποτέλεσμα. Ωστόσο, είναι πιθανό να βρει μια καλή, αν όχι βέλτιστη, λύση. Είναι ένας συμβιβασμός μεταξύ ταχύτητας και ακρίβειας.
Για παράδειγμα, εάν υπάρχουν 1.000 πιθανοί συνδυασμοί παραμέτρων, θα μπορούσατε να κάνετε τυχαία δειγματοληψία και να δοκιμάσετε 100, κάτι που θα έπαιρνε μόνο το ένα δέκατο του χρόνου σε σύγκριση με τη δοκιμή όλων των συνδυασμών.
HPO με χρήση αλγορίθμων βελτιστοποίησης
Οι μέθοδοι συντονισμού υπερπαραμέτρων που βασίζονται στη βελτιστοποίηση χρησιμοποιούν διαφορετικές μαθηματικές προσεγγίσεις για να βρουν αποτελεσματικά τις καλύτερες ρυθμίσεις παραμέτρων. Για παράδειγμα, η Bayesian βελτιστοποίηση χρησιμοποιεί πιθανολογικά μοντέλα για να καθοδηγήσει την αναζήτηση, ενώ το TetraOpt – ένας αλγόριθμος που αναπτύχθηκε από τον συγγραφέα και την ομάδα – χρησιμοποιεί βελτιστοποίηση τανυστικής αμαξοστοιχίας για την καλύτερη πλοήγηση σε χώρους υψηλών διαστάσεων. Αυτές οι μέθοδοι είναι πιο αποτελεσματικές από την πλέξη ή την τυχαία αναζήτηση, επειδή στοχεύουν στην ελαχιστοποίηση του αριθμού των αξιολογήσεων που απαιτούνται για την εύρεση βέλτιστων υπερπαραμέτρων, εστιάζοντας στους πιο υποσχόμενους συνδυασμούς χωρίς να δοκιμάζουν κάθε πιθανότητα.
Τέτοιοι αλγόριθμοι βελτιστοποίησης βοηθούν στην εύρεση καλύτερων λύσεων πιο γρήγορα, κάτι που είναι ιδιαίτερα πολύτιμο όταν οι αξιολογήσεις μοντέλων είναι υπολογιστικά ακριβές. Στόχος τους είναι να προσφέρουν τα καλύτερα αποτελέσματα με τις λιγότερες δοκιμές.
Μοντέλο ML Τεχνικές συμπίεσης
Μόλις ένα μοντέλο λειτουργήσει θεωρητικά, η λειτουργία του σε πραγματικές συνθήκες είναι η επόμενη πρόκληση. Πάρτε, για παράδειγμα, το ResNet για την αναγνώριση προσώπου, το YOLO για τη διαχείριση της κυκλοφορίας και τα αθλητικά αναλυτικά στοιχεία ή το VGG για τη μεταφορά στυλ και την εποπτεία περιεχομένου. Αν και είναι ισχυρά, αυτά τα μοντέλα είναι συχνά πολύ μεγάλα για συσκευές με περιορισμένους πόρους, όπως smartphone ή έξυπνες κάμερες.
Οι μηχανικοί ML στρέφονται σε ένα σύνολο δοκιμασμένων τεχνικών συμπίεσης για να κάνουν τα μοντέλα πιο αποτελεσματικά για τέτοια περιβάλλοντα. Αυτές οι μέθοδοι — Quantization, Pruning, Matrix Decomposition και Knowledge Distillation — είναι απαραίτητες για τη μείωση του μεγέθους και των υπολογιστικών απαιτήσεων των μοντέλων AI, διατηρώντας παράλληλα την απόδοσή τους.
Κβαντισμός
Πηγή: Master the Art of Quantization από τον Jan Marcel Kezmann on Μέσον
Η κβαντοποίηση είναι μια από τις πιο δημοφιλείς μεθόδους για τη συμπίεση των νευρωνικών δικτύων, κυρίως επειδή απαιτεί ελάχιστους πρόσθετους υπολογισμούς σε σύγκριση με άλλες τεχνικές.
Η βασική ιδέα είναι απλή: ένα νευρωνικό δίκτυο περιλαμβάνει πολυάριθμους πίνακες γεμάτους με αριθμούς. Αυτοί οι αριθμοί μπορούν να αποθηκευτούν σε διαφορετικές μορφές σε έναν υπολογιστή, όπως κινητή υποδιαστολή (π.χ. 32.15) ή ακέραιος (π.χ. 4). Διαφορετικές μορφές καταλαμβάνουν διαφορετικές ποσότητες μνήμης. Για παράδειγμα, ένας αριθμός στη μορφή float32 (π.χ. 3.14) καταλαμβάνει 32 bit μνήμης, ενώ ένας αριθμός στη μορφή int8 (π.χ. 42) παίρνει μόνο 8 bit.
Εάν οι αριθμοί ενός μοντέλου είναι αρχικά αποθηκευμένοι σε μορφή float32, μπορούν να μετατραπούν σε μορφή int8. Αυτή η αλλαγή μειώνει σημαντικά το αποτύπωμα μνήμης του μοντέλου. Για παράδειγμα, ένα μοντέλο που αρχικά καταλάμβανε 100MB θα μπορούσε να συμπιεστεί σε μόλις 25MB μετά την κβαντοποίηση.
Κλάδεμα
Όπως αναφέρθηκε προηγουμένως, ένα νευρωνικό δίκτυο αποτελείται από ένα σύνολο πινάκων γεμάτων με αριθμούς, γνωστά ως «βαρίδια». Το κλάδεμα είναι η διαδικασία αφαίρεσης των «ασήμαντων» βαρών από αυτές τις μήτρες. Με την εξάλειψη αυτών των περιττών βαρών, η συμπεριφορά του μοντέλου παραμένει σε μεγάλο βαθμό ανεπηρέαστη, αλλά η μνήμη και οι υπολογιστικές απαιτήσεις μειώνονται σημαντικά.
Για παράδειγμα, φανταστείτε μια από τις μήτρες του νευρωνικού δικτύου να μοιάζει με αυτό:
Μετά το κλάδεμα, μπορεί να μοιάζει κάπως έτσι:
Οι παύλες (“-“) υποδεικνύουν πού αφαιρέθηκαν τα στοιχεία κατά το κλάδεμα. Αυτό το απλοποιημένο μοντέλο απαιτεί λιγότερους υπολογιστικούς πόρους για να λειτουργήσει.
Αποσύνθεση μήτρας
Η αποσύνθεση μήτρας είναι μια άλλη αποτελεσματική μέθοδος συμπίεσης που περιλαμβάνει τη διάσπαση (ή την «αποσύνθεση») των μεγάλων πινάκων σε ένα νευρωνικό δίκτυο σε αρκετούς μικρότερους, απλούστερους πίνακες.
Για παράδειγμα, ας υποθέσουμε ότι ένας από τους πίνακες σε ένα νευρωνικό δίκτυο μοιάζει με αυτό:
Η αποσύνθεση μήτρας μας επιτρέπει να αντικαταστήσουμε αυτόν τον μεγάλο πίνακα με δύο μικρότερους.
Όταν πολλαπλασιάζονται μαζί, αυτοί οι μικρότεροι πίνακες δίνουν το ίδιο αποτέλεσμα με τον αρχικό, διασφαλίζοντας ότι η συμπεριφορά του μοντέλου παραμένει συνεπής.
Αυτό σημαίνει ότι μπορούμε να αντικαταστήσουμε τον πίνακα από την πρώτη εικόνα με τους πίνακες από τη δεύτερη.
Ο αρχικός πίνακας περιέχει 9 παραμέτρους, αλλά μετά την αποσύνθεση, οι πίνακες μαζί κρατούν μόνο 6, με αποτέλεσμα μια μείωση ~33%. Ένα από τα βασικά πλεονεκτήματα αυτής της μεθόδου είναι η δυνατότητά της να συμπιέζει σε μεγάλο βαθμό τα μοντέλα τεχνητής νοημοσύνης — αρκετές φορές σε ορισμένες περιπτώσεις.
Είναι σημαντικό να σημειωθεί ότι η αποσύνθεση μήτρας δεν είναι πάντα απόλυτα ακριβής. Μερικές φορές, ένα μικρό σφάλμα προσέγγισης εισάγεται κατά τη διάρκεια της διαδικασίας, αλλά τα κέρδη απόδοσης συχνά υπερτερούν αυτού του δευτερεύοντος μειονέκτημα.
Απόσταξη Γνώσης
Η Απόσταξη Γνώσης είναι μια τεχνική για την κατασκευή ενός μικρότερου μοντέλου, γνωστό ως «μοντέλο μαθητή», με τη μεταφορά γνώσης από ένα μεγαλύτερο, πιο σύνθετο μοντέλο, που ονομάζεται «μοντέλο δασκάλου». Η βασική ιδέα είναι να εκπαιδεύσετε το μικρότερο μοντέλο παράλληλα με το μεγαλύτερο, έτσι ώστε το μοντέλο μαθητή να μάθει να μιμείται τη συμπεριφορά του μοντέλου δασκάλου.
Να πώς λειτουργεί: Περνάτε τα ίδια δεδομένα μέσα από το μεγάλο νευρωνικό δίκτυο (τον δάσκαλο) και το συμπιεσμένο (τον μαθητή). Και τα δύο μοντέλα παράγουν αποτελέσματα και το μοντέλο μαθητή εκπαιδεύεται να παράγει αποτελέσματα όσο το δυνατόν παρόμοια με αυτά του δασκάλου. Με αυτόν τον τρόπο, το συμπιεσμένο μοντέλο μαθαίνει να λειτουργεί παρόμοια με το μεγαλύτερο μοντέλο αλλά με λιγότερες παραμέτρους.
Η απόσταξη μπορεί εύκολα να συνδυαστεί με κβαντοποίηση, κλάδεμα και αποσύνθεση μήτρας, όπου το μοντέλο του δασκάλου είναι η αρχική έκδοση και ο μαθητής είναι η συμπιεσμένη. Αυτοί οι συνδυασμοί βοηθούν στη βελτίωση της ακρίβειας του συμπιεσμένου μοντέλου.
Στην πράξη, οι μηχανικοί συχνά συνδυάζουν αυτές τις τεχνικές για να μεγιστοποιήσουν την απόδοση των μοντέλων τους όταν τα αναπτύσσουν σε σενάρια πραγματικού κόσμου.
Το AI εξελίσσεται σε δύο παράλληλες διαδρομές. Από τη μία πλευρά, τροφοδοτεί εντυπωσιακές εξελίξεις σε τομείς όπως η υγειονομική περίθαλψη, ωθώντας τα όρια αυτού που πιστεύαμε ότι ήταν δυνατό. Από την άλλη, η προσαρμογή της τεχνητής νοημοσύνης στις πραγματικές συνθήκες είναι εξίσου σημαντική, φέρνοντας την προηγμένη τεχνολογία στην καθημερινή ζωή εκατομμυρίων ανθρώπων, συχνά απρόσκοπτα και απαρατήρητα. Αυτή η δυαδικότητα αντικατοπτρίζει τον αντίκτυπο της επανάστασης των smartphone, η οποία μετέτρεψε τον υπολογιστή από κάτι ενοχλητικό και δαπανηρό σε τεχνολογία προσβάσιμη και πρακτική για όλους.
Οι τεχνικές βελτιστοποίησης που καλύπτονται σε αυτό το άρθρο είναι αυτές που χρησιμοποιούν οι μηχανικοί για να κάνουν την τεχνητή νοημοσύνη απτό μέρος της καθημερινής ζωής. Αυτή η έρευνα βρίσκεται σε εξέλιξη, με μεγάλες εταιρείες τεχνολογίας (όπως η Meta, η Tesla ή η Huawei) και τα ερευνητικά εργαστήρια να επενδύουν σημαντικούς πόρους για την εξεύρεση νέων τρόπων βελτιστοποίησης μοντέλων. Ωστόσο, οι καλά εφαρμοσμένες τεχνικές HPO και μέθοδοι συμπίεσης ήδη βοηθούν τους μηχανικούς παγκοσμίως να φέρουν τα πιο πρόσφατα μοντέλα σε καθημερινά σενάρια και συσκευές, δημιουργώντας εντυπωσιακά προϊόντα για εκατομμύρια ανθρώπους σήμερα και ωθώντας τη βιομηχανία προς τα εμπρός μέσω των δημοσιευμένων και ανοιχτών ευρημάτων τους.
VIA: DataConomy.com