Как автоматически создать мем
Существуют так называемые боты-мемезаторы. Отправляете им картинку — они подбирают к ней подпись и автоматически создают из неё мем. Мы сгенерировали мем с котиком, положим его в комментарии к посту.
Некоторые мемы получаются удачные, другие — не очень, но в целом мемезатор неплохо подбирает подпись к картинке. Как ему это удаётся? «На пальцах» объясняет разработчик программы курса «Математика для анализа данных» Георгий Кожевников.
***
На просторах интернета собирают большой датасет картинок и описаний к ним. Размер датасета — сотни миллионов пар картинка-подпись.
Дальше обучают модель типа CLIP, которая умеет связывать текст и картинки. Она состоит из двух нейросетей: одна превращает картинки в векторы, вторая — текст в векторы.
Идея в том, чтобы измерить схожесть изображения и текста. В качестве меры используют расстояние между векторами: схожие векторы расположены близко друг к другу, а отличающиеся — далеко.
Обучение происходит так: берут картинку и подпись к ней из датасета, затем берут ещё около 30 000 случайных подписей. Нейросети превращают всё в векторы и строят модель так, чтобы вектор настоящей подписи был ближе всего к вектору картинки, а векторы всех остальных подписей — дальше.
Такой способ обучения называется contrastive learning, в переводе на русский — контрастное обучение (но русский вариант используют редко).
Со временем модель выучивает общее векторное пространство «смыслов» для картинок и текстов. В результате любой текст и любую картинку можно перевести в это пространство и измерить расстояние между ними.
Тут уже можно начать догадываться, как работает мемезатор. Заводят базу мемных фраз, вроде «Алло, это пожарная? Пожарьте картошечку» и с помощью нашей нейронной сети вычисляют расстояния между входной картинкой и каждой такой фразой в базе. Затем выбирают фразу, которая находится ближе всех к картинке, и приклеивают её на фотку.
Вуаля — мемезатор готов! Никакой ловкости рук, только наша любимая математика.
Систему можно улучшить, например, так:
1) Добавить вероятность. Чтобы каждый раз не выбиралась одна и та же фраза, можно сделать выбор случайным, с учётом расстояний. Чем ближе фраза к картинке, тем вероятнее она будет выбрана, но всегда есть шанс выбрать другую фразу. Иногда получается нелепо, а в других случаях появляется удивительный сарказм.
2) Дообучить модель на «мемном» датасете. Для этого нужно собрать датасет мемов: пары картинка + смешная подпись текстом + количество положительных реакций. Таким образом, мемы должны получаться более точными и смешными. Но чувство юмора — тонкая штука, поэтому оценить объективно, конечно, сложно.
***
В предыдущих постах Георгий советовал учебники по математике для Data Sience, ещё книги по математике для Data Science и рассказывал о математике в компьютерной графике. Заглядывайте, если интересно. 😇
Post #137
3.43K
- 👍 14
- ❤ 9