Генеративні змагальні мережі (GAN): Вступ

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

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

Хоча GAN відкривають нові можливості, їхнє використання викликає певні побоювання.

Що ж це за технологія?

У цій статті ми розглянемо суть GAN, принцип їхньої роботи та сфери застосування.

Отже, почнемо!

Що таке генеративно-змагальна мережа?

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

GAN були розроблені в 2014 році вченим-комп’ютерником Яном Гудфеллоу та його колегами. Ці унікальні глибокі нейронні мережі здатні генерувати нові дані, схожі на ті, на яких вони навчалися. Вони змагаються в грі з нульовою сумою, де один агент програє, а інший виграє.

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

Два основних блоки GAN:

Генератор: нейронна мережа, що створює штучні дані, які нагадують реальні.

Дискримінатор: деконволюційна нейронна мережа, яка ідентифікує штучно створені дані.

Ключові поняття

Для кращого розуміння GAN, розглянемо декілька важливих концепцій.

Машинне навчання (ML)

Машинне навчання – це підрозділ штучного інтелекту (ШІ), який навчає моделі використовувати дані для підвищення продуктивності та точності під час виконання завдань, прийняття рішень або прогнозів.

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

Дискримінаційна модель

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

Наприклад, розрізняє різні фрукти чи види тварин.

Генеративна модель

Генеративні моделі створюють нові, реалістичні зразки на основі випадкових вибірок. Вони навчаються на реальних зображеннях об’єктів або істот, щоб створювати власні реалістичні, але імітовані варіанти. Існує два основних типи таких моделей:

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

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

Навчання з учителем

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

Навчання без учителя

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

Отже, GAN пов’язані з неконтрольованим навчанням у ML. Вони мають дві моделі, які автоматично розкривають і вивчають закономірності вхідних даних: генератор і дискримінатор.

Розглянемо їх детальніше.

Компоненти GAN

Термін “змагальний” у GAN вказує на наявність двох конкуруючих частин: генератора та дискримінатора. Це сприяє точному вивченню та відтворенню варіацій даних у наборі. Розглянемо ці компоненти детальніше.

Генератор

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

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

Генератор навчається за допомогою таких компонентів:

  • Зашумлені вхідні вектори
  • Генеруюча мережа для перетворення випадкового введення в зразок даних
  • Мережа дискримінатора для класифікації згенерованих даних
  • Функція втрат генератора, яка покарає його за невдалу спробу обдурити дискримінатор

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

Дискримінатор

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

Він діє як “поліція”, що намагається виявити “злодія” (підроблені дані генератора). Він розпізнає помилкові зображення та аномалії в даних.

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

Як працює GAN?

Генеративно-змагальна мережа (GAN) використовує три основні елементи:

  • Генеративна модель для опису способу генерації даних.
  • Змагальне середовище для навчання моделі.
  • Глибокі нейронні мережі як алгоритми штучного інтелекту для навчання.

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

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

Створені зображення разом із набором реальних зображень потрапляють до дискримінатора. Він визначає, які зображення є автентичними, а які – ні. Це негативно впливає на генератор, незалежно від його зусиль; дискримінатор допомагає розрізнити фактичні та підроблені дані.

Дискримінатор оцінює дані і повертає ймовірність 0 або 1. 1 означає справжність, а 0 – підробку.

У цьому процесі є два цикли зворотного зв’язку:

  • Генератор зв’язаний з дискримінатором.
  • Дискримінатор зв’язаний з набором реальних зображень.

Навчання GAN ефективне, оскільки генератор і дискримінатор навчаються одночасно. Генератор постійно вдосконалюється, передаючи підроблені дані, тоді як дискримінатор вчиться покращувати виявлення. Обидва компоненти динамічні.

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

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

Обидві мережі намагаються оптимізувати протилежну цільову функцію у змагальній грі. Їхні втрати створюють тиск один на одного.

Типи GAN

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

  • Умовний GAN (CGAN): використовує певні параметри для розрізнення справжніх та підроблених даних. Він використовує додатковий параметр – “y” у фазі генератора для отримання відповідних даних. Мітки додаються до входу та передаються дискримінатору для перевірки автентичності даних.
  • Vanilla GAN: простий тип GAN, де дискримінатор і генератор є простішими багаторівневими перцептронами. Алгоритми оптимізують математичне рівняння за допомогою стохастичного градієнтного спуску.
  • Глибока згортка GAN (DCGAN): популярна і вважається найуспішнішою реалізацією GAN. DCGAN використовує ConvNets замість багаторівневих перцептронів. ConvNets застосовуються без таких методів, як максимальне об’єднання або повне з’єднання шарів.
  • Суперроздільна здатність GAN (SRGAN): використовує глибоку нейронну мережу поряд із змагальною мережею для створення високоякісних зображень. SRGAN ефективно збільшує роздільну здатність зображень, покращуючи їх деталізацію та зменшуючи помилки.
  • Піраміда Лапласа GAN (LAPGAN): використовує кілька смугових зображень, розміщених через певні інтервали з низькочастотними залишками. LAPGAN використовує кілька мереж дискримінаторів і генераторів та декілька рівнів піраміди Лапласа.

LAPGAN широко застосовується через високу якість зображень. Зображення спочатку зменшуються на кожному шарі піраміди, а потім масштабуються з додаванням шуму, доки не набудуть оригінального розміру.

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

Генеративно-змагальні мережі застосовуються у різних сферах:

Наука

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

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

Відеоігри

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

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

Приклади відеоігор, що використовують GAN: Resident Evil Remake, Final Fantasy VIII та IX тощо.

Мистецтво і мода

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

Реклама

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

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

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

Синтез аудіо

GAN використовуються для створення аудіофайлів із набору аудіокліпів. Це відоме як генеративний звук. Він відрізняється від голосових асистентів на зразок Amazon Alexa або Apple Siri, де голосові фрагменти створюються за запитом.

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

Трансферне навчання

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

Інші застосування GAN включають:

  • Діагностика повної або часткової втрати зору шляхом виявлення глаукоматозних зображень
  • Візуалізація промислового дизайну, дизайну інтер’єру, одягу, взуття, сумок тощо
  • Реконструкція судово-медичних рис обличчя хворої людини
  • Створення 3D-моделей об’єкта із зображення, створення нових 3D-об’єктів у вигляді хмари точок, моделювання моделей руху у відео
  • Демонстрація зовнішнього вигляду людини зі зміною віку
  • Розширення даних, наприклад, покращення класифікатора DNN
  • Малювання відсутніх об’єктів на карті, покращення вигляду вулиць, перенесення стилів карт тощо
  • Створення зображень, заміна системи пошуку зображень тощо.
  • Створення керуючих входів для нелінійної динамічної системи за допомогою варіації GAN
  • Аналіз впливу зміни клімату на будинок
  • Створення обличчя людини, використовуючи її голос як вхідні дані
  • Створення нових молекул для кількох білкових мішеней при раку, фіброзі та запаленні
  • Анімація gif із звичайного зображення

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

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

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

Висновок

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

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