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

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

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

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

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

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

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

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

Идея состязательного обучения была выдвинута в 2013 году Li, Gauci и Gross in 2013.[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", arΧiv:1406.2661 [stat.ML] 
  2. Salimans, Tim; Goodfellow, Ian; Zaremba, Wojciech; Cheung, Vicki; Radford, Alec & Chen, Xi (2016), "Improved Techniques for Training GANs", arΧiv:1606.03498 [cs.LG] 
  3. Luc, Pauline (2016-11-25). «Semantic Segmentation using Adversarial Networks». NIPS Workshop on Adversarial Training, Dec , Barcelona, Spain 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, <http://openai.com/blog/generative-models/>. Проверено 7 апреля 2016. 
  5. (July 6, 2013) "A Coevolutionary Approach to Learn Animal Behavior Through Controlled Interaction".: 223–230, Amsterdam, The Netherlands: ACM. 
  6. (30 August 2016) «Turing learning: a metric-free approach to inferring behavior and its application to swarms». Swarm Intelligence 10 (3): 211–243. DOI:10.1007/s11721-016-0126-1.
  7. Фальшивомонетчики против банкиров: стравливаем adversarial networks в Theano
  8. Photo Editing with Generative Adversarial Networks (Part 1)
  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
  11. Photo Editing with Generative Adversarial Networks (Part 1)
  12. Generative Adversarial Nets in TensorFlow Agustinus Kristiadi
  13. Image Completion with Deep Learning in TensorFlow
  14. When Will Computers Have Common Sense? Ask Facebook. Scientific American (June 20, 2016). Проверено 31 июля 2016.
  15. Generating Videos with Scene Dynamics. web.mit.edu.
  16. 3D Generative Adversarial Network. 3dgan.csail.mit.edu.
  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", arΧiv:1702.00403 [astro-ph.IM] 

Ссылки[править | править вики-текст]