8.1 KiB
2.5 Обучение моделей глубокого обучения
\section{2.5.4 Обучение «GAN» на датасете «YaGoMaps V2»}
Для проверки применимости генеративно-состязательной сети к задаче приведения картографических изображений к единому домену было выполнено обучение модели GAN на датасете YaGoMaps V2. Датасет содержит парные изображения одних и тех же географических участков, полученные из Google Maps и Яндекс.Карт. В рамках эксперимента изображение Google использовалось как вход генератора, а соответствующее изображение Яндекс.Карт -- как целевой домен.
Обучение выполнялось на устройстве cuda, что позволило проводить полный цикл обучения модели без перехода на CPU. После разделения данных было сформировано 316 обучающих и 79 валидационных примеров. С учетом размера пакета 32 это соответствовало 10 итерациям на эпоху для обучающей выборки и 3 итерациям для валидационной выборки. Генератор содержал 39 157 763 обучаемых параметра, дискриминатор -- 2 769 601 параметр.
| Параметр | Значение |
|---|---|
| Датасет | YaGoMaps V2 |
| Устройство обучения | cuda |
| Обучающая выборка | 316 изображений |
| Валидационная выборка | 79 изображений |
| Количество эпох | 300 |
| Размер пакета | 32 |
| Параметры генератора | 39 157 763 |
| Параметры дискриминатора | 2 769 601 |
| Лучшая валидационная ошибка реконструкции | 35,3304 |
Таблица X - Основные параметры обучения GAN на датасете YaGoMaps V2
Функция потерь генератора включала состязательную компоненту, L1-ошибку, структурную ошибку SSIM и ошибку по границам, вычисляемую по оператору Собеля. Такая комбинация была выбрана из-за специфики картографических изображений: модель должна не только приблизить цветовую и стилевую палитру Google Maps к Яндекс.Картам, но и сохранить геометрию дорог, перекрестков, кварталов и других ориентиров. Сохранение контуров особенно важно, так как результат генератора далее может использоваться в классическом пайплайне сопоставления ключевых точек и оценки гомографии.
В начале обучения наблюдалось быстрое снижение ошибки генератора и реконструкционных компонент. На первой эпохе средняя ошибка генератора на обучающей выборке составила 50,3793, L1-компонента -- 32,1376, SSIM-компонента -- 13,7808, edge-компонента -- 4,2270. На валидации после первой эпохи значение ошибки реконструкции составило 43,9219. Уже к 20-й эпохе обучающая ошибка генератора снизилась до 32,6649, а ошибка реконструкции на валидации -- до 35,4286.
Минимальное значение валидационной ошибки реконструкции было достигнуто на раннем этапе обучения и составило 35,3304. Данный результат соответствует эпохе, на которой модель еще сохраняла баланс между реконструкционным качеством и обобщающей способностью. После этого обучающая ошибка продолжала снижаться, однако валидационная ошибка начала колебаться и постепенно увеличиваться. Например, к 100-й эпохе обучающая ошибка генератора снизилась до 25,0163, но валидационная ошибка реконструкции составила 36,1303. К 300-й эпохе обучающая ошибка генератора достигла 19,5036, тогда как валидационная ошибка реконструкции увеличилась до 38,4682.
Такое поведение указывает на частичное переобучение генератора под обучающую выборку. Модель постепенно улучшала восстановление обучающих пар, но это не приводило к дальнейшему улучшению качества на отложенных примерах. Дополнительным признаком насыщения состязательного процесса является снижение ошибки дискриминатора на обучающей выборке до малых значений. На 300-й эпохе ошибка дискриминатора на обучении составила 0,0016, тогда как на валидации -- 0,3348. Это означает, что дискриминатор уверенно различал обучающие примеры, а генератор продолжал оптимизироваться преимущественно под обучающие данные.
Наиболее показательные значения метрик приведены в таблице.
| Эпоха | train G | train D | val G | val D | val rec |
|---|---|---|---|---|---|
| 1 | 50,3793 | 0,4947 | 44,1364 | 0,2827 | 43,9219 |
| 20 | 32,6649 | 0,1742 | 35,5899 | 0,2482 | 35,4286 |
| 23 | 33,0033 | 0,0721 | 35,5553 | 0,2352 | 35,3304 |
| 100 | 25,0163 | 0,0066 | 36,4437 | 0,3317 | 36,1303 |
| 200 | 21,3662 | 0,0034 | 37,9867 | 0,3280 | 37,6665 |
| 300 | 19,5036 | 0,0016 | 38,7948 | 0,3348 | 38,4682 |
Таблица X - Динамика основных метрик обучения GAN
По результатам эксперимента для дальнейшего использования целесообразно выбирать не финальное состояние модели после 300 эпох, а чекпоинт с минимальной валидационной ошибкой реконструкции. В данном запуске таким чекпоинтом является модель с val_rec = 35,3304. Она обеспечивает лучший компромисс между переносом визуального стиля Яндекс.Карт и сохранением структуры изображения на данных, не участвовавших в обучении.
Рисунок X - График изменения ошибки генератора при обучении GAN
Рисунок X - График изменения ошибки дискриминатора при обучении GAN
Рисунок X - График изменения реконструкционных компонент L1, SSIM и edge loss
Рисунок X - Пример преобразования изображения Google Maps в стиль Яндекс.Карт