Βασικές αρχές της AI
Τι είναι ένα Autoencoder;
Αν έχετε διαβάσει για τεχνικές μη επιβλεπόμενης μάθησης στο παρελθόν, μπορεί να έχετε συναντήσει τον όρο “αυτοκωδικοποιητής”. Οι αυτοκωδικοποιητές είναι ένας από τους κύριους τρόπους με τους οποίους αναπτύσσονται μοντέλα μη επιβλεπόμενης μάθησης. Ποιος είναι, όμως, genau ένας αυτοκωδικοποιητής;
Σύντομα, οι αυτοκωδικοποιητές λειτουργούν λαμβάνοντας δεδομένα, συμπιέζοντας και κωδικοποιώντας τα δεδομένα και στη συνέχεια ανακατασκευάζοντας τα δεδομένα από την κωδικοποιημένη αναπαράσταση. Το μοντέλο εκπαιδεύεται μέχρι να ελαχιστοποιηθεί η απώλεια και τα δεδομένα να αναπαραχθούν όσο το δυνατόν πιο ακριβώς. Μέσω αυτής της διαδικασίας, ένας αυτοκωδικοποιητής μπορεί να μάθει τις σημαντικές λειτουργίες των δεδομένων. Αν και αυτή είναι μια γρήγορη ορισμός ενός αυτοκωδικοποιητή, θα ήταν επωφελές να δούμε πιο κοντά τους αυτοκωδικοποιητές και να κατανοήσουμε καλύτερα πώς λειτουργούν. Αυτό το άρθρο θα επιχειρήσει να απομυστήσει τους αυτοκωδικοποιητές, εξηγώντας την αρχιτεκτονική των αυτοκωδικοποιητών και τις εφαρμογές τους.
Τι είναι ένας Αυτοκωδικοποιητής;
Αυτοκωδικοποιητές είναι νευρωνικά δίκτυα. Τα νευρωνικά δίκτυα αποτελούνται από πολλαπλά στρώματα, και το οριστικό χαρακτηριστικό ενός αυτοκωδικοποιητή είναι ότι τα στρώματα εισόδου περιέχουν ακριβώς τόσο πληροφορίες όσο και το στρώμα εξόδου. Ο λόγος που το στρώμα εισόδου και το στρώμα εξόδου έχει ακριβώς τον ίδιο αριθμό μονάδων είναι ότι ένας αυτοκωδικοποιητής στοχεύει να αναπαράγει τα δεδομένα εισόδου. Εξοδεύει ένα αντίγραφο των δεδομένων μετά την ανάλυση και ανακατασκευή τους με μη επιβλεπόμενο τρόπο.
Τα δεδομένα που περνούν από έναν αυτοκωδικοποιητή δεν είναι απλώς χαρτογραφημένα απευθείας από την είσοδο στην έξοδο, που σημαίνει ότι το δίκτυο δεν απλώς αντιγράφει τα δεδομένα εισόδου. Υπάρχουν τρία συστατικά σε έναν αυτοκωδικοποιητή: ένα τμήμα κωδικοποίησης (εισόδου) που συμπιέζει τα δεδομένα, ένα συστατικό που χειρίζεται τα συμπιεσμένα δεδομένα (ή στρόφιγγα) και ένα τμήμα αποκωδικοποίησης (εξόδου). Όταν τα δεδομένα εισάγονται σε έναν αυτοκωδικοποιητή, κωδικοποιούνται και στη συνέχεια συμπιέζονται σε μικρότερο μέγεθος. Το δίκτυο εκπαιδεύεται στη συνέχεια στα κωδικοποιημένα/συμπιεσμένα δεδομένα και εξοδεύει μια αναπαράσταση των δεδομένων.
Γιατί θα θέλατε να εκπαιδεύσετε ένα δίκτυο να αναπαράγει απλώς τα δεδομένα που του δίνονται; Ο λόγος είναι ότι το δίκτυο μαθαίνει την “ουσιαστική”, ή τις πιο σημαντικές λειτουργίες των δεδομένων εισόδου. Μετά την εκπαίδευση του δικτύου, μπορεί να δημιουργηθεί ένα μοντέλο που μπορεί να συνθέσει παρόμοια δεδομένα, με την προσθήκη ή αφαίρεση ορισμένων στόχων λειτουργιών. Για παράδειγμα, θα μπορούσατε να εκπαιδεύσετε έναν αυτοκωδικοποιητή σε grainy εικόνες και στη συνέχεια να χρησιμοποιήσετε το εκπαιδευμένο μοντέλο για να αφαιρέσετε το grain/θόρυβο από την εικόνα.
Αρχιτεκτονική Αυτοκωδικοποιητή
Ας δούμε την αρχιτεκτονική ενός αυτοκωδικοποιητή. Θα συζητήσουμε την κύρια αρχιτεκτονική ενός αυτοκωδικοποιητή εδώ. Υπάρχουν παραλλαγές σε αυτήν την γενική αρχιτεκτονική που θα συζητήσουμε στην ενότητα παρακάτω.

Φωτογραφία: Michela Massi μέσω Wikimedia Commons,(https://commons.wikimedia.org/wiki/File:Autoencoder_schema.png)
Όπως đã αναφερθεί προηγουμένως, ένας αυτοκωδικοποιητής μπορεί ουσιαστικά να χωριστεί σε τρία διαφορετικά συστατικά: τον κωδικοποιητή, μια στρόφιγγα και τον αποκωδικοποιητή.
Το τμήμα κωδικοποίησης του αυτοκωδικοποιητή είναι συνήθως ένα feedforward, πυκνά συνδεδεμένο δίκτυο. Ο σκοπός των στρωμάτων κωδικοποίησης είναι να πάρουν τα δεδομένα εισόδου και να τα συμπιέσουν σε μια.latent space αναπαράσταση, δημιουργώντας μια νέα αναπαράσταση των δεδομένων που έχει μειωμένη διαστατικότητα.
Τα στρώματα κώδικα, ή η στρόφιγγα, ασχολούνται με την συμπιεσμένη αναπαράσταση των δεδομένων. Η στρόφιγγα κώδικα σχεδιάζεται προσεκτικά για να καθορίσει τις πιο σχετικές μερών των παρατηρημένων δεδομένων, ή να το πούμε με άλλον τρόπο, τις λειτουργίες των δεδομένων που είναι πιο σημαντικές για την αναπαράσταση των δεδομένων. Ο στόχος εδώ είναι να καθορίσουμε ποια μέρη των δεδομένων πρέπει να διατηρηθούν και ποια μπορούν να απορριφθούν. Η στρόφιγγα κώδικα πρέπει να ισορροπήσει δύο διαφορετικές σκέψεις: το μέγεθος της αναπαράστασης (πόσο συμπιεσμένη είναι η αναπαράσταση) και τη σχετικότητα της μεταβλητής/λειτουργίας. Η στρόφιγγα thực hiện element-wise ενεργοποίηση στα βάρη και τις προκαταλήψεις του δικτύου. Η στρόφιγγα στρώμα ονομάζεται επίσης μερικές φορές.latent αναπαράσταση ή.latent μεταβλητές.
Το στρώμα αποκωδικοποίησης είναι υπεύθυνο για την ανάκτηση των συμπιεσμένων δεδομένων και τη μετατροπή τους πίσω σε μια αναπαράσταση με τις ίδιες διαστάσεις όπως τα αρχικά, αμετάβλητα δεδομένα. Η μετατροπή γίνεται με την κωδικοποιημένη αναπαράσταση που δημιουργήθηκε από τον κωδικοποιητή.
Η πιο βασική αρχιτεκτονική ενός αυτοκωδικοποιητή είναι μια feed-forward αρχιτεκτονική, με μια δομή πολύ παρόμοια με ένα μονό στρώμα perceptron που χρησιμοποιείται σε multilayer perceptrons. Όπως και τα κανονικά feed-forward νευρωνικά δίκτυα, ο αυτοκωδικοποιητής εκπαιδεύεται μέσω της χρήσης της.backpropagation.
Ιδιότητες ενός Αυτοκωδικοποιητή
Υπάρχουν διάφοροι τύποι αυτοκωδικοποιητών, αλλά όλοι έχουν ορισμένες ιδιότητες που τους ενώνουν.
Οι αυτοκωδικοποιητές μαθαίνουν αυτόματα. Δεν απαιτούν ετικέτες, και αν δοθούν αρκετά δεδομένα, είναι εύκολο να πάρει ένας αυτοκωδικοποιητής υψηλή απόδοση σε ένα συγκεκριμένο είδος δεδομένων εισόδου.
Οι αυτοκωδικοποιητές είναι δεδομένα-ειδικοί. Αυτό σημαίνει ότι μπορούν μόνο να συμπιέσουν δεδομένα που είναι πολύ παρόμοια με δεδομένα που ο αυτοκωδικοποιητής έχει ήδη εκπαιδευτεί. Οι αυτοκωδικοποιητές είναι επίσης απώλειες, που σημαίνει ότι οι εξοδοί του μοντέλου θα είναι υποβαθμισμένες σε σύγκριση με τα δεδομένα εισόδου.
Όταν σχεδιάζεται ένας αυτοκωδικοποιητής, οι μηχανικοί μηχανικής μάθησης πρέπει να προσεχθούν σε τέσσερις διαφορετικές υπερπαράμετρους μοντέλου: μέγεθος κώδικα, αριθμός στρωμάτων, κόμβοι ανά στρώμα και συνάρτηση απώλειας.
Το μέγεθος κώδικα quyết định πόσοι κόμβοι αρχίζουν το μεσαίο μέρος του δικτύου, και λιγότεροι κόμβοι συμπιέζουν τα δεδομένα περισσότερο. Σε einen βαθύ αυτοκωδικοποιητή, ενώ ο αριθμός των στρωμάτων μπορεί να είναι οποιοσδήποτε αριθμός που ο μηχανικός θεωρεί κατάλληλο, ο αριθμός των κόμβων σε ένα στρώμα πρέπει να μειώνεται καθώς ο κωδικοποιητής συνεχίζει. Αντίθετα, το αντίθετο ισχύει στον αποκωδικοποιητή, που σημαίνει ότι ο αριθμός των κόμβων ανά στρώμα πρέπει να αυξάνεται καθώς τα στρώματα του αποκωδικοποιητή πλησιάζουν το τελικό στρώμα. Τέλος, η συνάρτηση απώλειας ενός αυτοκωδικοποιητή είναι συνήθως είτε δυαδική διασταύρωση entropia ή μέση τετραγωνική σφάλμα. Η δυαδική διασταύρωση entropia είναι κατάλληλη για περιπτώσεις όπου οι τιμές εισόδου των δεδομένων είναι σε einen 0 – 1 εύρος.
Τύποι Αυτοκωδικοποιητών
Όπως αναφέρθηκε παραπάνω, υπάρχουν παραλλαγές στην κλασική αρχιτεκτονική του αυτοκωδικοποιητή. Ας εξετάσουμε τις διαφορετικές αρχιτεκτονικές των αυτοκωδικοποιητών.
Σπάνιος

Φωτογραφία: Michela Massi μέσω Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Autoencoder_sparso.png)
Ενώ οι αυτοκωδικοποιητές έχουν συνήθως μια στρόφιγγα που συμπιέζει τα δεδομένα μέσω μίας μείωσης των κόμβων, σπάνοι αυτοκωδικοποιητές είναι μια εναλλακτική λύση σε αυτήν την τυπική λειτουργική μορφή. Σε ένα σπανιο δίκτυο, τα κρυφά στρώματα διατηρούν το ίδιο μέγεθος με τα στρώματα κωδικοποίησης και αποκωδικοποίησης. Αντίθετα, οι ενεργοποιήσεις μέσα σε ένα δεδομένο στρώμα τιμωρούνται, ρυθμίζοντας το έτσι ώστε η συνάρτηση απώλειας να καταγράφει καλύτερα τις στατιστικές λειτουργίες των δεδομένων εισόδου. Για να το πούμε με άλλον τρόπο, ενώ τα κρυφά στρώματα ενός σπάνιου αυτοκωδικοποιητή έχουν περισσότερες μονάδες από έναν παραδοσιακό αυτοκωδικοποιητή, μόνο ένα certo ποσοστό από αυτές είναι ενεργές σε οποιοδήποτε δεδομένο χρόνο. Οι πιο σημαντικές ενεργοποιήσεις διατηρούνται και οι άλλες αγνοούνται, και αυτή η περιορισμός βοηθά το δίκτυο να καθορίσει μόνο τις πιο σημαντικές λειτουργίες των δεδομένων εισόδου.
Συμβατικός
Συμβατικοί αυτοκωδικοποιητές σχεδιάζονται για να είναι ανθεκτικοί σε μικρές παραλλαγές στα δεδομένα, διατηρώντας μια σταθερή αναπαράσταση των δεδομένων. Αυτό επιτυγχάνεται εφαρμόζοντας μια ποινή στη συνάρτηση απώλειας. Αυτή η τεχνική κανονικοποίησης βασίζεται στο Frobenius νόρμα του Jacobian πίνακα για τις ενεργοποιήσεις του κωδικοποιητή εισόδου. Η επίδραση αυτής της τεχνικής κανονικοποίησης είναι ότι το μοντέλο αναγκάζεται να κατασκευάσει μια κωδικοποίηση όπου παρόμοια εισαγωγικά θα έχουν παρόμοιες κωδικοποιήσεις.
Συμβολικός
Συμβολικοί αυτοκωδικοποιητές κωδικοποιούν τα δεδομένα εισόδου χωρίζοντάς τα σε υποενότητες και στη συνέχεια μετατρέποντάς τες σε απλές σήματα που προστίθενται για να δημιουργήσουν μια νέα αναπαράσταση των δεδομένων. Παρόμοια με τα convolutional νευρωνικά δίκτυα, ένας συμβολικός αυτοκωδικοποιητής ειδικεύεται στην μάθηση των δεδομένων εικόνας, και χρησιμοποιεί ένα φίλτρο που μετακινείται σε όλη την εικόνα ενότητα προς ενότητα. Οι κωδικοποιήσεις που παράγονται από το στρώμα κωδικοποίησης μπορούν να χρησιμοποιηθούν για να αναπαράγουν την εικόνα, να αντανακλούν την εικόνα ή να τροποποιήσουν τη γεωμετρία της εικόνας. Μόλις τα φίλτρα έχουν μάθει από το δίκτυο, μπορούν να χρησιμοποιηθούν σε οποιαδήποτε αρκετά παρόμοια είσοδο για να εξαγάγουν τις λειτουργίες της εικόνας.
Αποκατάσταση θορύβου

Φωτογραφία: MAL μέσω Wikimedia Commons, CC BY SA 3.0 (https://en.wikipedia.org/wiki/File:ROF_Denoising_Example.png)
Αποκατάσταση θορύβου αυτοκωδικοποιητές εισάγουν θόρυβο στην κωδικοποίηση, με αποτέλεσμα μια κωδικοποίηση που είναι μια διεφθαρμένη εκδοχή των αρχικών δεδομένων εισόδου. Αυτή η διεφθαρμένη εκδοχή των δεδομένων χρησιμοποιείται για την εκπαίδευση του μοντέλου, αλλά η συνάρτηση απώλειας συγκρίνει τις εξοδοί με τα αρχικά δεδομένα εισόδου και όχι με τα διεφθαρμένα δεδομένα εισόδου. Ο στόχος είναι ότι το δίκτυο θα μπορέσει να αναπαράγει την αρχική, μη διεφθαρμένη εκδοχή της εικόνας. Συγκρίνοντας τα διεφθαρμένα δεδομένα με τα αρχικά δεδομένα, το δίκτυο μαθαίνει ποιες λειτουργίες των δεδομένων είναι πιο σημαντικές και ποιες λειτουργίες είναι μη σημαντικές/διεφθαρμένες. Με άλλα λόγια, για να μπορέσει ένα μοντέλο να αποκαταστήσει τις διεφθαρμένες εικόνες, πρέπει να έχει εξαγάγει τις σημαντικές λειτουργίες των δεδομένων εικόνας.
Βαριά
Βαριά αυτοκωδικοποιητές λειτουργούν κάνωντας υποθέσεις σχετικά με το πώς οι.latent μεταβλητές των δεδομένων είναι κατανεμημένες. Ένας βαριά αυτοκωδικοποιητής παράγει μια πιθανότητα κατανομής για τις διάφορες λειτουργίες των δεδομένων εκπαίδευσης/των.latent ιδιοτήτων. Κατά την εκπαίδευση, ο κωδικοποιητής δημιουργεί.latent κατανομές για τις διάφορες λειτουργίες των δεδομένων εισόδου.

Κατά την εκπαίδευση του δικτύου, τα κωδικοποιημένα δεδομένα αναλύονται και το μοντέλο αναγνώρισης εξόδου δύο διανυσμάτων, τραβώντας την μέση τιμή και την τυπική απόκλιση των εικόνων. Eine κατανομή δημιουργείται με βάση αυτές τις τιμές. Αυτό γίνεται για τις διάφορες.latent καταστάσεις. Ο αποκωδικοποιητής στη συνέχεια παίρνει τυχαία δείγματα από την αντίστοιχη κατανομή και τα χρησιμοποιεί για να αναπαράγει τις αρχικές εισαγωγές στο δίκτυο.
Εφαρμογές Αυτοκωδικοποιητών
Οι αυτοκωδικοποιητές μπορούν να χρησιμοποιηθούν για eine ευρεία ποικιλία εφαρμογών, αλλά συνήθως χρησιμοποιούνται για εργασίες όπως μείωση διαστατικότητας, αποκατάσταση θορύβου, εξαγωγή λειτουργιών, δημιουργία εικόνων, πρόβλεψη ακολουθίας σε ακολουθία και συστήματα συστάσεων.
Η αποκατάσταση θορύβου είναι η χρήση των αυτοκωδικοποιητών για να αφαιρέσουν το grain/θόρυβο από τις εικόνες. Παρόμοια, οι αυτοκωδικοποιητές μπορούν να χρησιμοποιηθούν για να修復άλλες τύπους ζημιάς εικόνας, όπως θολές εικόνες ή εικόνες που λείπουν τμήματα. Η μείωση διαστατικότητας μπορεί να βοηθήσει τα δίκτυα υψηλής ικανότητας να μάθουν χρήσιμες λειτουργίες των εικόνων, που σημαίνει ότι οι αυτοκωδικοποιητές μπορούν να χρησιμοποιηθούν για να αυξήσουν την εκπαίδευση άλλων τύπων νευρωνικών δικτύων. Αυτό也是 αλήθεια για την χρήση των αυτοκωδικοποιητών για εξαγωγή λειτουργιών, καθώς οι αυτοκωδικοποιητές μπορούν να χρησιμοποιηθούν για να αναγνωρίσουν τις λειτουργίες άλλων συνόλων δεδομένων εκπαίδευσης για να εκπαιδεύσουν άλλα μοντέλα.
Όσον αφορά τη δημιουργία εικόνων, οι αυτοκωδικοποιητές μπορούν να χρησιμοποιηθούν για να δημιουργήσουν ψευδείς ανθρώπινες εικόνες ή κινούμενους χαρακτήρες, που έχει εφαρμογές στη σχεδίαση συστημάτων αναγνώρισης προσώπου ή την αυτοματοποίηση ορισμένων аспектών της animation.
Μοντέλα πρόβλεψης ακολουθίας σε ακολουθία μπορούν να χρησιμοποιηθούν για να καθορίσουν την χρονική δομή των δεδομένων, που σημαίνει ότι ένας αυτοκωδικοποιητής μπορεί να χρησιμοποιηθεί για να δημιουργήσει το επόμενο γεγονός σε μια ακολουθία. Για αυτόν τον λόγο, ένας αυτοκωδικοποιητής θα μπορούσε να χρησιμοποιηθεί για να δημιουργήσει βίντεο. Τέλος, βαθύι αυτοκωδικοποιητές μπορούν να χρησιμοποιηθούν για να δημιουργήσουν συστήματα συστάσεων, επιλέγοντας μοτίβα σχετικά με το ενδιαφέρον του χρήστη, με τον κωδικοποιητή να αναλύει τα δεδομένα συμμετοχής του χρήστη και τον αποκωδικοποιητή να δημιουργεί συστάσεις που ταιριάζουν στα καθορισμένα μοτίβα.












