|
|
||
|---|---|---|
| .. | ||
| lab | ||
| GenerativePyTorch.ipynb | ||
| GenerativeTF.ipynb | ||
| README.md | ||
README.md
Γενετικά Δίκτυα
Προ-διάλεξης κουίζ
Τα Επαναλαμβανόμενα Νευρωνικά Δίκτυα (RNNs) και οι παραλλαγές τους με πύλες, όπως τα Long Short Term Memory Cells (LSTMs) και τα Gated Recurrent Units (GRUs), παρέχουν έναν μηχανισμό για τη μοντελοποίηση γλώσσας, καθώς μπορούν να μάθουν τη σειρά των λέξεων και να προβλέψουν την επόμενη λέξη σε μια ακολουθία. Αυτό μας επιτρέπει να χρησιμοποιούμε τα RNNs για γενετικές εργασίες, όπως η δημιουργία κειμένου, η μηχανική μετάφραση και ακόμη και η λεζάντα εικόνων.
✅ Σκεφτείτε όλες τις φορές που έχετε επωφεληθεί από γενετικές εργασίες, όπως η αυτόματη συμπλήρωση κειμένου καθώς πληκτρολογείτε. Κάντε μια έρευνα για τις αγαπημένες σας εφαρμογές για να δείτε αν χρησιμοποιούν RNNs.
Στην αρχιτεκτονική RNN που συζητήσαμε στην προηγούμενη ενότητα, κάθε μονάδα RNN παρήγαγε την επόμενη κρυφή κατάσταση ως έξοδο. Ωστόσο, μπορούμε επίσης να προσθέσουμε μια άλλη έξοδο σε κάθε επαναλαμβανόμενη μονάδα, η οποία θα μας επιτρέπει να παράγουμε μια ακολουθία (ίση σε μήκος με την αρχική ακολουθία). Επιπλέον, μπορούμε να χρησιμοποιήσουμε μονάδες RNN που δεν δέχονται είσοδο σε κάθε βήμα, αλλά λαμβάνουν μόνο κάποιο αρχικό διανυσματικό κατάσταση και στη συνέχεια παράγουν μια ακολουθία εξόδων.
Αυτό επιτρέπει διαφορετικές νευρωνικές αρχιτεκτονικές, όπως φαίνεται στην παρακάτω εικόνα:
Εικόνα από το άρθρο Unreasonable Effectiveness of Recurrent Neural Networks του Andrej Karpaty
- Ένα-προς-ένα είναι ένα παραδοσιακό νευρωνικό δίκτυο με μία είσοδο και μία έξοδο
- Ένα-προς-πολλά είναι μια γενετική αρχιτεκτονική που δέχεται μία τιμή εισόδου και παράγει μια ακολουθία εξόδων. Για παράδειγμα, αν θέλουμε να εκπαιδεύσουμε ένα δίκτυο λεζάντας εικόνας που θα παράγει μια περιγραφή κειμένου μιας εικόνας, μπορούμε να δώσουμε μια εικόνα ως είσοδο, να τη μεταφέρουμε μέσω ενός CNN για να αποκτήσουμε την κρυφή της κατάσταση και στη συνέχεια να έχουμε μια επαναλαμβανόμενη αλυσίδα που παράγει τη λεζάντα λέξη προς λέξη.
- Πολλά-προς-ένα αντιστοιχεί στις αρχιτεκτονικές RNN που περιγράψαμε στην προηγούμενη ενότητα, όπως η ταξινόμηση κειμένου.
- Πολλά-προς-πολλά, ή ακολουθία-προς-ακολουθία, αντιστοιχεί σε εργασίες όπως η μηχανική μετάφραση, όπου έχουμε πρώτα ένα RNN που συλλέγει όλες τις πληροφορίες από την ακολουθία εισόδου στην κρυφή κατάσταση και μια άλλη αλυσίδα RNN που ξεδιπλώνει αυτή την κατάσταση στην ακολουθία εξόδου.
Σε αυτή την ενότητα, θα επικεντρωθούμε σε απλά γενετικά μοντέλα που μας βοηθούν να δημιουργούμε κείμενο. Για απλότητα, θα χρησιμοποιήσουμε το επίπεδο χαρακτήρων για την τοκενιοποίηση.
Θα εκπαιδεύσουμε αυτό το RNN να δημιουργεί κείμενο βήμα προς βήμα. Σε κάθε βήμα, θα παίρνουμε μια ακολουθία χαρακτήρων μήκους nchars και θα ζητάμε από το δίκτυο να παράγει τον επόμενο χαρακτήρα εξόδου για κάθε χαρακτήρα εισόδου:
Κατά τη δημιουργία κειμένου (κατά την επαγωγή), ξεκινάμε με κάποιο προτροπή, η οποία περνά μέσα από τα RNN κύτταρα για να δημιουργήσει την ενδιάμεση κατάστασή της, και στη συνέχεια από αυτή την κατάσταση ξεκινά η δημιουργία. Δημιουργούμε έναν χαρακτήρα τη φορά και περνάμε την κατάσταση και τον παραγόμενο χαρακτήρα σε ένα άλλο RNN κύτταρο για να δημιουργήσει τον επόμενο, μέχρι να δημιουργήσουμε αρκετούς χαρακτήρες.
Εικόνα από τον συγγραφέα
✍️ Ασκήσεις: Γενετικά Δίκτυα
Συνεχίστε τη μάθησή σας στα παρακάτω σημειωματάρια:
Μαλακή δημιουργία κειμένου και θερμοκρασία
Η έξοδος κάθε RNN κυττάρου είναι μια κατανομή πιθανοτήτων χαρακτήρων. Αν πάντα παίρνουμε τον χαρακτήρα με τη μεγαλύτερη πιθανότητα ως τον επόμενο χαρακτήρα στο παραγόμενο κείμενο, το κείμενο συχνά μπορεί να "κυκλώνεται" μεταξύ των ίδιων ακολουθιών χαρακτήρων ξανά και ξανά, όπως σε αυτό το παράδειγμα:
today of the second the company and a second the company ...
Ωστόσο, αν κοιτάξουμε την κατανομή πιθανοτήτων για τον επόμενο χαρακτήρα, μπορεί να συμβεί η διαφορά μεταξύ μερικών από τις υψηλότερες πιθανότητες να μην είναι μεγάλη, π.χ. ένας χαρακτήρας μπορεί να έχει πιθανότητα 0.2, ένας άλλος 0.19, κ.λπ. Για παράδειγμα, όταν ψάχνουμε τον επόμενο χαρακτήρα στην ακολουθία 'play', ο επόμενος χαρακτήρας μπορεί εξίσου να είναι είτε κενό είτε e (όπως στη λέξη player).
Αυτό μας οδηγεί στο συμπέρασμα ότι δεν είναι πάντα "δίκαιο" να επιλέγουμε τον χαρακτήρα με τη μεγαλύτερη πιθανότητα, γιατί η επιλογή του δεύτερου μεγαλύτερου μπορεί ακόμα να οδηγήσει σε νόημα. Είναι πιο σοφό να δειγματοληπτούμε χαρακτήρες από την κατανομή πιθανοτήτων που δίνεται από την έξοδο του δικτύου. Μπορούμε επίσης να χρησιμοποιήσουμε μια παράμετρο, τη θερμοκρασία, που θα εξομαλύνει την κατανομή πιθανοτήτων, αν θέλουμε να προσθέσουμε περισσότερη τυχαιότητα, ή να την κάνουμε πιο απότομη, αν θέλουμε να παραμείνουμε πιο κοντά στους χαρακτήρες με τη μεγαλύτερη πιθανότητα.
Εξερευνήστε πώς αυτή η μαλακή δημιουργία κειμένου υλοποιείται στα σημειωματάρια που συνδέονται παραπάνω.
Συμπέρασμα
Ενώ η δημιουργία κειμένου μπορεί να είναι χρήσιμη από μόνη της, τα κύρια οφέλη προκύπτουν από την ικανότητα να δημιουργούμε κείμενο χρησιμοποιώντας RNNs από κάποιο αρχικό διανυσματικό χαρακτηριστικό. Για παράδειγμα, η δημιουργία κειμένου χρησιμοποιείται ως μέρος της μηχανικής μετάφρασης (ακολουθία-προς-ακολουθία, σε αυτή την περίπτωση ο διανυσματικός κατάσταση από τον κωδικοποιητή χρησιμοποιείται για να δημιουργήσει ή να αποκωδικοποιήσει το μεταφρασμένο μήνυμα), ή για τη δημιουργία περιγραφής κειμένου μιας εικόνας (στην οποία περίπτωση το διανυσματικό χαρακτηριστικό προέρχεται από τον εξαγωγέα CNN).
🚀 Πρόκληση
Πάρτε μερικά μαθήματα στο Microsoft Learn για αυτό το θέμα
- Δημιουργία Κειμένου με PyTorch/TensorFlow
Μετά-διάλεξης κουίζ
Ανασκόπηση & Αυτομελέτη
Ακολουθούν μερικά άρθρα για να επεκτείνετε τις γνώσεις σας
- Διαφορετικές προσεγγίσεις για τη δημιουργία κειμένου με Markov Chain, LSTM και GPT-2: άρθρο
- Παράδειγμα δημιουργίας κειμένου στην τεκμηρίωση Keras
Εργασία
Είδαμε πώς να δημιουργούμε κείμενο χαρακτήρα-προς-χαρακτήρα. Στο εργαστήριο, θα εξερευνήσετε τη δημιουργία κειμένου σε επίπεδο λέξεων.
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.

