Эволюция ИИ в процессе решения практических задач
Рис. 2.13. Динамика показателей mIoU Cityscape-соревнования в решении задач семантической маркировки на уровне пикселя. Источник: AI Index Report 2021
Технологии искусственного интеллекта позволяют не только распознавать существующие объекты, но и генерировать синтетические изображения новых, которые даже эксперты не могут отличить от фотографий реальных объектов нашего мира.
Новые возможности в данном направлении открыли так называемые генеративно-состязательные сети. Основа технологии была разработана Яном Гудфеллоу (Ian Goodfellow) в 2014 г. - в период, когда он являлся аспирантом Монреальского университета. Об этих сетях расскажем чуть подробнее.
Генеративно-состязательные сети
Генеративно-состязательные сети, или GAN (от Generative Adversarial Network) - это сравнительно молодая и быстро развивающаяся технология, которая поражает воображение возможностью генерировать фотореалистичные изображения несуществующих объектов, неотличимо похожих на реальные, которые невозможно определить как подделку.
"Фотографии несуществующих людей", сгенерированные GAN-ами, обошли все конференции на тему GAN.
Генеративно-состязательные сети находят массу практических применений: их используют не только для создания изображений, но также для дополнения, восстановления и повышения качества изображений. Например, с помощью GAN можно перевести черно-белые фото и видеоматериалы в цветные, трансформировать летние изображения в зимние, дневные в ночные и так далее. Также GAN используют для улучшения технологий поиска, которые основаны на том, что отыскать конкретное изображение легче, если возможно создать другие синтетические изображения, похожие на него.
И заметим, что в данном разделе мы упоминаем лишь примеры из области работы с изображениями.
Прежде чем дать более полное толкование GAN, следует ввести понятие генеративных и дискриминативных моделей. Чтобы понять разницу в этих подходах, рассмотрим применение каждого для решения задач классификации (рис. 2.14).
Дискриминативные классификаторы пытаются определить, какие признаки на входных данных наиболее полезны для классификации. Модель данного типа пытается определить границу, отделяющую один класс от другого. При этом дискриминативные модели классифицируют точки данных, не задаваясь целью определить, как эти точки были созданы.
Заметим, что мы уже рассматривали задачи классификации при описании метода опорных векторов и нейронных сетей и просто не упоминали, что получаемые модели относятся к дискриминативным. Хорошей иллюстрацией дискриминативного классификатора может служить рисунок 1.43, который мы рассматривали при описании метода SVM, где речь шла о нахождении гиперплоскости, оптимально разделяющей классы в N-мерном пространстве.
Для наглядного объяснения сути понятий генеративного и дискриминативного подходов и их различия можно обратиться к аналогии, которую приводят авторы работы [71]. У отца двое детей. Ребенок "А" способен досконально изучать сущность предметов, ребенок "Б" может определять лишь различия между объектами.
В зоопарке дети видели львов и слонов. После посещения зоопарка отец показывает детям фото льва и спрашивает: "Кто это - лев или слон?" Ребенок "А" в ответ рисует на бумаге льва и слона, основываясь на том, что он видел в зоопарке, затем сравнивает оба изображения с животным на фото и принимает решение (генеративная модель). Ребенок "Б", который только определяет различия, дает ответ на основе отличительных свойств каждого из животных, не прибегая к рисунку (дискриминативная модель).
То есть генеративные классификаторы пытаются моделировать класс. Когда этим классификаторам дается новое наблюдение, они пытаются предсказать, какой класс, скорее всего, породил данное наблюдение.
Как правило, дискриминативный классификатор более точен, поскольку пытается непосредственно решить задачу классификации, а не более общую задачу (в качестве промежуточного шага), как это делают генеративные.
Теперь дадим более общее определение. Генеративные модели основаны на использовании методов неконтролируемого машинного обучения, в процессе которого осуществляется автоматическое обнаружение и изучение закономерностей во входных данных таким образом, чтобы созданную модель можно было использовать для генерации новых примеров, которые, вероятно, могли быть получены из исходного набора данных.
Введя понятия дискриминативной и генеративной моделей, перейдем к определению генеративно-состязательной сети.
Генеративно-состязательная сеть - это метод глубокого обучения, построенный на соревновании двух нейронных сетей, двух моделей - генеративной и дискриминативной (рис. 2.15).
Генеративная сеть, или генератор (на рис. 2.15 обозначена как G), генерирует новые образцы, а вторая (сеть D - дискриминатор) их оценивает, то есть пытается различать настоящие образцы ("подлинные") и поддельные (сгенерированные).
Сеть G принимает на вход случайный шум z, и ее задача - преобразовать шум таким образом, чтобы он приобрел структуру, подобную изображениям в наборе обучающих данных.
Сеть D на вход получает изображения х, при этом выходной сигнал D (x) представляет собой вероятность того, что x является настоящим реальным изображением (1 - стопроцентно реальное изображение; 0 - изображение реальным быть не может).
Сети G и D имеют противоположные цели - "создать образцы, которые не могут быть отбракованы" и "отбраковать образцы". Эти две модели обучаются вместе в состязательной игре с нулевой суммой 22Игра с нулевой суммой, или антагонистическая игра, - это термин теории игр, который определяет некооперативная игра, в которой участвуют два или более игроков, выигрыши которых противоположны , пока модель дискриминатора не будет обманута примерно в половине случаев, что означает, что модель генератора создает правдоподобные примеры. По мере увеличения количества циклов обратной связи между противоборствующими сетями генератор производит все более качественные выходные данные, а дискриминатор все лучше распознает искусственно созданные данные.
Полученные сети могут применяться для создания реалистичных изображений. Для этого исключаем из схемы дискриминатор и с помощью генератора получаем необходимые изображения.