На многих курсах машинного обучения в Америке изучение прогрессивной GAN теперь является обязательным. Он использует ресурсоемкую архитектуру постоянного тока и создает изображения из шума.
В противовес этому я предлагаю консервативную ГАН.
Как и все GAN, он состоит из 2 моделей. В данном случае это модель Творца (который создает картины из ничего). И сеть дискриминатора.
Сначала давайте посмотрим на сеть создателя.
В отличие от прогрессивной GAN, он имеет фиксированный размер и не развивается. Он также не принимает шум в качестве входных данных, а создает его из ничего.
def creator(): p=Input(None) x=conv2dTranspose()(p) x=conv2dTranspose()(x) x=conv2dTranspose()(x) x=conv2dTranspose()(x) model=Model(p,x) model.compile(loss=’elect20’, optimizer=”adam(lr=1e-6”)
Давайте посмотрим на код, создатель использует оптимизатор adam и функцию потерь Elect20. Также обратите внимание на низкую скорость обучения. Количество слоев останется равным 4 и не будет прогрессировать.
Дискриминатор
В то время как функция создателя — создавать образы, функция дискриминатора — отбрасывать каждое изображение, которое выглядит так, как ожидалось. Поскольку мы не против влить дополнительные ресурсы в дискриминатор, чтобы сохранить наши изображения чистыми, он имеет больше слоев (я предлагаю 50 слоев, все с локальными соединениями).
Некоторые изображения, созданные Консервативной ГАН:
Советы по обучению:
Чтобы не повредить его, обучайте его дома, а не в общедоступном центре обработки данных или облаке.
Ремко Вайнгартен
(Поскольку medium.com не платит авторам в зависимости от страны, эта история предоставляется вам бесплатно).
Для более серьезной статьи о GAN посмотрите на мою корректирующую GAN: https://medium.com/@remko66/corrective-neural-networks-cornet-19fefab47219