Connect with us

Що таке Генеративна Суперницька Мережа (GAN)?

ШІ 101

Що таке Генеративна Суперницька Мережа (GAN)?

mm

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

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

GAN – це приклад генеративної моделі. Більшість моделей штучного інтелекту можна розділити на одну з двох категорій: керованих та некерованих моделей. Керовані моделі навчання зазвичай використовуються для розрізнення між різними категоріями вхідних даних, для класифікації. Натомість, некеровані моделі зазвичай використовуються для підсумовування розподілу даних, часто вивчаючи гаусівський розподіл даних. Через те, що вони вивчають розподіл набору даних, вони можуть витягувати зразки з цього вивченого розподілу та генерувати нові дані.
Різні генеративні моделі мають різні методи генерації даних та розрахунку ймовірнісних розподілів. Наприклад, модель Наївного Баєса працює шляхом розрахунку ймовірнісного розподілу для різних вхідних ознак та генеративного класу. Коли модель Наївного Баєса робить передбачення, вона розраховує найбільш імовірний клас, приймаючи ймовірність різних змінних та поєднуючи їх разом. Інші некеровані генеративні моделі включають Моделі Гаусівської Суміші та Латентну Диріхле-Алокацію (LDA). Глибокі моделі навчання включають Обмежені Болцманівські Машини (RBMs), Варіаційні Автокодери (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 через Вікіпедію, публічне домен (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)


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