Содержание статьи
Как отличить фото людей, которые сгенерировала нейросеть
Обратное распространение: Учимся на ошибках
Так, например, первые скрытые слои могут отвечать за распознавание базовых характеристик изображения, таких как грани, текстуры и цвета. “Нейроны” в первом слое могут реагировать на вертикальные или горизонтальные линии на изображении , а другие могут определять области с определенным цветом.
В ноябре в приложении Lensa появилась новая функция «Magic Avatars», которая при помощи нейросети изучает лицо человека и создает пачку из 50-200 аватарок в разных стилях. Давайте узнаем, как нейросеть рисует по фото и что из этого получается — результат впечатляет.
После выбора фотографий, необходимо указать свой пол — чтобы результат вас порадовал, рекомендуется выбрать верный, без экспериментов. После этого нужно выбрать, сколько вариантов аватарок вы хотите получить: 50, 100 или 200. После оплаты, нейросеть начнет рисовать по фотографиям, которые вы загрузили. Процесс может занять более 20 минут, так что надо запастись терпением.
Обратное распространение включает в себя расчет градиентов разными методами , которые представляют собой скорость изменения ошибки сети по отношению к ее весам и смещениям (на графике ниже градиент выглядит как угол наклона стрелочки: чем больше разница между желаемым и полученным результатом, тем больше угол наклона). По сути, этот шаг определяет, какой вклад вносит каждый параметр в общую ошибку предсказания, чтобы потом изменить его и приблизиться к желаемому значению.
На более поздних слоях нейросети, изображения становятся менее похожими на исходные фотографии, потому что на этапе обработки нейросеть сосредотачивается на абстрактных и сложных признаках и понятиях, которые она выучила из тренировочных данных. Вот почему это происходит:
Вот как это может происходить: представим, что у нас есть набор фотографий человека для обучения нейросети. Этот набор может содержать различные фотографии с разных углов, в разном освещении и с разными выражениями лица. Нейросеть старается выделить общие черты лица , которые помогут ей распознавать человека на других изображениях. Однако, если в обучающей выборке были какие-то уникальные особенности этого человека, которые не были представлены в достаточном количестве, нейросеть может «запомнить» эти детали и использовать их для классификации в будущем. В таком случае, если мы визуализируем то, что “видит” нейросеть, на экране будет кусочек фотографии этих деталей в первоначальном виде, так как его значение было сохранено в весах и смещениях, а значит именно он будет наибольшим образом активировать “нейроны”, а не усредненное значение всех обучающих фотографий.
Одной из основных проблем здесь является то, что разработчики могут не замечать недостатков в обучающей выборке из-за ее большого объема. Представьте, что у вас есть тысячи фотографий, используемых для обучения нейросети. В таких больших объемах данных легко пропустить какие-то мелкие детали или недостатки, особенно если обучение проводится автоматически или с использованием больших наборов данных .
Форма лица. Нейросетевым лицам присуща симметричность, которую редко встретишь в жизни, например глаза на одинаковом расстоянии от центра лица. Либо, наоборот, неестественная асимметричность, например одно ухо гораздо больше второго, глаза разного цвета и размера.
Как отличить фото, сгенерированные StyleGAN
Формат фотографии. StyleGAN обучена на однотипных снимках — крупных портретах, на которых обрезано все лишнее и видно только голову. Обычно так люди фотографируются для рабочих профилей, пропусков или документов. Но в соцсетях такие фото встречаются редко. Поэтому кадр строго «по шею» может указывать на нейросеть. Тем более если фото, например, в профиле пользователя всего одно: генераторы не могут сделать несколько разноплановых снимков человека.
Данные, которые «видит» нейросеть, хранятся в ее весах и смещениях. Обучение нейросети заключается в том, чтобы настроить эти веса и смещения таким образом, чтобы они лучше всего соответствовали задаче классификации или распознавания объектов. Когда нейросеть “видит” какой-то признак, который она уже обучена распознавать, определенная группа “нейронов” в ней “загораются” : подобно связям в мозгу, через которые проходит сигнал. То, насколько сильно нейросеть “реагирует” на какое-то изображение, можно увидеть по значениям функций активаций: чем они больше, тем активнее “нейроны” реагируют на изображения, а значит, они его “узнают” .
1. Входной слой: Это начальный слой, на котором сеть получает внешние данные. Каждый нейрон в этом слое представляет характеристику или атрибут входных данных. Таким образом, если нейросеть получает на вход фотографию, “нейроны” на входном слое разбивают ее на кусочки, которые потом будут анализироваться.
Сервисы работают по-разному . Например, в This Person Does Not Exist нельзя задать параметры изображения: после каждого обновления страницы пользователь просто получает рандомно сгенерированный новый снимок. В Bored Humans тоже нет настроек. А в Random Face Generator можно задать только пол и возраст сгенерированного на фото человека.
Когда нейросеть обучается на данных, она стремится извлечь наиболее важные признаки из этой информации, которые помогут ей делать точные прогнозы или принимать решения в будущем. Однако в процессе этого обобщения она может «помнить» определенные детали обучающих данных в своих весах и смещениях.
Чтобы визуализировать, что «видит» нейросеть, на какие вещи она обращает внимание, можно использовать технику, называемую визуализацией признаков (feature visualization) . Эта техника позволяет воссоздать изображения, которые максимально активируют определенные нейроны в нейросети.
Как меня видит нейросеть?
Далее приложение просит выбрать из галереи 10-20 фотографий, на которых видно только ваше лицо. Будет хорошо, если они сняты с разных ракурсов, на них видны разные эмоции и используется разнообразный фон. Если соблюсти все требования, аватарки получатся наивысшего качества.
Процесс визуализации признаков начинается со случайного изображения или шума, которое затем подвергается оптимизации, чтобы максимизировать активацию конкретного “нейрона” или группы “нейронов” в определенном слое нейросети. Это достигается путем изменения пикселей изображения таким образом, чтобы они максимально активировали выбранные “нейроны”.
Ошибки и артефакты. У StyleGAN есть несколько мест, где нейросеть обычно ошибается. Например, это аксессуары: ИИ любит генерировать людей в очках и серьгах, но нередко на них проявляются артефакты, которые выглядят как характерные разноцветные кляксы.
Ниже вы видите иллюстрацию того, как нейросеть на более поздних слоях “видит” характеристики одного участка фотографии. Сбоку показано значение функции активации каждого выхода. Таким образом, что нейросеть “видит”, что выбранный участок похож на шею человека или нижнюю часть лица.
2. Абстракция : Нейросеть стремится к абстракции, выделяя особенности, которые ей кажутся важными для различения между классами объектов. Это может привести к тому, что изображения становятся все более абстрактными и трудно интерпретируемыми для человеческого восприятия. То, какие именно особенности ей покажутся важными, во многом зависит от данных, на которых нейросеть обучалась. Например, если все мужчины, которых нейросеть “видела”, были в черных очках, то нейросеть первым делом научится распознавать на фотографии черные очки, а остальные признаки, такие как форма лица или волосы на лице, она будет опускать.
Это действительно проблема. В 2022 году ученые лондонского университета Роял Холлоуэй провели исследование и выяснили, что люди уже часто не могут определить, где реальное фото, а где нет. Другое исследование университетов Беркли и Ланкастера удивило еще больше: после того как участникам эксперимента дали советы по выявлению фейка, 41% испытуемых все равно не справились с заданием.