Генеративні Змагальні Мережі (GANs)
Свайпніть щоб показати меню
Генеративні змагальні мережі (GANs) — це клас генеративних моделей, запропонований Іаном Гудфеллоу у 2014 році. Вони складаються з двох нейронних мереж — Генератора та Дискримінатора, які навчаються одночасно у рамках ігрової теорії. Генератор намагається створювати дані, схожі на реальні, тоді як дискримінатор намагається відрізнити реальні дані від згенерованих.
GAN навчаються генерувати зразки даних із шуму шляхом розв'язання задачі мінімакс. У процесі навчання генератор поступово покращує здатність створювати реалістичні дані, а дискримінатор — розрізняти справжні та штучні дані.
Архітектура GAN
Базова модель GAN складається з двох основних компонентів:
1. Генератор (G)
- Приймає на вхід випадковий вектор шуму z∼pz(z);
- Перетворює його за допомогою нейронної мережі у зразок даних G(z), який має бути схожим на дані з істинного розподілу.
2. Дискримінатор (D)
- Приймає або справжній зразок даних x∼px(x), або згенерований зразок G(z);
- Видає скаляр у діапазоні від 0 до 1, що оцінює ймовірність того, що вхідні дані є справжніми.
Ці дві компоненти навчаються одночасно. Генератор прагне створювати реалістичні зразки, щоб обдурити дискримінатор, тоді як дискримінатор намагається правильно визначити справжні та згенеровані зразки.
Мінімаксна гра GAN
В основі GAN лежить мінімаксна гра, концепція з теорії ігор. У цій структурі:
- Генератор G і дискримінатор D — це конкуруючі гравці;
- D прагне максимізувати свою здатність розрізняти справжні та згенеровані дані;
- G прагне мінімізувати здатність D виявляти його фейкові дані.
Ця динаміка визначає гру з нульовою сумою, де виграш одного гравця є втратою іншого. Оптимізація визначається як:
GminDmaxV(D,G)=Ex∼px[logD(x)]+Ez∼pz[log(1−D(G(z)))]Генератор намагається обдурити дискримінатор, генеруючи зразки G(z), які максимально наближені до справжніх даних.
Функції втрат
Хоча оригінальна цільова функція GAN визначає гру з нульовою сумою, на практиці для стабілізації навчання використовуються альтернативні функції втрат.
- Несатурована функція втрат генератора:
Це допомагає генератору отримувати сильні градієнти навіть тоді, коли дискримінатор працює добре.
- Функція втрат дискримінатора:
Ці функції втрат стимулюють генератор створювати зразки, які підвищують невизначеність дискримінатора, і покращують збіжність під час навчання.
Основні варіанти архітектур GAN
З'явилося кілька типів GAN, які вирішують певні обмеження або покращують продуктивність:
Умовний GAN (cGAN)
Умовні GAN розширюють стандартну архітектуру GAN шляхом введення додаткової інформації (зазвичай міток) як у генератор, так і в дискримінатор. Замість генерації даних лише з випадкового шуму, генератор отримує як шум z, так і умову y (наприклад, класову мітку). Дискримінатор також отримує y, щоб оцінити, чи є зразок реалістичним за цієї умови.
- Сфери застосування: генерація зображень з урахуванням класу, перетворення зображення в зображення, генерація зображень з тексту.
Глибока згорткова GAN (DCGAN)
DCGAN замінюють повнозв'язні шари в оригінальних GAN на згорткові та транспоновані згорткові шари, що підвищує їхню ефективність для генерації зображень. Також впроваджуються архітектурні рекомендації, такі як видалення повнозв'язних шарів, використання пакетної нормалізації та застосування активацій ReLU/LeakyReLU.
- Сфери застосування: фотореалістична генерація зображень, навчання візуальних представлень, неконтрольоване навчання ознак.
CycleGAN CycleGAN вирішують задачу непарного перетворення зображень. На відміну від інших моделей, які потребують парних датасетів (наприклад, одне й те саме фото у двох різних стилях), CycleGAN здатні навчатися відображенням між двома доменами без парних прикладів. Вони використовують два генератори та два дискримінатори, кожен з яких відповідає за відображення в одному напрямку (наприклад, фото в картину і навпаки), і впроваджують втрату циклічної узгодженості, щоб гарантувати, що перетворення з одного домену і назад повертає оригінальне зображення. Ця втрата є ключовою для збереження змісту та структури.
Втрата циклічної узгодженості гарантує:
GBA(GAB(x))≈x та GAB(GBA(y))≈yде:
- GAB відображає зображення з домену A у домен B;
- GBA відображає з домену B у домен A.
- x∈A,y∈B.
Сфери застосування: перетворення фото в мистецтво, трансляція коней у зебр, конвертація голосу між мовцями.
StyleGAN
StyleGAN, розроблений компанією NVIDIA, впроваджує стильове керування у генераторі. Замість прямої подачі вектора шуму до генератора, він проходить через мережу відображення для створення "стильових векторів", які впливають на кожен шар генератора. Це забезпечує тонке керування візуальними ознаками, такими як колір волосся, вираз обличчя чи освітлення.
Ключові інновації:
- Змішування стилів, дозволяє комбінувати кілька латентних кодів;
- Адаптивна нормалізація інстансів (AdaIN), керує картами ознак у генераторі;
- Прогресивне зростання, навчання починається з низької роздільної здатності та поступово збільшується.
Сфери застосування: генерація зображень надвисокої роздільної здатності (наприклад, обличчя), керування візуальними атрибутами, генерація мистецтва.
Порівняння: GAN проти VAE
GAN — це потужний клас генеративних моделей, здатних створювати надзвичайно реалістичні дані завдяки процесу змагального навчання. Їхня основа — це мінімаксна гра між двома мережами, які використовують змагальні функції втрат для поступового вдосконалення обох компонентів. Ґрунтовне розуміння їхньої архітектури, функцій втрат — включаючи варіанти, такі як cGAN, DCGAN, CycleGAN та StyleGAN — а також їх відмінностей від інших моделей, наприклад, VAE, забезпечує необхідну базу для застосування у сферах, таких як генерація зображень, синтез відео, аугментація даних тощо.
1. Яке з наведених тверджень найкраще описує компоненти базової архітектури GAN?
2. Яка мета мінімаксної гри в GAN?
3. Яке з наступних тверджень є правильним щодо різниці між GAN та VAE?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат