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

Τι είναι τα CNN (Convolutional Neural Networks);

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

Ίσως σας έχει περάσει από το μυαλό πώς το Facebook (META ) ή το Instagram είναι σε θέση να αναγνωρίζει αυτόματα πρόσωπα σε μια εικόνα, ή πώς το Google (GOOGL ) σας επιτρέπει να αναζητήσετε το web για παρόμοιες φωτογραφίες απλά ανεβάζοντας μια φωτογραφία δική σας. Αυτές οι λειτουργίες είναι παραδείγματα υπολογιστικής όρασης και τροφοδοτούνται από convolutional neural networks (CNNs). Ποιος είναι όμως ακριβώς ο ορισμός των convolutional neural networks; Ας κάνουμε ένα βαθύ πλοήγιο στην αρχιτεκτονική ενός CNN και κατανοήσουμε πώς λειτουργούν.

Τι είναι τα Νευρωνικά Δίκτυα;

Πριν ξεκινήσουμε να μιλάμε για τα convolutional νευρωνικά δίκτυα, ας πάρουμε μια στιγμή για να ορίσουμε τα κανονικά νευρωνικά δίκτυα. Υπάρχει ένα άλλο άρθρο στο θέμα των νευρωνικών δικτύων διαθέσιμο, οπότε δεν θα τα πάρουμε πολύ βαθιά εδώ. Ωστόσο, για να τα ορίσουμε συνοπτικά, είναι υπολογιστικά μοντέλα που εμπνέονται από τον ανθρώπινο εγκέφαλο. Ένα νευρωνικό δίκτυο λειτουργεί λαμβάνοντας δεδομένα και χειρίζεται τα δεδομένα με την προσαρμογή “βαρών”, που είναι υποθέσεις σχετικά με τον τρόπο που τα χαρακτηριστικά εισόδου σχετίζονται μεταξύ τους και με την τάξη του αντικειμένου. Όσο το δίκτυο εκπαιδεύεται, οι τιμές των βαρών προσαρμόζονται και θα πρέπει να συγκλίνουν σε βαρές που απεικονίζουν ακριβώς τις σχέσεις μεταξύ των χαρακτηριστικών.

Αυτός είναι ο τρόπος με τον οποίο λειτουργεί ένα feed-forward νευρωνικό δίκτυο, και τα CNNs αποτελούνται από δύο μέρη: ένα feed-forward νευρωνικό δίκτυο και μια ομάδα convolutional στρωμάτων.

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

Τι είναι οι “συνελίξεις” που συμβαίνουν σε ένα convolutional νευρωνικό δίκτυο; Μια συνέλιξη είναι μια μαθηματική λειτουργία που δημιουργεί ένα σύνολο βαρών, δημιουργώντας ουσιαστικά μια αναπαράσταση τμημάτων της εικόνας. Αυτό το σύνολο βαρών ονομάζεται πυρήνας ή φίλτρο. Το φίλτρο που δημιουργείται είναι μικρότερο από την整ική εικόνα εισόδου, καλύπτοντας μόνο ένα τμήμα της εικόνας. Οι τιμές στο φίλτρο πολλαπλασιάζονται με τις τιμές στην εικόνα. Το φίλτρο μετακινείται στη συνέχεια για να σχηματίσει μια αναπαράσταση ενός νέου τμήματος της εικόνας, και η διαδικασία επαναλαμβάνεται μέχρι η ολόκληρη εικόνα να έχει καλυφθεί.

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

Η έξοδος από τα φίλτρα που μετακινούνται γύρω από την ολόκληρη εικόνα εισόδου είναι ένα δισδιάστατο πίνακα που αντιπροσωπεύει ολόκληρη την εικόνα. Αυτός ο πίνακας ονομάζεται “χάρτης χαρακτηριστικών”.

Γιατί οι Συνελίξεις είναι Απαραίτητες

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

Φίλτρα και Канάλι

Φωτογραφία: cecebur μέσω Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

Τα CNNs δεν χρησιμοποιούν μόνο ένα φίλτρο για να μάθουν προτύπωση από τις εικόνες εισόδου. Πολλά φίλτρα χρησιμοποιούνται, καθώς οι διαφορετικοί πίνακες που δημιουργούνται από τα διαφορετικά φίλτρα οδηγούν σε μια πιο σύνθετη, πλούσια αναπαράσταση της εικόνας εισόδου. Συνηθισμένοι αριθμοί φίλτρων για τα CNNs είναι 32, 64, 128 και 512. Όσο περισσότερα φίλτρα υπάρχουν, τόσο περισσότερες ευκαιρίες έχει το CNN για να εξετάσει τα δεδομένα εισόδου και να μάθει από αυτά.

Ένα CNN αναλύει τις διαφορές στις τιμές pixel για να καθορίσει τα σύνορα των αντικειμένων. Σε μια εικόνα σε κλίμακα του γκρι, το CNN θα εξετάσει μόνο τις διαφορές στο μαύρο και το λευκό, στο σκούρο και στο φωτεινό. Όταν οι εικόνες είναι έγχρωμες, το CNN δεν μόνο λαμβάνει υπόψη το σκούρο και το φωτεινό, αλλά πρέπει επίσης να λάβει υπόψη τους τρεις διαφορετικούς καναλιούς χρώματος – κόκκινο, πράσινο και μπλε. Σε αυτή την περίπτωση, τα φίλτρα έχουν 3 καναλιούς, όπως και η εικόνα. Ο αριθμός των καναλιών που έχει ένα φίλτρο ονομάζεται βάθος, και ο αριθμός των καναλιών στο φίλτρο πρέπει να ταιριάζει με τον αριθμό των καναλιών στην εικόνα.

Αρχιτεκτονική του Convolutional Νευρωνικού Δικτύου (CNN)

Ας δούμε την πλήρη αρχιτεκτονική ενός convolutional νευρωνικού δικτύου. Ένα convolutional στρώμα βρίσκεται στην αρχή κάθε convolutional δικτύου, καθώς είναι απαραίτητο για να μετατρέψει τα δεδομένα εικόνας σε αριθμητικούς πίνακες. Ωστόσο, τα convolutional στρώματα μπορούν επίσης να έρχονται μετά από άλλα convolutional στρώματα, που σημαίνει ότι αυτά τα στρώματα μπορούν να στοιβάζονται το ένα πάνω στο άλλο. Το να έχεις πολλά convolutional στρώματα σημαίνει ότι οι έξοδοι από ένα στρώμα μπορούν να υποστούν περαιτέρω συνελίξεις και να ομαδοποιηθούν σε σχετικές προτύπωση. Πρακτικά, αυτό σημαίνει ότι καθώς τα δεδομένα εικόνας προχωρούν через τα convolutional στρώματα, το δίκτυο αρχίζει να “αναγνωρίζει” πιο σύνθετα χαρακτηριστικά της εικόνας.

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

Μετά την πάροδο των δεδομένων από όλα τα convolutional στρώματα, αυτά προχωρούν στο πυκνά συνδεδεμένο μέρος του CNN. Τα πυκνά συνδεδεμένα στρώματα είναι αυτά που ένα παραδοσιακό feed-forward νευρωνικό δίκτυο μοιάζει, μια σειρά από κόμβους που διατάσσονται σε στρώματα που συνδέονται μεταξύ τους. Τα δεδομένα προχωρούν через αυτά τα πυκνά συνδεδεμένα στρώματα, τα οποία μαθαίνουν τα προτύπωση που εξήχθησαν από τα convolutional στρώματα, και με αυτόν τον τρόπο το δίκτυο γίνεται ικανό να αναγνωρίζει αντικείμενα.

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