* Žinoma, tik tam, kad išmoktume mašininio mokymosi. Po kiek nepatenkintu mylimos žmonos žvilgsniu.
Tikriausiai nėra tokio paprasto pritaikymo stuburo refleksų lygiui kaip Tinder. Kad galėtumėte juo naudotis, jums tereikia vieno piršto perbraukti ir kelių neuronų, kad pasirinktumėte jums labiausiai patinkančias merginas ar vyrus. Idealus brutalios jėgos įgyvendinimas renkantis poras.
Nusprendžiau, kad tai būtų geras būdas šiek tiek pajusti mašininį mokymąsi naudojant naują grafikos plokštę. Belieka paaiškinti žmonai, kad man nereikia naujos storesnės moters, o aš tik treniruoju neuroninius tinklus.
Kokia yra pažinčių tinklų problema?
Buvo toks šaltinis - Ashley Madison. Konkretus, su šūkiu „Gyvenimas trumpas. Turėkite romaną“. Pagrindinė auditorija – vedę vyrai, ieškantys romano iš šono. Pajamų gavimas taip pat yra įdomus – be standartinių „išleisk taškų, kad patiktų ir rašytum“, jie paprašė 19 USD, kad pašalintų vartotojo paskyrą be pėdsakų.
2015 metais svetainė natūraliai nutekėjo ir 60 GB asmens duomenų nutekėjo į viešąją erdvę. Be daugybės sunaikintų šeimų, šis nutekėjimas analitikams suteikė daug įdomios informacijos. Visada įtariau, kad pažinčių svetainėse vyrų daug daugiau, bet šiuo atveju tai pasirodė gana įdomu. Žurnalistė Annalee Newitz
Tokia vyrų paskyrų persvara būdinga ne tik šiam šaltiniui, bet ir daugumai kitų pažinčių svetainių. Esu tikra, kad ne vienam yra tekę susidurti su tokia neabejotinai nesąžininga situacija, kai tenka kruopščiai planuoti pažintį, tačiau merginai tereikia užsiregistruoti. Palikime nuošalyje šios minios gerbėjų kokybę, bet faktas neabejotinas, kad pasiūlos ir paklausos balansas aiškiai pasislenka merginų naudai.
Tinder funkcija
Ideali brutali jėga lyčių santykiuose
Pagrindinis šios platformos bruožas yra maža kaina už vieną pažintį. Pakanka dviejų braukimų sutapimo ir jau bendrauji su galimai įdomiu žmogumi. Problema ta, kad tas pats lyčių disbalansas lemia tai, kad dauguma merginų turės dešimtis rungtynių per dieną. Tai reiškia, kad jie greičiausiai neturės laiko atkreipti į jus dėmesio tarp kitų kandidatų.
Visiškai aišku, kad platforma suponuoja menką galimybę iš pusantros sekundės žvilgsnio į nuotrauką su maudymosi kostiumėliu ar važiuojant madingu tamsintu automobiliu įvertinti gilų žmogaus vidinį pasaulį. Todėl, jei savo nuotraukose neatrodote tiesiog dieviškai, neturite kito pasirinkimo, kaip tik padidinti savo galimybes įsivaikinus
Duomenų rinkimas
Visų pirma, norint užtikrinti normalų tikslumą, reikia daug duomenų. Kiekvienas, susidūręs su mašininiu mokymusi, žino, kaip sunku sukurti teisingai surinktą ir pažymėtą duomenų rinkinį. Teoriškai duomenų šaltiniui tiks bet koks panašus šaltinis, ar tai būtų Instagram, ar kiti socialiniai tinklai. Tačiau geriausia treniruotis su tais pavyzdžiais, kuriuose tinklas veiks ateityje.
Paimkime saugyklą kaip pagrindą
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)
Tai leis jums kuo greičiau pažymėti duomenų rinkinį tik dviem mygtukais. Pagrindinis spąstas slypi tame, kad werkzeug bibliotekos atgalinis suderinamumas sutriko ir turės būti priverstas ją sumažinti. Priešingu atveju ji pateikia šią klaidą.
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'
Todėl reikalavimai.txt reikia parašyti Werkzeug==0.16.1. Tada jis pakils.
Antroji problema yra gauti šį žetoną. Standartinis metodas iš saugyklos man netiko, bet man pavyko jį gauti iš kūrėjo konsolės. Norėdami tai padaryti, eikite į
Duomenų rinkinio reikalavimai
Yra keli pagrindiniai mašininio mokymosi duomenų rinkinių reikalavimai:
- Tinkamumas
- Vienodumas
- Veislė
Norint sukurti tinkamą modelį, šiuo atveju reikia bent 10000 XNUMX nuotraukų. Taip, tai daug. Štai kodėl paslaugos mėgsta
Su įvairove ypatingų problemų nėra, visos nuotraukos pateikiamos įvairiais kampais ir apšvietimu. Akiniais, suknelėmis, maudymosi kostiumėliais ir slidinėjimo kostiumais. Gali kilti problemų dėl duomenų rinkinio vienodumo. Idealiu atveju, kai paženkliname savo pavyzdį, jį turėtų sudaryti maždaug vienodos dalys. Jei gausite „kreiptą“ duomenų rinkinį, turėsite jį atskiesti nuotraukomis iš kitų šaltinių. Reikės pridėti patrauklesnių, arba atvirkščiai, pagal žymėjimo rezultatą nustatysite jas. Turiu kažką apie 60% gražaus. Arba nesu per daug išranki, arba man tiesiog pasisekė ir aplinkui daug gražių merginų.
Taip pat neatmetu hipotezės, kad tarp jų yra daug robotų. Mes mokome botą, kuris patiks kitiems robotams. Tame yra ironijos.
Duomenų apdorojimas
Turime krūvą pažymėtų nuotraukų, bet jos labai mišrios. Dieną, naktį, iš nugaros ir kt. Su apgailestavimu suprantu, kad mokymas iš nuotraukų atvirkštiniu kampu nebus ypač efektyvus, nes pavyzdys bus labai netolygus. Todėl geriausias pasirinkimas būtų naudoti veidus kaip „mielumo“ ženklą. Vis dėlto mums, kaip ir kitiems primatams, tai yra pagrindinis parametras.
Todėl naudokimės
Tai išsamiau aprašyta vadove
Kitame etape, kai pavyzdyje yra tik veidai, prasminga pašalinti spalvą. Tiesą sakant, vargu ar jums teks rinktis tarp gražios mėlynos Pandoros deizenės ar žaliaodės gražuolės.
Hue žmonių odos spalva neturi reikšmingo indėlio į patrauklumo įvertinimus.
Todėl verta supaprastinti neuroninio tinklo darbą ir palikti tik pilkos spalvos tonus.
Modelio kūrimas
Iš karto noriu pasakyti, kad be geros vaizdo plokštės ir CUDA greičiausiai tiesiog negausite apmokyto modelio tinkamu laiku. Todėl nedelsdami stenkitės atlikti skaičiavimus specializuotuose debesyse arba naudodami python-CUDA.
Aš paėmiau pagrindinį trijų sluoksnių pavyzdį iš saugyklos autoriaus ir, stebėtinai, jis parodė maždaug 72% tikslumą, o tai yra gana geras rezultatas.
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'])
Jei yra geras pavyzdys, jo gali pakakti, kad būtų gautas tinkamas modelis.
Paleiskime botą
Dėkojame saugyklos autoriui už paruoštą variantą greitam idėjos išbandymui. Tiesą sakant, jis gana gerai veikia pagrindinėje versijoje ir iš esmės gali būti paleistas mūsų
rezultatai
Manau, kad esu labai miela. Ir aš turiu turtingą vidinį pasaulį. Per valandą sulaukiau 13 rungtynių. Be to, keletą kartų merginos rašė pirmosios.
Dėl to mes baigėme labai gražius dialogus, kuriuose sakiau, kad atėjau tik žaisti su mašininiu mokymusi ir duomenų ženklinimu. Viena iš merginų labai susidomėjo, nes ji pati yra kūrėja. Yra stiprus jausmas, kad ji galiausiai perskaitys šį įrašą apie Habré. Labai tikiuosi, kad Oksana išlaikys mano anonimiškumą. 🙂
*mojuoja letena ir pasisveikina
Šiek tiek apie etinę problemos pusę
Tiesą sakant, man nepatinka visa vyrų ir merginų santykių robotizavimo idėja. Yra kažkas labai teisingo, jei mesti striukę ant pečių šaltam nepažįstamam žmogui, kuris stovi vienas. Arba prieikite prie gražios merginos vasaros kavinėje ir kartu išgerkite kavos. Jau eik iš už monitorių.
Visur vasara. Pats laikas susipažinti.
Šaltinis: www.habr.com