Από τότε που ανακάλυψα σχετικά με τα γενετικά αντιπολιτευτικά δίκτυα (GANs), με εντυπωσίασαν. Το GAN είναι ένας τύπος νευρωνικού δικτύου που μπορεί να δημιουργήσει νέα δεδομένα από το μηδέν. Μπορείτε να το τροφοδοτήσετε λίγο τυχαίο θόρυβο ως είσοδος και μπορεί να παράγει ρεαλιστικές εικόνες κρεβατοκάμαρων ή πουλιών ή οτιδήποτε έχει εκπαιδευτεί να δημιουργήσει.
Ένα πράγμα που όλοι οι επιστήμονες μπορούν να συμφωνήσουν είναι ότι χρειαζόμαστε περισσότερα δεδομένα.
Τα GAN, τα οποία μπορούν να χρησιμοποιηθούν για την παραγωγή νέων δεδομένων σε καταστάσεις περιορισμένης χρήσης δεδομένων, μπορεί να αποδειχθούν πραγματικά χρήσιμα. Τα δεδομένα μπορεί μερικές φορές να είναι δύσκολα και δαπανηρά και χρονοβόρα να δημιουργηθούν. Για να είναι χρήσιμα, ωστόσο, τα νέα δεδομένα πρέπει να είναι αρκετά ρεαλιστικά ώστε ό, τι οι πληροφορίες που λαμβάνουμε από τα παραγόμενα δεδομένα εξακολουθούν να ισχύουν για πραγματικά δεδομένα. Εάν εκπαιδεύετε μια γάτα για να κυνηγήσετε ποντίκια και χρησιμοποιείτε ψεύτικα ποντίκια, καλύτερα να βεβαιωθείτε ότι τα ψεύτικα ποντίκια μοιάζουν πραγματικά με ποντίκια.
Ένας άλλος τρόπος σκέψης είναι ότι τα GAN ανακαλύπτουν δομή στα δεδομένα που τους επιτρέπει να κάνουν ρεαλιστικά δεδομένα. Αυτό μπορεί να είναι χρήσιμο εάν δεν μπορούμε να δούμε αυτή τη δομή από μόνη της ή δεν μπορούμε να την βγάλουμε με άλλες μεθόδους.
Σε αυτό το άρθρο, θα μάθετε πώς μπορούν να χρησιμοποιηθούν τα GAN για τη δημιουργία νέων δεδομένων. Για να διατηρήσουμε αυτό το σεμινάριο ρεαλιστικό, θα χρησιμοποιήσουμε το σύνολο δεδομένων εντοπισμού απάτης με πιστωτική κάρτα από Kaggle.
Στα πειράματά μου, προσπάθησα να χρησιμοποιήσω αυτό το σύνολο δεδομένων για να δω αν μπορώ να αποκτήσω ένα GAN για να δημιουργήσω δεδομένα ρεαλιστικά ώστε να μας βοηθήσουν να εντοπίσουμε δόλιες περιπτώσεις. Αυτό το σύνολο δεδομένων επισημαίνει το περιορισμένο ζήτημα δεδομένων: Από τις 285.000 συναλλαγές, μόνο 492 είναι απάτες. 492 περιπτώσεις απάτης δεν είναι ένα μεγάλο σύνολο δεδομένων για εκπαίδευση, ειδικά όταν πρόκειται για εργασίες μηχανικής εκμάθησης όπου οι άνθρωποι επιθυμούν να έχουν σύνολα δεδομένων αρκετές τάξεις μεγέθους μεγαλύτερες. Παρόλο που τα αποτελέσματα του πειράματός μου δεν ήταν καταπληκτικά, έμαθα πολλά για τα GAN κατά τη διάρκεια της πορείας που είμαι στην ευχάριστη θέση να μοιραστώ.
Πριν εξερευνήσουμε αυτό το πεδίο των GAN, αν θέλετε να βελτιώσετε γρήγορα τις δεξιότητες μηχανικής εκμάθησης ή βαθιάς μάθησης, μπορείτε να ρίξετε μια ματιά σε αυτές τις δύο σχετικές αναρτήσεις ιστολογίου:
Τα γενετικά αντιπολιτευτικά δίκτυα (GANs) είναι μια αρχιτεκτονική νευρωνικών δικτύων που έχει δείξει εντυπωσιακές βελτιώσεις σε σχέση με προηγούμενες μεθόδους δημιουργίας, όπως παραλλαγές αυτόματων κωδικοποιητών ή περιορισμένες μηχανές boltzman. Τα GAN κατάφεραν να δημιουργήσουν πιο ρεαλιστικές εικόνες (π.χ. DCGAN ), ενεργοποιήστε τη μεταφορά στυλ μεταξύ εικόνων (βλ εδώ και εδώ ), δημιουργήστε εικόνες από περιγραφές κειμένου ( StackGAN και μάθετε από μικρότερα σύνολα δεδομένων μέσω ημι-εποπτευόμενη μάθηση . Λόγω αυτών των επιτευγμάτων, δημιουργούν πολλά ενδιαφέρον τόσο στον ακαδημαϊκό όσο και στον εμπορικό τομέα.
Ο διευθυντής της έρευνας AI στο Facebook, Yann LeCunn, τους έχει καλέσει ακόμη η πιο συναρπαστική εξέλιξη στη μηχανική μάθηση την τελευταία δεκαετία.
τρέχουσα κατάσταση της μουσικής βιομηχανίας
Σκεφτείτε πώς μαθαίνετε. Δοκιμάστε κάτι, λαμβάνετε κάποια σχόλια. Προσαρμόζετε τη στρατηγική σας και δοκιμάστε ξανά.
Τα σχόλια μπορεί να έχουν τη μορφή κριτικής, ή πόνου ή κέρδους. Μπορεί να προέρχεται από τη δική σας κρίση για το πόσο καλά τα πήγατε. Συχνά, τα πιο χρήσιμα σχόλια είναι τα σχόλια που προέρχονται από άλλο άτομο, επειδή δεν είναι απλώς ένας αριθμός ή μια αίσθηση, αλλά μια έξυπνη αξιολόγηση του πόσο καλά εκτελέσατε την εργασία.
Όταν ένας υπολογιστής εκπαιδεύεται για μια εργασία, ο άνθρωπος συνήθως παρέχει την ανατροφοδότηση με τη μορφή προσαρμοσμένων παραμέτρων ή αλγορίθμων. Αυτό λειτουργεί καλά όταν η εργασία είναι καλά καθορισμένη, όπως η εκμάθηση πολλαπλασιασμού δύο αριθμών. Μπορείτε εύκολα και με ακρίβεια να πείτε στον υπολογιστή πώς ήταν λάθος.
Με μια πιο περίπλοκη εργασία, όπως η δημιουργία μιας εικόνας του σκύλου, γίνεται πιο δύσκολο να παρέχουμε σχόλια. Είναι η εικόνα θολή, μοιάζει περισσότερο με γάτα ή μοιάζει καθόλου με κάτι; Θα μπορούσαν να εφαρμοστούν πολύπλοκα στατιστικά στοιχεία, αλλά θα ήταν δύσκολο να καταγραφούν όλες οι λεπτομέρειες που κάνουν μια εικόνα να φαίνεται πραγματική.
Ένας άνθρωπος μπορεί να δώσει κάποια εκτίμηση, επειδή έχουμε μεγάλη εμπειρία στην αξιολόγηση της οπτικής εισόδου, αλλά είμαστε σχετικά αργοί και οι αξιολογήσεις μας μπορεί να είναι πολύ υποκειμενικές. Θα μπορούσαμε αντ 'αυτού να εκπαιδεύσουμε ένα νευρωνικό δίκτυο για να μάθουμε το έργο της διάκρισης μεταξύ πραγματικών και δημιουργημένων εικόνων.
Στη συνέχεια, αφήνοντας τη συσκευή δημιουργίας εικόνων (επίσης ένα νευρωνικό δίκτυο) και τον διαχωριστή να μάθουν διαδοχικά ο ένας τον άλλον, μπορούν να βελτιωθούν με την πάροδο του χρόνου. Αυτά τα δύο δίκτυα, παίζοντας αυτό το παιχνίδι, είναι ένα γενετικό δίκτυο αντιπαραθέσεων.
Μπορείς ακούω ο εφευρέτης των GAN, Ian Goodfellow, μιλά για το πώς ένα επιχείρημα σε ένα μπαρ σχετικά με αυτό το θέμα οδήγησε σε μια πυρετώδη νύχτα κωδικοποίησης που είχε ως αποτέλεσμα το πρώτο GAN. Και ναι, αναγνωρίζει τη μπάρα του χαρτί . Μπορείτε να μάθετε περισσότερα για τα GAN από Το ιστολόγιο του Ian Goodfellow πανω σε αυτο το θεμα.
Υπάρχουν πολλές προκλήσεις όταν εργάζεστε με GAN. Η εκπαίδευση ενός μόνο νευρικού δικτύου μπορεί να είναι δύσκολη λόγω του αριθμού των επιλογών που περιλαμβάνονται: Αρχιτεκτονική, λειτουργίες ενεργοποίησης, μέθοδο βελτιστοποίησης, ποσοστό εκμάθησης και ποσοστό εγκατάλειψης, για να αναφέρουμε μόνο μερικές.
Τα GAN διπλασιάζουν όλες αυτές τις επιλογές και προσθέτουν νέες πολυπλοκότητες. Τόσο η γεννήτρια όσο και ο διαχωριστής μπορεί να ξεχάσουν τα κόλπα που χρησιμοποίησαν νωρίτερα στην εκπαίδευσή τους. Αυτό μπορεί να οδηγήσει στα δύο δίκτυα να παγιδευτούν σε έναν σταθερό κύκλο λύσεων που δεν βελτιώνονται με την πάροδο του χρόνου. Το ένα δίκτυο μπορεί να υπερνικήσει το άλλο δίκτυο, έτσι ώστε κανένα δεν μπορεί να μάθει πια. Ή, η γεννήτρια μπορεί να μην εξερευνήσει μεγάλο μέρος του πιθανού χώρου λύσεων, μόνο αρκετή για να βρει ρεαλιστικές λύσεις. Αυτή η τελευταία κατάσταση είναι γνωστή ως κατάρρευση λειτουργίας.
Η κατάρρευση της λειτουργίας είναι όταν η γεννήτρια μαθαίνει μόνο ένα μικρό υποσύνολο των πιθανών ρεαλιστικών λειτουργιών. Για παράδειγμα, εάν ο στόχος είναι η δημιουργία εικόνων σκύλων, η γεννήτρια θα μπορούσε να μάθει να δημιουργεί μόνο εικόνες μικρών καφέ σκύλων. Η γεννήτρια θα είχε χάσει όλες τις άλλες λειτουργίες που αποτελούνται από σκύλους άλλων μεγεθών ή χρωμάτων.
Έχουν εφαρμοστεί πολλές στρατηγικές για να αντιμετωπιστεί αυτό, όπως η ομαλοποίηση παρτίδας, η προσθήκη ετικετών στα δεδομένα εκπαίδευσης ή η αλλαγή του τρόπου με τον οποίο ο διαχωριστής κρίνει τα παραγόμενα δεδομένα.
Οι χρήστες σημείωσαν ότι η προσθήκη ετικετών στα δεδομένα, δηλαδή, για να χωριστούν σε κατηγορίες, βελτιώνει σχεδόν πάντα την απόδοση των GAN. Αντί να μαθαίνετε να δημιουργείτε εικόνες κατοικίδιων ζώων γενικά, θα πρέπει να είναι ευκολότερο να δημιουργήσετε εικόνες για γάτες, σκύλους, ψάρια και κουνάβια, για παράδειγμα.
ποιο από τα παρακάτω θα ήταν παράδειγμα ελέγχου ταυτότητας που βασίζεται σε διακριτικά;
Ίσως οι πιο σημαντικές ανακαλύψεις στην ανάπτυξη GAN έχουν προκύψει από την αλλαγή του τρόπου με τον οποίο ο διακριτικός αξιολογεί τα δεδομένα, οπότε ας ρίξουμε μια πιο προσεκτική ματιά σε αυτά.
Στην αρχική διατύπωση των GAN το 2014 από Οι Goodfellow et al. , ο διαχωριστής δημιουργεί μια εκτίμηση της πιθανότητας ότι μια δεδομένη εικόνα ήταν πραγματική ή δημιουργημένη. Ο διαχωριστής θα εφοδιάζεται με ένα σύνολο εικόνων που αποτελούνται τόσο από πραγματικές όσο και από παραγόμενες εικόνες και θα δημιουργούσε μια εκτίμηση για κάθε μία από αυτές τις εισόδους. Το σφάλμα μεταξύ της εξόδου διακριτών και των πραγματικών ετικετών θα μετρηθεί τότε με απώλεια εγκάρσιας εντροπίας. Η απώλεια εγκάρσιας εντροπίας μπορεί να εξομοιωθεί με τη μέτρηση απόστασης Jensen-Shannon και εμφανίστηκε στις αρχές του 2017 από Οι Arjovsky et al. ότι αυτή η μέτρηση θα αποτύχει σε ορισμένες περιπτώσεις και δεν θα δείχνει τη σωστή κατεύθυνση σε άλλες περιπτώσεις. Αυτή η ομάδα έδειξε ότι η μέτρηση απόστασης Wasserstein (επίσης γνωστή ως μετακίνηση γης ή απόσταση EM) λειτούργησε και λειτούργησε καλύτερα σε πολλές περισσότερες περιπτώσεις.
Η απώλεια διασταυρούμενης εντροπίας είναι ένα μέτρο του πόσο ακριβής προσδιορίζει ο διακριτικός πραγματικές και δημιουργημένες εικόνες. Η μέτρηση Wasserstein εξετάζει αντ 'αυτού την κατανομή κάθε μεταβλητής (δηλαδή, κάθε χρώμα κάθε εικονοστοιχείου) στις πραγματικές και δημιουργημένες εικόνες και καθορίζει το πόσο μακριά είναι οι διανομές για πραγματικά και δημιουργημένα δεδομένα. Η μέτρηση Wasserstein εξετάζει πόση προσπάθεια, όσον αφορά την απόσταση των χρόνων μάζας, θα χρειαζόταν για να ωθήσει την παραγόμενη κατανομή στο σχήμα της πραγματικής κατανομής, εξ ου και το εναλλακτικό όνομα 'απόσταση μετακίνησης γης'. Επειδή η μέτρηση του Wasserstein δεν αξιολογεί πλέον εάν μια εικόνα είναι πραγματική ή όχι, αλλά αντ 'αυτού παρέχει κριτική για το πόσο μακριά είναι οι εικόνες που δημιουργούνται από τις πραγματικές εικόνες, το δίκτυο «διακρίσεων» αναφέρεται ως δίκτυο «κριτικών» στο Wasserstein αρχιτεκτονική.
Για μια ελαφρώς πιο ολοκληρωμένη εξερεύνηση των GAN, σε αυτό το άρθρο, θα διερευνήσουμε τέσσερις διαφορετικές αρχιτεκτονικές:
Αλλά ας ρίξουμε μια ματιά στο σύνολο δεδομένων μας πρώτα.
Θα συνεργαστούμε με το σύνολο δεδομένων εντοπισμού απάτης με πιστωτική κάρτα από Kaggle.
Το σύνολο δεδομένων αποτελείται από ~ 285.000 συναλλαγές, εκ των οποίων μόνο 492 είναι δόλιες. Τα δεδομένα αποτελούνται από 31 δυνατότητες: 'χρόνος', 'ποσό', 'κλάση' και 28 επιπλέον, ανώνυμα χαρακτηριστικά. Η δυνατότητα κλάσης είναι η ετικέτα που δείχνει εάν μια συναλλαγή είναι δόλια ή όχι, με το 0 να δείχνει την κανονική και 1 να δείχνει την απάτη. Όλα τα δεδομένα είναι αριθμητικά και συνεχή (εκτός από την ετικέτα). Το σύνολο δεδομένων δεν έχει τιμές που λείπουν. Το σύνολο δεδομένων είναι ήδη σε αρκετά καλή κατάσταση, αλλά θα κάνω λίγο περισσότερο καθαρισμό, κυρίως απλώς προσαρμόζοντας τα μέσα όλων των χαρακτηριστικών στο μηδέν και τις τυπικές αποκλίσεις σε ένα. Έχω περιγράψει τη διαδικασία καθαρισμού μου περισσότερο στο σημειωματάριο εδώ . Προς το παρόν θα δείξω μόνο το τελικό αποτέλεσμα :
Κάποιος μπορεί εύκολα να εντοπίσει διαφορές μεταξύ των φυσιολογικών και των δεδομένων απάτης σε αυτές τις διανομές, αλλά υπάρχει επίσης πολλή αλληλεπικάλυψη. Μπορούμε να εφαρμόσουμε έναν από τους ταχύτερους και ισχυρότερους αλγόριθμους μηχανικής μάθησης για να προσδιορίσουμε τις πιο χρήσιμες λειτουργίες για τον εντοπισμό της απάτης. Αυτός ο αλγόριθμος, xgboost , είναι ένας αλγόριθμος δέντρου αποφάσεων που ενισχύεται με κλίση. Θα το εκπαιδεύσουμε στο 70% του συνόλου δεδομένων και θα το δοκιμάσουμε στο υπόλοιπο 30%. Μπορούμε να ρυθμίσουμε τον αλγόριθμο για να συνεχίσουμε μέχρι να μην βελτιώσει την ανάκληση (το κλάσμα των δειγμάτων απάτης που εντοπίστηκαν) στο σύνολο δεδομένων δοκιμής. Αυτό επιτυγχάνει 76% ανάκληση στο σύνολο δοκιμών, το οποίο αφήνει σαφώς περιθώρια βελτίωσης. Επιτυγχάνει ακρίβεια 94%, που σημαίνει ότι μόνο το 6% των προβλεπόμενων περιπτώσεων απάτης ήταν στην πραγματικότητα κανονικές συναλλαγές. Από αυτήν την ανάλυση, λαμβάνουμε επίσης μια λίστα χαρακτηριστικών που ταξινομούνται κατά τη χρησιμότητά τους για τον εντοπισμό απάτης. Μπορούμε να χρησιμοποιήσουμε τις πιο σημαντικές δυνατότητες για να βοηθήσουμε στην οπτικοποίηση των αποτελεσμάτων μας αργότερα.
Και πάλι, εάν είχαμε περισσότερα δεδομένα απάτης, ίσως μπορούσαμε να τα εντοπίσουμε καλύτερα. Δηλαδή, θα μπορούσαμε να επιτύχουμε μεγαλύτερη ανάκληση. Τώρα θα προσπαθήσουμε να δημιουργήσουμε νέα, ρεαλιστικά δεδομένα απάτης χρησιμοποιώντας GAN για να μας βοηθήσουν να εντοπίσουμε την πραγματική απάτη.
Για να εφαρμόσω διάφορες αρχιτεκτονικές GAN σε αυτό το σύνολο δεδομένων, θα χρησιμοποιήσω GAN-Sandbox , η οποία έχει μια σειρά από δημοφιλείς αρχιτεκτονικές GAN που εφαρμόζονται στο Python χρησιμοποιώντας τη βιβλιοθήκη Keras και ένα TensorFlow back-end. Όλα τα αποτελέσματά μου είναι διαθέσιμα ως σημειωματάριο Jupyter εδώ . Όλες οι απαραίτητες βιβλιοθήκες περιλαμβάνονται στην εικόνα Kaggle / Python Docker, εάν χρειάζεστε μια εύκολη εγκατάσταση.
Τα παραδείγματα στο GAN-Sandbox έχουν ρυθμιστεί για επεξεργασία εικόνας. Η γεννήτρια παράγει μια δισδιάστατη εικόνα με 3 κανάλια χρώματος για κάθε εικονοστοιχείο και ο διακριτικός / κριτικός έχει ρυθμιστεί να αξιολογεί τέτοια δεδομένα. Συγκολλητικοί μετασχηματισμοί χρησιμοποιούνται μεταξύ των επιπέδων των δικτύων για να επωφεληθούν από τη χωρική δομή των δεδομένων εικόνας. Κάθε νευρώνας σε ένα συνελικτικό στρώμα λειτουργεί μόνο με μια μικρή ομάδα εισόδων και εξόδων (π.χ., γειτονικά εικονοστοιχεία σε μια εικόνα) για να επιτρέψει την εκμάθηση χωρικών σχέσεων. Το σύνολο δεδομένων της πιστωτικής μας κάρτας δεν διαθέτει χωρική δομή μεταξύ των μεταβλητών, επομένως έχω μετατρέψει τα συνελικτικά δίκτυα σε δίκτυα με πυκνά συνδεδεμένα επίπεδα. Οι νευρώνες σε πυκνά συνδεδεμένα στρώματα συνδέονται με κάθε είσοδο και έξοδο του στρώματος, επιτρέποντας στο δίκτυο να μάθει τις σχέσεις του μεταξύ των χαρακτηριστικών. Θα χρησιμοποιήσω αυτήν τη ρύθμιση για καθεμία από τις αρχιτεκτονικές.
gulp concat και minify js
Το πρώτο GAN που θα αξιολογήσω ανοίγει το δίκτυο της γεννήτριας έναντι του δικτύου διακρίσεων, κάνοντας χρήση της απώλειας εγκάρσιας εντροπίας από τον διαχωριστή για την εκπαίδευση των δικτύων. Αυτή είναι η πρωτότυπη, «βανίλια» αρχιτεκτονική GAN. Το δεύτερο GAN που θα αξιολογήσω προσθέτει ετικέτες κλάσης στα δεδομένα με τον τρόπο ενός GAN υπό όρους (CGAN). Αυτό το GAN έχει μια ακόμη μεταβλητή στα δεδομένα, την ετικέτα κλάσης. Το τρίτο GAN θα χρησιμοποιήσει τη μέτρηση απόστασης Wasserstein για να εκπαιδεύσει τα δίκτυα (WGAN) και το τελευταίο θα χρησιμοποιήσει τις ετικέτες κλάσης και τη μέτρηση απόστασης Wasserstein (WCGAN).
Θα εκπαιδεύσουμε τα διάφορα GAN χρησιμοποιώντας ένα σύνολο δεδομένων εκπαίδευσης που αποτελείται και από 492 δόλιες συναλλαγές. Μπορούμε να προσθέσουμε τάξεις στο σύνολο δεδομένων απάτης για να διευκολύνουμε τις υπό όρους αρχιτεκτονικές GAN. Έχω διερευνήσει μερικές διαφορετικές μεθόδους ομαδοποίησης στο σημειωματάριο και πήγα με μια ταξινόμηση KMeans που ταξινομεί τα δεδομένα απάτης σε 2 τάξεις.
Θα εκπαιδεύσω κάθε GAN για 5000 γύρους και θα εξετάσω τα αποτελέσματα. Στο Σχήμα 4, μπορούμε να δούμε τα πραγματικά δεδομένα απάτης και τα δεδομένα απάτης που δημιουργήθηκαν από τις διάφορες αρχιτεκτονικές GAN καθώς προχωρά η εκπαίδευση. Μπορούμε να δούμε τα πραγματικά δεδομένα απάτης χωρισμένα στις κατηγορίες 2 KMeans, σε γραφική παράσταση με τις 2 διαστάσεις που διακρίνουν καλύτερα αυτές τις δύο κατηγορίες (χαρακτηριστικά V10 και V17 από τα χαρακτηριστικά μετασχηματισμένων PCA). Τα δύο GAN που δεν χρησιμοποιούν πληροφορίες κλάσης, το GAN και το WGAN, έχουν την παραγωγή τους ως μία κατηγορία. Οι υπό όρους αρχιτεκτονικές, το CGAN και το WCGAN, δείχνουν τα παραγόμενα δεδομένα τους ανά τάξη. Στο βήμα 0, όλα τα δεδομένα που δημιουργούνται την κανονική κατανομή της τυχαίας εισόδου που τροφοδοτείται στις γεννήτριες.
Μπορούμε να δούμε ότι η αρχική αρχιτεκτονική GAN αρχίζει να μαθαίνει το σχήμα και το εύρος των πραγματικών δεδομένων, αλλά στη συνέχεια καταρρέει προς μια μικρή διανομή. Αυτή είναι η κατάρρευση λειτουργίας που συζητήθηκε νωρίτερα. Η γεννήτρια έχει μάθει ένα μικρό εύρος δεδομένων που ο διακριτικός δυσκολεύεται να εντοπίσει ως ψεύτικο. Η αρχιτεκτονική CGAN κάνει λίγο καλύτερα, εξαπλώνεται και πλησιάζει τις διανομές κάθε κατηγορίας δεδομένων απάτης, αλλά στη συνέχεια η κατάρρευση της λειτουργίας μπαίνει, όπως φαίνεται στο βήμα 5000.
Το WGAN δεν αντιμετωπίζει την κατάρρευση της λειτουργίας που επιδεικνύουν οι αρχιτεκτονικές GAN και CGAN. Ακόμη και χωρίς πληροφορίες τάξης, αρχίζει να αναλαμβάνει τη μη κανονική διανομή των πραγματικών δεδομένων απάτης. Η αρχιτεκτονική WCGAN αποδίδει παρόμοια και είναι σε θέση να δημιουργήσει τις ξεχωριστές κατηγορίες δεδομένων.
Μπορούμε να αξιολογήσουμε πόσο ρεαλιστικά φαίνονται τα δεδομένα χρησιμοποιώντας τον ίδιο αλγόριθμο xgboost που χρησιμοποιήθηκε νωρίτερα για τον εντοπισμό απάτης. Είναι γρήγορο και ισχυρό και λειτουργεί εκτός ραφιού χωρίς πολύ συντονισμό. Θα εκπαιδεύσουμε τον ταξινομητή xgboost χρησιμοποιώντας τα μισά από τα πραγματικά δεδομένα απάτης (246 δείγματα) και έναν ίσο αριθμό παραδειγμάτων που δημιουργούνται από GAN. Στη συνέχεια, θα δοκιμάσουμε τον ταξινομητή xgboost χρησιμοποιώντας το άλλο μισό των πραγματικών δεδομένων απάτης και ένα διαφορετικό σύνολο παραδειγμάτων 246 GAN. Αυτή η ορθογώνια μέθοδος (με πειραματική έννοια) θα μας δώσει κάποια ένδειξη για το πόσο επιτυχής είναι η γεννήτρια στην παραγωγή ρεαλιστικών δεδομένων. Με απόλυτα ρεαλιστικά δεδομένα που δημιουργούνται, ο αλγόριθμος xgboost πρέπει να επιτύχει ακρίβεια 0,50 (50%) - με άλλα λόγια, δεν είναι καλύτερο από το να μαντέψουμε.
Μπορούμε δείτε την ακρίβεια του xgboost σχετικά με τα δεδομένα που δημιουργούνται από το GAN, αρχικά μειώνεται και στη συνέχεια αυξάνεται μετά την προπόνηση το βήμα 1000 καθώς ο τρόπος κατάρρευσης εισέρχεται. Η αρχιτεκτονική CGAN επιτυγχάνει κάπως πιο ρεαλιστικά δεδομένα μετά από 2000 βήματα, αλλά στη συνέχεια η λειτουργία κατάρρευσης ενεργοποιείται και για αυτό το δίκτυο. Οι αρχιτεκτονικές WGAN και WCGAN επιτυγχάνουν πιο ρεαλιστικά δεδομένα γρηγορότερα και συνεχίζουν να μαθαίνουν καθώς προχωρά η εκπαίδευση. Το WCGAN δεν φαίνεται να έχει μεγάλο πλεονέκτημα έναντι του WGAN, γεγονός που υποδηλώνει ότι αυτές οι δημιουργημένες τάξεις ενδέχεται να μην είναι χρήσιμες για τις αρχιτεκτονικές του Wasserstein GAN.
Μπορείτε να μάθετε περισσότερα για την αρχιτεκτονική WGAN από εδώ και εδώ .
Το δίκτυο κριτικών στις αρχιτεκτονικές WGAN και WCGAN μαθαίνει να υπολογίζει την απόσταση Wasserstein (Earth-mover, EM) μεταξύ ενός δεδομένου συνόλου δεδομένων και των πραγματικών δεδομένων απάτης. Στην ιδανική περίπτωση, θα μετρήσει απόσταση σχεδόν μηδέν για ένα δείγμα πραγματικών δεδομένων απάτης. Ο κριτικός, ωστόσο, βρίσκεται στη διαδικασία εκμάθησης πώς να εκτελεί αυτόν τον υπολογισμό. Όσο μετράει μεγαλύτερη απόσταση για τα παραγόμενα δεδομένα από ό, τι για τα πραγματικά δεδομένα, το δίκτυο μπορεί να βελτιωθεί. Μπορούμε να δούμε πώς αλλάζει η διαφορά μεταξύ των αποστάσεων Wasserstein για τα παραγόμενα και τα πραγματικά δεδομένα κατά τη διάρκεια της προπόνησης. Εάν οροπέδια, τότε η περαιτέρω εκπαίδευση μπορεί να μην βοηθήσει. Μπορούμε να δούμε στο σχήμα 6 ότι εκεί φαίνεται να είναι περαιτέρω βελτίωση για το WGAN και το WCGAN σε αυτό το σύνολο δεδομένων.
Τώρα μπορούμε να ελέγξουμε εάν μπορούμε να δημιουργήσουμε νέα δεδομένα απάτης αρκετά ρεαλιστικά για να μας βοηθήσουν να εντοπίσουμε πραγματικά δεδομένα απάτης. Μπορούμε να πάρουμε την εκπαιδευμένη γεννήτρια που πέτυχε τη χαμηλότερη βαθμολογία ακρίβειας και να την χρησιμοποιήσουμε για τη δημιουργία δεδομένων. Για το βασικό εκπαιδευτικό σύνολο, θα χρησιμοποιήσουμε το 70% των δεδομένων απάτης (199.020 περιπτώσεις) και 100 περιπτώσεις δεδομένων απάτης (~ 20% των δεδομένων απάτης). Στη συνέχεια, θα προσπαθήσουμε να προσθέσουμε διαφορετικά ποσά πραγματικών ή δημιουργημένων δεδομένων απάτης σε αυτό το εκπαιδευτικό σύνολο, έως 344 περιπτώσεις (70% των δεδομένων απάτης). Για το σετ δοκιμών, θα χρησιμοποιήσουμε το υπόλοιπο 30% των περιπτώσεων απάτης (85.295 περιπτώσεις) και υποθέσεων απάτης (148 περιπτώσεις). Μπορούμε να προσπαθήσουμε να προσθέσουμε παραγόμενα δεδομένα από ένα μη εκπαιδευμένο GAN και από το καλύτερα εκπαιδευμένο GAN για να ελέγξουμε εάν τα παραγόμενα δεδομένα είναι καλύτερα από τον τυχαίο θόρυβο. Από τις δοκιμές μας, φαίνεται ότι η καλύτερη αρχιτεκτονική μας ήταν το WCGAN στο βήμα προπόνησης 4800, όπου πέτυχε ακρίβεια xgboost 70% (θυμηθείτε, ιδανικά, η ακρίβεια θα ήταν 50%). Επομένως, θα χρησιμοποιήσουμε αυτήν την αρχιτεκτονική για τη δημιουργία νέων δεδομένων απάτης.
Βλέπουμε στο σχήμα 7 ότι η ανάκληση (το κλάσμα των πραγματικών δειγμάτων απάτης που προσδιορίζονται με ακρίβεια στο σύνολο δοκιμών) δεν αυξάνεται καθώς χρησιμοποιούμε περισσότερα παραγόμενα δεδομένα απάτης για εκπαίδευση. Ο ταξινομητής xgboost είναι σε θέση να διατηρήσει όλες τις πληροφορίες που χρησιμοποίησε για να εντοπίσει απάτη από τις 100 πραγματικές περιπτώσεις και να μην μπερδευτεί από τα πρόσθετα δεδομένα που δημιουργούνται, ακόμη και όταν τα παίρνει από εκατοντάδες χιλιάδες κανονικές περιπτώσεις. Τα παραγόμενα δεδομένα από το μη εκπαιδευμένο WCGAN δεν βοηθούν ούτε βλάπτουν, δεν αποτελεί έκπληξη. Ωστόσο, τα παραγόμενα δεδομένα από το εκπαιδευμένο WCGAN δεν βοηθούν ούτε. Φαίνεται ότι τα δεδομένα δεν είναι αρκετά ρεαλιστικά. Μπορούμε να δούμε στο σχήμα 7 ότι όταν χρησιμοποιούνται πραγματικά δεδομένα απάτης για τη συμπλήρωση του σετ εκπαίδευσης, η ανάκληση αυξάνεται σημαντικά. Εάν το WCGAN είχε μόλις μάθει να αντιγράφει τα παραδείγματα εκπαίδευσης, χωρίς να δημιουργεί καθόλου, θα μπορούσε να έχει επιτύχει υψηλότερα ποσοστά ανάκλησης καθώς εμείς δείτε με τα πραγματικά δεδομένα .
Παρόλο που δεν καταφέραμε να δημιουργήσουμε δεδομένα απάτης με πιστωτικές κάρτες αρκετά ρεαλιστικά για να μας βοηθήσουν να εντοπίσουμε την πραγματική απάτη, μόλις βγήκαμε με αυτές τις μεθόδους. Θα μπορούσαμε να εκπαιδεύσουμε περισσότερο, με μεγαλύτερα δίκτυα και να συντονίσουμε τις παραμέτρους για τις αρχιτεκτονικές που δοκιμάσαμε σε αυτό το άρθρο. Οι τάσεις στην ακρίβεια xgboost και την απώλεια διακριτών υποδηλώνουν ότι περισσότερη εκπαίδευση θα βοηθήσει τις αρχιτεκτονικές WGAN και WCGAN. Μια άλλη επιλογή είναι να επανεξετάσετε τον καθαρισμό δεδομένων που κάναμε, ίσως να σχεδιάσετε μερικές νέες μεταβλητές ή να αλλάξετε εάν και πώς αντιμετωπίζουμε την ασυμμετρία σε χαρακτηριστικά. Ίσως θα βοηθούσαν διαφορετικά σχήματα ταξινόμησης των δεδομένων απάτης.
Θα μπορούσαμε επίσης να δοκιμάσουμε άλλες αρχιτεκτονικές GAN. ο ΔΡΑΝΗ έχει θεωρητικά και πειραματικά στοιχεία που δείχνουν ότι εκπαιδεύεται γρηγορότερα και πιο σταθερά από ό, τι τα GAN Wasserstein. Θα μπορούσαμε να ενσωματώσουμε μεθόδους που κάνουν χρήση της ημι-εποπτευόμενης μάθησης, οι οποίες έχουν δείξει υπόσχεση στη μάθηση από περιορισμένα εκπαιδευτικά σύνολα (βλ. « Βελτιωμένες τεχνικές για την εκπαίδευση GAN '). Θα μπορούσαμε να δοκιμάσουμε μια αρχιτεκτονική που μας δίνει κατανοητά από τον άνθρωπο μοντέλα, ώστε να μπορέσουμε να κατανοήσουμε καλύτερα τη δομή των δεδομένων (βλ. InfoGAN ).
Πρέπει επίσης να παρακολουθούμε τις νέες εξελίξεις στον τομέα, και τελευταίο αλλά σίγουρα όχι λιγότερο σημαντικό, μπορούμε να εργαστούμε για τη δημιουργία των δικών μας καινοτομιών σε αυτόν τον ταχέως αναπτυσσόμενο χώρο.
Μπορείτε να βρείτε όλο τον σχετικό κώδικα για αυτό το άρθρο σε αυτό Αποθήκη GitHub .
Οι συναρτήσεις c++ εκτός από τις κύριες εκτελούνται:Σχετίζεται με: Οι πολλές εφαρμογές του Gradient Descent στο TensorFlow
Το GAN είναι ένας αλγόριθμος μηχανικής εκμάθησης όπου ένα νευρωνικό δίκτυο δημιουργεί τα δεδομένα ενώ ένα άλλο καθορίζει εάν η έξοδος φαίνεται πραγματική. Τα δύο δίκτυα ανταγωνίζονται μεταξύ τους για να βελτιώσουν τον ρεαλισμό των παραγόμενων δεδομένων.