Генерация художественных картин в нейросети, обученной для распознавания порно
Предупреждение: статья содержит абстрактные изображения обнажённого тела и может не подходить для просмотра на рабочем месте
Некоторые примеры абстрактного искусства, сгенерированного с помощью нейросети open_nsfw
Недавно компания Yahoo открыла исходный код нейросети open_nsfw. Это специально обученная нейросеть остаточного обучения (ResNet), которая классифицирует изображения, выставляя им «оценку неприличности» от 0 до 1. Программа предназначена для автоматического выявления картинок NSFW, то есть неподходящих для просмотра на рабочем месте. Проще говоря, для выявления порнографии. Естественно, цель состоит в фильтрации таких изображений — удалении их из открытого доступа.
Наверное, компания Yahoo не предполагала, каким именно образом находчивые хакеры применят её интеллектуальную разработку.
Формально, аспирант Габриэль Гох (Gabriel Goh) из Калифорнийского университета в Дейвисе не делал ничего предосудительного. Парень специализируется на машинном обучении, теории вероятностей и выпуклой минимизации. Ему просто стало интересно, что именно нейросеть Yahoo понимает под NSFW. Какие именно изображения получают максимальную оценку по её классификатору.
Чтобы получить ответ на этот вопрос, Габриэль применил относительно новую технику визуализации, совсем недавно разработанную для нейросетей машинного зрения группой исследователей с участием Ана Нгуена, Алексея Досовитского и др. Их работа ещё не опубликована в официальном журнале, но уже есть в открытом доступе. Эта техника предполагает глубинное изучение того, как работает нейросеть. Исследователи могут наглядно визуализировать, какие конкретно признаки в изображениях обучился выделять каждый нейрон. Один из известных способов добиться этого — использование техники максимизации активации (AM). Она синтезирует такие входящие значения (то есть такое изображение), которые максимальным образом активируют нейрон. В опубликованной научной работе исследователи показали, как можно кардинально увеличить качество AM, задействуя мощный инструмент — нейросеть-генератор изображений!
Так называемая deep generator network (DGN) генерирует большое количество синтетических изображений. Они выглядят почти как настоящие фотографии, тем самым определяя усвоенные функции каждого нейрона исследуемой нейросети с высокой точностью и повторяемым образом. Преимущество генератора DGN состоит в том, что он относительно хорошо тестирует нейросети разных архитектур, обученные на разных наборах данных. То есть это довольно универсальный исследовательский инструмент.
Во многом работа этого DGN похожа на работу генератора Deep Dream, разработанного специалистами из научно-исследовательского подразделения Google Research полтора года назад. Но DGN, судя по всему, работает гораздо более качественно и эффективно за счёт дополнительного предварительного обучения на наборе натуральных фотографий, хотя они не связаны с набором данных, на котором обучалась или работает исследуемая нейросеть. Затем генератор DGN генерирует разнообразные синтетические изображения, изменяя параметры натуральных фотографий. Такой метод, фактически, работает как генеративная состязательная сеть, в которой нейросети воюют между собой.
Кстати, DGN можно использовать вообще для другой цели — как автора синтетических изображений. Произведений искусства, соответствующих заданным критериям.
В нашем случае заданный критерий — это максимальная оценка по шкале NSFW. Сложно назвать это таким уж выдающимся искусством, но задача вполне конкретная. Если задача поставлена, нужно её решать.
Итак, «пространство натуральных изображений», согласно логике генеративной состязательной нейросети, выглядит почти как абстрактное искусство. Cлучайно сгенерированные изображения, естественно, обычно получают низкие оценки по шкале NSFW.
Например, у этой картины порноиндекс всего 0,06.
Здесь порнографии чуть больше — 0,07.
Ну, а дальше запускаем DGN согласно методике, описанной в научной работе Нгуена, Досовитского и др. Тем более что исходный код для DGN авторы любезно выложили на Github.
Итак, DGN запускают со следующим условием для получения максимального индекса NSFW, то есть максимизации функции D (x).
И всё, теперь можно наслаждаться бесчисленным количеством максимально порнографических изображений с индексом 1,00.
Нужно сказать, что абстрактные синтетические изображения в большинстве солучаев выглядят действительно довольно реалистично. Хотя понятно, что это не какие-то реальные объекты, а просто сгенерированные наборы пикселей с совершенно неизвестным содержанием.
Вот некоторые из них.
Аспирант продолжил эксперимент — и поставил перед DGN противоположную задачу: сгенерировать картинки с минимальным значением индекса NSFW.
То есть не просто гарантированное отсутствие порнографии, а нечто большее — это антипорнография.
Самое интересное, что в нейросети Yahoo значение D (x) вычисляется по относительной силе активации не одного, а двух независимых нейронов — один NSFW, как и можно было предположить, а второй — SFW. То есть нейросеть немного «возбуждается» даже на полностью безопасные картинки, такие как округлые холмы и проч.
Зная эту информацию, есть возможность генерировать мягкие эротические картинки, в которых гарантированно отсутствует порнография, но которые всё равно «возбуждают» нейросеть, заточенную на поиск порно.
Исследователь поигрался с коэффициентами в уравнении, чтобы найти оптимальное сочетание нейронов порнографии и антипорно для наилучшего художественного эффекта, но при этом для получения максимального порноиндекса 1.
Вот эти удивительные картины.
Ошеломлённый красотой этих результатов, автор запустил DGN не на одной нейросети open_nsfw, а одновременно на другой нейросети places-CNN, которая классифицирует фотографии по месту съёмки. Таким образом, он получил картины, которые получают максимальные результаты одновременно и по месту съёмки (пляж, каньон, концерт и т.д.), и минимальный/максимальный результат по индексу NSFW.
Пляж
Концерт
Пустыня
Музей
Вулкан
Поистине, тут богатое поле для экспериментов.
Автор с печалью признаётся, что элементы NSFW, в принципе, можно выявить на всех фотографиях. Всё дело в способности узнать их. Если вы посмотрите, на основе каких оригиналов созданы данные образцы, то вы не сможете «развидеть» эти элементы даже на оригинальных фотографиях с концертов, из музеев и т.д.
Если долгое время изучать нейросеть open_nsfw, кто знает, может вы начнёте видеть элементы NSFW вообще повсюду вокруг?