Привет, Хабр! Меня зовут Юлия Борисова, я младший научный сотрудник лаборатории композитного искусственного интеллекта и исследовательского центра «Сильный ИИ в промышленности». Одна из задач, которой я занимаюсь вместе с коллегами из ИТМО ― прогнозирование динамики морского льда в Арктике с помощью ИИ.
Чтобы успешно осваивать арктический шельф и развивать Северный морской путь, нужны данные о ледовом покрове акватории ― например, важно знать толщину и концентрацию льда и положение кромки. Без этого сложно определить, когда открывать навигацию, на сколько месяцев планировать работу и какой бюджет на нее заложить.
Сейчас характеристики ледового поля прогнозируют разными методами ― в том числе используют моделирование с использованием дифференциальных уравнений и глубокое машинное обучение. Но у каждого есть свои сложности. Вместе с командой мы разработали новый ― ансамблевый подход на основе сверточных нейросетей. Метод более легковесный, чем существующие подходы, и позволяет запускать прогнозирование в любое время года. А ещё ― экономить время и выполнять операции всего за сутки, а не недели или месяцы. В этой статье расскажу о процессе, результатах и перспективах разработки.
Исследованиями расчетов ледовых условий наша лаборатория занимается уже давно ― например, мы решали задачу моделирования ледовых условий в рамках одного из наших «промышленных» проектов. Однако с научной стороны вопроса мы углубились в другой аспект: какие именно методы построения моделей ИИ для прогнозирования пространственно-временных процессов могут быть наиболее эффективны для таких сложных и нетипичных для компьютерного зрения задач, как прогнозирование полей морского льда?
Подходы к моделированию
Несмотря на то, что задачу моделирования ледовых условий решают разными способами еще с середины прошлого века, оптимального решения в этой области по-прежнему не изобрели.
Классический способ прогнозирования ледовой обстановки ― решение систем дифференциальных уравнений численными методами. Подобные решения написаны на Fortran и других похожих языках ― в современных условиях читать такой код, тем более модифицировать его уже сложно. Тем не менее, подход остается вполне рабочим ― за десятки лет он успел себя хорошо зарекомендовать, ведь позволяет получить прогноз даже в условиях недостатка исторических данных, хотя и требует больших вычислительных ресурсов. Его основной недостаток ― высокая требовательность к вычислительным ресурсам и необходимость трудоемкой конфигурации модели под каждый конкретный кейс. К примеру, для прогноза с помощью модели NEMO 4.0 для всей Арктики на 12 месяцев нужно собрать и предобработать данные о граничных и начальных условиях, а также дождаться расчета на сервере. Процесс занимает порядка недели.
С развитием инструментария и накоплением массива данных дистанционного зондирования Земли популярность набирают методы прогнозирования ледовой обстановки на основе глубокого обучения. Нейронные сети используют обширную предысторию моделируемого параметра и дополнительных предикторов и пытаются воспроизвести зависимости в данных. Обучение модели также требует ресурсов, но зато обученную модель можно использовать для прогноза без дообучения практически без временных затрат в течение длительного времени.
Решений на основе глубокого обучения уже много, при этом лидируют по количеству модификации архитектуры U-Net. Изначально созданная для задачи сегментации, эта архитектура легко адаптируется для пространственно-временного прогнозирования (наглядно на картинке). Архитектура относительно простая, поэтому по-разному обученные U-Net часто объединяют в ансамбли.
Придуманы и новые архитектуры, которые объединяют преимущества сверток и моделей с краткосрочной памятью ― например, ConvLSTM. Для повышения интерпретируемости нейронной сети используют VSL-модели (variable selection network). В таких моделях в процессе обучения производится регуляризация с учетом экспертно собранного графа зависимостей между переменными. Такой подход частично решает проблему использования нейронных сетей как «черного ящика».
Трансформеры (модели с механизмом внимания) менее популярны для задач пространственно-временного прогнозирования ― они тяжеловесны, хотя и здесь есть решения для краткосрочного прогнозирования.
Постановка задачи
Понятно, что уже описанных решений много. Зачем придумывать что-то еще? Причины на самом деле есть.
Прогнозы ледовой обстановки осуществляются на разных масштабах времени:
Краткосрочное прогнозирование (на дни и месяцы) позволяет понять состояние льда в ближайшем будущем и оперативно принимать решения с учетом самой актуальной информации.
Долгосрочное прогнозирование (на месяцы и годы) помогает на длинной дистанции распределять бюджеты, планировать сезонные работы и оценивать глобальную динамику.
Мы занимаемся долгосрочным прогнозированием, решения для этой задачи меньше освещены в литературе и в целом она более сложная, ведь нужно воспроизвести внутригодичную динамику.
Перечисленные подходы ресурсоемкие и требуют значительных вычислительных мощностей. Развертывать такие модели на локальных машинах, чтобы оперативно получать свежие прогнозы, нецелесообразно. Поэтому есть потребность в более легковесных методах, способных обеспечить быстрое и качественное прогнозирование.
Одна из наших ключевых задач ― адаптация моделей к специфике конкретной акватории. Каждая компания обычно специализируется на конкретных секторах ― она не присутствует во всем арктическом регионе, а значит моделировать все площади и тратить вычислительные ресурсы не нужно. Но важно уметь быстро и без потери качества адаптировать модель под новые небольшие участки.
К сожалению, с большими моделями это невозможно. Для них нужно собрать и предподготовить входные данные ― они уникальны для акваторий. В зависимости от охвата акватории и требуемого пространственного разрешения размерность входных данных будет меняться, а значит, придется подгонять внутренние размерности слоев нейросетевой модели под каждую задачу. То же самое для различных горизонтов прогноза ― этот параметр обуславливает размерность выходных данных, его придется править в структуре модели. Все это довольно трудоемкий процесс, который делает адаптацию слишком сложной.
Таким образом, задача была поставлена так: необходимо разработать легковесный подход для долгосрочного прогнозирования с минимальным количеством входных данных, обеспечивающий хорошее качество по сравнению с открытыми прогнозами из иностранных источников.
Процесс разработки
Общая архитектура
Уже на берегу было понятно, что для легковесности стоит использовать максимально простые архитектуры нейросетей. Признанный фаворит для этой задачи ― U-Net, поэтому в качестве отправной точки остановились на этой архитектуре, но избавили ее от skip connection’ов (убрали дополнительные связи между слоями сети) и оставили неглубокую сверточную сеть архитектуры encoder-decoder. Однако в такой модели небольшое число параметров, и, соответственно, невысокая способность к аппроксимации данных.
Ансамблирование нескольких моделей ― простой и эффективный способ повышения качества финальной модели. Есть разные способы объединения моделей ― например, простое осреднение выходов всех моделей, взвешенная сумма, регрессионные модели. Но в нашем случае, когда модель воспроизводит пространственные данные, вступает в дело дополнительная размерность: не обязательно одинаковое линейное преобразование к каждому пикселю картинки способно дать лучшее качество. Поэтому в качестве ансамблирующей «объединяющей» модели решили взять дополнительную нейронную сеть ― так мы пришли к neural ансамблю.
По-прежнему открытым остается вопрос о выборе элементов ансамбля. Нейронные сети можно обучать на разных функциях потерь, тем самым заставив модель воспроизводить определенные свойства данных. Этим мы и воспользовались, выбрав в качестве функций потерь MAE (mean absolute error), отвечающую за соответствие абсолютных значений предсказанных значений с реальными, а также SSIM (structural similarity index measure). SSIM используется для оценки степени схожести изображений, принимая во внимание контуры объектов ― применительно ко льду оценивает соответствие положения ледовых кромок. Для учета среднегодичной динамики в качестве третьего элемента ансамбля выбрали «наивный» прогноз ― среднее пятилетнее для прогнозных дат.
Обеспечение адаптивности
Одна из основных потребностей нашего решения в том, чтобы можно было легко перенести архитектуру на произвольную акваторию. И тут возникает сложность: сверточные нейронные сети чувствительны к размерностям входных данных ― не получится одной архитектурой принимать изображения разного размера. При этом подбирать руками размерности внутренних слоев для каждого нового участка акватории ― то есть фактически собирать архитектуру вручную ― неприемлемый вариант, нужно автоматизировать.
Для автоматизации сборки сверточных нейронных сетей мы создали отдельный open-source фреймворк на основе PyTorch ― TorchCNNBuilder. С его помощью можно в пару строк кода собрать архитектуру сверточной сети с корректно подобранными размерностями внутренних представлений. Идея обобщаемая и применимая для прогнозирования любых пространственно-временных процессов. Поэтому на разработку библиотеки мы получили грант от Фонда содействия инновациям в рамках конкурса «Код ИИ». Установить фреймворк теперь можно через pypi.
Если описать одиночную модель в двух словах, то на входе у нас есть многоканальное изображение, где количество каналов определяет число шагов предыстории, на основе которой производится прогноз. А на выходе хотим получить также многоканальную картинку с предсказанием, где количество каналов отражает горизонт прогнозирования.
Сборка архитектуры теперь практически моментальная для любых размеров изображений, вызов модели компактный, следовательно ― можно перейти к экспериментальной оценке качества ансамбля моделей.
Постановка экспериментов
В качестве источника данных мы используем открытые данные продукта OSISAF (Ocean and Sea Ice Satellite Application Facility) о концентрации льда ― это данные спутниковой съемки, после небольшой посткоррекции готовые к формированию датасета. Пространственное разрешение данных привели к шагу в 20 км ― этого достаточно для локальных моделей в масштабе отдельных морей, использовать более мелкий масштаб уже избыточно. Временное разрешение привели к семидневному, так как в рамках долгосрочного прогноза меньшая динамика слабо выражена.
Для апробации подхода мы выбрали территорию, где в течение года наблюдается самая большая динамика концентрации льда ― это Карское и часть Баренцева моря.
Еще один важный момент: к обучению ансамблевых моделей стоит относиться внимательно, чтобы не допустить data leak (утечки данных). В рамках эксперимента мы обучили одиночные модели на данных с 1979 по 2012 год, далее обучили ансамблевую нейросетевую модель на промежутке 2012-2018 годов и дообучили одиночные модели на всех данных до 2018 года.
В зависимости от размера акватории на обучение такого ансамбля уходит до суток. Так как постановка задачи именно в легковесном моделировании, преимуществом является минимум входных данных, только предыстория параметра за несколько лет. Все расчеты можно произвести на ресурсах локальной машины.
Оценка качества
Важно было убедиться, что ансамблирование действительно повышает качество по сравнению с одиночными моделями. Это подтвердилось как метриками качества, так и визуальной оценкой прогнозов.
Кстати, интересно, что одиночная модель с функцией потерь MAE на предсказании дает зернистые артефакты, однако после ансамблирования этот негативный эффект сглаживается.
Чтобы понять, насколько наше решение хорошо справляется в абсолютных значениях ошибки, мы сравнили свои прогнозы со state-of-the-art (SOTA) прогностической системой SEAS5. SEAS5 ― физическая модель пятого поколения на основе систем дифференциальных уравнений, которая дает прогноз на 9 месяцев вперед. Система рассчитывается на серверах Европейского центра среднесрочных прогнозов погоды (ECMWF) с усвоением данных, на основе граничных и начальных условий и дополнительных параметров.
Для удобства мы разделили всю Арктику на тестовые территории по морям. Деление условное, но отражает специфику динамики льда ― на восточных морях лед вскрывается на короткий срок летом, на западных процесс начинается раньше и длится дольше.
Теперь самое интересное ― построение прогнозных карт для ансамблевой модели, прогноза SEAS5 и их сравнение с фактическими данными. Корректная отрисовка карт с береговой линией, координатной сеткой и динамическими подписями осей на потоке исключительно программно (через Matplotlib) ― отдельный квест. Но если заморочиться, от нарисованной вручную в ГИС почти не отличить :)
Отсматривать карты глазами на схожесть конечно хорошо, но для более объективной оценки мы рассчитали метрики качества ― MAE и SSIM, про которые я уже упоминала.
Акватория |
Метрика |
Mean Absolute Error (MAE) |
Structural Similarity Index (SSIM) |
||
Год прогноза |
SEAS5 |
Ансамблевая модель |
SEAS5 |
Ансамблевая модель |
|
Карское |
2020 |
0,104 |
0,072 |
0,633 |
0,694 |
2021 |
0,094 |
0,094 |
0,658 |
0,658 |
|
2022 |
0,090 |
0,076 |
0,656 |
0,693 |
|
2023 |
0,087 |
0,085 |
0,668 |
0,678 |
|
Лаптевых |
2020 |
0,112 |
0,093 |
0,694 |
0,711 |
2021 |
0,121 |
0,083 |
0,681 |
0,713 |
|
2022 |
0,084 |
0,073 |
0,720 |
0,743 |
|
2023 |
0,088 |
0,071 |
0,717 |
0,735 |
|
Баренцево |
2020 |
0,080 |
0,064 |
0,619 |
0,644 |
2021 |
0,070 |
0,074 |
0,636 |
0,616 |
|
2022 |
0,076 |
0,064 |
0,639 |
0,642 |
|
2023 |
0,068 |
0,087 |
0,644 |
0,591 |
Таблица метрик качества ― сравнение прогноза SEAS5 и ансамблевой модели.
В таблице можно увидеть осредненные по первым трем кварталам года метрики качества нашего решения и SEAS5. Три квартала, потому что SEAS5 дает прогноз только на 9 месяцев. Точкой старта мы выбрали 1 января каждого года, доступного для скачивания от SEAS5. Приятно отметить, что ансамблевая модель, которая суммарно обучается до суток (в зависимости от размера акватории) близка по качеству, а иногда и обыгрывает тяжеловесное SOTA решение на основе диффур. Ну и успешное применение на разных акваториях подтверждает обобщаемость подхода ― все моря разного размера, с разной динамикой, а значит можно «нарезать» Арктику на любые участки, и модель даст адекватный прогноз.
Сравнение с deep learning SOTA ― моделью IceNet
Среди подходов к моделированию льда, про которые я уже упомянула, стоит особо выделить модель IceNet. Примечательна она тем, что по ней не только опубликована подробная статья в Nature, но и в приложении к этой статье представлен открытый репозиторий с кодом на Python, а также файлы с результатами моделирования, которые описываются в исследовании. Как и наш, этот подход полностью основан на глубоком обучении ― поэтому давайте возьмем его за основного конкурента и проведем сравнительный анализ.
Правда, стоит учесть, что система IceNet тяжеловесная: в архитектуре участвуют 25 моделей U-Net, обученных на наборах дополнительных параметров об атмосфере, водной среде и прочих факторах. Авторы отмечают, что обучение каждой из моделей заняло около суток, то есть вся система обучалась порядка месяца. Но в целом такие затраты ресурсов кажутся обоснованными, так как IceNet реализует глобальное моделирование всей Арктики с высоким пространственным разрешением.
Также стоит отметить, что постановка задачи у IceNet другая ― авторы исходят из парадигмы вероятностного моделирования. Моделью прогнозируется поле вероятности присутствия в каждом пикселе изображения ледового покрова. За наличие ледового покрова авторы принимают концентрацию льда более 0.15, то есть по факту моделируют бинарные данные о положении ледовой кромки.
В их статье мы заметили интересную и наглядную визуализацию качества прогноза.
как IceNet осуществляет прогноз на 6 месяцев с осредненными помесячно значениями, на изображении по оси Х отмечен месяц прогноза от 1 до 6 (заблаговременность прогноза), а по оси Y названия месяцев. То есть трактовать тепловую карту можно следующим образом: качество прогнозирования месяца по оси Y при заблаговременности прогноза, указанной по оси Х, равно числу на карте.
В качестве метрики качества используется Accuracy ― бинарная точность. При работе со льдом бинарная точность характеризует долю соответствия положения ледовых кромок. Выбирается пороговое значение концентрации льда, критичное для определенной задачи ― например, для навигации малогабаритных судов. На основе этого порога все прогнозное поле концентрации бинаризуется ― на картинке остаются только значения 0 и 1 (нет льда, есть лед). Далее считается отношение успешно определенных значений к количеству всех пикселей изображения.
Так как данные для обучения нашей ансамблевой модели подготовлены с помощью скользящего окна, она также способна осуществлять прогноз из любой точки старта в году. Мы прогнозируем поля концентрации льда с временной дискретностью 7 дней, то есть путем нехитрых манипуляций можем привести выход нашей модели к бинарной ежемесячной постановке и сравниться с результатом IceNet. Более того, такую постановку можно повторить и для данных SEAS5, и вот у нас уже два кандидата на сравнение в режиме множественных запусков в течение года. У данных IceNet валидация (построение тепловой карты приведенной ранее) производилась усреднением метрик за 2012-2020 годы, нашу модель мы обучили в соответствие с этими датами для корректного сравнения. Порог уверенности модели IceNet (так как она вероятностная) в наличии кромки выбрали 0.8 в соответствии с приведенным в их статье.
По полученным тепловым картам можно сделать несколько выводов. Во-первых, мы воспроизвели результаты из статьи разработчиков IceNet и они очень похожи ― и это показатель отлично проделанной работы авторов!
Открытый код, приложенный к научному исследованию, сам по себе неотъемлемый артефакт проделанной работы. Естественно, что код для экспериментов, как правило, выглядит неприглядно, но хорошим тоном будет довести его до съедобного вида и позволить другим исследователям воспользоваться результатами. К тому же, легкая воспроизводимость повышает доверие проделанной работе. На базе Университета ИТМО работает сообщество любителей открытого кода Научный опенсорс ― здесь можно найти советы по разработке и поддержке своего ПО и пообщаться. Сообщество открыто для всех желающих из любых вузов и научных организаций. Присоединяйтесь к чату, задавайте вопросы!
Во-вторых, предсказание ансамблевой модели схоже с предсказанием SEAS5 и ощутимо лучше IceNet. Также важно отметить, что ошибка возрастает с горизонтом прогнозирования и что повышение ошибки приходится на периоды ледостановления и ледотаяния. Такая динамика логична и подтверждает естественные паттерны ― в периоды перехода между ледовыми фазами неопределенность процесса возрастает, поэтому модели сложнее выделить признаки, которые помогут ей сделать верное предсказание.
Еще можно отметить, что для морей со слабо выраженной динамикой концентрации льда в течение года (например, море Лаптевых, которое вскрывается всего на несколько месяцев) ошибка предсказания выше ― модели сложнее правильно «поймать» момент смены ледовой фазы. Напомним, что SEAS5 и IceNet это глобальные модели ― они моделируют всю Арктику сразу. Ансамблевая модель региональная, то есть моделирует небольшой участок акватории. В том числе поэтому качество ансамблевой модели выше, а еще региональную модель обучать быстрее и менее затратно по ресурсам.
Что дальше?
Базовое легковесно решение готово, что делать дальше? Улучшать качество, конечно! Решение адаптивно, поэтому перед нами открывается простор для экспериментов с локальными моделями акваторий. А наш фреймворк позволяет легко варьировать величину предыстории, глубину модели и прочие архитектурные особенности сверточных сетей, позволяющие повысить предиктивную способность моделей.
Есть, конечно, и более фундаментальные вопросы, требующие исследований. Мы пробуем сложные архитектуры (на основе трансформеров и 3D-сверток), чтобы выяснить, действительно ли в силу особенностей данных усложнение модели не ведет к повышению качества прогноза. Выходит, что явление настолько необычное, что, помимо предметной области и знаний в области ИИ, требуется и более детальное погружение в саму природу данных. Поэтому хочется посмотреть в сторону поиска топологии и ее учета при моделировании.
Спойлер будущих экспериментов:
Ссылка на нашу статью по этой тематике: J. Borisova and N. O. Nikitin, «Lightweight Neural Ensemble Approach for Arctic Sea Ice Forecasting», 2024 IEEE Congress on Evolutionary Computation (CEC), Yokohama, Japan, 2024, pp. 1-8, doi: 10.1109/CEC60901.2024.10612104.
А вот статья на Хабре про технические аспекты моделирования льда (и не только) с помощью TorchCNNBuilder.
Список литературы:
Andersson, T.R., Hosking, J.S., Pérez-Ortiz, M. et al. Seasonal Arctic sea ice forecasting with probabilistic deep learning. Nat Commun 12, 5124 (2021). https://doi.org/10.1038/s41467-021-25257-4
Liu, Q.; Zhang, R.; Wang, Y.; Yan, H.; Hong, M. Daily Prediction of the Arctic Sea Ice Concentration Using Reanalysis Data Based on a Convolutional LSTM Network. J. Mar. Sci. Eng. 2021, 9, 330. https://doi.org/10.3390/jmse9030330
Mu, B., Luo, X., Yuan, S., and Liang, X.: IceTFT v1.0.0: interpretable long-term prediction of Arctic sea ice extent with deep learning , Geosci. Model Dev., 16, 4677–4697, https://doi.org/10.5194/gmd-16-4677-2023, 2023
Jiang, Z.; Guo, B.; Zhao, H.; Jiang, Y.; Sun, Y. SICFormer: A 3D-Swin Transformer for Sea Ice Concentration Prediction. J. Mar. Sci. Eng. 2024, 12, 1424. https://doi.org/10.3390/jmse12081424