Генеративно-состязательная сеть

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Метод[править | править код]

Пример повышения качества изображения посредством GAN

В системе GAN одна из сетей (сеть G, от Generator) генерирует образцы (см. Генеративная модель[en]), а другая (сеть D, от Discriminator) старается отличить правильные («подлинные») образцы от неправильных (см. Дискриминативная модель[en])[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].

Примечания[править | править код]

  1. 1 2 3 Goodfellow, Ian J.; Pouget-Abadie, Jean; Mirza, Mehdi; Xu, Bing; Warde-Farley, David; Ozair, Sherjil; Courville, Aaron; Bengio, Yoshua (2014). "Generative Adversarial Networks". arXiv:1406.2661 [stat.ML].
  2. Salimans, Tim; Goodfellow, Ian; Zaremba, Wojciech; Cheung, Vicki; Radford, Alec; Chen, Xi (2016). "Improved Techniques for Training GANs". arXiv:1606.03498 [cs.LG].
  3. Luc, Pauline; Couprie, Camille; Chintala, Soumith; Verbeek, Jakob. Semantic Segmentation using Adversarial Networks (неопр.) // NIPS Workshop on Adversarial Training, Dec , Barcelona, Spain. — 2016. — 25 November (т. 2016). — arXiv:1611.08408.
  4. Andrej Karpathy, Pieter Abbeel, Greg Brockman, Peter Chen, Vicki Cheung, Rocky Duan, Ian Goodfellow, Durk Kingma, Jonathan Ho, Rein Houthooft, Tim Salimans, John Schulman, Ilya Sutskever, And Wojciech Zaremba, Generative Models, OpenAI, Архивировано из оригинала на 22 апреля 2021, Дата обращения: 19 июля 2017{{citation}}: Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка) Википедия:Обслуживание CS1 (непригодный URL) (ссылка)
  5. Li, Wei; Gauci, Melvin; Gross, Roderich (July 6, 2013). "A Coevolutionary Approach to Learn Animal Behavior Through Controlled Interaction". Proceedings of the 15th Annual Conference on Genetic and Evolutionary Computation (GECCO 2013). Amsterdam, The Netherlands: ACM. pp. 223—230.
  6. Li, Wei; Gauci, Melvin; Groß, Roderich. Turing learning: a metric-free approach to inferring behavior and its application to swarms (англ.) // Swarm Intelligence : journal. — 2016. — 30 August (vol. 10, no. 3). — P. 211—243. — doi:10.1007/s11721-016-0126-1.
  7. Фальшивомонетчики против банкиров: стравливаем adversarial networks в Theano. Дата обращения: 19 июля 2017. Архивировано 20 августа 2017 года.
  8. Photo Editing with Generative Adversarial Networks (Part 1). Дата обращения: 19 июля 2017. Архивировано 20 августа 2017 года.
  9. Michael Dietz. On the intuition behind deep learning & GANs — towards a fundamental understanding (недоступная ссылка)
  10. Anders Boesen Lindbo Larsen and Søren Kaae Sønderby Generating Faces with Torch. Дата обращения: 19 июля 2017. Архивировано 11 июля 2017 года.
  11. Photo Editing with Generative Adversarial Networks (Part 1). Дата обращения: 19 июля 2017. Архивировано 20 августа 2017 года.
  12. Generative Adversarial Nets in TensorFlow Agustinus Kristiadi. Дата обращения: 14 ноября 2017. Архивировано 17 ноября 2017 года.
  13. Image Completion with Deep Learning in TensorFlow. Дата обращения: 14 ноября 2017. Архивировано 15 ноября 2017 года.
  14. Greenemeier, Larry When Will Computers Have Common Sense? Ask Facebook. Scientific American (20 июня 2016). Дата обращения: 31 июля 2016. Архивировано 24 июля 2016 года.
  15. Generating Videos with Scene Dynamics. web.mit.edu. Дата обращения: 19 июля 2017. Архивировано 20 марта 2017 года.
  16. 3D Generative Adversarial Network. 3dgan.csail.mit.edu. Дата обращения: 19 июля 2017. Архивировано 27 октября 2019 года.
  17. Schawinski, Kevin; Zhang, Ce; Zhang, Hantian; Fowler, Lucas; Santhanam, Gokula Krishnan (2017-02-01). "Generative Adversarial Networks recover features in astrophysical images of galaxies beyond the deconvolution limit". arXiv:1702.00403 [astro-ph.IM].

Ссылки[править | править код]