Генеративные состязательные сети или GAN - это подход генеративного моделирования с использованием Глубокое обучение обучить модель умным способом генерировать данные с использованием подхода подмоделей. В этой статье мы постараемся подробно разобраться в том, «Что такое GAN». В этой статье рассматриваются следующие темы:
- Что такое генеративные модели?
- Что такое порождающая состязательная сеть?
- Проблемы генеративной состязательной сети?
- Приложения для генеративных состязательных сетей
Что такое генеративные модели?
Генеративные модели - это не что иное, как те модели, которые используют подход. В генеративной модели есть образцы в данных, то есть входные переменные X, но в ней отсутствует выходная переменная Y. Мы используем только входные переменные для обучения генеративной модели, и она распознает шаблоны из входных переменных для генерации выходных данных, которые неизвестны. и только на основе данных обучения.
В , мы больше ориентированы на создание прогнозных моделей на основе входных переменных, этот тип моделирования известен как дискриминационное моделирование. В задаче классификации модель должна различать, к какому классу принадлежит пример. С другой стороны, неконтролируемые модели используются для создания или генерации новых примеров во входном распределении.
Чтобы определить генеративные модели в терминах непрофессионала, мы можем сказать, что генеративные модели способны генерировать новые примеры из выборки, которые не только похожи на другие примеры, но и неотличимы.
Самый распространенный пример генеративной модели - это которая чаще используется как дискриминантная модель. Другие примеры генеративных моделей включают модель Gaussian Mixture Model и довольно современный пример, General Adversarial Networks. Давайте попробуем понять, что такое GAN?
Что такое порождающая состязательная сеть?
Генеративные состязательные сети или GAN - это генеративная модель на основе глубокого обучения, которая используется для обучения без учителя. По сути, это система, в которой два конкурирующих Нейронные сети конкурируют друг с другом, чтобы создавать или генерировать вариации данных.
Впервые он был описан в статье Иэна Гудфеллоу в 2014 году, а в 2016 году Алеком Рэдфордом была предложена стандартизированная и очень стабильная теория моделей, известная как DCGAN (Deep Convolutional General Adversarial Networks). Большинство существующих сегодня сетей GAN используют архитектуру DCGAN.
Архитектура GAN состоит из двух подмоделей, известных как Модель генератора и Модель дискриминатора. Давайте попробуем понять, как на самом деле работают GAN.
Как это работает?
Чтобы понять, как работают GAN, давайте разберемся с этим.
- Генеративная - Это означает, что модель следует подход и является генеративной моделью.
- Состязательный - Модель обучается в условиях состязательности.
- Сеть - Для обучения модели используются нейронные сети в качестве алгоритмов искусственного интеллекта.
В GAN есть сеть генераторов, которая берет образец и генерирует образец данных, и после этого сеть дискриминатора решает, генерируются ли данные или взяты из реальной выборки с использованием двоичного кода. проблема с помощью сигмоидной функции, которая дает результат в диапазоне от 0 до 1.
Генеративная модель анализирует распределение данных таким образом, что после фазы обучения вероятность ошибки дискриминатора максимальна. А Дискриминатор, с другой стороны, основан на модели, которая оценивает вероятность того, что выборка исходит из реальных данных, а не генератора.
Весь процесс можно формализовать математической формулой, приведенной ниже.
В приведенной выше формуле:
G = Generator
D = Дискриминатор
Pdata (x) = Распределение реальных данных
как поднять что-то в степень в java
Pdata (z) = Дистрибьютор генератора
x = выборка из реальных данных
z = образец из генератора
D (x) = Дискриминатор Сеть
G (z) = Сеть генераторов
Теперь идет часть обучения для GAN, которую можно разделить на 2 части, которые выполняются последовательно.
Как обучить GAN?
Часть 1:
Обучите дискриминатор и заморозьте генератор, что означает, что обучающий набор для генератора установлен как False, и сеть будет выполнять только прямой проход, а обратное распространение не применяется.
Обычно дискриминатор обучается на реальных данных и проверяет, может ли он их правильно предсказать, и то же самое с поддельными данными, чтобы идентифицировать их как поддельные.
Часть 2:
Обучите генератор и заморозьте дискриминатор. На этом этапе мы получаем результаты первого этапа и можем использовать их, чтобы улучшить предыдущее состояние, чтобы попытаться лучше обмануть дискриминатор.
Шаги для обучения
что такое марионетка в DevOps
- Определите проблему - определить проблему и собрать данные.
- Выберите архитектуру GAN - В зависимости от вашей проблемы выберите, как должен выглядеть ваш GAN.
- Обучить дискриминатор на реальных данных - Обучите дискриминатор на реальных данных, чтобы предсказывать их как реальные n количество раз.
- Сгенерировать поддельные входы для генератора - Создавайте поддельные образцы из генератора
- Обучить дискриминатор на поддельных данных - Обучите дискриминатор предсказывать сгенерированные данные как поддельные.
- Генератор поезда с выходом дискриминатора - После получения предсказаний дискриминатора обучите генератор обмануть дискриминатор.
Проблемы генеративной состязательной сети
Концепция GAN довольно увлекательна, но есть множество неудач, которые могут стать серьезным препятствием на ее пути. Некоторые из основных проблем, с которыми сталкиваются сети GAN:
- Стабильность требуется между дискриминатором и генератором, иначе вся сеть просто упадет. В случае, если Дискриминатор будет слишком мощным, генератор вообще не сможет обучиться. И если сеть слишком мягкая, будет создано любое изображение, сделав сеть бесполезной.
- GAN с треском проваливают определение размещение объектов с точки зрения того, сколько раз объект должен встречаться в этом месте.
- Трехмерная перспектива беспокоит GAN, поскольку она не в состоянии понять перспектива , он часто дает плоское изображение для трехмерного объекта.
- У GAN есть проблема с пониманием глобальные объекты . Он не может различить или понять целостную структуру.
- Новые типы GAN являются более продвинутыми и, как ожидается, полностью устранят эти недостатки.
Генеративные состязательные сетевые приложения
Ниже приведены несколько приложений GAN.
Предсказание следующего кадра в видео
Предсказание будущих событий в видеокадре стало возможным с помощью GAN. DVD-GAN или двойной видеодискриминатор GAN может создавать видеоролики с разрешением 256 × 256 пикселей с высокой точностью до 48 кадров. Это можно использовать для различных целей, включая наблюдение, в котором мы можем определить действия в кадре, которые искажаются из-за других факторов, таких как дождь, пыль, дым и т. Д.
Генерация текста в изображение
Объектно-ориентированный внимательный GAN (obj-GAN) выполняет синтез текста в изображение в два этапа. Генерация семантического макета является начальным шагом, а затем создание изображения путем синтеза изображения с помощью генератора дек-свертки изображения является последним шагом.
Это можно было бы интенсивно использовать для создания изображений, понимая подписи, макеты и уточняя детали, синтезируя слова. Есть еще одно исследование, посвященное storyGAN, которые могут синтезировать целые раскадровки из простых абзацев.
Повышение разрешения изображения
Генеративная состязательная сеть сверхвысокого разрешения или SRGAN - это сеть GAN, которая может генерировать изображения сверхвысокого разрешения из изображений с низким разрешением с более мелкими деталями и лучшим качеством.
Приложения могут быть огромными, представьте себе изображение более высокого качества с более мелкими деталями, созданными из изображения с низким разрешением. Объем помощи, которую он может оказать для определения деталей в изображениях с низким разрешением, может быть использован для более широких целей, включая наблюдение, документирование, безопасность, обнаружение шаблонов и т. Д.
Изображение в изображение
Pix2Pix GAN - это модель, разработанная для универсального преобразования изображения в изображение.
Интерактивное создание изображений
Сети GAN также могут использоваться для создания интерактивных изображений. Лаборатория компьютерных наук и искусственного интеллекта (CSAIL) разработала GAN, которая может создавать трехмерные модели с реалистичным освещением и отражениями, доступными за счет редактирования формы и текстуры.
Совсем недавно исследователи придумали модель, которая может синтезировать воспроизведенное лицо, оживленное движением человека, при этом сохраняя внешний вид лица.
как сравнить две строки
Это подводит нас к концу статьи, где мы узнали «Что такое GAN». Я надеюсь, что вы понимаете все, что было поделено с вами в этом руководстве.
Если вы нашли эту статью «Что такое сети GAN», ознакомьтесь с надежная компания онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.
Мы здесь, чтобы помочь вам на каждом этапе вашего пути и разработать учебную программу, предназначенную для студентов и профессионалов, которые хотят учиться. . Курс разработан, чтобы дать вам фору в программировании на Python и обучить вас как основным, так и продвинутым концепциям Python, а также различным любить
Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать все свои вопросы в разделе комментариев «Что такое GAN», и наша команда будет рада ответить.