Весной 2021 года я изучал генеративно-состязательные нейросети. Эта технология — комбинация из двух нейросетей. Одна генерирует картинки, а вторая говорит, насколько они похожи на исходную выборку. Натренировав нейросети, можно генерировать уникальные изображения.
Я решил взять за исходную выборку классические мемы начала 2010-х годов, потому что у них чёткие и чёрно-белые контуры. Так получился Мемератор.
Всё начинается со случайного шума, потому что в начале обучения нейросеть заполняется случайными числами. Это результат после пяти эпох — прогонов датасета через нейросеть.
Постепенно две сети — генератор и дискриминатор — начинают играть в игру «кто кого обманет». Генератор отдаёт дискриминатору сгенерированные рисунки, подмешивая в них изображения из исходной выборки. Дискриминатор учится отличать настоящие картинки от сгенерированных, а генератор — создавать изображения, неотличимые от оригинала.
Результат спустя сто эпох:
Нейросеть обучается, и сгенерированные изображения становятся всё больше похожи на настоящие мемы. Пятьсот эпох:
В этот момент лучше остановиться, потому что сети переобучаются и начинают создавать изображения точь-в-точь как в датасете — кому это нужно?
Самые интересные результаты получаются, когда генератор уже умеет создавать нужные очертания, но пока не знает, какие изображения дискриминатор точно распознает. Несколько мемов часто оказываются смешанными в одной картинке, и получаются интересные и уникальные изображения:
Я отобрал двенадцать лучших нейромемов и сделал из них стикерпак «Мемератор».
Нейросеть и обучение — я, телеграм-бот (не используется) — johtai, датасет — Армен.