Русская Википедия:Генеративно-состязательная сеть

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Генеративно-состязательная сеть (Шаблон:Lang-en, сокращённо GAN) — алгоритм машинного обучения без учителя, построенный на комбинации из двух нейронных сетей, одна из которых (сеть G) генерирует образцы (см. Шаблон:Нп5), а другая (сеть D) старается отличить правильные («подлинные») образцы от неправильных (см. Шаблон:Нп5). Так как сети G и D имеют противоположные цели — создать образцы и отбраковать образцы — между ними возникает антагонистическая игра. Генеративно-состязательную сеть описал Шаблон:Нп5 из компании Google в 2014 году[1].

Использование этой техники позволяет в частности генерировать фотографии, которые человеческим глазом воспринимаются как натуральные изображения. Например, известна попытка синтезировать фотографии кошек, которые вводят в заблуждение эксперта, считающего их естественными фото[2]. Кроме того GAN может использоваться для улучшения качества нечётких или частично испорченных фотографий.

Метод

Файл:Vergleich Original und GAN-Upscaling Real-ESRGAN 20210817.png
Пример повышения качества изображения посредством GAN

В системе GAN одна из сетей (сеть G, от Generator) генерирует образцы (см. Шаблон:Нп5), а другая (сеть D, от Discriminator) старается отличить правильные («подлинные») образцы от неправильных (см. Шаблон:Нп5)[1]. Используя набор переменных латентного пространства, генеративная сеть пытается слепить новый образец, смешав несколько исходных образцов. Дискриминативная сеть обучается различать подлинные и поддельные образцы, а результаты различения подаются на вход генеративной сети так, чтобы она смогла подобрать лучший набор латентных параметров, и дискриминативная сеть уже не смогла бы отличить подлинные образцы от поддельных. Таким образом целью сети G является повысить процент ошибок сети D, а целью сети D является наоборот улучшение точности распознавания[1][3].

Дискриминационная сеть D, анализируя образцы из оригинальных данных и из подделанных генератором, достигает некоторой точности различения. Генератор при этом начинает со случайных комбинаций параметров латентного пространства (см. многомерное нормальное распределение), а после оценки полученных образцов сетью D, применяется метод обратного распространения ошибки, который позволяет улучшить качество генерации, подправив входной набор латентных параметров. Постепенно искусственные изображения на выходе генеративной сети становятся всё более качественными[4]. Сеть D реализуется как свёрточная нейронная сеть, в то время как сеть G наоборот разворачивает изображение на базе скрытых параметров.

В процессе совместного конкурентного обучения, если система достаточно сбалансирована, достигается минимаксное состояние равновесия, в котором обе сети значительно улучшили своё качество, и теперь сгенерированные изображения могут быть использованы практически как настоящие.

Идея состязательного обучения была выдвинута в 2013 году Li, Gauci и Gross[5]. Этот метод называется также «обучением Тьюринга»[6], так как ставит целью пройти тест Тьюринга.

Популярные объяснения метода

Принцип состязательности в сети GAN нередко описывается через метафоры. Например, генеративная сеть уподобляется фальшивомонетчику или подделывателю картин, а дискриминативная — эксперту, который стремится распознать подделку[7][8]. Другой пример — образ двух боксёров, один из которых учился у мастера, а второй вынужден подражать ученику[9].

В популярном приложении генерации человеческих лиц в качестве подлинных данных выступают реальные фотографии, а генеративная сеть пытается создать искусственные лица, варьируя комбинации таких латентных параметров, как цвет волос, пропорции лица, разрез глаз, форма носа, размер ушей, наличие бороды и усов и т. д.[10][11]

В статьях исследователей приводятся примеры реализации GAN на базе библиотеки TensorFlow[12][13].

Применение

GAN используются для получения фотореалистичных изображений, например для элементов промышленного дизайна, дизайна интерьера, одежды, сумок, портфелей, сцен компьютерных игр и т. д. Сети GAN используются также в сети Facebook[14]. В последнее время системы GANs стали использоваться для подготовки кадров фильмов или мультипликации[15]. Также эти системы помогают воссоздать трёхмерную модель объекта с помощью фрагментарных изображений[16] и улучшить изображения, полученные из астрономических наблюдений[17].

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Нейросети Шаблон:Машинное обучение