[Перевод] Генеративная зоология с нейронными сетями
Пару лет назад в моем списке для чтения появилась статья под названием «Прогресс и развитие GAN для улучшения качества, стабильности и повышения вариации». В ней описывается постепенный рост генеративно-состязательных сетей, начинавших с создания изображений с низким разрешением и повышавших степень детализации по мере продолжения обучения. Этой теме было посвящено множество публикаций, поскольку авторы использовали свою идею для создания реалистичных и уникальных изображений человеческих лиц.
Примеры изображений, созданных GAN
Глядя на эти изображения, кажется, что другим нейронным сетям потребуется изучить множество примеров, чтобы иметь возможность создавать то, что выдают GAN. Некоторые факторы кажутся относительно простыми и обоснованными фактически — например, что цвет обоих глаз должен совпадать. Но другие аспекты фантастически сложны, и их очень трудно сформулировать. Так, например, какие детали необходимы для того, чтобы связать воедино глаза, рот и кожу в целостное изображение лица? Конечно, я говорю о статистической машине как о человеке, и наша интуиция может нас обмануть — может оказаться, что рабочих вариаций относительно мало, а пространство решений более ограничено, чем мы себе представляем. Наверное, самое интересное — это не сами образы, а то жуткое воздействие, которое они оказывают на нас.
Некоторое время спустя в моем любимом подкасте была упомянута PhyloPic — база данных силуэтных изображений животных, растений и других жизненных форм. Размышляя над этими строками, я задался вопросом — что получится, если обучить систему, вроде той, что описана в статье «Прогрессивные GAN», на очень разнообразном наборе подобных данных? Получится множество разновидностей нескольких известных типов животных, или мы получим множество вариаций, которое породит спекулятивную зоологию, управляемую нейронными сетями? Как бы все ни складывалось, я был уверен, что смогу получить из этого несколько хороших рисунков для моей учебной стены, поэтому я решил удовлетворить свое любопытство экспериментом.
Your browser does not support HTML5 video.
Я адаптировал код из статьи о прогрессивных GAN и обучил модель с помощью 12000 итераций, используя мощности Google Cloud (8 графических процессоров NVIDA K80) и весь набор данных PhyloPic. Общее время обучения, включая некоторые ошибки и эксперименты, составило 4 дня. Я использовал окончательную обученную модель для создания 50-килобайтных отдельных изображений, а затем потратил часы на просмотр результатов, категоризацию, фильтрацию и сопоставление изображений. Я также немного редактировал некоторые изображения, повернув их, чтобы все существа были направлены в одну и ту же сторону (чтобы добиться визуального удовлетворения). Этот практический подход означает, что то, что вы видите ниже — это своего рода коллаборация между мной и нейронной сетью — это была творческая работа, и я вносил в нее свои правки.
Летающие насекомые
Первое, что меня удивило, так это то, насколько эстетически приятными были результаты. Многое из этого, безусловно, является отражением хорошего вкуса художников, которые создали оригинальные изображения. Однако, были и приятные неожиданности. Например, кажется, что всякий раз, когда нейронная сеть входит в область неопределенности — будь то мелкие кусочки, которые она еще не освоила, или полеты размытой биологической фантазии — в изображении появляются хроматические аберрации. Это любопытно, потому что входной набор полностью выполнен в черно-белом цвете, а значит, цвет не может быть решением какой-либо генеративной проблемы, принятым при обучении модели. Любой цвет является чистым артефактом разума машины. Удивительно, что одним из факторов, постоянно вызывающих хроматические аберрации, являются крылья летающих насекомых. Это приводит к тому, что модель порождает сотни вариаций ярко окрашенных «бабочек», подобных представленным выше. Интересно, может ли это быть полезным наблюдением — если обучать модель, используя только черно-белые изображения, и при этом требовать вывода полноцветных изображений, то цветные пятна могут быть полезным способом для отображения областей, в которых модель не в состоянии точно отобразить тренировочный набор.
Основную часть выходных данных составляет огромное разнообразие полностью узнаваемых силуэтов — птицы, различные четвероногие, множество маленьких грациозных хищных динозавров, ящероногих, рыб, жуков, арахноидов и гуманоидов.
Птицы
Четвероногие
Динозавры
Рыбы
Жуки
Гоминиды
Странные вещи
Как только известные нам твари заканчиваются, мы встречаемся с незнакомыми вещами. Один из появившихся у меня вопросов заключался в следующем: будут ли появляться правдоподобные планы тела животных, которых в природе не существует (возможно, гибриды существ, входящих в набор входных данных)? С помощью тщательного поиска и небольшой парейдолии, я обнаружил сотни четвероногих птиц, змееголовых оленей и других фантастических чудовищ.
Чудища
Уходя еще дальше в неизвестность, модель породила странные абстрактные шаблоны и неидентифицируемые сущности, создающие некое ощущение их «живости».
Абстрактные существа
Неидентифицируемые
Случайный отбор
Чего не видно на приведенных выше изображениях, так это обилия вариаций в результатах. Я распечатал и и поместил несколько таких наборов изображений в рамки, и эффект, производимый сотней маленьких, детально прорисованных изображений, находящихся бок о бок в масштабе, довольно поразителен. Чтобы дать некоторое представление о масштабах полного набора данных, я включаю один из примеров распечатки ниже — это случайная выборка из неотфильтрованного корпуса изображений.
Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя платные онлайн-курсы SkillFactory: