* Әрине, Machine Learning үйрену үшін. Сүйікті жарының сәл көңілі толмас көзқарасы астында.
Жұлын рефлекстерінің деңгейіне Tinder сияқты қарапайым қолданба жоқ шығар. Оны пайдалану үшін сырғыту үшін тек бір саусақ және сізге ұнайтын қыздарды немесе ер адамдарды таңдау үшін бірнеше нейрон қажет. Жұпты таңдауда дөрекі күштің тамаша орындалуы.
Мен бұл жаңа графикалық картада машинаны үйренуді сезінудің жақсы жолы деп шештім. Әйеліме маған жаңа семіз әйелдің қажеті жоқ екенін түсіндіру ғана қалды, мен нейрондық желілерді үйреніп жатырмын.
Танысу желілеріндегі мәселе неде?
Мұндай ресурс болды - Эшли Мэдисон. Нақтырақ айтқанда, «Өмір қысқа. Жігіт бол». Негізгі аудитория - ерлі-зайыптылар арасындағы қарым-қатынасты іздейтін ер адамдар. Монетизация да қызық – стандартты «ұнайды ұнатуға және жазуға жұмсауға» қосымша, олар пайдаланушының есептік жазбасын ізінсіз жою үшін $19 сұрады.
2015 жылы сайт табиғи түрде ағып кетті және 60 ГБ жеке деректер қоғамдық доменге шықты. Көптеген қираған отбасылардан басқа, бұл ағып кету талдаушыларға көптеген қызықты ақпарат берді. Мен әрқашан танысу сайттарында ерлер әлдеқайда көп деп күдіктенетінмін, бірақ бұл жағдайда бұл өте қызықты болды. Журналист Аннали Ньюиц
Ерлердің аккаунттарына қатысты мұндай басымдық тек осы ресурсқа ғана емес, сонымен қатар басқа көптеген танысу сайттарына тән. Мен көптеген адамдар бұл сөзсіз әділетсіз жағдайға тап болғанына сенімдімін, сіз танысуды мұқият жоспарлауыңыз керек, бірақ қыз тек тіркелу керек. Жанкүйерлер тобының сапасын бір жаққа қалдырайық, бірақ сұраныс пен ұсыныстың тепе-теңдігі қыздардың пайдасына анық өзгеретіні даусыз.
Tinder мүмкіндігі
Гендерлік қарым-қатынастардағы идеалды дөрекі күш
Бұл платформаның басты ерекшелігі - бір танысу құнының төмендігі. Екі айналдырудың сәйкес келуі жеткілікті және сіз әлеуетті қызықты адаммен сөйлесіп жатырсыз. Мәселе мынада, сол гендерлік теңгерімсіздік көптеген қыздардың күніне ондаған матч өткізетініне әкеледі. Бұл олардың басқа кандидаттар арасында сізге назар аударуға уақыты болмайтынын білдіреді.
Платформаның купальниктегі фотосуретке немесе сәнді тоналды көлікті басқаруға бір жарым секундтық көзқараспен адамның терең ішкі әлемін бағалауға аз мүмкіндік беретіні анық. Сондықтан, егер сіз өзіңіздің фотосуреттеріңізде жай ғана құдайлық болып көрінбесеңіз, сіздің мүмкіндігіңізді қабылдау арқылы арттырудан басқа амалыңыз жоқ.
Деректерді жинау
Ең алдымен, қалыпты дәлдік үшін сізге көп деректер қажет. Машиналық оқытуды кездестірген кез келген адам дұрыс жиналған және белгіленген деректер жинағын жасау қаншалықты қиын екенін біледі. Теориялық тұрғыдан алғанда, кез келген ұқсас ресурс Instagram немесе басқа әлеуметтік желілер болсын, деректер көзі ретінде жарамды болады. Бірақ болашақта желі жұмыс істейтін үлгілерде жаттығу жақсы.
Репозиторийді негізге алайық
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 деп жазу керек. Содан кейін ол көтеріледі.
Екінші мәселе - дәл осы белгіні алу. Репозиторийдің стандартты әдісі мен үшін жұмыс істемеді, бірақ мен оны әзірлеуші консолінен ала алдым. Мұны істеу үшін өтіңіз
Деректер жиынына қойылатын талаптар
Машиналық оқыту деректер жиынына бірнеше негізгі талаптар бар:
- Адекваттылық
- Біркелкілік
- Әртүрлілік
Бұл жағдайда жеткілікті модельді құру үшін кемінде 10000 XNUMX фотосурет қажет. Иә, бұл көп. Дәл осы себепті қызметтер ұнайды
Әртүрлілікте ерекше проблемалар жоқ, барлық фотосуреттер әртүрлі бұрыштардан және жарықтандырудан ұсынылған. Көзілдіріктерде, көйлектерде, купальниктерде және шаңғы костюмдерінде. Мәліметтер жиынының біркелкілігіне байланысты мәселе туындауы мүмкін. Ең дұрысы, үлгіні белгілегенде, ол шамамен тең бөліктерден тұруы керек. Егер сізде «қиғаш» деректер жиынтығы болса, оны басқа көздерден алынған фотосуреттермен сұйылтуға тура келеді. Сізге көбірек тартымдыларды қосу керек немесе керісінше, сіз оларды белгілеу нәтижесіне қарай анықтайсыз. Менде шамамен 60% әдемі нәрсе бар. Не тым талғампаз емеспін, не жолым бар, айналамда әдемі қыздар көп.
Мен олардың арасында көптеген боттар бар деген гипотезаны жоққа шығармаймын. Біз басқа боттарға ұнайтын бот дайындаймыз. Бұл жерде біраз ирония бар.
Мәліметтерді өңдеу
Бізде тегтелген фотосуреттер бар, бірақ олар өте аралас. Күндіз, түнде, арттан және т.б. Өкінішке орай, фотосуреттерден кері бұрыштан оқыту әсіресе тиімді болмайтынын түсінемін, өйткені үлгі өте біркелкі болады. Сондықтан беттерді «сүйкімділіктің» анықтамалық белгісі ретінде пайдалану ең жақсы нұсқа болар еді. Дегенмен, біз үшін, басқа приматтар сияқты, бұл негізгі параметр.
Сондықтан қолданайық
Бұл нұсқаулықта толығырақ сипатталған
Келесі кезеңде үлгіде тек беттер болғаннан кейін түсті жою мағынасы бар. Шындығында, сізге Pandora-ның әдемі көгілдір тұрғыны немесе жасыл тері сұлулығы арасында таңдау жасау қиын.
Реңк адамдарында терінің түсі тартымдылық рейтингтеріне айтарлықтай үлес қоспайды.
Сондықтан нейрондық желінің жұмысын жеңілдетіп, тек сұр реңкті қалдырған жөн.
Модельдік құрылыс
Мен жақсы видеокартасыз және 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