Files
autopilot/dissertation/chapter_2/2.5_training/2.5_training.md
2026-05-31 12:53:54 +03:00

8.1 KiB
Raw Blame History

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 в стиль Яндекс.Карт