*Uitsluitlik ter wille van die studie van Masjienleer, natuurlik. Onder die effens ontevrede blik van sy geliefde vrou.
Daar is waarskynlik geen toepassing so eenvoudig op die vlak van ruggraatreflekse soos Tinder nie. Om dit te gebruik, is een vinger genoeg om te swiep en 'n paar neurone om die meisies of mans te kies waarvan jy die beste hou. Die ideale implementering van brute krag in die keuse van 'n paar.
Ek het gedink dit is 'n goeie manier om 'n bietjie voorsmakie van masjienleer op 'n nuwe grafiese kaart te kry. Al wat oorbly is om aan my vrou te verduidelik dat ek nie ’n nuwe dikker vrou nodig het nie, maar ek oefen net neurale netwerke op.
Wat is die probleem met dating netwerke
Daar was so 'n hulpbron - Ashley Madison. Spesifiek, met die slagspreuk “Die lewe is kort. Het 'n verhouding. Die hoofgehoor is getroude mans wat 'n affair aan die kant soek. Monetisering is ook pret – benewens die standaard “bestee punte om te hou en te skryf,” het hulle vir $19 gevra om 'n gebruiker se rekening sonder 'n spoor uit te vee.
In 2015 het die webwerf natuurlik uitgelek en 60 GB persoonlike data het in die publieke domein uitgelek. Benewens die talle verwoeste gesinne, het hierdie lekkasie baie interessante inligting aan ontleders gegee. Ek het altyd vermoed dat daar baie meer mans op afspraakwebwerwe is, maar in hierdie geval was dit nogal interessant. Annalee Newitz joernalis
So 'n oorwig teenoor manlike rekeninge is tipies nie net vir hierdie hulpbron nie, maar ook vir die meeste ander afspraakwebwerwe. Ek is seker dat baie hierdie ongetwyfeld onregverdige situasie teëgekom het, wanneer jy mooi moet dink oor 'n kennis, en 'n meisie moet net registreer. Kom ons los die kwaliteit van hierdie skare aanhangers eenkant, maar die feit is onmiskenbaar, die balans van vraag en aanbod is duidelik verskuif ten gunste van meisies.
Tinder-kenmerk
Die ideale brute-forcer in geslagsverhoudings
Die belangrikste kenmerk van hierdie platform is die lae koste per kennis. Die toeval van twee swipes is genoeg en jy praat reeds met 'n potensieel interessante persoon. Die probleem is dat dieselfde geslagswanbalans daartoe lei dat die meeste meisies tientalle wedstryde per dag sal hê. Dit beteken dat hulle heel waarskynlik nie tyd sal hê om aandag aan jou onder ander kandidate te gee nie.
Dit is baie duidelik dat die platform min geleenthede impliseer om die diep innerlike wêreld van 'n persoon te assesseer deur 'n een en 'n half sekonde kyk na 'n foto in 'n swembroek of om 'n nuwerwets getinte motor te bestuur. Daarom, as jy nie bloot goddelik op jou foto's lyk nie, het jy geen ander keuse as om jou kanse te vergroot deur aan te neem nie
Versameling van data
Eerstens het u baie data nodig vir normale akkuraatheid. Enigiemand wat met masjienleer te doen gehad het, weet hoe moeilik dit kan wees om 'n korrek saamgestelde en benoemde datastel te tik. Teoreties is enige soortgelyke hulpbron geskik as 'n databron, of dit nou Instagram of ander sosiale netwerke is. Maar dit is die beste om op te lei op daardie monsters waarop die netwerk in die toekoms sal werk.
Kom ons neem die bewaarplek as basis
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)
Dit sal jou toelaat om die datastel so vinnig as moontlik met net twee knoppies te merk. Die belangrikste slaggat is dat die werkzeug-biblioteek terugwaartse versoenbaarheid verbreek het en afgegradeer sal moet word. Anders gooi dit hierdie fout.
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'
Daarom moet werkzeug==0.16.1 in requirements.txt geskryf word. Dan sal dit opstyg.
Die tweede probleem is om hierdie einste teken te kry. Die standaardmetode van die bewaarplek het nie vir my opgestyg nie, maar ek het daarin geslaag om dit van die ontwikkelaarkonsole af te kry. Om dit te doen, gaan na
datastelvereistes
Daar is verskeie sleutelvereistes vir masjienleerdatastelle:
- Genoegsaamheid
- Eenvormigheid
- diversiteit
Voldoende in hierdie geval vereis ten minste 10000 XNUMX foto's om 'n voldoende model te bou. Ja, dis baie. Daarom is daar dienste soos
Daar is geen spesifieke probleme met die verskeidenheid nie, alle foto's word in 'n verskeidenheid hoeke en beligting aangebied. In brille, rokke, swemklere en skipakke. Die probleem kan ontstaan met die eenvormigheid van die datastel. Ideaal gesproke, wanneer ons ons monster merk, moet dit uit ongeveer gelyke dele bestaan. As jy 'n "skewe" datastel het, sal jy dit moet verdun met foto's van ander bronne. Mooiers sal bygevoeg moet word, of andersom, jy sal bepaal deur die resultaat van die opmaak. Ek het iets in die omgewing van 60% oulik gekry. Óf ek is nie te kieskeurig nie, óf ek is net gelukkig en daar is baie mooi meisies in die omtrek.
Ek verwerp ook nie die hipotese dat daar baie bots onder hulle is nie. Ons lei 'n bot op wat van ander bots sal hou. Daar is 'n mate van ironie hierin.
Data verwerking
Ons het 'n klomp gemerkte foto's, maar hulle is baie deurmekaar. Dag, nag, van agter en ander. Met spyt verstaan ek dat dit nie besonder moontlik is om op foto's vanuit die omgekeerde hoek te oefen nie, aangesien die monster baie ongelyk sal wees. Daarom sal die beste opsie wees om gesigte te gebruik as 'n verwysingsteken van "mooiheid". Tog, vir ons, soos vir ander primate, is dit 'n sleutelparameter.
Daarom gebruik ons
Dit word in meer besonderhede beskryf in die handleiding vir
In die volgende stadium, nadat slegs gesigte in die monster is, maak dit sin om die kleur te verwyder. Trouens, dit is onwaarskynlik dat jy moet kies tussen 'n pragtige blou Pandora-vrou of 'n skoonheid met 'n groen vel.
In Hue-mense dra die velkleurparameter nie beduidend by tot die oulikheidtelling nie.
Daarom is dit die moeite werd om die werk van die neurale netwerk te vereenvoudig en net grysskaal te laat.
Model gebou
Ek wil dadelik sê dat sonder 'n goeie videokaart en CUDA, jy heel waarskynlik eenvoudig nie 'n opgeleide model in 'n voldoende tyd sal kry nie. Doel dus onmiddellik na berekeninge in gespesialiseerde wolke of met behulp van python-CUDA.
Ek het 'n basiese drie-laag voorbeeld van die skrywer van die bewaarplek geneem en, verbasend genoeg, het dit 'n akkuraatheid van ongeveer 72% getoon, wat nogal 'n goeie resultaat is.
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'])
As daar 'n goeie steekproef is, is dit dalk genoeg om 'n werkbare model te kry.
Begin die bot
Dankie aan die skrywer van die bewaarplek vir die klaargemaakte weergawe om die idee vinnig te toets. Trouens, dit werk redelik goed in die basiese weergawe en kan in beginsel op ons bekendgestel word
Bevindinge
Ek moet baie oulik wees. En ek het 'n ryk innerlike wêreld. Het binne 'n uur iets in die omgewing van 13 wedstryde gekry. Boonop het die meisies verskeie kere eers geskryf.
Gevolglik is baie mooi dialoë verkry, waar ek gesê het dat ek net met masjienleer en data-opmerk kom speel het. Een van die meisies was baie geïnteresseerd, aangesien sy self 'n ontwikkelaar is. Daar is 'n sterk gevoel dat sy uiteindelik hierdie berig op Habré gaan lees. Ek hoop regtig dat Oksana my anonimiteit sal behou. 🙂
*waai poot en sê hallo
'n Bietjie oor die etiese kant van die saak
Om eerlik te wees, ek hou glad nie van die idee van robotisering van verhoudings tussen mans en meisies nie. Daar is iets baie reg daaraan om jou baadjie oor die skouers te gooi van 'n bevrore vreemdeling wat alleen staan. Of nader 'n mooi meisie in 'n somerkafee en drink saam koffie. Kom uit agter die monitors.
Rondom die somer. Dit is tyd om kennis te maak.
Bron: will.com