Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder

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

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

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

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder

Ποιο είναι το πρόβλημα με τα Δίκτυα γνωριμιών

Υπήρχε ένας τέτοιος πόρος - Ashley Madison. Συγκεκριμένα, με το σλόγκαν "Η ζωή είναι σύντομη. "Κάντε μια σχέση". Το κύριο κοινό είναι παντρεμένοι άνδρες που αναζητούν μια σχέση στο πλάι. Η δημιουργία εσόδων είναι επίσης αστεία - εκτός από το τυπικό "ξοδέψτε πόντους για να σας αρέσει και να γράφετε" ζήτησαν 19 $ για να διαγράψετε τον λογαριασμό του χρήστη χωρίς ίχνος.

Το 2015, ο ιστότοπος διέρρευσε αναμενόμενα και 60 GB προσωπικών δεδομένων διέρρευσαν στο δημόσιο τομέα. Εκτός από τις πολλές διαλυμένες οικογένειες, αυτή η διαρροή παρείχε πολλές ενδιαφέρουσες πληροφορίες στους αναλυτές. Πάντα υποψιαζόμουν ότι υπήρχαν πολύ περισσότεροι άντρες σε ιστότοπους γνωριμιών, αλλά σε αυτή την περίπτωση αποδείχτηκε πολύ ενδιαφέρον. Η δημοσιογράφος Annalee Newitz αναλύοντας δεδομένα που διέρρευσαν διαπίστωσε ότι από 5 εκατομμύρια χρήστες, μόνο 12 έμοιαζαν με πραγματικούς λογαριασμούς κοριτσιών και χρησιμοποιούνταν τακτικά. Τα υπόλοιπα ήταν απλώς bots που επικοινωνούσαν με άνδρες επισκέπτες.

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

Χαρακτηριστικό Tinder

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder
The Perfect Brute Forcer στις Σχέσεις Φύλου

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

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

Συλλογή δεδομένων

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

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

from skimage.io import imread, imsave, imshow, show
import matplotlib.pyplot as plt
import pynder
from helpers import get_access_token, get_login_credentials
from io_helper import save_image

email, password, FBID = get_login_credentials()
FBTOKEN = get_access_token(email, password)
session = pynder.Session(facebook_token=FBTOKEN)

while True:
    users = session.nearby_users()
    for user in users:
        photos = user.get_photos()
        print("Fetched user photos..")
        for photo in photos:
            print(photo)
            image = imread(photo)
            imshow(image)
            show()

            input_string = "Write 1 to like. Write 2 to dislike."
            ans = str(input(input_string)).lower()

            if ans == "1":
                save_image(image, photo, True)
            else:
                save_image(image, photo, False)

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

Traceback (most recent call last):
  File "img_scrape.py", line 4, in <module>
    from helpers import get_access_token, get_login_credentials
  File "/home/someone/tmp/TinderAutomation/helpers.py", line 1, in <module>
    import robobrowser
  File "/home/someone/tmp/TinderAutomation/venv/lib/python3.6/site-packages/robobrowser/__init__.py", line 3, in <module>
    from .browser import RoboBrowser
  File "/home/someone/tmp/TinderAutomation/venv/lib/python3.6/site-packages/robobrowser/browser.py", line 8, in <module>
    from werkzeug import cached_property
ImportError: cannot import name 'cached_property'

Επομένως, στο request.txt πρέπει να γράψετε Werkzeug==0.16.1. Μετά θα απογειωθεί.
Το δεύτερο πρόβλημα είναι να αποκτήσετε αυτό ακριβώς το διακριτικό. Η τυπική μέθοδος από το αποθετήριο δεν λειτούργησε για μένα, αλλά κατάφερα να την αποκτήσω από την κονσόλα προγραμματιστή. Για να το κάνετε αυτό, μεταβείτε στο σύνδεσμος και εξάγουμε την απάντηση στο αίτημα POST στο www.facebook.com/v2.6/dialog/oauth/confirm?dpr=1. Μέσα αναζητούμε το 'access_token'. Για κάποιο λόγο δεν λειτούργησε την πρώτη φορά, αλλά μετά το βρήκα και το έβαλα σκληρό στο σενάριο.

Απαιτήσεις συνόλου δεδομένων

Υπάρχουν πολλές βασικές απαιτήσεις για σύνολα δεδομένων μηχανικής εκμάθησης:

  1. Επάρκεια
  2. Ομοιομορφία
  3. ποικιλία

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

Δεν υπάρχουν ιδιαίτερα προβλήματα με την ποικιλομορφία. όλες οι φωτογραφίες παρουσιάζονται σε ποικίλες γωνίες και φωτισμό. Με γυαλιά, φορέματα, μαγιό και φόρμες του σκι. Το πρόβλημα μπορεί να προκύψει με την ομοιομορφία του συνόλου δεδομένων. Στην ιδανική περίπτωση, όταν επισημαίνουμε το δείγμα μας, θα πρέπει να αποτελείται από περίπου ίσα μέρη. Εάν καταλήξετε με ένα «λοξό» σύνολο δεδομένων, θα πρέπει να το συμπληρώσετε με φωτογραφίες από άλλες πηγές. Θα χρειαστεί να προσθέσετε πιο ελκυστικά ή, αντίθετα, θα καθορίσετε με βάση τα αποτελέσματα της σήμανσης. Πήρα κάτι γύρω στο 60% από τα χαριτωμένα. Είτε δεν είμαι πολύ επιλεκτική, είτε είμαι απλά τυχερή και υπάρχουν πολλά όμορφα κορίτσια τριγύρω.

Δεν αποκλείω επίσης την υπόθεση ότι ανάμεσά τους υπάρχουν πολλά bots. Εκπαιδεύουμε ένα bot που θα αρέσει σε άλλα bot. Υπάρχει μια ορισμένη ειρωνεία σε αυτό.

Επεξεργασία δεδομένων

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

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

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder
Αυτό περιγράφεται με περισσότερες λεπτομέρειες στο εγχειρίδιο. OpenCV

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

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder
Πηγή

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

Κατασκευή μοντέλου

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

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

model = Sequential()
model.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(img_size, img_size, 3)))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Convolution2D(32, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))

model.add(Convolution2D(64, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
          
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))

adam = optimizers.SGD(lr=1e-4, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer= adam,
              metrics=['accuracy'])

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

Εκκινήστε το bot

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder

Ευχαριστούμε τον συγγραφέα του αποθετηρίου για την έτοιμη έκδοση για τη γρήγορη δοκιμή της ιδέας. Στην πραγματικότητα, λειτουργεί αρκετά καλά στη βασική έκδοση και μπορεί, καταρχήν, να κυκλοφορήσει στη δική μας έτοιμος ενοικιασμένος διακομιστής. Δεν θα είναι δυνατή η εκπαίδευση ακόμα, αυτή τη στιγμή δεν παρέχουμε εικονικές μηχανές με υποστήριξη CUDA για υπολογισμούς, αλλά μπορείτε να εκτελέσετε κάτι για λειτουργία 24/7 χωρίς προβλήματα. Το bot είναι αρκετά ελαφρύ, επομένως θα ήταν πιο κερδοφόρο να λάβετε ένα τιμολόγιο με πληρωμή για τους πόρους που χρησιμοποιούνται.

Ευρήματα

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder
Υποθέτω ότι είμαι πολύ χαριτωμένος. Και έχω πλούσιο εσωτερικό κόσμο. Πήρα περίπου 13 αγώνες μέσα σε μια ώρα. Επιπλέον, αρκετές φορές τα κορίτσια έγραψαν πρώτα.
Το αποτέλεσμα ήταν μερικοί πολύ ωραίοι διάλογοι όπου θα έλεγα ότι μπήκα αποκλειστικά για να παίξω με τη μηχανική μάθηση και την επισήμανση δεδομένων. Ένα από τα κορίτσια ενδιαφέρθηκε εξαιρετικά, αφού η ίδια είναι προγραμματιστής. Υπάρχει μια έντονη αίσθηση ότι τελικά θα διαβάσει αυτή την ανάρτηση στο Habr. Ελπίζω πραγματικά ότι η Oksana θα διατηρήσει την ανωνυμία μου. 🙂
*κουνάει το πόδι και λέει γεια

Λίγα λόγια για την ηθική πλευρά του θέματος

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

Είναι καλοκαίρι παντού. Ήρθε η ώρα να γνωριστούμε.

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder

Πώς να μαζέψετε 13 κορίτσια την ώρα χρησιμοποιώντας Machine Learning και Tinder

Πηγή: www.habr.com

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster