Ноутбуки gen_image_gan_01.ipynb, gen_image_gan_02.ipynb (DCGAN), gen_image_gan_03.ipynb (WGAN = DCGAN + EM (Wasserstein) metric)

В рамках прокапывания [РашкаML], глава 17.

По-большому счёту GAN неявно оценивают расхождение между истинным и фиктивным распределением данных, и далее через тренировку генератора умеют это расхождение уменьшать. В целом получаются интересные сгенерённым картинки:

GAN

DCGAN

WGAN

Что вынесено из упражнения: 1) модель очень чувствительна к batch_size. При batch_size=64 наблюдается сходимость к приемлемому l1_probas, при более высоких значения - непредсказуемо и нестабильно. Это сильно контрастирует с прошлыми экспериментами, где можно было batch_size=1000 иметь. Т.е. модель модели - рознь 2) также модель очень чувствительна к random_seed. При random_seed=1 наблюдается сходимость к приемлемому l1_probas, при random_seed=42 сходимость срывается с катушек. Другие значения не испытывал, но вот такое кардинальное различие говорит о том, что начальное состояние прям очень важно. Т.е. модель модели - рознь 3) удивительно, но всегда хорошо работающий learn_rate=0.001, plateau() показал себя плохо, лучше оставить просто learn_rate=0.001. Т.е. модель модели - рознь 4) model_units.py и hp_params.py - гибкий и мощный способ управления структурой сетей