На многих курсах машинного обучения в Америке изучение прогрессивной 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 слоев, все с локальными соединениями).

Некоторые изображения, созданные Консервативной ГАН:

Советы по обучению:

Чтобы не повредить его, обучайте его дома, а не в общедоступном центре обработки данных или облаке.

Ремко Вайнгартен

[email protected]

(Поскольку medium.com не платит авторам в зависимости от страны, эта история предоставляется вам бесплатно).

Для более серьезной статьи о GAN посмотрите на мою корректирующую GAN: https://medium.com/@remko66/corrective-neural-networks-cornet-19fefab47219