Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder

* Protams, tikai maŔīnmācÄ«bas apguves labad. Zem viņa mīļotās sievas nedaudz neapmierinātā skatiena.

Iespējams, ka nav tik vienkārÅ”a pielietojuma mugurkaula refleksu lÄ«menim kā Tinder. Lai to izmantotu, jums ir nepiecieÅ”ams tikai viens pirksts, lai pārvilktu, un daži neironi, lai izvēlētos meitenes vai vÄ«rieÅ”us, kas jums patÄ«k vislabāk. Ideāla brutāla spēka Ä«stenoÅ”ana pāru atlasē.

Es nolēmu, ka tas bÅ«tu labs veids, kā nedaudz iejusties maŔīnmācÄ«bā jaunā grafikas kartē. Atliek tikai paskaidrot sievai, ka man nav vajadzÄ«ga jauna resnāka sieviete, un es tikai trenēju neironu tÄ«klus.

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder

Kāda ir iepazÄ«Å”anās tÄ«klu problēma?

Bija tāds resurss ā€“ EÅ”lija Medisone. Konkrēts, ar saukli ā€œDzÄ«ve ir Ä«sa. Ir romāns." Galvenā auditorija ir precēti vÄ«rieÅ”i, kuri meklē romānu malā. Monetizācija ir arÄ« jautra ā€” papildus standarta ā€œtērēt punktus, lai atzÄ«mētu patÄ«k un rakstÄ«tuā€, viņi prasÄ«ja 19 $, lai izdzēstu lietotāja kontu bez pēdām.

2015. gadā vietne dabiski noplÅ«da un 60 GB personas datu noplÅ«da publiskajā domēnā. Papildus daudzām iznÄ«cinātajām Ä£imenēm Ŕī noplÅ«de sniedza analÄ«tiÄ·iem daudz interesantas informācijas. Man vienmēr bija aizdomas, ka iepazÄ«Å”anās portālos ir daudz vairāk vÄ«rieÅ”u, bet Å”ajā gadÄ«jumā tas izrādÄ«jās diezgan interesanti. Žurnāliste AnnalÄ« Ņūta nopludināto datu analÄ«ze atklāja, ka no 5 miljoniem lietotāju tikai 12 000 bija lÄ«dzÄ«gi Ä«stiem meiteņu kontiem un tika regulāri izmantoti. Pārējie bija tikai roboti, kas tērzēja ar vÄ«rieÅ”u kārtas apmeklētājiem.

Šāds vÄ«rieÅ”u kontu pārsvars ir raksturÄ«gs ne tikai Å”im resursam, bet arÄ« lielākajai daļai citu iepazÄ«Å”anās vietņu. Esmu pārliecināts, ka daudzi ir saskāruÅ”ies ar Å”o neapÅ”aubāmi negodÄ«go situāciju, kad rÅ«pÄ«gi jāplāno iepazÄ«Å”anās, bet meitenei tikai jāpiereÄ£istrējas. Atstāsim malā Ŕī fanu pūļa kvalitāti, taču nenoliedzams, ka piedāvājuma un pieprasÄ«juma lÄ«dzsvars ir nepārprotami nobÄ«dÄ«ts par labu meitenēm.

Tinder funkcija

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder
Ideāls brutāls spēks dzimumu attiecībās

Å Ä«s platformas galvenā iezÄ«me ir zemās izmaksas par vienu paziņu. Pietiek ar divu Å”vÄ«ku sakritÄ«bu, un jÅ«s jau sazināties ar potenciāli interesantu cilvēku. Problēma ir tā, ka viena un tā pati dzimumu nelÄ«dzsvarotÄ«ba noved pie tā, ka lielākajai daļai meiteņu dienā bÅ«s desmitiem spēļu. Tas nozÄ«mē, ka viņiem, visticamāk, nebÅ«s laika pievērst jums uzmanÄ«bu citu kandidātu vidÅ«.

PilnÄ«gi skaidrs, ka platforma paredz maz iespēju novērtēt cilvēka dziļo iekŔējo pasauli no pusotras sekundes skatiena uz fotogrāfiju peldkostÄ«mā vai braucot ar modernu tonētu auto. Tāpēc, ja jÅ«s savās fotogrāfijās neizskatāties vienkārÅ”i dieviŔķi, jums nav citas izvēles, kā palielināt savas iespējas, adoptējot r-stratēģija dažās sugās. VienkārÅ”i sakot, mēs izmantosim brutālu spēku un uzņemsim apjomu, lai palielinātu mÅ«su izredzes gÅ«t panākumus. Tā kā dažkārt jums ir jānovērÅ” uzmanÄ«ba no ēdiena un miega, un vilkÅ”ana ir ierobežota, jÅ«s, iespējams, dodat priekÅ”roku tam, lai automatizācija izvēlētos meitenes vai vÄ«rieÅ”us, kas vislabāk atbilst jÅ«su gaumei. ÄŖsas rudmates vai garas brunetes ā€“ tas ir atkarÄ«gs no jums.

Datu vākŔana

Pirmkārt, normālai precizitātei ir nepiecieÅ”ams daudz datu. Ikviens, kurÅ” ir saskāries ar maŔīnmācÄ«Å”anos, zina, cik grÅ«ti var bÅ«t izveidot pareizi savāktu un marķētu datu kopu. Teorētiski kā datu avots bÅ«s piemērots jebkurÅ” lÄ«dzÄ«gs resurss, vai tas bÅ«tu Instagram vai citi sociālie tÄ«kli. Bet vislabāk ir apmācÄ«t tos paraugus, uz kuriem tÄ«kls darbosies nākotnē.

Ņemsim par pamatu repozitoriju Tinder automatizācija. Tinder fotogrāfijas vienmēr ir publiski pieejamas, taču funkcija "patÄ«k" jau ir ierobežota. Tāpēc ir nepiecieÅ”ams iegÅ«t visas dzÄ«vās bÅ«tnes rādiusā un rÅ«pÄ«gi tās iezÄ«mēt. Vispirms jums ir jāizmanto diezgan vienkārÅ”s skripts:

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)

Tas ļaus pēc iespējas ātrāk atzÄ«mēt datu kopu tikai ar divām pogām. Galvenā problēma slēpjas faktā, ka werkzeug bibliotēkai ir bojāta atpakaļejoÅ”a savietojamÄ«ba un tai bÅ«s jāsamazina tās versija. Pretējā gadÄ«jumā tiek parādÄ«ta Ŕī kļūda.

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'

Tāpēc failā prasības.txt jāraksta Werkzeug==0.16.1. Tad tas pacelsies.
Otra problēma ir iegÅ«t tieÅ”i Å”o marÄ·ieri. Standarta metode no repozitorija man nederēja, taču man izdevās to iegÅ«t no izstrādātāja konsoles. Lai to izdarÄ«tu, dodieties uz saite un izņemiet atbildi uz POST pieprasÄ«jumu www.facebook.com/v2.6/dialog/oauth/confirm?dpr=1. IekÅ”pusē mēs meklējam 'access_token'. Kādu iemeslu dēļ tas nedarbojās pirmo reizi, bet tad es to atradu un iekodēju skriptā.

Prasības datu kopai

MaŔīnmācīŔanās datu kopām ir vairākas galvenās prasības:

  1. Atbilstība
  2. Vienveidība
  3. Å Ä·irne

Lai Å”ajā gadÄ«jumā bÅ«tu pietiekami, ir nepiecieÅ”ams vismaz 10000 XNUMX fotogrāfiju, lai izveidotu atbilstoÅ”u modeli. Jā, tas ir daudz. TieÅ”i tāpēc pakalpojumiem patÄ«k Amazon Mehāniskais Turk, kur par maksu varat deleģēt savas datu kopas iezÄ«mÄ“Å”anu citām personām. No otras puses, vai jÅ«s patieŔām vēlaties, lai jÅ«su robotam patiktu brÄ«niŔķīgas Āzijas meitenes ar mēness seju vai tikpat skaistas meitenes ar indieÅ”u saknēm? Tomēr modelim jāatspoguļo jÅ«su gaume.

Ar daudzveidÄ«bu nav Ä«paÅ”u problēmu, visas fotogrāfijas ir attēlotas no dažādiem leņķiem un apgaismojuma. Brillēs, kleitās, peldkostÄ«mos un slēpoÅ”anas kostÄ«mos. Problēma var rasties saistÄ«bā ar datu kopas vienveidÄ«bu. Ideālā gadÄ«jumā, ja mēs marķējam mÅ«su paraugu, tam vajadzētu sastāvēt no aptuveni vienādām daļām. Ja datu kopa ir ā€œÅ”Ä·Ä«baā€, tā bÅ«s jāatŔķaida ar fotogrāfijām no citiem avotiem. Jums bÅ«s jāpievieno pievilcÄ«gāki, vai otrādi, jÅ«s tos noteiksiet, pamatojoties uz uzcenojuma rezultātu. Man ir kaut kas apmēram 60% skaists. Vai nu es neesmu pārāk izvēlÄ«ga, vai arÄ« man vienkārÅ”i ir paveicies un apkārt ir daudz skaistu meiteņu.

Es arī nenoliedzu hipotēzi, ka starp tiem ir daudz robotu. Mēs apmācām botu, kuram patiks citi roboti. Šajā ziņā ir zināma ironija.

Datu apstrāde

Mums ir vairākas atzÄ«mētas fotogrāfijas, taču tās ir ļoti dažādas. Dienā, naktÄ«, no aizmugures un citi. Ar nožēlu saprotu, ka mācÄ«Å”ana no fotogrāfijām no pretējā leņķa nebÅ«s Ä«paÅ”i efektÄ«va, jo paraugs bÅ«s ļoti nevienmērÄ«gs. Tāpēc labākais risinājums bÅ«tu izmantot sejas kā ā€œjaukumaā€ atsauces zÄ«mi. Tomēr mums, tāpat kā citiem primātiem, tas ir galvenais parametrs.

Tāpēc izmantosim Haar kaskādes. Šis ir lielisks algoritms, kas ļauj attēlos atrast sejas ar zemu viltus pozitīvu kļūdu procentuālo daļu.

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder
Tas ir sīkāk aprakstīts rokasgrāmatā OpenCV

Nākamajā posmā, kad paraugā ir tikai sejas, ir jēga noņemt krāsu. Patiesībā jums diez vai būs jāizvēlas starp Pandoras skaisto zilo iemītnieku vai zaļādaino skaistuli.

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder
Avots

Hue cilvēkiem ādas krāsa nedod būtisku ieguldījumu pievilcības vērtējumā.
Tāpēc ir vērts vienkārÅ”ot neironu tÄ«kla darbu un atstāt tikai pelēktoņu.

Modeļu veidoŔana

Uzreiz gribu teikt, ka bez labas videokartes un CUDA jÅ«s, visticamāk, vienkārÅ”i nesaņemsiet apmācÄ«tu modeli atbilstoŔā laikā. Tāpēc nekavējoties mēģiniet veikt aprēķinus specializētos mākoņos vai izmantojot python-CUDA.

Es paņēmu pamata trÄ«s slāņu piemēru no repozitorija autora, un pārsteidzoŔā kārtā tas uzrādÄ«ja ap 72% precizitāti, kas ir diezgan labs rezultāts.

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

Ja ir labs paraugs, ar to var pietikt, lai iegūtu izmantojamu modeli.

Palaidīsim botu

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder

Paldies repozitorija autoram par gatavu variantu ātrai idejas testÄ“Å”anai. Faktiski tas darbojas diezgan labi pamata versijā, un principā to var palaist mÅ«su gatavs Ä«rēts serveris. Pagaidām nevarēs apmācÄ«t, Å”obrÄ«d mēs nenodroÅ”inām virtuālās maŔīnas ar CUDA atbalstu aprēķiniem, taču jÅ«s varat kaut ko palaist 24/7 bez problēmām. Bots ir diezgan viegls, tāpēc izdevÄ«gāk bÅ«tu ņemt tarifu, kas maksā par izmantotajiem resursiem.

rezultātus

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder
Laikam esmu ļoti mÄ«lÄ«ga. Un man ir bagāta iekŔējā pasaule. Es dabÅ«ju apmēram 13 spēles stundas laikā. Turklāt vairākas reizes meitenes rakstÄ«ja pirmās.
Rezultātā mēs nonācām pie ļoti jaukiem dialogiem, kuros es teicu, ka esmu ieradies tikai tāpēc, lai spēlētu ar maŔīnmācÄ«Å”anos un datu marÄ·Ä“Å”anu. Viena no meitenēm bija ārkārtÄ«gi ieinteresēta, jo viņa pati ir izstrādātāja. Ir spēcÄ«ga sajÅ«ta, ka viņa galu galā izlasÄ«s Å”o ziņu vietnē HabrĆ©. Ä»oti ceru, ka Oksana saglabās manu anonimitāti. šŸ™‚
*pamāj ar ķepu un saka čau

Mazliet par jautājuma ētisko pusi

GodÄ«gi sakot, man nepatÄ«k visa ideja robotizēt attiecÄ«bas starp vÄ«rieÅ”iem un meitenēm. Ir kaut kas ļoti pareizi mest jaku pār pleciem aukstam sveÅ”iniekam, kurÅ” stāv viens pats. Vai arÄ« pieiet pie glÄ«tas meitenes vasaras kafejnÄ«cā un kopā iedzert kafiju. Izkāpiet jau aiz monitoriem.

Visapkārt ir vasara. Ir pienācis laiks iepazīties.

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder

Kā uzņemt 13 meitenes stundā, izmantojot maŔīnmācÄ«Å”anos un Tinder

Avots: www.habr.com

Pievieno komentāru