*البته صرفاً به خاطر یادگیری یادگیری ماشینی. زیر نگاه کمی ناراضی همسر محبوبش.
احتمالاً هیچ کاربردی به سادگی Tinder در سطح رفلکس های نخاعی وجود ندارد. برای استفاده از آن، فقط به یک انگشت برای کشیدن انگشت و چند نورون برای انتخاب دختران یا مردانی که بیشتر دوست دارید نیاز دارید. اجرای ایده آل نیروی brute force در انتخاب جفت.
من تصمیم گرفتم که این یک راه خوب برای درک کمی یادگیری ماشین در یک کارت گرافیک جدید باشد. تنها چیزی که باقی می ماند این است که به همسرم توضیح دهم که من به یک زن چاق تر جدید نیاز ندارم و فقط شبکه های عصبی را آموزش می دهم.
مشکل شبکه های دوستیابی چیست؟
چنین منبعی وجود داشت - اشلی مدیسون. مشخص، با شعار «زندگی کوتاه است. رابطه داشته باش." مخاطب اصلی مردان متاهلی هستند که به دنبال رابطه جنسی در کنار یکدیگر هستند. کسب درآمد نیز سرگرم کننده است - علاوه بر استاندارد "امتیاز خرج کردن برای لایک کردن و نوشتن"، آنها 19 دلار برای حذف حساب کاربری بدون هیچ ردی درخواست کردند.
در سال 2015، این سایت به طور طبیعی به بیرون درز کرد و 60 گیگابایت اطلاعات شخصی به مالکیت عمومی درز کرد. علاوه بر بسیاری از خانواده های ویران شده، این نشت اطلاعات جالب زیادی در اختیار تحلیلگران قرار داد. من همیشه مشکوک بودم که تعداد مردان زیادی در سایت های دوستیابی وجود دارد، اما در این مورد بسیار جالب بود. روزنامه نگار آنالی نیویتز
چنین برتری نسبت به حسابهای مردانه نه تنها برای این منبع، بلکه برای اکثر سایتهای دوستیابی دیگر معمول است. من مطمئن هستم که بسیاری با این وضعیت بدون شک ناعادلانه مواجه شده اند، زمانی که شما باید با دقت برای یک آشنایی برنامه ریزی کنید، اما دختر فقط باید ثبت نام کند. بیایید کیفیت این انبوه طرفداران را کنار بگذاریم، اما این واقعیت غیرقابل انکار است که تعادل عرضه و تقاضا به وضوح به نفع دختران تغییر کرده است.
ویژگی 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'
بنابراین، در requirement.txt باید Werkzeug==0.16.1 را بنویسید. سپس بلند خواهد شد.
مشکل دوم این است که همین توکن را دریافت کنید. روش استاندارد مخزن برای من کار نکرد، اما موفق شدم آن را از کنسول توسعه دهنده دریافت کنم. برای انجام این کار، به
الزامات مجموعه داده
چندین الزام کلیدی برای مجموعه داده های یادگیری ماشین وجود دارد:
- کفایت
- یکنواختی
- تنوع
کفایت در این مورد به حداقل 10000 عکس برای ساخت یک مدل مناسب نیاز دارد. بله، این مقدار زیادی است. در واقع به همین دلیل است که خدمات مانند
هیچ مشکل خاصی در تنوع وجود ندارد، همه عکس ها از زوایای مختلف و نور ارائه می شوند. در عینک، لباس، مایو و لباس اسکی. ممکن است مشکلی با یکنواختی مجموعه داده ایجاد شود. در حالت ایده آل، زمانی که نمونه خود را برچسب گذاری می کنیم، باید از قسمت های تقریبا مساوی تشکیل شده باشد. اگر در نهایت با یک مجموعه داده "کج" مواجه شدید، باید آن را با عکس هایی از منابع دیگر رقیق کنید. شما باید موارد جذاب تری را اضافه کنید، یا برعکس، آنها را بر اساس نتیجه نشانه گذاری تعیین خواهید کرد. من چیزی حدود 60% زیبا گرفتم. یا من خیلی حساس نیستم، یا فقط خوش شانس هستم و دختران زیبای زیادی در اطراف هستند.
من همچنین این فرضیه را که ربات های زیادی در بین آنها وجود دارد، نادیده نمی گیرم. ما رباتی را آموزش می دهیم که ربات های دیگر را دوست داشته باشد. طنزی در این وجود دارد.
پردازش داده ها
ما تعداد زیادی عکس تگ شده داریم، اما آنها بسیار ترکیبی هستند. روز، شب، از پشت و دیگران. با تأسف میدانم که آموزش از روی عکسها از زاویه معکوس چندان مؤثر نخواهد بود، زیرا نمونه بسیار ناهموار خواهد بود. بنابراین، بهترین گزینه استفاده از چهرهها بهعنوان نشانهای از «ناز» است. با این حال، برای ما، مانند سایر پستانداران، این یک پارامتر کلیدی است.
بنابراین، بیایید استفاده کنیم
این با جزئیات بیشتر در دفترچه راهنما توضیح داده شده است
در مرحله بعد، پس از اینکه فقط چهره ها در نمونه قرار گرفتند، حذف رنگ منطقی است. در واقع، به سختی مجبور خواهید بود بین رنگ آبی زیبای پاندورا یا زیبایی پوست سبز یکی را انتخاب کنید.
در افراد Hue، رنگ پوست سهم قابل توجهی در رتبه بندی جذابیت ندارد.
بنابراین، ارزش آن را دارد که کار شبکه عصبی را ساده کنیم و فقط مقیاس خاکستری را باقی بگذاریم.
ساختمان نمونه
می خواهم فوراً بگویم که بدون یک کارت گرافیک خوب و 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 مسابقه گرفتم. علاوه بر این، چندین بار دختران ابتدا نوشتند.
در نتیجه، ما به دیالوگهای بسیار خوبی رسیدیم، جایی که گفتم من فقط برای بازی با یادگیری ماشین و برچسبگذاری داده وارد شدم. یکی از دختران بسیار علاقه مند بود، زیرا او خودش یک توسعه دهنده است. این احساس قوی وجود دارد که او در نهایت این پست را در هابره خواهد خواند. من واقعاً امیدوارم که اوکسانا ناشناس ماندن من را حفظ کند. 🙂
*پنجه را تکان می دهد و سلام می کند
کمی در مورد جنبه اخلاقی موضوع
صادقانه بگویم، من از کل ایده رباتیک کردن روابط بین مردان و دختران خوشم نمی آید. در مورد انداختن ژاکت روی شانه های یک غریبه سرد که تنها ایستاده است، چیزی بسیار درست است. یا در یک کافه تابستانی به یک دختر زیبا نزدیک شوید و با هم قهوه بنوشید. قبلاً از پشت مانیتورها خارج شوید.
تابستان همه جاست. وقت آشنایی است.
منبع: www.habr.com