Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Генеративні Змагальні Мережі (GANs) | Теоретичні Основи
Генеративний ШІ

bookГенеративні Змагальні Мережі (GANs)

Генеративні змагальні мережі (GANs) — це клас генеративних моделей, запропонований Яном Гудфеллоу у 2014 році. Вони складаються з двох нейронних мереж — Генератора та Дискримінатора, які навчаються одночасно у рамках ігрової теорії. Генератор намагається створювати дані, схожі на реальні, тоді як дискримінатор намагається відрізнити реальні дані від згенерованих.

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

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

Базова модель GAN складається з двох основних компонентів:

1. Генератор (G)

  • Приймає на вхід випадковий вектор шуму zpz(z)z \sim p_z(z);
  • Перетворює його за допомогою нейронної мережі у зразок даних G(z)G(z), який має бути схожим на дані з істинного розподілу.

2. Дискримінатор (D)

  • Приймає або справжній зразок даних xpx(x)x \sim p_x(x), або згенерований зразок G(z)G(z);
  • Виводить скаляр у діапазоні від 0 до 1, оцінюючи ймовірність того, що вхід є справжнім.

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

Мінімаксна гра GAN

В основі GAN лежить мінімаксна гра, поняття з теорії ігор. У цій схемі:

  • Генератор GG і дискримінатор DD — це конкуруючі гравці;
  • DD прагне максимізувати свою здатність розрізняти справжні та згенеровані дані;
  • GG прагне мінімізувати здатність DD виявляти його підроблені дані.

Ця динаміка визначає гру з нульовою сумою, де виграш одного гравця є втратою іншого. Оптимізація визначається як:

minGmaxDV(D,G)=Expx[logD(x)]+Ezpz[log(1D(G(z)))]\underset{G}{\min} \, \underset{D}{\max} \, V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{x}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

Генератор намагається обдурити дискримінатор, генеруючи зразки G(z)G(z), які максимально наближені до справжніх даних.

Функції втрат

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

  • Несатурована функція втрат генератора:
LG=Ezpz[logD(G(z))]L_G=-\mathbb{E}_{z \sim p_z}[\log{D(G(z))}]

Це допомагає генератору отримувати сильні градієнти навіть тоді, коли дискримінатор працює добре.

  • Функція втрат дискримінатора:
LD=Expx[logD(x)]Ezpz[log(1D(G(z)))]L_D = -\mathbb{E}_{x \sim p_x}[\log{D(x)}] - \mathbb{E}_{z \sim p_z}[\log{(1-D(G(z)))}]

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

Основні варіанти архітектур GAN

Було розроблено кілька типів GAN для вирішення конкретних обмежень або підвищення продуктивності:

Conditional GAN (cGAN)

Conditional GAN розширюють стандартну архітектуру GAN шляхом введення додаткової інформації (зазвичай міток) як у генератор, так і в дискримінатор. Замість генерації даних лише з випадкового шуму, генератор отримує як шум zz, так і умову yy (наприклад, класову мітку). Дискримінатор також отримує yy для оцінки, чи є зразок реалістичним за цієї умови.

  • Сфери застосування: генерація зображень за класами, трансляція зображення в зображення, генерація з тексту в зображення.

Глибока згорткова GAN (DCGAN)

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

  • Сфери застосування: фотореалістична генерація зображень, навчання візуальних представлень, безнаглядове навчання ознак.

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

Втрата циклічної узгодженості гарантує:

GBA(GAB(x))x та GAB(GBA(y))yG_{BA}(G_{AB}(x)) \approx x\ \text{та}\ G_{AB}(G_{BA}(y))\approx y

де:

  • GABG_{AB} відображає зображення з домену A в домен B;
  • GBAG_{BA} відображає з домену B в домен A.
  • xA,yBx \in A, y \in B.

Сфери застосування: перетворення фото в мистецтво, трансляція "кінь-зебра", конвертація голосу між мовцями.

StyleGAN

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

Важливі інновації:

  • Змішування стилів дозволяє комбінувати кілька латентних кодів;
  • Адаптивна нормалізація інстансів (AdaIN) контролює карти ознак у генераторі;
  • Поступове нарощування: навчання починається з низької роздільної здатності та поступово збільшується.

Сфери застосування: генерація зображень надвисокої роздільної здатності (наприклад, обличчя), керування візуальними атрибутами, генерація мистецтва.

Порівняння: GANs та VAEs

GANs — це потужний клас генеративних моделей, здатних створювати надзвичайно реалістичні дані завдяки змагальному процесу навчання. Їх основа — гра мінімакс між двома мережами, які використовують змагальні функції втрат для поступового вдосконалення обох компонентів. Ґрунтовне розуміння їхньої архітектури, функцій втрат — включаючи варіанти, такі як cGAN, DCGAN, CycleGAN та StyleGAN — а також їх відмінностей від інших моделей, зокрема VAEs, забезпечує необхідну базу для застосування у сферах, таких як генерація зображень, синтез відео, аугментація даних тощо.

1. Яке з наведеного найкраще описує компоненти базової архітектури GAN?

2. Яка мета гри мінімакс у GAN?

3. Яке з наступних тверджень є правильним щодо різниці між GAN та VAE?

question mark

Яке з наведеного найкраще описує компоненти базової архітектури GAN?

Select the correct answer

question mark

Яка мета гри мінімакс у GAN?

Select the correct answer

question mark

Яке з наступних тверджень є правильним щодо різниці між GAN та VAE?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 4.76

bookГенеративні Змагальні Мережі (GANs)

Свайпніть щоб показати меню

Генеративні змагальні мережі (GANs) — це клас генеративних моделей, запропонований Яном Гудфеллоу у 2014 році. Вони складаються з двох нейронних мереж — Генератора та Дискримінатора, які навчаються одночасно у рамках ігрової теорії. Генератор намагається створювати дані, схожі на реальні, тоді як дискримінатор намагається відрізнити реальні дані від згенерованих.

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

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

Базова модель GAN складається з двох основних компонентів:

1. Генератор (G)

  • Приймає на вхід випадковий вектор шуму zpz(z)z \sim p_z(z);
  • Перетворює його за допомогою нейронної мережі у зразок даних G(z)G(z), який має бути схожим на дані з істинного розподілу.

2. Дискримінатор (D)

  • Приймає або справжній зразок даних xpx(x)x \sim p_x(x), або згенерований зразок G(z)G(z);
  • Виводить скаляр у діапазоні від 0 до 1, оцінюючи ймовірність того, що вхід є справжнім.

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

Мінімаксна гра GAN

В основі GAN лежить мінімаксна гра, поняття з теорії ігор. У цій схемі:

  • Генератор GG і дискримінатор DD — це конкуруючі гравці;
  • DD прагне максимізувати свою здатність розрізняти справжні та згенеровані дані;
  • GG прагне мінімізувати здатність DD виявляти його підроблені дані.

Ця динаміка визначає гру з нульовою сумою, де виграш одного гравця є втратою іншого. Оптимізація визначається як:

minGmaxDV(D,G)=Expx[logD(x)]+Ezpz[log(1D(G(z)))]\underset{G}{\min} \, \underset{D}{\max} \, V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{x}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

Генератор намагається обдурити дискримінатор, генеруючи зразки G(z)G(z), які максимально наближені до справжніх даних.

Функції втрат

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

  • Несатурована функція втрат генератора:
LG=Ezpz[logD(G(z))]L_G=-\mathbb{E}_{z \sim p_z}[\log{D(G(z))}]

Це допомагає генератору отримувати сильні градієнти навіть тоді, коли дискримінатор працює добре.

  • Функція втрат дискримінатора:
LD=Expx[logD(x)]Ezpz[log(1D(G(z)))]L_D = -\mathbb{E}_{x \sim p_x}[\log{D(x)}] - \mathbb{E}_{z \sim p_z}[\log{(1-D(G(z)))}]

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

Основні варіанти архітектур GAN

Було розроблено кілька типів GAN для вирішення конкретних обмежень або підвищення продуктивності:

Conditional GAN (cGAN)

Conditional GAN розширюють стандартну архітектуру GAN шляхом введення додаткової інформації (зазвичай міток) як у генератор, так і в дискримінатор. Замість генерації даних лише з випадкового шуму, генератор отримує як шум zz, так і умову yy (наприклад, класову мітку). Дискримінатор також отримує yy для оцінки, чи є зразок реалістичним за цієї умови.

  • Сфери застосування: генерація зображень за класами, трансляція зображення в зображення, генерація з тексту в зображення.

Глибока згорткова GAN (DCGAN)

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

  • Сфери застосування: фотореалістична генерація зображень, навчання візуальних представлень, безнаглядове навчання ознак.

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

Втрата циклічної узгодженості гарантує:

GBA(GAB(x))x та GAB(GBA(y))yG_{BA}(G_{AB}(x)) \approx x\ \text{та}\ G_{AB}(G_{BA}(y))\approx y

де:

  • GABG_{AB} відображає зображення з домену A в домен B;
  • GBAG_{BA} відображає з домену B в домен A.
  • xA,yBx \in A, y \in B.

Сфери застосування: перетворення фото в мистецтво, трансляція "кінь-зебра", конвертація голосу між мовцями.

StyleGAN

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

Важливі інновації:

  • Змішування стилів дозволяє комбінувати кілька латентних кодів;
  • Адаптивна нормалізація інстансів (AdaIN) контролює карти ознак у генераторі;
  • Поступове нарощування: навчання починається з низької роздільної здатності та поступово збільшується.

Сфери застосування: генерація зображень надвисокої роздільної здатності (наприклад, обличчя), керування візуальними атрибутами, генерація мистецтва.

Порівняння: GANs та VAEs

GANs — це потужний клас генеративних моделей, здатних створювати надзвичайно реалістичні дані завдяки змагальному процесу навчання. Їх основа — гра мінімакс між двома мережами, які використовують змагальні функції втрат для поступового вдосконалення обох компонентів. Ґрунтовне розуміння їхньої архітектури, функцій втрат — включаючи варіанти, такі як cGAN, DCGAN, CycleGAN та StyleGAN — а також їх відмінностей від інших моделей, зокрема VAEs, забезпечує необхідну базу для застосування у сферах, таких як генерація зображень, синтез відео, аугментація даних тощо.

1. Яке з наведеного найкраще описує компоненти базової архітектури GAN?

2. Яка мета гри мінімакс у GAN?

3. Яке з наступних тверджень є правильним щодо різниці між GAN та VAE?

question mark

Яке з наведеного найкраще описує компоненти базової архітектури GAN?

Select the correct answer

question mark

Яка мета гри мінімакс у GAN?

Select the correct answer

question mark

Яке з наступних тверджень є правильним щодо різниці між GAN та VAE?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 7
some-alt