На мой взгляд, это (GAN) и предлагаемые сейчас вариации - самая интересная идея в области машинного обучения за последние 10 лет.

- Ян Лекун, бывший директор по исследованиям в области искусственного интеллекта в Facebook.

В этом посте я хотел бы представить идею и возможности GAN для создания новых изображений кроссовок на основе набора данных MNIST-Fashion с использованием Tensorflow.

Фон

Генеративная состязательная сеть была представлена ​​в 2014 году в статье Генеративные состязательные сети Иэна Гудфеллоу, также известного как GANfather. Поразительная идея пришла в голову, когда он пошел выпить со своими товарищами, чтобы отпраздновать выпуск колледжа. В то время модели глубокого обучения процветали в задачах распознавания изображений, но плохо работали при создании новых вещей. Первоначальная модель по своим характеристикам была ненамного лучше, чем у конкурентов, но прорывом стало внедрение сети противоборства. Дальнейшие исследования привели к широкому спектру приложений, таких как сочинение музыки, раскраска изображений, создание глубоких подделок или создание портретов [1].

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

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

Игра MiniMax

В отличие от большинства моделей глубокого обучения, где цель состоит в том, чтобы найти глобальный минимум функции потерь, мы обращаемся к теории игр, где у нас есть два игрока, в нашем случае генератор и дискриминатор. Это называется минимаксной игрой, в которой Игрок 1 (дискриминатор) хочет минимизировать функцию D (G (z)), чтобы лучше различать подделки, в то время как одновременно Игрок 2 (генератор) хочет max imise D (G (z)), чтобы обмануть дискриминатор. Когда оба игрока находят локальные оптимумы, мы достигаем равновесия по Нэшу. Оптимальная точка, когда ни один из игроков не может улучшить. Мы получаем его в GAN, когда генератор создает неотличимые изображения от реальных данных, поэтому дискриминатор угадывает с вероятностью 50%.

Процесс обучения

Их надо дьяволами тренировать.

- Алексей Эфрос

Проблема с исходной моделью заключалась в стабильности и сходимости. Чтобы улучшить результаты, я применил некоторые методы, представленные в исследовательских статьях, такие как:

  • Нормализация значений пикселей от -1 до 1
  • Сглаживание меток для реальных данных с 0,9 до 1, чтобы уменьшить самоуверенность модели [6]
  • Установка параметра импульса для оптимизатора Adam равным 0,5 [5]
  • Использование слоев Batch Normalization и Dropout в Дискриминаторе и Генераторе [5]
  • Использование слоев Conv2DTranspose в генераторе вместо Dense или UpSampling2D
  • Функция активации LeakyReLU для всех слоев свертки в Дискриминаторе и Генераторе, кроме последнего, где мы помещаем Tanh для масштабирования выходного значения от -1 до 1.
  • Шумовые метки (переворачивание меток) с вероятностью 5%

Набор данных

Fashion MNIST - это набор изображений статей Zalando, состоящий из обучающего набора из 60 000 примеров и тестового набора из 10 000 примеров. Каждый пример представляет собой изображение в оттенках серого 28x28, связанное с меткой из 10 классов [7]. Мы извлекаем 8428 изображений кроссовок и скармливаем их нашей модели.

Выполнение

1. Модельная архитектура

2. Гиперпараметры

3. Код

Полный код доступен на Github.

  • Дискриминатор
  • Генератор
  • Модель GAN
  • Генерация скрытого образца z
  • Цикл обучения

Результаты

Процесс обучения занял около 10 минут с использованием ускорителя Google Colab GPU на MacBook Pro с чипом M1 и 8 ГБ оперативной памяти. Лучше всего работает простая архитектура с 64 и 128 фильтрами в обеих сетях. Более сложные модели с большим количеством фильтров и слоев производили много шума, и в некоторые более высокие эпохи модель, казалось, сломалась.

Выводы

Представленная модель показывает потенциал и возможности General Adversarial Networks. Сгенерированные кроссовки практически неотличимы от набора данных. GAN все больше и больше занимается модной индустрией не только в создании новых стилей, но и в виртуальных примерочных [8]. Надеюсь, прочитав этот пост, вы понимаете и сможете реализовать модель самостоятельно.

использованная литература