Долго забывала написать в паблике про препринт статьи "
Improving Interpretability and Robustness for the Detection of AI-Generated Images", над которым мы работали совместно с Таней (
@dl_stories ), а также с Германом (
@junkyardmathml ) и другими коллегами, но сегодня, наконец, исправляюсь.
🧐В данной работе было сделано несколько наблюдений про детекцию искусственно сгенерированных изображений с помощью эмбеддингов модели CLIP:
1️⃣ Допустим, у нас есть: A - набор картинок, на которых обучалась заданная генеративная модель (т.е. какой-нибудь GAN или Diffusion Model) и B - набор картинок, которые эта модель сгенерировала. Далее эти картинки можно подать на вход CLIP и извлечь из его последнего слоя эмбеддинги, соответствующие картинкам: A' и B'. Так вот, для каждого отдельного генератора, который мы рассмотрели, эти эмбеддинги оказывались линейно разделимыми с достаточно большой точностью, но при этом у разных генераторов разделяющая плоскость проводилась по-разному, что являлось причиной проблем с робастностью классификатора на этих эмбеддингах. Рассмотрев отрезок, соединяющий центроиды кластеров A' и B' для какого-то генератора ("Residual" на рис. 1), можно понять причины того, почему так происходит.
Как мы помним, пространство эмбеддингов CLIP является общим для картинок и текстов, так что для каждого вектора в этом пространстве можно найти текст, который ближе всего к нему по смыслу. И если рассмотреть тексты, которые ближе всего по смыслу к Residual-ам, то можно понять, в чем конкретно заключается отличительная особенность картинок, сделанных каждым генератором. У некоторых генераторов ближайший текст так и будет выглядеть как "generated photo", у других ближайший текст - это что-то на тему детальности или цветовой гаммы картинок (например, что-нибудь про "vibrant" и "detailed") и т.д. Таким образом, мы показали простой способ интерпретировать работу классификатора сгенерированных картинок на эмбеддингах.
2️⃣ Мы также обнаружили, что некоторые компоненты финального эмбеддинга CLIP хранят в себе информацию, которая важна для детекции конкретного генератора (или конкретного типа генераторов, например, GANов), но уменьшает качество переноса детектора на другой генератор. Если найти и удалить эти компоненты, то можно существенно улучшить робастность классификатора при изменении генерирующей модели. Особенно интересно, что получилось улучшить переносимость классификатора с детекции генераторов-диффузий на детекцию генераторов-GANов (и обратно).
3️⃣ Кроме того, оказалось, что некоторые головы внимания CLIP выделяют более полезные для робастной классификации фичи, чем другие. С помощью этого наблюдения тоже можно выудить из CLIP-а информацию, которая позволяет классифицировать картинки более робастно, чем это делал стандартный классификатор на эмбеддингах CLIP. И здесь тоже можно улучшить переносимость классификатора с детекции генераторов-диффузий на детекцию генераторов-GANов и наоборот.
В общем, такой вот вклад в улучшение интерпретируемости и робастности детекции сгенерированных изображений. Ну а я пошла дальше траву трогать.
🏃🏕🌳#объяснения_статей