*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.
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ó
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ó
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
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
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:
Adatkészlet követelmények
Számos kulcsfontosságú követelmény van a gépi tanulási adatkészletekkel szemben:
- Megfelelőség
- Egyöntetűség
- 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
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
Ez a kézikönyvben van részletesebben leírva
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.
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
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ó
Álláspontja
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.
Forrás: will.com