Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével

*Persze pusztán a gépi tanulás tanulása érdekében. Szeretett felesége kissé elégedetlen tekintete alatt.

Valószínűleg nincs olyan egyszerű alkalmazás a gerincreflexek szintjére, mint a Tinder. A használatához csak egy ujjra van szüksége a simításhoz, és néhány idegsejtre, hogy kiválaszthassa a legjobban tetsző lányokat vagy férfiakat. A nyers erő ideális megvalósítása a párválasztásban.

Úgy döntöttem, hogy ez egy jó módja annak, hogy egy kicsit átérezzük a gépi tanulást egy új grafikus kártyán. Nem marad más hátra, mint elmagyarázni a feleségemnek, hogy nincs szükségem új kövérebb nőre, és csak a neurális hálózatokat edzem.

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével

Mi a probléma a társkereső hálózatokkal?

Volt egy ilyen forrás - Ashley Madison. Konkrétan, a szlogennel: „Az élet rövid. Viszonya van." A fő közönség házas férfiak, akik oldalról viszonyt keresnek. A bevételszerzés is szórakoztató – a szokásos „költési pontokat lájkolni és írni” mellett 19 dollárt kértek a felhasználói fiókok nyomtalan törlésére.

2015-ben az oldal természetesen kiszivárgott, és 60 GB személyes adat szivárgott ki a nyilvánosság elé. A sok megsemmisült család mellett ez a kiszivárogtatás sok érdekes információval szolgált az elemzők számára. Mindig is sejtettem, hogy sokkal több férfi van a társkereső oldalakon, de ebben az esetben ez elég érdekesnek bizonyult. Annalee Newitz újságíró kiszivárgott adatok elemzése azt találta, hogy az 5 millió felhasználóból csak 12 000 hasonlít a valódi lányfiókokhoz, és rendszeresen használták őket. A többiek csak botok voltak, akik férfi látogatókkal csevegtek.

A férfi fiókok ilyen túlsúlya nem csak erre az erőforrásra jellemző, hanem a legtöbb más társkereső oldalra is. Biztos vagyok benne, hogy sokan találkoztak már ezzel a kétségtelenül igazságtalan helyzettel, amikor alaposan meg kell tervezni az ismerkedést, de a lánynak csak regisztrálnia kell. Hagyjuk ennek a rajongói tömegnek a minőségét, de az tagadhatatlan, hogy a kereslet-kínálat egyensúlya egyértelműen a lányok javára tolódik el.

Tinder funkció

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével
Az ideális nyers erő a nemek közötti kapcsolatokban

Ennek a platformnak a fő jellemzője az alacsony ismeretségenkénti költség. Elég két lehúzás egybeesése, és máris egy potenciálisan érdekes személlyel kommunikálsz. A probléma az, hogy ugyanaz a nemek közötti egyenlőtlenség ahhoz a tényhez vezet, hogy a legtöbb lánynak naponta több tucat meccse lesz. Ez azt jelenti, hogy nagy valószínűséggel nem lesz idejük rád figyelni a többi jelölt között.

Teljesen egyértelmű, hogy a platform kevés lehetőséget rejt magában, hogy másfél másodperces pillantással felmérje az ember mély belső világát egy fürdőruhás fényképre vagy egy divatos színezett autó vezetése során. Ezért, ha nem néz ki egyszerűen istenien a fényképein, nincs más választása, mint hogy növelje esélyeit az örökbefogadással r-stratégia egyes fajoknál. Egyszerűen fogalmazva: nyers erővel és mennyiséggel növeljük a tenyésztési siker esélyeit. Mivel időnként el kell terelnie a figyelmét az étkezéstől és az alvástól, és a csúsztatások korlátozottak, valószínűleg jobban fogja szeretni, ha az automatizálás kiválasztja az ízlésének leginkább megfelelő lányokat vagy férfiakat. Alacsony vörös hajú vagy magas barnák – ez rajtad múlik.

Adatgyűjtés

Először is sok adatra van szüksége a normál pontossághoz. Bárki, aki találkozott a gépi tanulással, tudja, milyen nehéz lehet helyesen összegyűjtött és címkézett adatkészletet előállítani. Elméletileg bármilyen hasonló forrás alkalmas lesz adatforrásként, legyen az Instagram vagy más közösségi hálózatok. De a legjobb azokon a mintákon oktatni, amelyeken a hálózat a jövőben működni fog.

Vegyük az adattárat alapul Tinder automatizálás. A Tinder fotói mindig nyilvánosan elérhetők, de a „tetszik” funkció már korlátozott. Ezért ki kell vonni az összes élőlényt a sugáron belül, és gondosan meg kell jelölni őket. Először egy meglehetősen egyszerű szkriptet kell használnia:

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)

Lehetővé teszi, hogy a lehető leggyorsabban megjelölje az adatkészletet mindössze két gombbal. A legfontosabb buktató az a tény, hogy a werkzeug könyvtár megszakította a visszamenőleges kompatibilitást, és kénytelen lesz leminősíteni. Ellenkező esetben ezt a hibát dobja ki.

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'

Ezért a követelmények.txt-be a Werkzeug==0.16.1-et kell írni. Aztán felszáll.
A második probléma éppen ennek a tokennek a megszerzése. A repository standard metódusa nekem nem jött be, de a fejlesztői konzolról sikerült megszereznem. Ehhez lépjen ide: link és bontsa ki a POST-kérésre adott választ www.facebook.com/v2.6/dialog/oauth/confirm?dpr=1. Belül keressük az 'access_token'-t. Valamiért először nem működött, de aztán megtaláltam, és bekódoltam a forgatókönyvbe.

Adatkészlet követelmények

Számos kulcsfontosságú követelmény van a gépi tanulási adatkészletekkel szemben:

  1. Megfelelőség
  2. Egyöntetűség
  3. sokféleség

A megfelelő modell elkészítéséhez ebben az esetben legalább 10000 XNUMX fényképre van szükség. Igen, ez sok. Valójában ezért szeretik a szolgáltatások Amazon Mechanical Turk, ahol térítés ellenében átruházhatja adatkészletének jelölését másokra. Másrészt, tényleg azt szeretnéd, hogy a botod a csodálatos holdarcú ázsiai lányokat kedvelje, vagy az indiai gyökerű, ugyanolyan szép lányokat? Ennek ellenére a modellnek tükröznie kell az Ön ízlését.

A változatossággal nincs különösebb probléma, minden fénykép különböző szögekből és megvilágításból kerül bemutatásra. Szemüvegben, ruhában, fürdőruhában és síruhában. Probléma adódhat az adathalmaz egységességével. Ideális esetben, ha a mintánkat címkézzük, körülbelül egyenlő részekből kell állnia. Ha „ferdített” adatkészletet kap, akkor azt más forrásból származó fényképekkel kell hígítania. Vonzóbbakat kell hozzáadnia, vagy fordítva, ezeket a jelölés eredménye alapján fogja meghatározni. Van valami 60% körüli szépem. Vagy nem vagyok túl válogatós, vagy csak szerencsém van, és sok szép lány van a környéken.

Nem vetem el azt a hipotézist sem, hogy sok bot van köztük. Olyan botot képezünk ki, amely tetszeni fog a többi robotnak. Van ebben némi irónia.

Adatfeldolgozás

Van egy csomó címkézett fotónk, de nagyon vegyesek. Nappal, éjszaka, hátulról és mások. Sajnálattal értem, hogy a fordított szögből készült fényképekből való tanítás nem lesz különösebben hatékony, mivel a minta nagyon egyenetlen lesz. Ezért a legjobb megoldás az lenne, ha az arcokat a „cukiság” referenciajeleként használnánk. Mégis számunkra, mint más főemlősök számára, ez kulcsfontosságú paraméter.

Ezért használjuk Haar zuhatag. Ez egy kiváló algoritmus, amely lehetővé teszi, hogy olyan arcokat találjon a képeken, amelyekben alacsony a hamis pozitív hibák aránya.

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével
Ez a kézikönyvben van részletesebben leírva OpenCV

A következő szakaszban, miután már csak arcok vannak a mintában, érdemes eltávolítani a színt. Valójában aligha kell választania Pandora gyönyörű kék ​​lakosa vagy a zöld bőrű szépség között.

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével
Forrás

A Hue embereknél a bőrszín nem járul hozzá jelentősen a vonzerő értékeléséhez.
Ezért érdemes leegyszerűsíteni a neurális hálózat munkáját, és csak a szürkeárnyalatokat hagyni.

Modellépület

Azonnal szeretném elmondani, hogy jó videokártya és CUDA nélkül valószínűleg egyszerűen nem fog megfelelő időben képzett modellt kapni. Ezért azonnal törekedjen a számításokra speciális felhőkben vagy python-CUDA használatával.

Egy alap háromrétegű példát vettem a repository szerzőjétől, és meglepő módon 72% körüli pontosságot mutatott, ami egész jó eredmény.

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'])

Ha van egy jó minta, akkor elegendő lehet egy működőképes modell beszerzése.

Indítsuk el a botot

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével

Köszönet az adattár szerzőjének az ötlet gyors tesztelésére kész lehetőségért. Valójában az alapverzióban egész jól működik, és elvileg nálunk is elindítható kész bérelt szerver. Egyelőre nem lesz lehetőség betanítani, jelenleg nem biztosítunk CUDA-támogatással rendelkező virtuális gépeket a számításokhoz, de a hét minden napján, a nap 24 órájában gond nélkül futtathat valamit. A bot meglehetősen könnyű, ezért jövedelmezőbb lenne olyan tarifát venni, amely fizeti a felhasznált erőforrásokat.

Álláspontja

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével
Azt hiszem, nagyon aranyos vagyok. És gazdag belső világom van. Valami 13 meccset kaptam egy órán belül. Sőt, többször a lányok írtak először.
Ennek eredményeként nagyon szép párbeszédek lettünk, ahol elmondtam, hogy kizárólag a gépi tanulással és az adatcímkézéssel játszom. Az egyik lány rendkívül érdeklődött, hiszen ő maga is fejlesztő. Van egy erős érzés, hogy végül elolvassa ezt a bejegyzést a Habrén. Nagyon remélem, hogy Oksana megőrzi névtelenségemet. 🙂
*legyint a mancsával és köszön

Egy kicsit a kérdés etikai oldaláról

Őszintén szólva nem szeretem a férfiak és lányok közötti kapcsolatok robotizálásának gondolatát. Van abban valami nagyon helyes, ha egy fázós, egyedül álló idegen vállára dobja a kabátját. Vagy közelíts meg egy csinos lányt egy nyári kávézóban és igyunk együtt egy kávét. Tűnj már ki a monitorok mögül.

Körülötte nyár van. Ideje ismerkedni.

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével

Hogyan lehet óránként 13 lányt felvenni a gépi tanulás és a Tinder segítségével

Forrás: will.com

Hozzászólás