Погружение в глубокое обучение: Реализация Generative Adversarial Network
Мои заметки о погружении в глубокое обучение:
- Как учить и не учить математике
- MIT 6.S191
- Нельзя просто так взять и запустить Deep Learning
- Digit Recognizer (MNIST) точность 0.99585
- Ссылки на курсы по Machine Learning & Deep Learning
- Реализация Generative Adversarial Network
В завершение разбирательства с Deep Learning решил посмотреть что-нибудь более интересное и ориентированное на генерацию контента — реализовать GAN.
По правде говоря, большую часть времени с GAN (и Autoencoder) я экспериментировал на спрайтах карты Сказки. Ожидаемо, на таком мизере обучающих данных ничего интересного не получилось. Хотя польза и была. Поэтому для поста я подготовил отдельный notebook с более наглядными результатами — генерацией обуви по набору данных Fashion MNIST.
Ноутбук с реализацией GAN и комментариями.
Про архитектуру GAN лучше почитать в вики, интернетах или моём ноутбуке.
Краткая суть:
- Тренируются две сети: generator & discriminator.
- Генератор учится создавать картинки из шума.
- Дискриминатор учится отличать поддельные картинки от настоящих.
- Ошибка дискриминатора определяется качеством предсказания фейковости изображения.
- Ошибка генератора определяется качеством обмана дискриминатора.
Если правильно подобрать топологии сетей и параметры обучения, то в итоге генератор научается создавать картинки неотличимые от оригинальных. ??????. Profit.
Этот пост является частью серии
- Предыдущий пост: Ссылки на курсы по Machine Learning & Deep Learning
- Первый пост: Как учить и не учить математике
Читать далее
- Генерация подземелий — от простого к сложному
- Автоматический генератор квестов
- Модная типизация в Python
- Feeds Fun — читалка новостей с тегами и ChatGPT
- Топовые LLM фреймворки могут быть не так надёжны, как вы думаете
- Миграции backend на практике
- Типы в Python не радуют
- Open source сервисы аутентификации
- Как завалить собес у меня
- Генерация текста на русском по шаблонам