О чём урок
Примечание AI University. Часть примеров в оригинале курса рассчитана на сервисы Azure. Те же модели можно обучать и запускать локально или в любом облаке с Python, PyTorch и TensorFlow. В предыдущем разделе вы узнали о генеративных моделях: моделях, способных создавать новые изображения, похожие на те, что использовались в обучающем наборе данных. VAE был хорошим примером такой модели. Однако, если вы попытаетесь сгенерировать что-то действительно значимое, например, картину в приемлемом разрешении, с помощью VAE, то увидите, что обучение сходится плохо. Для таких задач следует изучить другую архитектуру, специально предназначенную для генеративных моделей, генеративно-состязательные сети, или GAN. Основная идея GAN заключается в использовании двух нейронных сетей, которые обучаются в противоборстве друг с другом: Изображение: Дмитрий Сошников ✅ Небольшой словарь терминов: Генератор: сеть, которая принимает случайный вектор и выдаёт изображение. Дискриминатор: сеть, которая принимает изображение и должна определить, является ли оно реальным (из обучающего набора данных) или было сгенерировано генератором. По сути, это классификатор изображений. Архитектура дискриминатора не отличается от обычной сети классификации изображений. В простейшем случае это может быть полносвязный классификатор, но, скорее всего, это будет свёрточная сеть. ✅ GAN, основанный на свёрточных сетях, называется DCGAN. Свёрточный дискриминатор состоит из следующих слоёв: нескольких свёрточных слоёв с пулингом (с уменьшением пространственного размера), одного или нескольких полносвязных слоёв для получения «вектора признаков» и, наконец, бинарного классификатора. ✅ «Пулинг» в этом контексте: метод, который уменьшает размер изображения. «Слои пулинга уменьшают размерность данных, объединяя выходы кластеров нейронов на одном слое в один нейрон на следующем слое». Источник. Генератор устроен немного сложнее. Его можно рассматривать как обратный дискриминатор. Начиная с латентного вектора (вместо вектора признаков), он имеет полносвязный слой для преобразования его в требуемый размер/форму, за которым следуют деконволюции и увеличение масштаба. Это похоже на часть декодера в автокодировщике.
План урока
- Тест перед лекцией
- Дискриминатор
- Генератор
- Обучение GAN
- ✍️ Упражнения: GAN
- Проблемы при обучении GAN
- Перенос стиля
- ✍️ Пример: Перенос стиля
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.