Генеративно-змагальні нейронні мережі, GAN на прикладах і картинках 8 Генеративно-змагальні нейронні мережі, GAN на прикладах і картинках 9 Генеративно-змагальні нейронні мережі, GAN на прикладах і картинках 10

Що таке GAN - генеративно-змагальні нейронні мережі і як їх застосовувати для генерації зображень

#Машинне навчання #Нейронні мережі

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

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

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

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

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

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

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

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

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

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

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

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

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

https://medium.com/

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

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

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

https://towardsdatascience.com/

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

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

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

https://kharshit.github.io/

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

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

https://towardsdatascience.com/

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

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

https://towardsdatascience.com/

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

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

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

https://affinelayer.com/pixsrv/

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

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

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

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

28.01.2019
Зображення, використані в статті, були взяті з відкритих джерел і використовуються як ілюстрації.
Хочете обговорити ваш проект або замовити розробку?
Надіслати
Цей сайт є українською мовою. Ви можете переключити мову у меню, або зробити це зараз.