στέλεχος Τι είναι ένας Αυτόματος Κωδικοποιητής; - Unite.AI
Συνδεθείτε μαζί μας
Masterclass AI:

AI 101

Τι είναι ένας Αυτόματος Κωδικοποιητής;

mm
Ενημερώθηκε on

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

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

Τι είναι ένας Αυτόματος Κωδικοποιητής;

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

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

Γιατί λοιπόν θα θέλατε να εκπαιδεύσετε ένα δίκτυο ώστε να ανακατασκευάζει απλώς τα δεδομένα που του δίνονται; Ο λόγος είναι ότι το δίκτυο μαθαίνει την «ουσία», ή τα πιο σημαντικά χαρακτηριστικά των δεδομένων εισόδου. Αφού εκπαιδεύσετε το δίκτυο, μπορεί να δημιουργηθεί ένα μοντέλο που μπορεί να συνθέσει παρόμοια δεδομένα, με την προσθήκη ή την αφαίρεση ορισμένων χαρακτηριστικών-στόχων. Για παράδειγμα, θα μπορούσατε να εκπαιδεύσετε έναν αυτόματο κωδικοποιητή σε κοκκώδεις εικόνες και στη συνέχεια να χρησιμοποιήσετε το εκπαιδευμένο μοντέλο για να αφαιρέσετε τον κόκκο/θόρυβο από την εικόνα.

Αρχιτεκτονική Autoencoder

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

Φωτογραφία: Michela Massi μέσω Wikimedia Commons, (https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)

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

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

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

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

Η πιο βασική αρχιτεκτονική ενός αυτόματου κωδικοποιητή είναι μια αρχιτεκτονική τροφοδοσίας προς τα εμπρός, με δομή παρόμοια με ένα perceptron μονής στρώσης που χρησιμοποιείται σε πολυστρωματικά perceptron. Όπως ακριβώς τα κανονικά νευρωνικά δίκτυα τροφοδοσίας, ο αυτόματος κωδικοποιητής εκπαιδεύεται με τη χρήση της οπισθοδιάδοσης.

Χαρακτηριστικά ενός αυτόματου κωδικοποιητή

Υπάρχουν διάφοροι τύποι αυτόματων κωδικοποιητών, αλλά όλοι έχουν ορισμένες ιδιότητες που τους ενώνουν.

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

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

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

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

Τύποι αυτόματου κωδικοποιητή

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

Αραιός

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

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

Συμβατική

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

Συνελικτικοί

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

Αποκατάσταση

Φωτογραφία: MAL μέσω Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)

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

Μεταβλητή

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

 

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

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

Εφαρμογές Autoencoder

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

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

Όσον αφορά τη δημιουργία εικόνων, οι αυτόματες κωδικοποιητές μπορούν να χρησιμοποιηθούν για τη δημιουργία ψεύτικων ανθρώπινων εικόνων ή κινούμενων χαρακτήρων, οι οποίες έχουν εφαρμογές στο σχεδιασμό συστημάτων αναγνώρισης προσώπου ή στην αυτοματοποίηση ορισμένων πτυχών του animation.

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

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