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

Generative Adversarial Networks (GANs) — це тип архітектури нейронних мереж, здатний генерувати нові дані, що відповідають вивченим шаблонам. GAN можна використовувати для генерації зображень людських облич або інших об’єктів, для перетворення тексту в зображення, для конвертації одного типу зображень в інший та для підвищення роздільної здатності зображень (суперроздільність) серед інших застосувань. Оскільки GAN можуть генерувати абсолютно нові дані, вони знаходяться на чолі багатьох передових систем, додатків та досліджень у галузі штучного інтелекту. Але як саме працюють GAN? Давайте дослідимо, як функціонують GAN, та розглянемо деякі з їх основних застосувань.
Визначення генеративних моделей та GAN
GAN є прикладом генеративної моделі. Більшість моделей ШІ можна розділити на одну з двох категорій: моделі з учителем та моделі без учителя. Моделі навчання з учителем зазвичай використовуються для розрізнення різних категорій вхідних даних, для класифікації. Навпаки, моделі без учителя зазвичай використовуються для узагальнення розподілу даних, часто вивчаючи гаусівський (нормальний) розподіл даних. Оскільки вони вивчають розподіл набору даних, вони можуть брати вибірки з цього вивченого розподілу та генерувати нові дані. Різні генеративні моделі мають різні методи генерації даних та обчислення розподілів ймовірностей. Наприклад, модель Naive Bayes працює шляхом обчислення розподілу ймовірностей для різних вхідних ознак та генеративного класу. Коли модель Naive Bayes формує прогноз, вона обчислює найбільш ймовірний клас, беручи ймовірність різних змінних та поєднуючи їх разом. Інші генеративні моделі, що не ґрунтуються на глибокому навчанні, включають Gaussian Mixture Models та Latent Dirichlet Allocation (LDA). Генеративні моделі на основі глибокого навчання включають Restricted Boltzmann Machines (RBMs), Variational Autoencoders (VAEs) і, звичайно, GAN. Generative Adversarial Networks були вперше запропоновані Яном Гудфеллоу у 2014 році, а в 2015 році Алекс Редфорд та інші дослідники вдосконалили їх, що призвело до стандартизованої архітектури для GAN. GAN насправді є двома різними мережами, об’єднаними разом. GAN складаються з двох частин: моделі генерації та моделі дискримінації, також відомих як генератор і дискримінатор.
Архітектура GAN
Generative Adversarial Networks побудовані з моделі генератора та моделі дискримінатора, з’єднаних разом. Завданням моделі генератора є створення нових прикладів даних на основі шаблонів, які модель вивчила з навчальних даних. Завданням моделі дискримінатора є аналіз зображень (припускаючи, що вона навчена на зображеннях) та визначення, чи є зображення згенерованими/фейковими чи справжніми. 
Процес навчання GAN
Давайте розглянемо весь процес навчання для гіпотетичного завдання генерації зображень. Спочатку GAN навчається з використанням справжніх, реальних зображень як частини навчального набору даних. Це налаштовує модель дискримінатора на розрізнення між згенерованими та реальними зображеннями. Це також створює розподіл даних, який генератор використовуватиме для створення нових даних. Генератор приймає вектор випадкових числових даних і перетворює їх на основі гаусівського розподілу, повертаючи зображення. Це згенероване зображення разом із деякими справжніми зображеннями з навчального набору даних подається в модель дискримінатора. Дискримінатор сформує ймовірнісний прогноз щодо природи отриманих зображень, видаючи значення між 0 і 1, де 1 зазвичай позначає автентичні зображення, а 0 — фейкове зображення. 
Застосування GAN
GAN мають низку різних застосувань, більшість з яких обертаються навколо генерації зображень та компонентів зображень. GAN часто використовуються в завданнях, де необхідні дані зображень відсутні або обмежені в певній мірі, як метод генерації потрібних даних. Давайте розглянемо деякі поширені випадки використання GAN. Генерація нових прикладів для наборів даних GAN можна використовувати для генерації нових прикладів для простих наборів даних зображень. Якщо у вас є лише кілька навчальних прикладів і потрібно більше, GAN можна використати для створення нових навчальних даних для класифікатора зображень, генеруючи нові навчальні приклади під різними орієнтаціями та кутами. Генерація унікальних людських облич

Жінки на цьому фото не існує. Зображення згенеровано StyleGAN. Фото: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
При достатньому навчанні GAN можуть генерувати надзвичайно реалістичні зображення людських облич. Ці згенеровані зображення можна використовувати для навчання систем розпізнавання облич. Перетворення зображення в зображення GAN чудово справляються з перетворенням зображень. GAN можна використовувати для розфарбовування чорно-білих зображень, перетворення ескізів або малюнків у фотографічні зображення або конвертації зображень з дня в ніч. Перетворення тексту в зображення Перетворення тексту в зображення можливе за допомогою GAN. Коли надається текст, що описує зображення, та супровідне зображення, GAN можна навчити створювати нове зображення при отриманні опису бажаного зображення. Редагування та відновлення зображень GAN можна використовувати для редагування існуючих фотографій. GAN можуть видаляти елементи, такі як дощ або сніг зі зображення, але їх також можна використовувати для відновлення старих, пошкоджених або зіпсованих зображень. Суперроздільність Суперроздільність — це процес взяття зображення низької роздільної здатності та вставлення в нього більшої кількості пікселів, покращуючи роздільну здатність цього зображен






