Как студенты ШАДа прогнозируют природные катаклизмы

Студенты ШАДа совместно со специалистами Yandex Cloud, Карт и Погоды разработали сервис, который прогнозирует распространение вулканического пепла на Камчатке. Поговорили с Дарьей Родичевой, студенткой ШАДа и выпускницей СПбГУ, об участии в проекте и возможностях, которые он открывает миру. И о том, как нейросети и алгоритмы могут служить людям и их безопасности

Расскажи, как ты попала в проект

Я окончила СПбГУ по направлению прикладной математики и информатики. В ШАДе я проходила курсы по машинному обучению, программированию на Python, статистике. Ещё брала дополнительные предметы из глубинного обучения, чтобы поискать себя в этих направлениях: NLP, рекомендательные системы и обучение с подкреплением.

В прошлом семестре, во время второго курса, я углубилась в сферу компьютерного зрения: выбрала два предмета. Я знала, что смогу попробовать себя в реальном проекте во время обучения в ШАДе, поэтому записалась на проектный курс. Был выбор из ста проектов, но я искала тот, что связан с компьютерным зрением.

Проект по вулканам меня восхитил: это конкретная и прикладная помощь жителям Камчатки. Модель смогут использовать учёные, административные и спасательные службы, чтобы вовремя предупреждать жителей региона, принимать меры и эвакуироваться из опасных зон. Для меня это замечательная возможность внести вклад в то, что принесёт пользу людям.

Дарья Родичева

Здорово, а какие модели прогнозируют распространение выбросов пепла?

На сопках на Камчатке стоят камеры и сейсмодатчики, которые собирают актуальную информацию о происходящем на вулкане. Эти данные обрабатывает нейросеть, которая распознаёт на фотографиях выбросы пепла и определяет, с каким именно извержением имеют дело учёные.

Чаще всего модель получает изображения вулканов сбоку. Только снимки со спутника не подойдут: там не видно высоты выбросов и объёма. Также для обучения ML-модели мы использовали архив изображений геофизической службы РАН с 2000 года.

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

  • Белый класс, когда невозможно определить, что происходит. При этом могут быть небольшие землетрясения.

  • Зелёный — выбросы дыма.

  • Жёлтый — выбросы пепла до 1 км, землетрясения, термальные аномалии.

  • Оранжевый — пепловый выброс от 1 до 8 км, лавовые потоки.

  • Красный — пепловый выброс более 8 км.

Одна из главных опасностей — как раз вулканический шлейф, то есть выбросы пепла. Из-за ветра они выпадают на землю в виде осадков, покрывая дома, поля, дороги. Спасателям и исследователям критически важно понимать высоту этого выброса, так как от этого зависят возможные последствия. Если высота более 8 км — есть угроза не только людям и животным, но и воздушным судам в пространстве региона.

Если произошёл выброс облака пепла, ML-модель собирает информацию: место и время извержения, высота выброса, примерный объём эмиссии пепла — его можно прикинуть исходя из высоты облака. Дальше она передаёт это в модель рассеивания частиц. Та рассчитывает, как будут перемещаться облака пепла с учётом направления и скорости ветра, температуры и других параметров в течение следующих суток.

Яндекс Погода формирует таблицу с данными о времени выброса, его координатах, высоте и значении концентрации облака. После этого данные визуализируют на Яндекс Картах. Они доступны в формате интерактивной карты, где можно выбрать один из семи вулканов и период прогноза. Главное, что это происходит в тот же день.

Ого, здорово, а какая у тебя роль в проекте?

Я обучаю нейронные сети ResNet и ConvNext, чтобы качественно определять класс сейсмической активности. Обе модели обучали в DataSphere. Пока что данных мало, поэтому я не обучала с нуля, а дообучала уже предобученные на данных ImageNet. Есть модели в открытом доступе, которые уже знают контекст человеческого мира, и их можно обучить для твоей задачи.

Когда у нас будет больше данных, мы сможем улучшить качество определения классов. А далее — предсказывать не только наличие выбросов, но их высоту, плотность и скорость.

Процесс обучения нейронных сетей выглядит примерно так:

  • На вход модели подаются тензоры изображений, которые поочерёдно пропускаются через все слои модели, где происходят различные математические операции.

  • В результате для каждого изображения модель предсказывает вероятность его принадлежности к каждому из классов.

  • Затем считается функция потерь и с помощью метода обратного распространения ошибки обновляются веса модели. Так происходит до тех пор, пока ошибка не достигнет минимума.

При обучении моделей очень важно подобрать оптимальные гиперпараметры, например шаг градиентного спуска, алгоритм оптимизации обучения, методы регуляризации, особенности архитектур сетей. С их помощью можно существенно повысить качество модели, которое оценивается по метрикам качества на тестовых данных. Таким образом, моя задача — проводить эксперименты по обучению и выбору моделей, показывающих лучшие результаты.

Какие проблемы возникают при обучении нейросети по реальным снимкам?

Часто вулкан может быть закрыт облаком, его не видно. И понятно, что тогда нейронная сеть просто угадывает класс — исходя из истории и прошлого опыта, но не на основе реальных данных. Ещё может быть выброс пепла не только вертикально, но и во все стороны. Тогда данных тоже недостаточно, сделать точный прогноз мы пока не можем.

Чтобы всё это решить, мы ждём поступления новых данных. Это повысит точность прогноза. Ещё мы планируем подавать несколько снимков вместо одного, например с промежутком в полчаса, потому что из-за облаков и других погодных условий видимость меняется постоянно. Но это пока гипотезы.

IMG

А как эта модель помогает жителям Камчатки?

Не только жителям, но и учёным, спасателям, даже туристам и их гидам. Некоторые населённые пункты и туристические объекты в регионе находятся рядом с активными вулканами, которые выбрасывают пепел, ядовитые газы, провоцируют сейсмическую активность.

Мы моделируем направление распространения пепла, и это помогает вовремя организовать эвакуацию людей из опасных регионов. Также это даёт время для спасения скота, урожая, создания запасов воды и продуктов, остановки транспортного сообщения с местностью. Ещё это способствует развитию научных знаний о природе вулканических процессов. А дальше сервис можно будет адаптировать для мониторинга распространения технических газов на промышленных предприятиях.

Этот проект можно масштабировать: переобучить нейронки для наблюдения за вулканами в других регионах или частях света. Мне очень импонирует, что ML-специалисты и дата-сайентисты создают проекты, полезные для людей.

Краткий пересказ от YandexGPT