Βασικές αρχές της AI

Τι είναι τα CNNs (Συνελικτικά Νευρωνικά Δίκτυα);

mm
Προσθέστε το Unite.AI στις προτιμώμενες πηγές σας στο Google

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

Ένα CNN δεν μετατρέπει μια εικόνα από μη-αριθμητική σε αριθμητική μορφή — η εικόνα ήδη παραλαμβάνεται ως τανυστής τιμών pixel. Ο σκοπός του είναι να μετασχηματίσει αυτόν τον τανυστή σε χάρτες χαρακτηριστικών που είναι χρήσιμοι για ταξινόμηση, ανίχνευση, τμηματοποίηση ή άλλη εργασία.

Βασικά σημεία

  • Μια συνέλιξη συνδυάζει τις τοπικές τιμές εισόδου με έναν εκπαιδευμένο πυρήνα για να παραγάγει έναν χάρτη χαρακτηριστικών.
  • Το βήμα (stride), η επένδυση (padding), η διάταση (dilation) και η συγκέντρωση (pooling) ελέγχουν την χωρική ανάλυση και το πεδίο λήψης.
  • Η κοινή χρήση βαρών καθιστά τα CNN πιο αποδοτικά ως προς τις παραμέτρους σε σύγκριση με ένα πλήρως συνδεδεμένο δίκτυο πάνω σε ακατέργαστα pixel.
  • Οι μετασχηματιστές όρασης προσφέρουν μια εναλλακτική, αλλά τα CNN παραμένουν ισχυρά για αποδοτικά και περιορισμένα σε δεδομένα συστήματα.
Convolutional neural network diagram showing a learned kernel sliding over an image, producing feature maps, residual blocks, global pooling, and an output head
Ένα CNN μετατρέπει τα τοπικά εκπαιδευμένα φίλτρα σε σταδιακά μεγαλύτερα πεδία λήψης και εξόδους προσαρμοσμένες στο έργο.

Πώς λειτουργεί η συνέλιξη

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

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

Βήμα, επένδυση και διάταση

  • Stride ελέγχει πόσο μακριά μετακινείται ο πυρήνας. Ένα stride μεγαλύτερο του ενός μειώνει την χωρική ανάλυση.
  • Padding προσθέτει τιμές γύρω από την είσοδο ώστε οι πληροφορίες των άκρων να μπορούν να επεξεργαστούν και το μέγεθος εξόδου να ελέγχεται.
  • Dilation απομακρύνει τα στοιχεία του πυρήνα, επεκτείνοντας το πεδίο λήψης χωρίς να αυξάνει αναλογικά τις παραμέτρους.

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

Ενεργοποίηση, κανονικοποίηση και συγκέντρωση

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

Η συγκέντρωση δεν είναι υποχρεωτική. Πολλά σύγχρονα δίκτυα χρησιμοποιούν παγκόσμια μέση συγκέντρωση (global average pooling) κοντά στην έξοδο αντί να επίπεδουν έναν μεγάλο χάρτη χαρακτηριστικών σε μια πλήρως συνδεδεμένη στοίβα. Αυτό μειώνει τις παραμέτρους και επιτρέπει στο δίκτυο να συγκεντρώνει χωρικά αποδεικτικά στοιχεία.

Μια σύγχρονη αρχιτεκτονική CNN

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

Οι κεφαλές ταξινόμησης παράγουν βαθμολογίες κλάσεων. Οι κεφαλές ανίχνευσης προβλέπουν κατηγορίες και πλαίσια. Οι αρχιτεκτονικές τμηματοποίησης προσθέτουν διαδρομές αποκωδικοποιητή που επαναφέρουν χωρικές λεπτομέρειες. Το ίδιο σκελετό CNN μπορεί να επαναχρησιμοποιηθεί μέσω του transfer learning.

Τι μαθαίνουν οι στρώσεις CNN

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

CNNs έναντι μετασχηματιστών όρασης

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

Πολλά πρακτικά συστήματα συνδυάζουν συνέλιξη και προσοχή. Η κατάλληλη αρχιτεκτονική εξαρτάται από την ακρίβεια, την καθυστέρηση, τη μνήμη, τα δεδομένα εκπαίδευσης, το υλικό και την ανάπτυξη — όχι από το ποια οικογένεια είναι η πιο πρόσφατη.

Περιορισμοί και πρακτικές παρατηρήσεις

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

Για την ανάπτυξη, μετρήστε την καθυστέρηση end-to-end, τη μνήμη, τη ροή δεδομένων (throughput) και τη συμπεριφορά υποομάδων. Η ποσοτικοποίηση και η περικοπή (pruning) μπορούν να μειώσουν το κόστος, ιδιαίτερα για edge AI, αλλά τα συμπιεσμένα μοντέλα πρέπει να επαληθευτούν ξανά.

Συνέλιξη, πεδία λήψης και σύγχρονα μπλοκ CNN

Μια συνελικτική στρώση μετακινεί εκπαιδευμένους πυρήνες πάνω σε ένα πλέγμα και μοιράζει τα βάρη μεταξύ των θέσεων. Το μέγεθος του πυρήνα, το stride, η διάταση και η επένδυση (padding) καθορίζουν το σχήμα εξόδου και το πεδίο λήψης. Οι πρώτες στρώσεις συχνά ανταποκρίνονται σε τοπικά άκρα ή υφές· οι βαθύτερες στρώσεις συνδυάζουν πληροφορίες σε μεγαλύτερες περιοχές, αν και οι εκπαιδευμένες αναπαραστάσεις δεν χρειάζεται να αντιστοιχούν άμεσα σε ανθρώπινες έννοιες. Η συγκέντρωση (pooling) ή η συνέλιξη με βήμα μειώνουν τη χωρική ανάλυση. Τα κανάλια μεταφέρουν χάρτες χαρακτηριστικών, ενώ οι ομαδικές και βάθους-διαχωριστές (depthwise separable) συνέλιξεις ανταλλάσσουν την ανάμιξη μεταξύ καναλιών για χαμηλότερη υπολογιστική απαίτηση. Οι υπολειμματικές συνδέσεις κάνουν τα πολύ βαθιά δίκτυα πιο εύκολα στην βελτιστοποίηση.

Για το ύψος και το πλάτος μιας εισόδου, η επένδυση (padding) ελέγχει τη διαχείριση των ορίων και το stride ελέγχει τη δειγματοληψία. Η επιθετική υποδειγματοληψία μπορεί να διαγράψει μικρά αντικείμενα· η μηδενική επένδυση μπορεί να δημιουργήσει τεχνικές άκρων· η διάταση επεκτείνει το περιεχόμενο χωρίς την ίδια αύξηση παραμέτρων αλλά μπορεί να δημιουργήσει πλέγματα (gridding). Η κανονικοποίηση παρτίδας (batch normalization) εξαρτάται από τα στατιστικά εκπαίδευσης, ενώ εναλλακτικές μπορεί να συμπεριφέρονται καλύτερα σε μικρά μεγέθη παρτίδας. Οι σύγχρονες αρχιτεκτονικές συνδυάζουν στενές ζώνες (bottlenecks), χαρακτηριστικά πολλαπλής κλίμακας, προσοχή ή ανεστραμμένα υπολειμματικά (inverted residuals). Επιλέξτε την αρχιτεκτονική με βάση την ανάλυση του έργου, το εύρος μνήμης, την καθυστέρηση και το στοχευόμενο υλικό, όχι μόνο την ακρίβεια ταξινόμησης εικόνας.

Εκπαίδευση, ερμηνεία και ανάπτυξη

Χρησιμοποιήστε ενισχύσεις (augmentations) που διατηρούν τις ετικέτες και αντανακλούν πραγματικές παραλλαγές, και χωρίστε ανά θέμα ή σκηνή πριν από την ενίσχυση. Η μεταφορά μάθησης (transfer learning) είναι σύνηθες: αντικαταστήστε την κεφαλή εργασίας, εκπαιδεύστε την, και στη συνέχεια απελευθερώστε προσεκτικά το σκελετό. Αξιολογήστε την απόδοση ανά κλάση, τη βαθμονόμηση, την ανθεκτικότητα σε θολότητα, συμπίεση, φωτισμό, κλίμακα, περικοπή και εχθρικές διαταραχές. Μέθοδοι οπτικοποίησης όπως οι χάρτες χαρακτηριστικών και η σημαντικότητα (saliency) μπορούν να αποκαλύψουν συντομεύσεις, αλλά είναι ευαίσθητες στη μέθοδο και τη βάση αναφοράς. Επιβεβαιώστε την υποτιθέμενη εξάρτηση με αντισυμβατικά (counterfactual) εικόνες, δοκιμές απόκρυψης ή αλλαγές στο σύνολο δεδομένων.

Τα εξαγόμενα CNN μπορεί να συγχωνεύονται, ποσοτικοποιούνται ή να μεταγλωττίζονται για GPU, NPU, πρόγραμμα περιήγησης ή μικροελεγκτή. Επαληθεύστε το αναπτυχθέν γράφημα, συμπεριλαμβανομένων της προεπεξεργασίας και της μεταεπεξεργασίας, σε ακριβείς συσκευές. Μετρήστε την καθυστέρηση end-to-end, τη μνήμη, την ενέργεια και τη θερμική συμπεριφορά· η αποκωδικοποίηση εισόδου μπορεί να κυριαρχεί σε μικρό μοντέλο. Παρακολουθήστε τα στατιστικά της κάμερας και της εικόνας, την κατανομή εξόδου και τα επιβεβαιωμένα σφάλματα. Τα υπογεγραμμένα τεχνουργήματα μοντέλου, τα προστατευμένα κανάλια ενημέρωσης και η χαλαρή αποτυχία αισθητήρα αποτελούν μέρος του σχεδιασμού παραγωγής. Τα CNN κωδικοποιούν μια χρήσιμη προκατάληψη τοπικότητας, αλλά δεν κατανοούν αυτόματα αντικείμενα ή αιτιώδεις σκηνές.

Παράδειγμα εφαρμογής: ανάπτυξη CNN σε κάμερα επιθεώρησης

Ένα CNN ταξινομεί ελαττώματα επιφάνειας από εικόνες υψηλής ανάλυσης τύπου line-scan. Οι μηχανικοί χωρίζουν τις εικόνες σε πλακίδια με επικάλυψη ώστε τα μικρά ελαττώματα να διατηρηθούν μετά τη μείωση ανάλυσης, διατηρούν τις συντεταγμένες για έλεγχο και επικυρώνουν τις ενισχύσεις έναντι πραγματικών οπτικών διακυμάνσεων. Ένα υπολειμματικό CNN και ένα ελαφρύτερο μοντέλο βάθους (depthwise) συγκρίνονται με ίσο recall. Οι δοκιμές περιλαμβάνουν ελαττώματα άκρων, λάμψη, συμπίεση, κίνηση, παρτίδες υλικού και αντικαταστάσεις κάμερας, με ανεξάρτητα παρτίδες παραγωγής που διατηρούνται για την τελική αξιολόγηση.

Η μεταγλώττιση συγχωνεύει και ποσοτικοποιεί το μοντέλο για έναν επιταχυντή edge, αλλά το αναπτυχθέν γράφημα συγκρίνεται με την αναφορά σε ευαίσθητες περιπτώσεις ελαττωμάτων. Η αποκωδικοποίηση, η τοποθέτηση πλακιδίων, η εκτέλεση (inference) και η συγχώνευση της καθυστέρησης μετρώνται end-to-end. Το σύστημα σηματοδοτεί νεκρά pixel και μεταβολή έκθεσης ξεχωριστά από ελαττώματα προϊόντος. Οι χειριστές μπορούν να επιθεωρήσουν τα αρχικά πλακίδια και να παρακάμψουν τα αποτελέσματα. Οι αλλαγές μοντέλου και κάμερας κυκλοφορούν σταδιακά, και η γραμμή διατηρεί μια ασφαλή διαδικασία χειροκίνητης επιθεώρησης όταν η οπτική αλυσίδα δεν είναι διαθέσιμη.

Απόδειξη υλοποίησης και ετοιμότητα λειτουργίας

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

Πριν από την κυκλοφορία, αναθέστε εξουσιοδότηση για την έκδοση, τις εξαιρέσεις, τις αλλαγές, την επαναφορά και τη διακοπή λειτουργίας. Χρησιμοποιήστε σταδιακή κυκλοφορία, διατηρήστε ένα ασφαλές fallback και επαληθεύστε την παρακολούθηση με σκόπιμα ενσωματωμένες αποτυχίες. Η λειτουργική τηλεμετρία θα πρέπει να αποκαλύπτει την ποιότητα εισόδου, τη συμπεριφορά εξόδου, την έκδοση του μοντέλου ή του κανόνα, την υγεία των εξαρτήσεων, τις ανθρώπινες παρακάμψεις και τα επιβεβαιωμένα αποτελέσματα χωρίς τη συλλογή περιττών ευαίσθητων δεδομένων. Ορίστε όρια ειδοποίησης και υπεύθυνο αντίδρασης, στη συνέχεια ελέγξτε τα πραγματικά αποδεικτικά στοιχεία μετά την ανάπτυξη αντί να υποθέτετε ότι η εκτός σύνδεσης απόδοση θα παραμείνει. Επαναξιολογήστε κάθε φορά που αλλάζουν οι πηγές δεδομένων, οι χρήστες, τα μοντέλα, οι προμηθευτές, οι πολιτικές, το υλικό ή οι στόχοι. Ένα συντηρημένο σύστημα χρειάζεται επίσης τεκμηριωμένη ανάκτηση, εκμάθηση περιστατικών, διαδικασίες διαγραφής και διατήρησης, και ένα σαφές σημείο στο οποίο πρέπει να απενεργοποιηθεί ή να αντικατασταθεί.

Συχνές ερωτήσεις

Χρειάζεται πάντα ένα CNN η συγκέντρωση (pooling);

Όχι. Ένα CNN μπορεί να μειώσει την ανάλυση με συνέλιξη με βήμα (stride) και μπορεί να διατηρήσει την ανάλυση για πυκνή πρόβλεψη. Η συγκέντρωση είναι ένα εργαλείο σχεδίασης και όχι μια υποχρεωτική απαίτηση.

Τα φίλτρα CNN είναι σχεδιασμένα χειροκίνητα;

Σε ένα εκπαιδευμένο CNN, οι τιμές του πυρήνα συνήθως μαθαίνονται από τα δεδομένα. Αυτό διαφέρει από τα κλασικά φίλτρα όρασης των οποίων οι συντελεστές επιλέγονται εκ των προτέρων για λειτουργίες όπως η ανίχνευση άκρων.

Κύριες αναφορές

Blogger και προγραμματιστής με ειδικότητες στα Machine Learning και Deep Learning θέματα. Ο Daniel ελπίζει να βοηθήσει τους άλλους να χρησιμοποιήσουν τη δύναμη του AI για κοινωνικό καλό.