Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder

* Murni demi diajar Machine Learning, tangtosna. Handapeun neuteup rada sugema pamajikan kakasihna.

Aya meureun euweuh aplikasi sakumaha basajan pikeun tingkat refleksnya tulang tonggong sakumaha Tinder. Pikeun ngagunakeun éta, anjeun ngan ukur peryogi hiji ramo pikeun ngusap sareng sababaraha neuron pikeun milih awéwé atanapi lalaki anu anjeun resep. Palaksanaan idéal gaya kasar dina pilihan pasangan.

Kuring mutuskeun yén ieu bakal janten jalan anu saé pikeun ngaraosan diajar mesin dina kartu grafik énggal. Sadaya anu tetep nyaéta ngajelaskeun ka pamajikan kuring yén kuring henteu peryogi awéwé anu langkung gendut, sareng kuring ngan ukur ngalatih jaringan saraf.

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder

Naon masalah jeung dating jaringan?

Aya sumberdaya sapertos - Ashley Madison. Husus, kalayan slogan "Hidup téh pondok. Pacaran." Panongton utama anu nikah lalaki pilari hiji selingkuhan di sisi. Monetisasi ogé pikaresepeun - salian ti standar "ngaluarkeun poin pikeun resep sareng nyerat," aranjeunna naroskeun $19 pikeun ngahapus akun pangguna tanpa aya jejak.

Dina 2015, situs sacara alami bocor sareng 60 GB data pribadi bocor kana domain umum. Salian seueur kulawarga anu ancur, bocor ieu nyayogikeun seueur inpormasi anu pikaresepeun pikeun analis. Kuring sok nyangka yén aya langkung seueur lalaki dina situs dating, tapi dina hal ieu tétéla rada pikaresepeun. Wartawan Annalee Newitz nganalisis data bocor kapanggih yén kaluar tina 5 juta pamaké, ngan 12 éta sarupa rekening gadis nyata jeung dipaké rutin. Sésana ngan ukur bot anu ngobrol sareng sémah lalaki.

Misalna preponderance arah rekening jalu has teu ukur keur sumberdaya ieu, tapi ogé pikeun paling séjén dating situs. Kuring yakin yén loba geus encountered kaayaan undoubtedly adil ieu, nalika anjeun kudu taliti rencanana hiji kenalan, tapi gadis ngan perlu ngadaptar. Hayu urang ninggalkeun kualitas riungan ieu fans kumisan, tapi kanyataanana teu bisa disangkal yén kasaimbangan suplai jeung paménta jelas bergeser dina kahadean katresna.

Fitur Tinder

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder
Force brute idéal dina hubungan gender

Fitur utama platform ieu nyaéta béaya rendah per kenalan. Kabeneran dua gesekan cukup sareng anjeun parantos komunikasi sareng jalma anu berpotensi pikaresepeun. Masalahna nyaéta henteu saimbangna génder anu sami nyababkeun kanyataan yén kalolobaan awéwé bakal gaduh puluhan patandingan per dinten. Ieu ngandung harti yén maranéhna paling dipikaresep moal boga waktu pikeun nengetan anjeun diantara calon séjén.

Éta cukup jelas yén platform éta nunjukkeun sakedik kasempetan pikeun ngira-ngira dunya batin anu jero tina jalma tina pandangan hiji satengah detik dina poto dina baju renang atanapi nyetir mobil tinted anu modis. Ku alatan éta, lamun teu kasampak saukur ilahi dina poto Anjeun, Anjeun teu boga pilihan tapi pikeun ngaronjatkeun kasempetan Anjeun ku ngadopsi r-strategi dina sababaraha spésiés. Kantun nempatkeun, urang bakal BRUTE gaya sarta nyandak dina volume pikeun ngaronjatkeun Chances urang sukses beternak. Kusabab anjeun sakapeung kudu kacau ku dahareun jeung sare, sarta swipes diwatesan, Anjeun meureun bakal resep nu automation pilih katresna atawa lalaki nu pangalusna cocog rasa anjeun. Redheads pondok atawa brunettes jangkung - éta nepi ka anjeun.

Ngumpulkeun data

Anu mimiti, anjeun peryogi seueur data pikeun akurasi normal. Saha waé anu ngalaman diajar mesin terang kumaha héséna pikeun ngahasilkeun set data anu dikumpulkeun sareng dilabélan leres. Sacara téoritis, naon waé sumber anu sami bakal cocog salaku sumber data, boh Instagram atanapi jaringan sosial anu sanés. Tapi leuwih sae pikeun ngalatih kana conto-conto anu mana jaringan bakal jalan di hareup.

Hayu urang nyandak Repository salaku dadasar Automasi Tinder. poto Tinder sok sadia umum, tapi fungsi "kawas" geus dugi. Ku alatan éta, perlu nimba sakabeh mahluk hirup dina radius jeung taliti cirian aranjeunna. Mimiti anjeun kedah nganggo skrip anu saderhana:

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)

Éta bakal ngamungkinkeun anjeun nyirian set data gancang-gancang kalayan ngan ukur dua tombol. The pitfall konci perenahna di kanyataan yén perpustakaan werkzeug geus pegat kasaluyuan mundur sarta kudu kapaksa downgrade eta. Upami teu kitu eta throws kasalahan ieu.

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'

Ku alatan éta, dina requirements.txt anjeun kudu nulis Werkzeug == 0.16.1. Lajeng bakal take off.
Masalah kadua pikeun meunangkeun token ieu pisan. Metodeu standar tina gudang henteu tiasa dianggo pikeun kuring, tapi kuring junun kéngingkeun éta tina konsol pamekar. Jang ngalampahkeun ieu, buka link jeung nimba respon kana pamundut POST di www.facebook.com/v2.6/dialog/oauth/confirm?dpr=1. Di jero urang milarian 'access_token'. Kanggo sababaraha alesan éta henteu tiasa dianggo pertama kalina, tapi kuring mendakan éta sareng hardcoded kana naskah.

syarat Dataset

Aya sababaraha syarat konci pikeun set data pembelajaran mesin:

  1. Kacukupan
  2. Kasaragaman
  3. Rupa

Kacukupan dina hal ieu merlukeun sahenteuna 10000 poto pikeun ngawangun modél anu nyukupan. Sumuhun, éta pisan. Ieu sabenerna naha jasa kawas Amazon Mechanical Turk, dimana pikeun fee anjeun tiasa utusan markup tina dataset anjeun ka jalma séjén. Di sisi anu sanés, naha anjeun leres-leres hoyong bot anjeun resep awéwé Asia anu muka bulan anu saé atanapi awéwé anu sami geulis sareng akar India? Leungit, modél kedah ngagambarkeun rasa anjeun.

Henteu aya masalah khusus dina rupa-rupa; sadaya poto dibere tina sababaraha sudut sareng cahaya. Dina kacamata, pakéan, baju renang sareng jas ski. Hiji masalah bisa timbul jeung uniformity tina susunan data. Ideally, lamun urang labél sampel urang, éta kudu diwangun ku kira bagian sarua. Upami anjeun mungkas ku set data "skewed", anjeun kedah éncér sareng poto tina sumber anu sanés. Anjeun bakal kedah nambahkeun leuwih pikaresepeun, atawa sabalikna, anjeun bakal nangtukeun aranjeunna dumasar kana hasil markup. Kuring meunang hal sabudeureun 60% geulis. Boh kuring teu teuing picky, atawa kuring ngan untung na aya loba katresna geulis sabudeureun.

Kuring ogé henteu diskon hipotésis yén aya loba bot diantara aranjeunna. Urang ngalatih bot anu bakal resep bot séjén. Aya sababaraha ironi dina ieu.

Ngolah data

Simkuring boga kebat poto tagged, tapi aranjeunna pisan dicampur. Beurang, peuting, ti tukang jeung sajabana. Kalayan kaduhung, kuring ngartos yén pangajaran tina poto tina sudut sabalikna moal efektif pisan, sabab sampelna bakal henteu rata. Ku alatan éta, pilihan pangalusna bakal ngagunakeun raray salaku tanda rujukan tina "imut". Masih, keur urang, sakumaha keur primata sejen, ieu parameter konci.

Ku alatan éta, hayu urang ngagunakeun Haar cascades. Ieu mangrupikeun algoritma anu saé anu ngamungkinkeun anjeun mendakan wajah dina gambar kalayan persentase rendah kasalahan positip palsu.

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder
Ieu dijelaskeun dina leuwih jéntré dina manual OpenCV

Dina tahap salajengna, sanggeus ukur raray aya dina sampel, asup akal pikeun miceun warna. Kanyataanna, anjeun boro bakal kudu milih antara denizen biru geulis Pandora urang atawa kageulisan héjo-skinned.

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder
sumber

Dina urang Hue, warna kulit teu nyieun kontribusi signifikan kana ratings of daya tarik.
Ku alatan éta, sia nyederhanakeun karya jaringan neural sarta ninggalkeun ukur grayscale.

Wangunan modél

Abdi hoyong langsung nyarios yén tanpa kartu vidéo anu saé sareng CUDA, anjeun paling dipikaresep moal nampi modél anu dilatih dina waktos anu cekap. Ku alatan éta, geuwat Tujuan pikeun itungan dina awan husus atawa maké python-CUDA.

Kuring nyandak conto dasar tilu lapisan ti panulis gudang sareng, heran, éta nunjukkeun akurasi sakitar 72%, anu mangrupikeun hasil anu saé.

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

Upami aya sampel anu saé, maka éta tiasa cekap pikeun kéngingkeun modél anu tiasa dianggo.

Hayu urang ngajalankeun bot

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder

Hatur nuhun ka panulis Repository pikeun pilihan siap-dijieun pikeun gancang nguji ide. Nyatana, éta tiasa dianggo saé dina versi dasar sareng tiasa, prinsipna, diluncurkeun dina kami server séwang siap-dijieun. Éta moal tiasa ngalatih acan; ayeuna kami henteu nyayogikeun mesin virtual kalayan dukungan CUDA pikeun itungan, tapi anjeun tiasa ngajalankeun hiji hal 24/7 tanpa masalah. Botna rada hampang, janten langkung nguntungkeun nyandak tarif anu mayar kanggo sumber daya anu dianggo.

Hasil

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder
Sigana mah imut pisan. Sareng kuring gaduh dunya batin anu beunghar. Kuring meunang hal kawas 13 patandingan dina sajam. Leuwih ti éta, sababaraha kali katresna wrote munggaran.
Hasilna, urang réngsé kalawan dialogues pisan nice, dimana kuring ngomong yén kuring sumping di solely maén kalawan learning mesin sarta panyiri data. Salah sahiji katresna éta pisan kabetot, sabab manehna sorangan - pamekar a. Aya rasa kuat yén anjeunna antukna bakal maca tulisan ieu dina Habré. Abdi ngarep pisan yén Oksana bakal ngajaga anonimitas kuring. 🙂
*lambai paw sarta nyebutkeun hi

A saeutik ngeunaan sisi etika tina masalah

Jujur, kuring henteu resep sadayana ide ngeunaan robotisasi hubungan antara lalaki sareng awéwé. Aya hal anu leres pisan ngeunaan ngalungkeun jaket anjeun dina taktak jalma asing anu nangtung nyalira. Atawa ngadeukeutan gadis geulis di kafé usum panas jeung inuman kopi babarengan. Kaluar ti tukangeun monitor geus.

Summer sabudeureun. Wayahna wawuh.

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder

Kumaha carana nyokot 13 katresna per jam ngagunakeun mesin learning jeung Tinder

sumber: www.habr.com

Tambahkeun komentar