Продвижение глубокого обучения — Днянеш Валвадкар

Содержание :

  1. Простой ГАН
  2. Метрики для измерения качества сгенерированных образцов в GAN
  3. DC ГАН
  4. Про ГАН
  5. ВГАН
  6. Реализация
  7. Итоги ГАН
  8. Хорошая исследовательская работа для начала работы с GAN

Генеративно-состязательная сеть (GAN) — это тип модели глубокого обучения, предназначенный для создания новых образцов данных, похожих на обучающий набор данных. Модель состоит из двух частей: генеративной модели, которая учится генерировать новые образцы, и дискриминативной модели, которая учится классифицировать, является ли данный образец реальным или поддельным.

ПростоГАН

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

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

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

Процесс обучения GAN математически можно описать следующим образом. Пусть G будет генеративной моделью, D — дискриминационной моделью, x — реальными выборками из обучающих данных, а z — векторами случайного шума. Функция потерь для генеративной модели определяется как:

L_G = E[log(1 — D(G(z)))]

Эта функция потерь побуждает генеративную модель создавать выборки, которые классифицируются дискриминационной моделью как реальные. Функция потерь для дискриминационной модели определяется как:

L_D = E[log(D(x))] + E[log(1 — D(G(z)))]

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

L_GAN = L_G + L_D

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



В дополнение к начальной оценке и начальной дистанции Фреше существует несколько других показателей, которые можно использовать для измерения качества сгенерированных выборок в GAN. Некоторые из этих показателей включают в себя:

  1. Расстояние Фреше: эта метрика измеряет сходство между двумя наборами выборок, x и y, путем вычисления расстояния между многомерными распределениями Гаусса, которые лучше всего соответствуют выборкам. Расстояние Фреше определяется как:

D_F(x, y) = || m_x — m_y ||² + Tr(C_x + C_y — 2(C_x^(1/2) C_y C_x^(1/2))^(1/2))

где m_x и m_y — средние значения распределений, C_x и C_y — ковариационные матрицы, а Tr — оператор трассировки.

2. Начальное расстояние Фреше (FID) — это метрика, которая измеряет расстояние между распределениями реальных и сгенерированных выборок в пространстве признаков предварительно обученного классификатора. FID рассчитывается следующим образом:

FID = ||mu_r — mu_g||² + Tr(Cov_r + Cov_g — 2 * sqrt(Cov_r * Cov_g))

где mu_r и Cov_r — среднее значение и ковариация признаков реальных образцов, а mu_g и Cov_g — среднее значение и ковариация признаков сгенерированных образцов.

3. Начальное расстояние точности-отзыва (PRID) — это вариант FID, который включает кривую точности-отзыва для лучшего определения качества генерируемых выборок. PRID рассчитывается следующим образом:

PRID = (1 / n) * сумма_{i=1}^n (2 * точность_i * отзыв_i / (точность_i + отзыв_i))

где точность_i и отзыв_i — это точность и полнота в i-й точке кривой точности-отзыва, а n — количество точек на кривой.

4. Начальное расстояние ядра (KID) — это метрика, которая измеряет расстояние между распределениями реальных и сгенерированных выборок в гильбертовом пространстве воспроизводящего ядра. KID рассчитывается следующим образом:

KID = ||K_r — K_g||² / (2 * сигма²)

где K_r и K_g — матрицы ядра для реальной и сгенерированной выборки соответственно, а sigma — гиперпараметр, управляющий чувствительностью метрики.

Эти показатели можно использовать для оценки качества сгенерированных выборок в GAN и сравнения производительности различных GAN в заданном наборе данных.

DCGAN

DCGAN расшифровывается как Deep Convolutional Generative Adversarial Network. Это тип GAN, который использует сверточные слои как в генеративной, так и в дискриминационной моделях.

В DCGAN генеративная модель G представляет собой глубокую сверточную нейронную сеть, которая принимает в качестве входных данных вектор случайного шума z и выводит синтетическое изображение. Целью G является создание синтетических изображений, похожих на реальные изображения в обучающих данных.

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

Общая функция потерь для DCGAN определяется как сумма функций потерь для G и D. Функция потерь для G определяется как:

L_G = E[log(1 — D(G(z)))]

Эта функция потерь побуждает G создавать синтетические изображения, которые D классифицирует как реальные. Другими словами, она побуждает G создавать изображения, похожие на реальные изображения в обучающих данных.

Функция потерь для D определяется как:

L_D = E[log(D(x))] + E[log(1 — D(G(z)))]

Эта функция потерь побуждает D правильно классифицировать реальные изображения как настоящие, а синтетические изображения как поддельные. Другими словами, это побуждает D точно отличать настоящие изображения от поддельных.

Тогда общая функция потерь для DCGAN определяется как:

L_DCGAN = L_G + L_D

Эта функция потерь минимизируется во время обучения путем обновления весов G и D с использованием градиентного спуска. Минимизируя эту функцию потерь, DCGAN учится генерировать высококачественные синтетические изображения, похожие на реальные изображения в обучающих данных.



Резюме SimpleGAN и DCGAN

Простая GAN и DCGAN похожи тем, что они используют генеративную модель G и дискриминативную модель D для создания синтетических изображений. Однако между ними есть некоторые ключевые различия.

Простая GAN обычно использует полносвязные уровни как в G, так и в D, тогда как DCGAN использует сверточные уровни. Это означает, что DCGAN может фиксировать пространственные зависимости в данных, что может улучшить качество генерируемых изображений.

Кроме того, DCGAN обычно обучается с использованием пакетной нормализации и транспонированных сверточных слоев, что может стабилизировать процесс обучения и повысить производительность генеративной модели.

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

ВГАН

WGAN или Wasserstein GAN — это тип GAN, в котором в качестве функции потерь используется расстояние Вассерштейна. Расстояние Вассерштейна — это мера разницы между двумя распределениями вероятностей. В WGAN генеративную модель G обучают создавать выборки из синтетического распределения, максимально приближенные к реальным выборкам из обучающих данных.

Функция потерь для генеративной модели в WGAN определяется как:

L_G = E[f(G(z))]

где f(x) — критическая функция, которая измеряет расстояние между синтетическим распределением, созданным G, и реальным распределением. Целью генеративной модели является минимизация этой функции потерь, что побуждает ее генерировать выборки, похожие на реальные выборки в обучающих данных.

L_D = -E[f(x)] + E[f(G(z))]

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

Тогда общая функция потерь для WGAN определяется как:

L_WGAN = L_G + L_D

Эта функция потерь минимизируется во время обучения путем обновления весов G и D с использованием градиентного спуска. Минимизируя эту функцию потерь, WGAN учится генерировать высококачественные синтетические выборки, похожие на реальные выборки в обучающих данных.



Исследование WGAN использует

Есть много примеров исследований, в которых WGAN использовались для создания высококачественных синтетических данных. Например, сети WGAN использовались для создания синтетических изображений лиц, неотличимых от реальных изображений. Это имеет приложения в различных областях, таких как распознавание лиц и безопасность.

WGAN также использовались для создания синтетических медицинских изображений, таких как компьютерная томография и магнитно-резонансная томография. Это может быть полезно для обучения моделей машинного обучения, которые используются в диагностических целях.

Другой пример исследования, в котором использовались WGAN, относится к области создания музыки. WGAN использовались для создания синтетических музыкальных сэмплов, похожих на настоящую музыку с точки зрения тембра и ритма.

Таким образом, сети WGAN использовались в самых разных областях исследований для создания высококачественных синтетических данных для различных приложений.

ПроГАН

Прогрессивное выращивание GAN (ProGAN) — это тип GAN, который постепенно увеличивает разрешение генерируемых изображений во время обучения. Это позволяет модели создавать изображения с высоким разрешением без необходимости большого количества обучающих выборок или модели, требующей больших вычислительных ресурсов.

ProGAN следует иерархическому подходу к обучению GAN. Изначально модель обучается генерировать изображения с низким разрешением. Затем к модели добавляются дополнительные слои, и модель снова обучается на том же наборе данных для создания изображений с более высоким разрешением. Этот процесс повторяется до тех пор, пока не будет достигнуто желаемое разрешение.

Математически пусть G будет генеративной моделью, D — дискриминационной моделью, x — реальными выборками из обучающих данных, а z — векторами случайного шума. Функция потерь для генеративной модели определяется как:

L_G = E[log(1 — D(G(z)))]

Эта функция потерь побуждает генеративную модель создавать выборки, которые классифицируются дискриминационной моделью как реальные. Функция потерь для дискриминационной модели определяется как:

L_D = E[log(D(x))] + E[log(1 — D(G(z)))]

Эта функция потерь побуждает дискриминационную модель правильно классифицировать реальные образцы как настоящие, а поддельные образцы как поддельные. Затем общие потери для ProGAN определяются как сумма потерь для генеративной и дискриминационной моделей:

L_ProGAN = L_G + L_D

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

Есть несколько ключевых фактов о GAN, которые важно понимать:

  1. GAN — это тип генеративной модели, что означает, что они способны генерировать новые выборки, аналогичные обучающим данным.
  2. GAN состоят из двух частей: генеративной модели, которая генерирует поддельные образцы, и дискриминационной модели, которая пытается отличить настоящие образцы от поддельных.
  3. GAN обучаются с использованием функции потерь, состоящей из двух частей, которая побуждает генеративную модель создавать образцы, которые классифицируются как настоящие дискриминационной моделью, а дискриминационная модель правильно классифицирует настоящие и поддельные образцы.
  4. GAN можно использовать для создания широкого спектра выходных данных, включая изображения, текст и аудио.
  5. GAN — популярный метод машинного обучения, который используется для достижения самых современных результатов во многих приложениях. Однако их может быть трудно обучать, и они требуют больших вычислительных мощностей.
  6. GAN — это относительно недавняя разработка в области машинного обучения, впервые представленная в 2014 году.
  7. GAN — это форма обучения без учителя, что означает, что они могут учиться на данных без необходимости использования меток или заранее определенных категорий.
  8. Одна из основных задач при обучении GAN состоит в том, чтобы сбалансировать конкурирующие цели генеративной и дискриминационной моделей.
  9. Несмотря на свои успехи, GAN не лишены ограничений. Например, их может быть трудно обучать, и они требуют большого объема данных и вычислительной мощности. Кроме того, выходные данные GAN иногда трудно интерпретировать или контролировать.
  10. Было показано, что GAN эффективны в различных приложениях, включая создание изображений, сверхвысокое разрешение изображений, перевод изображений и рисование изображений.
  11. Недавние достижения в GAN включают разработку новых архитектур, таких как использование остаточных соединений и пакетная нормализация, а также использование новых методов обучения, таких как GAN Вассерштейна и улучшенный GAN.
  12. GAN применялись в самых разных областях, включая компьютерное зрение, обработку естественного языка и синтез речи.
  13. GAN также использовались в сочетании с другими методами машинного обучения, такими как обучение с подкреплением и трансферное обучение, для повышения производительности.
  14. Некоторые недавние исследования были сосредоточены на улучшении интерпретируемости и контроля GAN, а также на решении проблем, связанных с предвзятостью и справедливостью выходных данных, генерируемых GAN.

Реализации GAN



Вот несколько исследовательских работ, которые являются хорошим введением в GAN:

  1. «Генеративно-состязательные сети» Яна Гудфеллоу и др. (2014)
  2. «Wasserstein GAN» Мартина Аржовски и др. (2017)
  3. «Улучшенные методы обучения GAN» Тима Салиманса и др. (2016)
  4. «Неконтролируемое репрезентативное обучение с помощью глубоких сверточных генеративно-состязательных сетей» Алека Рэдфорда и др. (2015)
  5. «Условно-генеративные состязательные сети» Миры Мохан и др. (2015)

Кроме того, следующие обзорные документы дают хороший обзор современного состояния исследований GAN:

  1. «Генеративно-состязательные сети: обзор» Шубхам Тулсиани и др. (2018)
  2. «Обзор генеративно-состязательных сетей» Ziqi Zhang et al. (2018)
  3. «На пути к принципиальным методам обучения генеративно-состязательных сетей» Мартина Аржовски и др. (2017)

Эти документы являются хорошей отправной точкой для понимания основ GAN и последних разработок в этой области.