วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder

*เพื่อประโยชน์ในการเรียนรู้ Machine Learning อย่างแท้จริง ภายใต้สายตาไม่พอใจเล็กน้อยของภรรยาที่รักของเขา

อาจไม่มีแอปพลิเคชันใดที่ง่ายสำหรับระดับการตอบสนองของกระดูกสันหลังเช่นเดียวกับ Tinder เพื่อที่จะใช้มัน คุณเพียงแค่ใช้นิ้วเดียวในการปัดและเซลล์ประสาทอีกสองสามอันเพื่อเลือกผู้หญิงหรือผู้ชายที่คุณชอบที่สุด การใช้กำลังดุร้ายในการเลือกคู่ในอุดมคติ

ฉันตัดสินใจว่านี่จะเป็นวิธีที่ดีในการทำความเข้าใจเกี่ยวกับการเรียนรู้ของเครื่องบนการ์ดกราฟิกใหม่ สิ่งที่เหลืออยู่คือการอธิบายให้ภรรยาฟังว่าฉันไม่ต้องการผู้หญิงที่อ้วนกว่านี้ และฉันแค่ฝึกโครงข่ายประสาทเทียมเท่านั้น

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder

ปัญหาของเครือข่ายหาคู่คืออะไร?

มีทรัพยากรดังกล่าว - แอชลีย์เมดิสัน เจาะจงด้วยสโลแกน “ชีวิตนั้นสั้น มีเรื่องกัน" ผู้ชมหลักคือผู้ชายที่แต่งงานแล้วและกำลังมองหาเรื่องรัก ๆ ใคร่ ๆ การสร้างรายได้ก็เป็นเรื่องสนุก นอกเหนือจาก "การใช้คะแนนเพื่อกดไลค์และเขียน" มาตรฐานแล้ว พวกเขาขอเงิน 19 ดอลลาร์เพื่อลบบัญชีของผู้ใช้อย่างไร้ร่องรอย

ในปี 2015 ไซต์รั่วไหลตามธรรมชาติและข้อมูลส่วนบุคคล 60 GB รั่วไหลสู่สาธารณสมบัติ นอกจากครอบครัวที่ถูกทำลายจำนวนมากแล้ว การรั่วไหลนี้ยังให้ข้อมูลที่น่าสนใจมากมายแก่นักวิเคราะห์อีกด้วย ฉันสงสัยมาโดยตลอดว่ามีผู้ชายจำนวนมากในเว็บไซต์หาคู่ แต่ในกรณีนี้ มันกลับกลายเป็นว่าน่าสนใจทีเดียว นักข่าว แอนนาลี นิวิตซ์ วิเคราะห์ข้อมูลที่รั่วไหล พบว่าจากผู้ใช้ 5 ล้านคน มีเพียง 12 คนเท่านั้นที่มีความคล้ายคลึงกับบัญชีเด็กผู้หญิงจริงๆ และมีการใช้งานเป็นประจำ ที่เหลือก็แค่บอทที่คุยกับผู้มาเยือนที่เป็นผู้ชาย

ความเหนือกว่าต่อบัญชีผู้ชายนั้นเป็นเรื่องปกติไม่เพียงแต่สำหรับแหล่งข้อมูลนี้เท่านั้น แต่ยังรวมไปถึงเว็บไซต์หาคู่อื่น ๆ ส่วนใหญ่ด้วย ฉันมั่นใจว่าหลายคนต้องเผชิญกับสถานการณ์ที่ไม่ยุติธรรมอย่างไม่ต้องสงสัยเมื่อคุณต้องวางแผนคนรู้จักอย่างรอบคอบ แต่ผู้หญิงคนนั้นก็ต้องลงทะเบียน ปล่อยให้คุณภาพของแฟน ๆ กลุ่มนี้ออกไป แต่ความจริงก็ปฏิเสธไม่ได้ว่าความสมดุลของอุปสงค์และอุปทานเปลี่ยนไปอย่างชัดเจนเพื่อประโยชน์ของเด็กผู้หญิง

คุณสมบัติเชื้อจุดไฟ

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder
พลังเดรัจฉานในอุดมคติในความสัมพันธ์ทางเพศ

คุณสมบัติหลักของแพลตฟอร์มนี้คือต้นทุนต่อคนรู้จักต่ำ ความบังเอิญของการปัดสองครั้งก็เพียงพอแล้วและคุณกำลังสื่อสารกับบุคคลที่น่าสนใจอยู่แล้ว ปัญหาคือความไม่สมดุลของเพศเดียวกันทำให้ผู้หญิงส่วนใหญ่มีการแข่งขันหลายสิบครั้งต่อวัน ซึ่งหมายความว่าพวกเขามักจะไม่มีเวลาให้ความสนใจคุณนอกเหนือจากผู้สมัครคนอื่นๆ

เป็นที่ชัดเจนว่าแพลตฟอร์มดังกล่าวแทบไม่มีโอกาสประเมินโลกภายในอันล้ำลึกของบุคคลจากการมองภาพถ่ายในชุดว่ายน้ำเพียงครึ่งวินาทีหรือการขับรถที่มีสีทันสมัย ดังนั้น หากคุณไม่ได้ดูศักดิ์สิทธิ์ในรูปถ่ายของคุณ คุณไม่มีทางเลือกอื่นนอกจากเพิ่มโอกาสโดยการนำ r-กลยุทธ์ ในบางชนิด พูดง่ายๆ ก็คือ เราจะใช้กำลังอย่างดุร้ายและเพิ่มปริมาณเพื่อเพิ่มโอกาสในการประสบความสำเร็จในการผสมพันธุ์ เนื่องจากบางครั้งคุณต้องถูกรบกวนจากอาหารและการนอนหลับ และการปัดนิ้วมีจำกัด คุณคงอยากให้ระบบอัตโนมัติเลือกผู้หญิงหรือผู้ชายที่เหมาะกับรสนิยมของคุณมากที่สุด ผมแดงสั้นหรือผมน้ำตาลเข้ม - ขึ้นอยู่กับคุณ

กำลังรวบรวมข้อมูล

ก่อนอื่น คุณต้องมีข้อมูลจำนวนมากเพื่อความแม่นยำตามปกติ ใครก็ตามที่เคยพบกับการเรียนรู้ของเครื่องจะรู้ดีว่าการสร้างชุดข้อมูลที่รวบรวมและติดป้ายกำกับอย่างถูกต้องนั้นยากเพียงใด ตามทฤษฎีแล้ว ทรัพยากรที่คล้ายกันจะเหมาะสมเป็นแหล่งข้อมูล ไม่ว่าจะเป็น Instagram หรือเครือข่ายโซเชียลอื่นๆ แต่วิธีที่ดีที่สุดคือฝึกอบรมตัวอย่างที่เครือข่ายจะทำงานได้ในอนาคต

ลองใช้พื้นที่เก็บข้อมูลเป็นพื้นฐาน เชื้อจุดไฟอัตโนมัติ. รูปภาพของ 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 ภาพเพื่อสร้างแบบจำลองที่เหมาะสม ใช่ว่าเป็นจำนวนมาก นี่คือเหตุผลว่าทำไมบริการเช่นนี้ อังคารเครื่องกลเติร์กโดยคุณสามารถมอบหมายมาร์กอัปของชุดข้อมูลของคุณให้กับผู้อื่นได้โดยเสียค่าธรรมเนียม ในทางกลับกัน คุณต้องการให้บอทของคุณชอบสาวเอเชียหน้าพระจันทร์ที่ยอดเยี่ยมหรือสาวสวยที่มีต้นกำเนิดมาจากอินเดียหรือไม่? อย่างไรก็ตาม โมเดลควรสะท้อนถึงรสนิยมของคุณ

ไม่มีปัญหาใดเป็นพิเศษเกี่ยวกับความหลากหลาย ภาพถ่ายทั้งหมดนำเสนอจากมุมและแสงที่หลากหลาย ในแว่นตา ชุดเดรส ชุดว่ายน้ำ และชุดสกี ปัญหาอาจเกิดขึ้นกับความสม่ำเสมอของชุดข้อมูล ตามหลักการแล้ว เมื่อเราติดฉลากตัวอย่างของเรา ตัวอย่างนั้นควรประกอบด้วยส่วนเท่าๆ กันโดยประมาณ หากคุณได้ชุดข้อมูลที่ "บิดเบี้ยว" คุณจะต้องเจือจางด้วยภาพถ่ายจากแหล่งอื่น คุณจะต้องเพิ่มความน่าสนใจมากขึ้น หรือในทางกลับกัน คุณจะพิจารณาสิ่งเหล่านั้นตามผลลัพธ์ของมาร์กอัป ฉันได้ของสวยมาประมาณ 60% ฉันไม่จู้จี้จุกจิกเกินไปหรือฉันแค่โชคดีและมีสาวสวยอยู่มากมาย

ฉันยังไม่ละเลยสมมติฐานที่ว่ามีบอทมากมายในนั้น เราฝึกบอทที่จะชอบบอทตัวอื่น มีการประชดบางอย่างในเรื่องนี้

การประมวลผลข้อมูล

เรามีรูปภาพที่ติดแท็กอยู่มากมาย แต่มีรูปภาพผสมกันมาก กลางวัน กลางคืน จากด้านหลังและอื่นๆ ด้วยความเสียใจ ฉันเข้าใจว่าการสอนจากภาพถ่ายจากมุมกลับจะไม่ได้ผลมากนัก เนื่องจากตัวอย่างจะไม่สม่ำเสมอมาก ดังนั้น ทางเลือกที่ดีที่สุดคือใช้ใบหน้าเป็นสัญลักษณ์อ้างอิงถึง "ความน่ารัก" อย่างไรก็ตาม สำหรับเราแล้ว สำหรับไพรเมตอื่นๆ นี่เป็นตัวแปรสำคัญ

ดังนั้นเรามาใช้งานกัน น้ำตกฮาร์. นี่เป็นอัลกอริธึมที่ยอดเยี่ยมที่ช่วยให้คุณสามารถค้นหาใบหน้าในรูปภาพที่มีข้อผิดพลาดเชิงบวกที่ผิดพลาดได้ในระดับต่ำ

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder
ซึ่งมีการอธิบายโดยละเอียดเพิ่มเติมในคู่มือ OpenCV

ในขั้นตอนต่อไป หลังจากที่มีเฉพาะใบหน้าอยู่ในตัวอย่างแล้ว ก็สมเหตุสมผลที่จะลบสีออก จริงๆ แล้ว คุณแทบจะไม่ต้องเลือกระหว่างท้องฟ้าสีฟ้าที่สวยงามของแพนโดร่าหรือความงามที่มีผิวสีเขียว

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder
Источник

ในชาวเมืองเว้ สีผิวไม่ได้มีส่วนสำคัญต่อการจัดอันดับความน่าดึงดูดใจ
ดังนั้นจึงควรลดความซับซ้อนของการทำงานของโครงข่ายประสาทเทียมและเหลือเพียงระดับสีเทาเท่านั้น

การสร้างแบบจำลอง

ฉันอยากจะบอกทันทีว่าหากไม่มีการ์ดแสดงผลที่ดีและ 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'])

ถ้ามีตัวอย่างที่ดี ก็อาจจะเพียงพอแล้วที่จะได้แบบจำลองที่ใช้งานได้

มาเปิดตัวบอทกันเถอะ

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder

ขอขอบคุณผู้เขียนพื้นที่เก็บข้อมูลสำหรับตัวเลือกสำเร็จรูปสำหรับการทดสอบแนวคิดอย่างรวดเร็ว ที่จริงแล้ว มันใช้งานได้ค่อนข้างดีในเวอร์ชันพื้นฐาน และโดยหลักการแล้วสามารถเปิดใช้งานบนของเราได้ เซิร์ฟเวอร์เช่าสำเร็จรูป. ยังไม่สามารถฝึกได้ ในขณะนี้ เรายังไม่มีเครื่องเสมือนที่รองรับ CUDA สำหรับการคำนวณ แต่คุณสามารถทำงานได้ตลอด 24 ชั่วโมงทุกวันโดยไม่มีปัญหาใดๆ บอทมีน้ำหนักเบามาก ดังนั้นการคิดภาษีที่จ่ายสำหรับทรัพยากรที่ใช้จะทำกำไรได้มากกว่า

ผลการวิจัย

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder
ฉันว่าฉันน่ารักมากนะ และฉันมีโลกภายในที่อุดมสมบูรณ์ ฉันได้ประมาณ 13 นัดภายในหนึ่งชั่วโมง ยิ่งไปกว่านั้น หลายครั้งที่สาวๆ เขียนเป็นคนแรก
ผลลัพธ์ที่ได้คือบทสนทนาที่ดีมาก ซึ่งฉันบอกว่าฉันเข้ามาเพื่อเล่นกับแมชชีนเลิร์นนิงและการติดป้ายกำกับข้อมูลเท่านั้น เด็กผู้หญิงคนหนึ่งสนใจอย่างมากเนื่องจากเธอเองเป็นนักพัฒนา มีความรู้สึกอันแรงกล้าว่าในที่สุดเธอก็จะได้อ่านโพสต์นี้เกี่ยวกับHabréในที่สุด ฉันหวังเป็นอย่างยิ่งว่า Oksana จะไม่เปิดเผยตัวตนของฉัน 🙂
*โบกมือทักทาย

เล็กน้อยเกี่ยวกับด้านจริยธรรมของปัญหา

พูดตามตรงฉันไม่ชอบความคิดทั้งหมดในการสร้างความสัมพันธ์แบบหุ่นยนต์ระหว่างชายและหญิง มีบางอย่างที่ถูกต้องมากเกี่ยวกับการโยนเสื้อแจ็คเก็ตของคุณบนไหล่ของคนแปลกหน้าที่เย็นชาซึ่งยืนอยู่คนเดียว หรือเข้าหาสาวสวยในร้านกาแฟช่วงฤดูร้อนและดื่มกาแฟด้วยกัน ออกไปจากด้านหลังจอภาพแล้ว

ฤดูร้อนอยู่รอบตัว ถึงเวลาทำความคุ้นเคยแล้ว

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder

วิธีรับเด็กผู้หญิง 13 คนต่อชั่วโมงโดยใช้แมชชีนเลิร์นนิงและ Tinder

ที่มา: will.com

เพิ่มความคิดเห็น