Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Πριν από λίγους μήνες, οι συνάδελφοί μας από την Google ξοδεύτηκε στο Kaggle ένας διαγωνισμός για τη δημιουργία ενός ταξινομητή για εικόνες που λαμβάνονται στο εντυπωσιακό το παιχνίδι "Γρήγορα, Ισοπαλία!" Η ομάδα, η οποία περιελάμβανε τον προγραμματιστή Yandex, Roman Vlasov, κατέλαβε την τέταρτη θέση στον διαγωνισμό. Στην εκπαίδευση μηχανικής μάθησης του Ιανουαρίου, ο Roman μοιράστηκε τις ιδέες της ομάδας του, την τελική εφαρμογή του ταξινομητή και ενδιαφέρουσες πρακτικές των αντιπάλων του.


- Γεια σε όλους! Με λένε Roma Vlasov, σήμερα θα σας πω για το Quick, Draw! Πρόκληση αναγνώρισης Doodle.

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

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

(Κατά τη διάρκεια του διαγωνισμού, οι ομάδες παρατήρησαν τον εαυτό τους σε μια βαθμολογία, η οποία σχηματίστηκε με βάση τα αποτελέσματα που εμφανίζονται σε ένα μέρος του προτεινόμενου συνόλου δεδομένων. Η τελική βαθμολογία, με τη σειρά της, διαμορφώθηκε σε ένα άλλο μέρος του συνόλου δεδομένων. Αυτό γίνεται έτσι ότι οι συμμετέχοντες στο διαγωνισμό δεν προσαρμόζουν τους αλγόριθμους τους σε συγκεκριμένα δεδομένα. Επομένως, στους τελικούς, κατά την εναλλαγή μεταξύ αξιολογήσεων, οι θέσεις ανακινούνται λίγο (από το αγγλικό shake up - to mix): σε άλλα δεδομένα, το αποτέλεσμα μπορεί να βγει να είναι διαφορετική. Η ομάδα του Roman ήταν πρώτη στην πρώτη τριάδα. Σε αυτήν την περίπτωση, η πρώτη τριάδα είναι χρηματική, χρηματική ζώνη αξιολόγησης, αφού μόνο στις τρεις πρώτες θέσεις απονεμήθηκε χρηματικό έπαθλο. Μετά την ανανέωση, η ομάδα ήταν ήδη στην τέταρτη θέση. Με τον ίδιο τρόπο, η άλλη ομάδα έχασε τη νίκη, τη χρυσή θέση. - Εκδ.)

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Ο ανταγωνισμός ήταν επίσης σημαντικός στο ότι ο Evgeniy Babakhnin έλαβε μεγάλο μάστερ, ο Ivan Sosin έλαβε ένα master, ο Roman Soloviev παρέμεινε grandmaster, ο Alex Parinov έλαβε master, έγινα ειδικός και τώρα είμαι ήδη master.

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Τι είναι αυτό το Quick, Draw; Αυτή είναι μια υπηρεσία από την Google. Η Google είχε στόχο να διαδώσει την τεχνητή νοημοσύνη και με αυτήν την υπηρεσία ήθελε να δείξει πώς λειτουργούν τα νευρωνικά δίκτυα. Πηγαίνετε εκεί, κάντε κλικ στο Let's draw, και εμφανίζεται μια νέα σελίδα όπου σας λένε: σχεδιάστε ένα ζιγκ-ζαγκ, έχετε 20 δευτερόλεπτα για να το κάνετε αυτό. Προσπαθείτε να σχεδιάσετε ένα ζιγκ-ζαγκ σε 20 δευτερόλεπτα, όπως εδώ, για παράδειγμα. Αν τα καταφέρεις, το δίκτυο λέει ότι είναι ζιγκ-ζαγκ και προχωράς. Υπάρχουν μόνο έξι τέτοιες φωτογραφίες.

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

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

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

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

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

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

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

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

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Πώς έμοιαζαν οι εικόνες; Αυτή είναι η κατηγορία "αεροπλάνο" και παραδείγματα από αυτήν με τις ετικέτες αναγνωρισμένες και μη. Η αναλογία τους ήταν κάπου γύρω στο 1 προς 9. Όπως μπορείτε να δείτε, τα δεδομένα είναι αρκετά θορυβώδη. Φαντάζομαι ότι είναι αεροπλάνο. Αν κοιτάξετε το μη αναγνωρισμένο, στις περισσότερες περιπτώσεις είναι απλώς θόρυβος. Κάποιος προσπάθησε μάλιστα να γράψει «αεροπλάνο», αλλά προφανώς στα γαλλικά.

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

Άλλα μέλη της ομάδας, όπως ο Ivan Sosin, δοκίμασαν ελαφρώς διαφορετικές προσεγγίσεις στο σχέδιο. Με ένα κανάλι απλά σχεδίασε μια γκρίζα εικόνα, με ένα άλλο κανάλι σχεδίασε κάθε διαδρομή με μια διαβάθμιση από την αρχή μέχρι το τέλος, από 32 έως 255, και με το τρίτο κανάλι σχεδίασε μια διαβάθμιση σε όλες τις πινελιές από 32 έως 255.

Ένα άλλο ενδιαφέρον πράγμα είναι ότι ο Alex Parinov ανέβασε πληροφορίες στο δίκτυο χρησιμοποιώντας τον κωδικό χώρας.

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Η μέτρηση που χρησιμοποιείται στον διαγωνισμό είναι η Μέση Μέση Ακρίβεια. Ποια είναι η ουσία αυτής της μέτρησης για τον ανταγωνισμό; Μπορείτε να δώσετε τρεις πρόκριμα, και αν δεν υπάρχει σωστή πρόβλεψη σε αυτές τις τρεις, τότε παίρνετε 0. Εάν υπάρχει μια σωστή, τότε λαμβάνεται υπόψη η σειρά της. Και το στοχευόμενο αποτέλεσμα θα μετρηθεί ως 1 διαιρούμενο με τη σειρά της πρόβλεψής σας. Για παράδειγμα, κάνατε τρεις προβλέψεις, και ο σωστός είναι ο πρώτος, μετά διαιρείτε το 1 με το 1 και παίρνετε 1. Εάν ο προγνωστικός παράγοντας είναι σωστός και η σειρά του είναι 2, τότε διαιρέστε το 1 με το 2, παίρνετε 0,5. Λοιπόν, κλπ.

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Με την προεπεξεργασία δεδομένων - πώς να σχεδιάζετε εικόνες και ούτω καθεξής - αποφασίσαμε λίγο. Ποιες αρχιτεκτονικές χρησιμοποιήσαμε; Προσπαθήσαμε να χρησιμοποιήσουμε παχιές αρχιτεκτονικές όπως το PNASNet, το SENet και τέτοιες ήδη κλασικές αρχιτεκτονικές όπως το SE-Res-NeXt, μπαίνουν ολοένα και περισσότερο σε νέους διαγωνισμούς. Υπήρχαν επίσης το ResNet και το DenseNet.

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

Πώς το διδάξαμε αυτό; Όλα τα μοντέλα που πήραμε ήταν προεκπαιδευμένα στο imagenet. Αν και υπάρχουν πολλά δεδομένα, 50 εκατομμύρια εικόνες, αλλά παρόλα αυτά, αν πάρετε ένα δίκτυο προεκπαιδευμένο στο imagenet, έδειξε καλύτερα αποτελέσματα από ό,τι αν το εκπαιδεύατε απλώς από την αρχή.

Ποιες τεχνικές διδασκαλίας χρησιμοποιήσαμε; Αυτό είναι το Cosing Annealing with Warm Restarts, για το οποίο θα μιλήσω λίγο αργότερα. Αυτή είναι μια τεχνική που χρησιμοποιώ σχεδόν σε όλους τους πρόσφατους διαγωνισμούς μου και με αυτούς αποδεικνύεται ότι εκπαιδεύω αρκετά καλά τα πλέγματα, για να πετύχω ένα καλό ελάχιστο.

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

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

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

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

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

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

Χρησιμοποιήθηκε επίσης ψευδοσήμανση, που χρησιμοποιήθηκε κυρίως από τον Roman Soloviev. Πήρε δείγματα περίπου των μισών δεδομένων από τη δοκιμή σε παρτίδες και εκπαίδευσε το πλέγμα σε τέτοιες παρτίδες.

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

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

Σχετικά με τους βελτιστοποιητές. Χρησιμοποιήσαμε SGD και Adam. Με αυτόν τον τρόπο μπόρεσε να αποκτήσει ένα μόνο μοντέλο, το οποίο έδωσε ταχύτητα 0,941-0,946 στο δημόσιο leaderboard, κάτι που είναι αρκετά καλό.

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

Στη συνέχεια θα ήθελα να μιλήσω για το Cosing Annealing με θερμές επανεκκινήσεις ή το Stochastic Gradient Descent με τις θερμές επανεκκινήσεις. Σε γενικές γραμμές, καταρχήν, μπορείτε να χρησιμοποιήσετε οποιοδήποτε εργαλείο βελτιστοποίησης, αλλά το θέμα είναι το εξής: αν εκπαιδεύσετε απλώς ένα δίκτυο και σταδιακά συγκλίνει στο ελάχιστο, τότε όλα είναι εντάξει, θα έχετε ένα δίκτυο, κάνει ορισμένα λάθη, αλλά εσείς μπορεί να το εκπαιδεύσει λίγο διαφορετικά. Θα ορίσετε κάποιο αρχικό ρυθμό εκμάθησης και θα το μειώσετε σταδιακά σύμφωνα με αυτόν τον τύπο. Το χαμηλώνετε, το δίκτυό σας φτάνει στο ελάχιστο, μετά αποθηκεύετε τα βάρη και ορίζετε ξανά τον ρυθμό εκμάθησης που ήταν στην αρχή της προπόνησης, πηγαίνοντας έτσι κάπου προς τα πάνω από αυτό το ελάχιστο και μειώνοντας ξανά τον ρυθμό εκμάθησής σας.

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

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

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

Με βάση αυτό, ο Roman Soloviev κατέληξε σε μια μέτρηση, την ονομάσαμε Proxy Score, η οποία συσχετίστηκε αρκετά καλά με τον πίνακα κατάταξης. Το θέμα είναι: κάνετε μια πρόβλεψη, παίρνετε το πρώτο από τα προγνωστικά σας και μετράτε τον αριθμό των αντικειμένων για κάθε τάξη. Στη συνέχεια, αφαιρέστε 1 από κάθε τιμή και προσθέστε τις απόλυτες τιμές που προκύπτουν.

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

Με ένα σύνολο θα μπορούσες να πάρεις τέτοια ταχύτητα. Τι άλλο θα μπορούσα να κάνω; Ας υποθέσουμε ότι χρησιμοποιήσατε τις πληροφορίες ότι οι τάξεις στο τεστ σας είναι ισορροπημένες.

Η ισορροπία ήταν διαφορετική. Ένα παράδειγμα ενός από αυτά — ισορροπία από τα παιδιά που πήραν την πρώτη θέση.

Τι κάναμε; Η εξισορρόπησή μας ήταν αρκετά απλή, προτάθηκε από τον Evgeny Babakhnin. Αρχικά ταξινομήσαμε τις προβλέψεις μας κατά την πρώτη και επιλέξαμε τους υποψηφίους από αυτούς - έτσι ώστε ο αριθμός των τάξεων να μην ξεπερνά τις 1. Αλλά για ορισμένες τάξεις καταλήγετε με λιγότερους από 330 προγνωστικούς. Εντάξει, ας ταξινομήσουμε επίσης κατά 330 κορυφαίες και τις πρώτες 2 , και θα επιλέξουμε και υποψηφίους.

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

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

Πώς να επεξεργαστείτε εκ των προτέρων μια ημερομηνία; Όλοι προεπεξεργάστηκαν την ημερομηνία, συν ή πλην, με τον ίδιο τρόπο - δημιουργώντας χειροποίητα χαρακτηριστικά, προσπαθώντας να κωδικοποιήσουν χρονισμούς με διαφορετικά χρώματα κτυπήματος κ.λπ. Ο Alexey Nozdrin-Plotnitsky, ο οποίος κατέλαβε την 8η θέση, μίλησε για αυτό.

Ταξινόμηση χειρόγραφων σχεδίων. Αναφορά στο Yandex

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

Στη συνέχεια πήρε τη διαφορά με βάση τις συντεταγμένες και υπολόγισε τον μέσο όρο όλων με βάση τους χρονισμούς. Και κατέληξε σε μια μάλλον μακρά μήτρα. Εφάρμοσε 1D συνέλιξη σε αυτό αρκετές φορές για να αποκτήσει μια μήτρα μεγέθους 64xn, όπου n είναι ο συνολικός αριθμός σημείων και 64 γίνεται για να τροφοδοτήσει την προκύπτουσα μήτρα στο επίπεδο οποιουδήποτε συνελικτικού δικτύου, το οποίο δέχεται τον αριθμό των καναλιών - 64. απέκτησε έναν πίνακα 64xn, τότε από αυτό ήταν απαραίτητο να δημιουργηθεί ένας τανυστής κάποιου μεγέθους, έτσι ώστε ο αριθμός των καναλιών να είναι ίσος με 64. Ομαλοποίησε όλα τα σημεία X, Y στην περιοχή από 0 έως 32 για να δημιουργήσει ένα τανυστήρα μεγέθους 32x32. Δεν ξέρω γιατί ήθελε 32x32, απλά έγινε έτσι. Και σε αυτή τη συντεταγμένη τοποθέτησε ένα κομμάτι αυτής της μήτρας μεγέθους 64xn. Έτσι, μόλις κατέληξε με έναν τανυστή 32x32x64 που θα μπορούσατε να βάλετε περαιτέρω στο συνελικτικό νευρωνικό σας δίκτυο. Μόνο αυτό ήθελα να πω.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο