Основи ШІ

Що таке Генеративна Адверсарна Мережа (GAN)?

mm

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

Визначення Генеративних Моделей та GAN

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

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

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

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

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

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

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

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

Процес Тренування GAN

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

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

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

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

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

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

Застосування GAN

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

Генерація Нових Прикладів Для Наборів Даних

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

Генерація Унікальних Людських Облич

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

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

Переклад Зображення В Зображення

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

Переклад Тексту В Зображення

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

Редагування І Відновлення Зображень

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

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

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

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

Блогер і програміст з спеціалізацією у темах Machine Learning і Deep Learning. Даніель сподівається допомогти іншим використовувати силу штучного інтелекту для соціальної добробути.