Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады

* Әрине, Machine Learning үйрену үшін. Сүйікті жарының сәл көңілі толмас көзқарасы астында.

Жұлын рефлекстерінің деңгейіне Tinder сияқты қарапайым қолданба жоқ шығар. Оны пайдалану үшін сырғыту үшін тек бір саусақ және сізге ұнайтын қыздарды немесе ер адамдарды таңдау үшін бірнеше нейрон қажет. Жұпты таңдауда дөрекі күштің тамаша орындалуы.

Мен бұл жаңа графикалық картада машинаны үйренуді сезінудің жақсы жолы деп шештім. Әйеліме маған жаңа семіз әйелдің қажеті жоқ екенін түсіндіру ғана қалды, мен нейрондық желілерді үйреніп жатырмын.

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады

Танысу желілеріндегі мәселе неде?

Мұндай ресурс болды - Эшли Мэдисон. Нақтырақ айтқанда, «Өмір қысқа. Жігіт бол». Негізгі аудитория - ерлі-зайыптылар арасындағы қарым-қатынасты іздейтін ер адамдар. Монетизация да қызық – стандартты «ұнайды ұнатуға және жазуға жұмсауға» қосымша, олар пайдаланушының есептік жазбасын ізінсіз жою үшін $19 сұрады.

2015 жылы сайт табиғи түрде ағып кетті және 60 ГБ жеке деректер қоғамдық доменге шықты. Көптеген қираған отбасылардан басқа, бұл ағып кету талдаушыларға көптеген қызықты ақпарат берді. Мен әрқашан танысу сайттарында ерлер әлдеқайда көп деп күдіктенетінмін, бірақ бұл жағдайда бұл өте қызықты болды. Журналист Аннали Ньюиц ағып кеткен деректерді талдау 5 миллион қолданушының тек 12 000-ы ғана қыздың шынайы аккаунттарына ұқсайтынын және үнемі қолданылғанын анықтады. Қалғандары ер адамдармен сөйлесетін боттар болды.

Ерлердің аккаунттарына қатысты мұндай басымдық тек осы ресурсқа ғана емес, сонымен қатар басқа көптеген танысу сайттарына тән. Мен көптеген адамдар бұл сөзсіз әділетсіз жағдайға тап болғанына сенімдімін, сіз танысуды мұқият жоспарлауыңыз керек, бірақ қыз тек тіркелу керек. Жанкүйерлер тобының сапасын бір жаққа қалдырайық, бірақ сұраныс пен ұсыныстың тепе-теңдігі қыздардың пайдасына анық өзгеретіні даусыз.

Tinder мүмкіндігі

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады
Гендерлік қарым-қатынастардағы идеалды дөрекі күш

Бұл платформаның басты ерекшелігі - бір танысу құнының төмендігі. Екі айналдырудың сәйкес келуі жеткілікті және сіз әлеуетті қызықты адаммен сөйлесіп жатырсыз. Мәселе мынада, сол гендерлік теңгерімсіздік көптеген қыздардың күніне ондаған матч өткізетініне әкеледі. Бұл олардың басқа кандидаттар арасында сізге назар аударуға уақыты болмайтынын білдіреді.

Платформаның купальниктегі фотосуретке немесе сәнді тоналды көлікті басқаруға бір жарым секундтық көзқараспен адамның терең ішкі әлемін бағалауға аз мүмкіндік беретіні анық. Сондықтан, егер сіз өзіңіздің фотосуреттеріңізде жай ғана құдайлық болып көрінбесеңіз, сіздің мүмкіндігіңізді қабылдау арқылы арттырудан басқа амалыңыз жоқ. r-стратегиясы кейбір түрлерде. Қарапайым сөзбен айтқанда, біз асыл тұқымды табысқа жету мүмкіндігімізді арттыру үшін дөрекі күш қолданамыз және көлем аламыз. Кейде тамақ пен ұйқыға алаңдау керек болғандықтан және сырғыту мүмкіндігі шектеулі болғандықтан, сіз автоматтандырудың талғамыңызға сәйкес келетін қыздарды немесе ер адамдарды таңдағанын қалайтын шығарсыз. Қысқа қызыл шашты немесе ұзын брюнеткалар - бұл сізге байланысты.

Деректерді жинау

Ең алдымен, қалыпты дәлдік үшін сізге көп деректер қажет. Машиналық оқытуды кездестірген кез келген адам дұрыс жиналған және белгіленген деректер жинағын жасау қаншалықты қиын екенін біледі. Теориялық тұрғыдан алғанда, кез келген ұқсас ресурс Instagram немесе басқа әлеуметтік желілер болсын, деректер көзі ретінде жарамды болады. Бірақ болашақта желі жұмыс істейтін үлгілерде жаттығу жақсы.

Репозиторийді негізге алайық Tinder автоматтандыру. Tinder фотосуреттері әрқашан жалпыға қолжетімді, бірақ «ұнату» функциясы қазірдің өзінде шектеулі. Сондықтан радиустағы барлық тірі заттарды шығарып, оларды мұқият белгілеу керек. Алдымен сіз өте қарапайым сценарийді пайдалануыңыз керек:

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)

Ол деректер жинағын екі түйме арқылы мүмкіндігінше жылдам белгілеуге мүмкіндік береді. Негізгі қателік мынада: werkzeug кітапханасы кері үйлесімділікті бұзды және оны төмендетуге мәжбүр болады. Әйтпесе, бұл қатені жібереді.

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'

Сондықтан талаптар.txt ішіне Werkzeug==0.16.1 деп жазу керек. Содан кейін ол көтеріледі.
Екінші мәселе - дәл осы белгіні алу. Репозиторийдің стандартты әдісі мен үшін жұмыс істемеді, бірақ мен оны әзірлеуші ​​консолінен ала алдым. Мұны істеу үшін өтіңіз байланыс және POST сұрауына жауапты шығарып алыңыз www.facebook.com/v2.6/dialog/oauth/confirm?dpr=1. Ішінде біз «access_token» іздейміз. Қандай да бір себептермен ол бірінші рет жұмыс істемеді, бірақ кейін мен оны тауып, сценарийге қатты кодтадым.

Деректер жиынына қойылатын талаптар

Машиналық оқыту деректер жиынына бірнеше негізгі талаптар бар:

  1. Адекваттылық
  2. Біркелкілік
  3. Әртүрлілік

Бұл жағдайда жеткілікті модельді құру үшін кемінде 10000 XNUMX фотосурет қажет. Иә, бұл көп. Дәл осы себепті қызметтер ұнайды Амазон механикалық түрк, мұнда ақыға деректер жинағыңыздың белгілеуін басқа адамдарға беруге болады. Екінші жағынан, сіз шынымен ботыңыздың айға ұқсайтын тамаша азиялық қыздарды немесе үнді тамырлары бар бірдей әдемі қыздарды ұнатқанын қалайсыз ба? Дегенмен, модель сіздің талғамыңызды көрсетуі керек.

Әртүрлілікте ерекше проблемалар жоқ, барлық фотосуреттер әртүрлі бұрыштардан және жарықтандырудан ұсынылған. Көзілдіріктерде, көйлектерде, купальниктерде және шаңғы костюмдерінде. Мәліметтер жиынының біркелкілігіне байланысты мәселе туындауы мүмкін. Ең дұрысы, үлгіні белгілегенде, ол шамамен тең бөліктерден тұруы керек. Егер сізде «қиғаш» деректер жиынтығы болса, оны басқа көздерден алынған фотосуреттермен сұйылтуға тура келеді. Сізге көбірек тартымдыларды қосу керек немесе керісінше, сіз оларды белгілеу нәтижесіне қарай анықтайсыз. Менде шамамен 60% әдемі нәрсе бар. Не тым талғампаз емеспін, не жолым бар, айналамда әдемі қыздар көп.

Мен олардың арасында көптеген боттар бар деген гипотезаны жоққа шығармаймын. Біз басқа боттарға ұнайтын бот дайындаймыз. Бұл жерде біраз ирония бар.

Мәліметтерді өңдеу

Бізде тегтелген фотосуреттер бар, бірақ олар өте аралас. Күндіз, түнде, арттан және т.б. Өкінішке орай, фотосуреттерден кері бұрыштан оқыту әсіресе тиімді болмайтынын түсінемін, өйткені үлгі өте біркелкі болады. Сондықтан беттерді «сүйкімділіктің» анықтамалық белгісі ретінде пайдалану ең жақсы нұсқа болар еді. Дегенмен, біз үшін, басқа приматтар сияқты, бұл негізгі параметр.

Сондықтан қолданайық Хаар каскадтары. Бұл жалған оң қателердің төмен пайызы бар кескіндердегі беттерді табуға мүмкіндік беретін тамаша алгоритм.

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады
Бұл нұсқаулықта толығырақ сипатталған OpenCV

Келесі кезеңде үлгіде тек беттер болғаннан кейін түсті жою мағынасы бар. Шындығында, сізге Pandora-ның әдемі көгілдір тұрғыны немесе жасыл тері сұлулығы арасында таңдау жасау қиын.

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады
Көзі

Реңк адамдарында терінің түсі тартымдылық рейтингтеріне айтарлықтай үлес қоспайды.
Сондықтан нейрондық желінің жұмысын жеңілдетіп, тек сұр реңкті қалдырған жөн.

Модельдік құрылыс

Мен жақсы видеокартасыз және CUDA болмаса, сіз жеткілікті уақыт ішінде оқытылған модельді ала алмайтыныңызды бірден айтқым келеді. Сондықтан, мамандандырылған бұлттарда немесе python-CUDA көмегімен есептеулерді дереу мақсат етіңіз.

Мен репозиторий авторынан негізгі үш қабатты мысалды алдым және таңқаларлық, ол шамамен 72% дәлдікті көрсетті, бұл өте жақсы нәтиже.

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

Жақсы үлгі болса, жұмыс істейтін үлгі алу үшін жеткілікті болуы мүмкін.

Ботты іске қосайық

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады

Репозиторий авторына идеяны жылдам сынау үшін дайын нұсқа үшін рахмет. Шын мәнінде, ол негізгі нұсқада өте жақсы жұмыс істейді және, негізінен, бізде іске қосылуы мүмкін дайын жалға алынған сервер. Әзірге жаттығу мүмкін емес; қазіргі уақытта біз есептеулер үшін CUDA қолдауы бар виртуалды машиналарды ұсынбаймыз, бірақ сіз бірдеңені 24/7 еш қиындықсыз іске қоса аласыз. Бот өте жеңіл, сондықтан пайдаланылған ресурстарды төлейтін тарифті алу тиімдірек болар еді.

нәтижелері

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады
Мен өте сүйкімдімін деп ойлаймын. Ал менің ішкі дүнием бай. Мен бір сағат ішінде 13 сіріңке алдым. Оның үстіне, қыздар бірнеше рет бірінші болып жазды.
Нәтижесінде біз өте жақсы диалогтармен аяқталдық, онда мен тек машиналық оқыту және деректерді таңбалаумен ойнау үшін келгенімді айттым. Бір қыз өте қызығушылық танытты, өйткені ол өзі әзірлеуші. Ол Хабредегі осы жазбаны оқиды деген күшті сезім бар. Оксана менің анонимділігін сақтайды деп үміттенемін. 🙂
*аяқтарын бұлғап, сәлем береді

Мәселенің этикалық жағы туралы аздап

Шынымды айтсам, мен ерлер мен қыздар арасындағы қарым-қатынасты роботтандыру идеясын ұнатпаймын. Жалғыз тұрған суық бейтаныс адамның иығына күртеңізді лақтырудың өте дұрыс нәрсесі бар. Немесе жазғы кафеде әдемі қызға жақындап, бірге кофе ішіңіз. Мониторлардың артынан шығыңыз.

Айналада жаз. Танысатын кез келді.

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады

Машиналық оқыту мен Tinder көмегімен сағатына 13 қызды қалай алуға болады

Ақпарат көзі: www.habr.com

пікір қалдыру