Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder

* Thjesht për hir të të mësuarit të Mësimit të Makinerisë, natyrisht. Nën vështrimin paksa të pakënaqur të gruas së tij të dashur.

Ndoshta nuk ka asnjë aplikim kaq të thjeshtë në nivelin e reflekseve kurrizore sa Tinder. Për ta përdorur atë, ju duhet vetëm një gisht për të rrëshqitur dhe disa neurone për të zgjedhur vajzat ose burrat që ju pëlqejnë më shumë. Një zbatim ideal i forcës brutale në zgjedhjen e çifteve.

Vendosa që kjo do të ishte një mënyrë e mirë për të ndjerë pak mësimin e makinerive në një kartë të re grafike. Gjithçka që mbetet është t'i shpjegoj gruas sime se nuk kam nevojë për një grua të re më të trashë dhe thjesht po trajnoj rrjetet nervore.

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder

Cili është problemi me rrjetet e takimeve?

Kishte një burim të tillë - Ashley Madison. Specifike, me sloganin “Jeta është e shkurtër. Bëni një aferë." Audienca kryesore janë burra të martuar që kërkojnë një lidhje në krah. Fitimi i parave është gjithashtu argëtues - përveç standardit "shpenzoni pikë për të pëlqyer dhe shkruar", ata kërkuan 19 dollarë për të fshirë llogarinë e një përdoruesi pa lënë gjurmë.

Në vitin 2015, faqja rrjedh natyrshëm dhe 60 GB të dhëna personale dolën në domenin publik. Përveç shumë familjeve të shkatërruara, kjo rrjedhje u dha shumë informacione interesante analistëve. Gjithmonë dyshoja se kishte shumë më tepër meshkuj në faqet e takimeve, por në këtë rast doli mjaft interesante. Gazetarja Annalee Newitz duke analizuar të dhënat e rrjedhura zbuloi se nga 5 milionë përdorues, vetëm 12 ishin të ngjashme me llogaritë e vërteta të vajzave dhe përdoreshin rregullisht. Pjesa tjetër ishin thjesht robotë që bisedonin me vizitorët meshkuj.

Një mbizotërim i tillë ndaj llogarive të meshkujve është tipik jo vetëm për këtë burim, por edhe për shumicën e vendeve të tjera të takimeve. Jam i sigurt se shumë e kanë hasur këtë situatë pa dyshim të padrejtë, kur duhet të planifikosh me kujdes një njohje, por vajza duhet vetëm të regjistrohet. Le të lëmë mënjanë cilësinë e kësaj turme fansash, por fakti është i pamohueshëm se ekuilibri i kërkesës dhe ofertës është zhvendosur qartë në favor të vajzave.

Tinder Tinder

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder
Forca ideale brute në marrëdhëniet gjinore

Karakteristika kryesore e kësaj platforme është kostoja e ulët për të njohur. Mjafton një rastësi e dy rrëshqitjeve dhe tashmë po komunikoni me një person potencialisht interesant. Problemi është se i njëjti çekuilibër gjinor çon në faktin se shumica e vajzave do të kenë dhjetëra ndeshje në ditë. Kjo do të thotë që ata me shumë mundësi nuk do të kenë kohë për t'ju kushtuar vëmendje mes kandidatëve të tjerë.

Është mjaft e qartë se platforma nënkupton pak mundësi për të vlerësuar botën e thellë të brendshme të një personi nga një shikim i dytë e gjysmë në një foto me rroba banje ose duke drejtuar një makinë të lyer në modë. Prandaj, nëse nuk dukeni thjesht hyjnor në fotografitë tuaja, nuk keni zgjidhje tjetër veçse të rrisni shanset tuaja duke adoptuar r-strategjia në disa lloje. E thënë thjesht, ne do të marrim forcë brutale dhe do të marrim vëllim për të rritur shanset tona për sukses në mbarështim. Meqenëse ndonjëherë ju duhet të shpërqendroheni nga ushqimi dhe gjumi, dhe rrëshqitjet janë të kufizuara, ndoshta do të preferoni që automatizimi të zgjedhë vajzat ose burrat që i përshtaten më mirë shijeve tuaja. Flokëkuqe të shkurtra ose brune të gjata – varet nga ju.

Mbledhja e të dhënave

Para së gjithash, ju nevojiten shumë të dhëna për saktësi normale. Kushdo që ka hasur në mësimin e makinerive e di se sa e vështirë mund të jetë të prodhojë një grup të dhënash të mbledhur dhe të etiketuar saktë. Teorikisht, çdo burim i ngjashëm do të jetë i përshtatshëm si burim të dhënash, qoftë Instagram apo rrjete të tjera sociale. Por është më mirë të stërviteni në ato mostra në të cilat rrjeti do të funksionojë në të ardhmen.

Le të marrim si bazë depon Tinder Automation. Fotografitë e Tinder janë gjithmonë të disponueshme për publikun, por funksioni "like" është tashmë i kufizuar. Prandaj, është e nevojshme të nxirren të gjitha gjallesat brenda rrezes dhe t'i shënosh me kujdes ato. Së pari ju duhet të përdorni një skenar mjaft të thjeshtë:

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)

Kjo do t'ju lejojë të shënoni grupin e të dhënave sa më shpejt të jetë e mundur me vetëm dy butona. Gracka kryesore qëndron në faktin se biblioteka e werkzeug ka thyer përputhshmërinë e prapambetur dhe do të duhet të detyrohet ta zvogëlojë atë. Përndryshe e hedh këtë gabim.

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'

Prandaj, në kërkesat.txt duhet të shkruani Werkzeug==0.16.1. Pastaj do të ngrihet.
Problemi i dytë është të merrni pikërisht këtë shenjë. Metoda standarde nga depoja nuk funksionoi për mua, por arrita ta marr atë nga tastiera e zhvilluesit. Për ta bërë këtë, shkoni te lidhje dhe nxirrni përgjigjen ndaj kërkesës POST në www.facebook.com/v2.6/dialog/oauth/confirm?dpr=1. Brenda ne kërkojmë 'access_token'. Për disa arsye nuk funksionoi herën e parë, por më pas e gjeta dhe e kodova në skenar.

Kërkesat e grupit të të dhënave

Ekzistojnë disa kërkesa kryesore për grupet e të dhënave të mësimit të makinerisë:

  1. Përshtatshmëria
  2. Uniformiteti
  3. diversitet

Mjaftueshmëria në këtë rast kërkon të paktën 10000 fotografi për të ndërtuar një model adekuat. Po, kjo është shumë. Kjo është në fakt arsyeja pse shërbimet si Amazon Mekanike Turk, ku për një tarifë mund t'ua delegoni shënimin e të dhënave tuaja njerëzve të tjerë. Nga ana tjetër, a dëshironi vërtet që robotit tuaj t'i pëlqejnë vajzat e mrekullueshme aziatike me fytyrë hënë ose vajzat po aq të bukura me rrënjë indiane? Megjithatë, modeli duhet të pasqyrojë shijen tuaj.

Nuk ka probleme të veçanta me shumëllojshmërinë; të gjitha fotografitë janë paraqitur nga kënde dhe ndriçim të ndryshëm. Me syze, fustane, rroba banje dhe kostume skish. Mund të lindë një problem me uniformitetin e grupit të të dhënave. Në mënyrë ideale, kur etiketojmë mostrën tonë, ajo duhet të përbëhet nga pjesë afërsisht të barabarta. Nëse përfundoni me një grup të dhënash "të shtrembër", do t'ju duhet ta holloni atë me fotografi nga burime të tjera. Do t'ju duhet të shtoni më tërheqëse, ose anasjelltas, do t'i përcaktoni në bazë të rezultatit të shënjimit. Unë kam diçka rreth 60% të bukur. Ose nuk jam shumë zgjedhës, ose jam thjesht me fat dhe ka shumë vajza të bukura përreth.

Unë gjithashtu nuk e përjashtoj hipotezën se ka shumë robotë midis tyre. Ne trajnojmë një robot që do të pëlqejë robotët e tjerë. Ka pak ironi në këtë.

Përpunimin e të dhënave

Ne kemi një mori fotosh të etiketuara, por ato janë shumë të përziera. Ditën, natën, nga pas dhe të tjera. Me keqardhje, e kuptoj që mësimi nga fotografitë nga një kënd i kundërt nuk do të jetë veçanërisht efektiv, pasi mostra do të jetë shumë e pabarabartë. Prandaj, alternativa më e mirë do të ishte përdorimi i fytyrave si një shenjë referimi e "bukurisë". Megjithatë, për ne, si për primatët e tjerë, ky është një parametër kyç.

Prandaj, le të përdorim Kaskada Haar. Ky është një algoritëm i shkëlqyer që ju lejon të gjeni fytyra në imazhe me një përqindje të ulët të gabimeve false pozitive.

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder
Kjo përshkruhet më në detaje në manual OpenCV

Në fazën tjetër, pasi vetëm fytyrat janë në mostër, ka kuptim të hiqni ngjyrën. Në fakt, vështirë se do t'ju duhet të zgjidhni midis denizenit të bukur blu të Pandorës ose bukuroshes me lëkurë të gjelbër.

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder
Burim

Tek njerëzit Hue, ngjyra e lëkurës nuk jep një kontribut të rëndësishëm në vlerësimet e atraktivitetit.
Prandaj, ia vlen të thjeshtoni punën e rrjetit nervor dhe të lini vetëm shkallë gri.

Ndërtesa model

Dua të them menjëherë se pa një kartë video të mirë dhe CUDA, ka shumë të ngjarë që thjesht nuk do të merrni një model të trajnuar në kohën e duhur. Prandaj, synoni menjëherë për llogaritjet në retë e specializuara ose duke përdorur python-CUDA.

Mora një shembull bazë me tre shtresa nga autori i depove dhe, çuditërisht, ai tregoi një saktësi prej rreth 72%, që është një rezultat mjaft i mirë.

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

Nëse ka një mostër të mirë, atëherë mund të jetë e mjaftueshme për të marrë një model të zbatueshëm.

Le të hapim robotin

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder

Faleminderit autorit të depove për një opsion të gatshëm për testimin e shpejtë të idesë. Në fakt, funksionon mjaft mirë në versionin bazë dhe, në parim, mund të lansohet në faqen tonë server i gatshëm me qira. Nuk do të jetë ende e mundur të stërviteni; për momentin ne nuk ofrojmë makina virtuale me mbështetje CUDA për llogaritjet, por ju mund të ekzekutoni diçka 24/7 pa asnjë problem. Bot është mjaft i lehtë, kështu që do të ishte më fitimprurëse të merrej një tarifë që paguan për burimet e përdorura.

Gjetjet

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder
Mendoj se jam shumë e lezetshme. Dhe unë kam një botë të brendshme të pasur. Kam marrë rreth 13 ndeshje brenda një ore. Për më tepër, disa herë vajzat shkruanin të para.
Si rezultat, ne përfunduam me dialogë shumë të bukur, ku thashë se hyra vetëm për të luajtur me mësimin e makinerive dhe etiketimin e të dhënave. Njëra nga vajzat ishte jashtëzakonisht e interesuar, pasi ajo vetë është një zhvilluese. Ekziston një ndjenjë e fortë që ajo përfundimisht do ta lexojë këtë postim në Habré. Unë me të vërtetë shpresoj që Oksana të ruajë anonimitetin tim. 🙂
* tund putrën dhe thotë përshëndetje

Pak për anën etike të çështjes

Për të qenë i sinqertë, nuk më pëlqen e gjithë ideja e robotizimit të marrëdhënieve midis burrave dhe vajzave. Ka diçka shumë të drejtë për të hedhur xhaketën mbi supet e një të huaji të ftohtë që qëndron vetëm. Ose afrohuni një vajze të bukur në një kafene verore dhe pini kafe së bashku. Dilni nga prapa monitorëve tashmë.

Vera është rreth e rrotull. Është koha për t'u njohur.

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder

Si të merrni 13 vajza në orë duke përdorur mësimin e makinerisë dhe Tinder

Burimi: www.habr.com

Shto një koment