GAN – генеративно-змагальна нейронна мережа (Generative adversarial network, GAN) – один із алгоритмів класичного машинного навчання, навчання без учителя. Суть ідеї в комбінації двох нейромереж, при якій одночасно працює два алгоритми "генератор" і "дискрімінатор". Завдання генератора – створювати образи заданої категорії. Завдання дискриминатора – намагатися розпізнати створений образ.

Таким чином генератор генерує певні образи. Наприклад, картинки, схожі на обличчя, а дискрімінатор намагається визначити обличчя це було чи ні. І з часом мережа навчається настільки, що генератор генерує досить реалістичні обличчя.

Яким чином нейронна мережа може щось генерувати і розпізнавати?

Дискрімінатор. Для розпізнавання використовуються згорткові нейронні мережі (CNN). Принципи роботи та застосування CNN описані в окремій статті. Для розуміння «на пальцях»: CNN може розпізнавати образи на картинках, наприклад, виділяти з усього зображення обличчя, цифри тощо Щоб нейронна мережа навчилася щось розпізнавати, їй потрібно обробити велику кількість зображень, де містяться образи, потрібні для пошуку.

Простою мовою: ви даєте нейронній мережі велику кількість зображень котиків, на яких відзначаєте в якій частині зображення знаходяться котики (це називається "розмітка"), і потім нейронна мережа вже сама здатна сказати чи є на зображенні котики і де вони знаходяться.

Генератор. Формування зображень починається з генерації довільного шуму, на якому поступово починають проступати фрагменти потрібного зображення. Уявіть, що ви трусите тарілку з піском, поки не вдається "натрусити" щось віддалено схоже на цифру. А потім продовжуєте трусити, поки контури цифри не стануть більш явними. Нейромережа запам'ятовує яким саме чином ви трусили тарілку, щоб домогтися такого результату, і наступного разу відтворює ваші дії.

Генератор изображений CNN

Звісно, це ілюстративний приклад, і в реальних моделях застосовуються більш розумні підходи. В якості генеруючої нейронної мережі можуть використовуватися (і часто використовуються) мережі FFNNнейронні мережі прямого поширення (feed forward neural networks).

Як і де застосовуються GAN і генеративні моделі?

Створення контенту і даних: наприклад, створення картинок для інтернет-магазину, аватарів для ігор, відеокліпів, згенерованих автоматично, виходячи з музичного біта твору, або навіть віртуальних ведучих для ТВ-програм. Завдяки роботі GAN і генеративних моделей виникає синтез даних, на яких потім навчатимуться інші системи.

Автоматичне редагування: цей підхід вже використовується в сучасних смартфонах і деяких програмах. Він дозволяє змінювати на фотографії обличчя, кількість зморшок і зачіску, міняти день на ніч, зістарювати зображення і т.п.

Застосування GAN нейромереж – реальні надихаючі приклади

Генерация лиц

Генерація приголомшливо реалістичних зображень "селебрітіс" (а насправді – неіснуючих людей) за допомогою PG GAN від nVidia. C допомогою цієї мережі можна також генерувати зображення будь-яких інших категорій.

Всі ці зображення згенеровані системою на базі генеративних змагальних нейронних мереж, частина з них виглядає не надто реалістично, але інша частина вельми правдоподібна.

генерация изображений предметов

Модель Everybody Dance Now, створена групою вчених із Університету Берклі, представляє простий метод на основі генеративних нейронних мереж передачі руху «зроби як я». Дано: на вході взяте відео танцюючої людини. Досягнутий результат: ми змушуємо зображення іншої людини танцювати. Це називається "перенесення руху".

Перенесення стилю з одного зображення на інше дозволяє за допомогою нейронних мереж робити такі вражаючі речі як "перетворити коня на зебру".

Генератор изображений CNN

Або генерувати "аніме-портрети" по фотографії. На цій картинці видно, як із цим завданням справляються різні види ГАНів.

Изменение лица

Зміна емоцій, віку, виразу обличчя людини – всього цього можна досягти, правильно навчившитаі запрограмувавши нейронні мережі GAN. На практиці це виглядає наступним чином: на вході моделі подається вхідне фото і вказується емоція, яку потрібно показати на виході.

Изменение эмоций CNN

Також нейронні мережі GAN використовують для генерації реалістичного відео міського середовища. Наприклад, при створенні фільмів, ігор, віртуальної реальності.

Перетворення ескізів і контурних малюнків на фотореалістичне зображення за допомогою GAN відбувається наступним чином: ви малюєте від руки обличчя, сумку або, наприклад, кота, і отримуєте фотореалістичне зображення на виході. Погратися з цим можна тут.

Переобразование набросков в картинку

Замість висновку: що конкретно можна розробити, використовуючи нейронні мережі GAN

Оскільки GAN – досить молодий метод (він з'явився тільки в 2014 році, а перші "пристойні" результати з'явилися в 2016-2017 роках), ще ніхто не знає достовірно, що можна, а чого не можна зробити за допомогою GAN. Оглядам нових варіацій GAN і способам їх застосування присвячено багато статей, ми ж зберемо найцікавіші з них і будемо публікувати в нашому блозі.

Для чого ми в Evergreen плануємо застосовувати нейронні мережі GAN? Основна ідея – автоматизація виробництва контенту, який раніше вимагав зусиль дизайнерів.

Якщо ви вважаєте, що зараз переплачуєте за створення контенту, який може створювати машина, поділіться з нами своєю ідеєю. Ми будемо раді знайти метод генерації, що відповідає вашим потребам.

28.01.2019
Рейтинг: 5 / 5 (1)