заглушки Що таке Generative Adversarial Network (GAN)? - Об'єднуйтесь.AI
Зв'язатися з нами
Майстер-клас ШІ:

AI 101

Що таке Generative Adversarial Network (GAN)?

mm
оновлений on

Генеративні змагальні мережі (GAN) є типами архітектури нейронної мережі здатні генерувати нові дані що відповідає вивченим шаблонам. GAN можна використовувати для створення зображень людських облич чи інших об’єктів, для виконання перекладу тексту в зображення, для перетворення одного типу зображення в інший, а також для підвищення роздільної здатності зображень (суперроздільності) серед інших програм. Оскільки GAN можуть генерувати абсолютно нові дані, вони стоять на чолі багатьох передових систем ШІ, програм і досліджень. Але як саме працюють GAN? Давайте дослідимо, як функціонують GAN, і поглянемо на деякі з їх основних застосувань.

Визначення генеративних моделей і GAN

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

Різні генеративні моделі мають різні методи генерації даних і обчислення розподілу ймовірностей. Наприклад, Наївна модель Байєса працює шляхом обчислення розподілу ймовірностей для різних вхідних характеристик і генеративного класу. Коли наївна модель Байєса створює прогноз, вона обчислює найімовірніший клас, беручи ймовірність різних змінних і поєднуючи їх разом. Інші генеративні моделі не глибокого навчання включають моделі суміші Гауса та прихований розподіл Діріхле (LDA). Генеративні моделі на основі глибокого нахилу включати Обмежені машини Больцмана (RBM), Варіаційні автокодери (VAE), і, звичайно, GAN.

Генеративні змагальні мережі були вперше запропонований Яном Гудфеллоу в 2014 році, і вони були вдосконалені Алеком Редфордом та іншими дослідниками в 2015 році, що призвело до стандартизованої архітектури для GAN. GAN – це фактично дві різні мережі, об’єднані разом. GAN є складається з двох половин: модель генерації та модель дискримінації, яку також називають генератором та дискримінатором.

Архітектура GAN

Генеративні змагальні мережі є побудований із моделі генератора та моделі дискримінатора разом. Робота моделі-генератора полягає у створенні нових прикладів даних на основі шаблонів, які модель дізналася з навчальних даних. Робота моделі дискримінатора полягає в аналізі зображень (за умови, що вона навчена на зображеннях) і визначення того, чи зображення створені/фальшиві чи справжні.

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

Після того, як під час навчання було створено гаусівський розподіл даних, можна використовувати генеративну модель. Модель генератора спочатку подається випадковим вектором, який вона перетворює на основі розподілу Гауса. Іншими словами, вектор породжує покоління. Коли модель навчена, векторний простір буде стисненою версією або представленням розподілу Гауса даних. Стиснуту версію розподілу даних називають латентним простором або латентними змінними. Пізніше модель GAN може взяти представлення прихованого простору та витягнути з нього точки, які можна надати моделі генерації та використати для створення нових даних, які дуже схожі на навчальні дані.

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

Процес навчання GAN

Давайте подивимося на все навчання процес для завдання створення гіпотетичного зображення.

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

Генератор приймає вектор випадкових числових даних і перетворює їх на основі розподілу Гауса, повертаючи зображення. Ці згенеровані зображення разом із деякими справжніми зображеннями з навчального набору даних вводяться в модель дискримінатора. Дискримінатор створить імовірнісний прогноз щодо характеру зображень, які він отримує, виводячи значення від 0 до 1, де 1 зазвичай означає автентичне зображення, а 0 — підроблене зображення.

У грі діє подвійна петля зворотного зв’язку, оскільки на базовий дискримінатор подається базова правдивість зображень, тоді як дискримінатор отримує зворотний зв’язок щодо своєї роботи генератора.

Генеративна та дискримінаційна моделі грають одна з одною в гру з нульовою сумою. Гра з нульовою сумою — це гра, у якій виграш однієї сторони відбувається за рахунок іншої сторони (сума обох дій дорівнює нулю). Коли модель дискримінатора здатна успішно розрізнити справжні та підроблені приклади, параметри дискримінатора не змінюються. Однак параметри моделі суттєво оновлюються, коли вона не може відрізнити справжні зображення від підроблених. Для генеративної моделі справедливо протилежне: вона штрафується (і її параметри оновлюються), якщо їй не вдається обдурити дискримінаційну модель, але в іншому випадку її параметри залишаються незмінними (або винагороджується).

В ідеалі генератор здатний покращити свою продуктивність до точки, коли дискримінатор не зможе розрізнити підроблені та справжні зображення. Це означає, що дискримінатор завжди відтворюватиме ймовірності 50% для справжніх і підроблених зображень, тобто згенеровані зображення не можна буде відрізнити від справжніх. На практиці GAN зазвичай не досягають цієї точки. Однак генеративна модель не потребує створення ідеально схожих зображень, щоб усе ще бути корисною для багатьох завдань, для яких використовуються GAN.

Програми GAN

GAN мають низку різних застосувань, більшість із яких пов’язана із створенням зображень і компонентів зображень. GAN зазвичай використовуються в завданнях, де потрібні дані зображення відсутні або обмежені в певній кількості, як метод генерації необхідних даних. Давайте розглянемо деякі типові випадки використання GAN.

Створення нових прикладів для наборів даних

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

Створення унікальних людських облич

Жінки на цій фотографії не існує. Зображення створено StyleGAN. Фото: Owlsmcgee через Wikimedia Commons, громадське надбання (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

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

Переклад із зображення в зображення

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

Переклад тексту в зображення

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

Редагування та відновлення зображень

GAN можна використовувати для редагування наявних фотографій. GAN видалити такі елементи, як дощ або сніг із зображення, але їх також можна використовувати відновити старі, пошкоджені або зіпсовані зображення. 

Супер роздільна здатність

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

Блогер і програміст зі спеціальностями в машинне навчання та Глибоке навчання теми. Деніел сподівається допомогти іншим використовувати силу ШІ для суспільного блага.