Как я искал NSFW картинки на Голосе
Если кто не знал, NSFW -- аббревиатура от английского
"Not Safe For Work"
. Используется для обозначения контента, не подходящего для просмотра на рабочем месте. Т.е. контент (картинки, видео, тексты и т.д.), просмотр которого неприемлем в присутствии вашего начальника и/или коллег.
Так же, пару раз слышал вариант расшифровки"Not Safe For Wife"
, хотя, казалось бы, чего она там такого не видела :)
Обожаю свою работу!
В перерывах между инфраструктурными и devops задачами несколько дней инвестировал в исследование возможности использования сверточных нейронных сетей для просмотра порнухи классификации изображений, заливаемых пользователями на Голос.
С помощью нейросетки, обученной на распознавание картинок для взрослых можно сделать на Голосе множество полезных фич: например, автоматически ставить тег NSFW там, где он необходим и где его забыл поставить автор. Или ещё как-то улучшить жизнь человечества...
В любом случае, заниматься порно-картинками гораздо интереснее, чем серверами с linux-ом, и я с радостью взялся за работу :)
Итак, имеем нейросеть на основе Caffe (deep learning фреймворк от Berkley AI Research), тренированную на огромных объемах размеченных изображений, как NSFW, так и обычных SFW ("suitable/safe for work"
). Не буду грузить вас скучными техническими подробностями реализации, перейдём сразу к экспериментальной части.
Правда находит NSFW-картинки?
Самый первый вопрос, возникающий у любого экспериментатора -- где деньги, Зин? а покажи-ка нам, любезная нейросеточка, что ты умеешь? Правда можешь хорошо определять NSFW-картинки?
С бескрайних просторов нашего любимого интернета я скачал архив из пятисот NSFW-фоток разного уровня бесстыдства (привет, Роскомнадзор!). Естественно, не удовольствия ради, а работы для! :) И скормил этот архив нашей нейросети. Результаты получились вот такие:
Поясню. Каждый крестик на графике -- это одно изображение. Каждому изображению после анализа присваивается оценка от 0 до 1. Это вероятность того, что на изображении присутствует что-то пикантное:
- Оценка от 0 до 0.2: картинка, по мнению нейросетки, является вполне пристойной
- Оценка от 0.2 до 0.8: картинка явно с "клубничкой", разной степени откровенности
- Оценка от 0.8 до 1: картинка совершенно точно ПРЯМ ОГОНЬ! :)
Поэтому, увидев распределение вероятностей, я уже было обрадовался -- мол, классно, работает! Всё отлично определяет! Но тут в голову пришла идея внимательно рассмотреть эти пол-тыщи картинок провести эксперимент номер два.
А как на реальных данных?
А натравлю-ка я эту нейросеть на реальные картинки с Голоса. Взял, точно так же, пол-тыщи реальных картинок, залитых реальными пользователями на блокчейн. Результаты получились вот такие:
Вроде бы, тоже отличный результат, всё гуд. Большинство картинок уложились в оценку от 0 до 0.2. Но тут любопытство взяло верх :) А давайте посмотрим, что там за картинки получили оценку выше 0.2? Что там за "клубничка" такая у нас на Голосе?
Что возбуждает нашу нейросеть?
Итак, что же возбуждает нашу нейросеть? Я вытащил из сета все картинки с высокими оценками:
И вот что обнаружилось:
КЛИКАБЕЛЬНО ДЛЯ ПРОСМОТРА В БОЛЬШЕМ РАЗМЕРЕ
- График с двумя выпуклыми пересекающимися кривыми напомнил нейросетке о чём-то пикантном (
0.20
) - Спящий котик был оценен в
0.28
- Эротичное тесто в крепких мужских объятьях пекаря получило оценку
0.36
- Фракталы на зелёном фоне возбудили нашу нейросеть сильнее, чем накачанный мужик в белых трусах (
0.59
против0.52
) - И мужик в трусах и фракталы проиграли картинке с фразой "Когда у твоего мужа есть биткоины" (
0.62
) - Обручальные кольца -- это вообще без пяти секунд порно (
0.76
) - Выпуклости персиков и их косточка были оценены аж в
0.33
и0.35
- При этом, валяющаяся на берегу практически без одежды дама с не менее аппетитными формами была оценена всего в
0.05
. Ничего не поделаешь, персики для нашей нейросети более сексуальны :) - И дама и персики вчистую проиграли спящему над клавиатурой очкарику (
0.48
) - Ну и моё самое любимое, набросок выкройки какой-то игрушки нейросеть посчитала вообще жестким порно и оценила аж в
0.87
:
Дедушка Фрейд точно был бы рад.
Выводы
Даже страшно представить, что и в каких количествах повидала наша нейросеть в процессе своего обучения и работы, раз её теперь даже такие, казалось бы, обыденные картинки будоражат. Поставлю-ка я ей в целях психологической разгрузки архивчик с фотками котят и миленьких щеночков -- пусть немного расслабится, заслужила. А то ей уже по ночам одни "персики" да "фракталы" снятся, а может и что похуже (выкройка, омг!)
Теперь вот и не знаю, можно ли ей доверить принятие хоть сколько-то серьёзных решений на Голосе. Как вы считаете? :)