Обеспечение видения будущего с использованием пространственно-временных моделей машинного обучения на изображениях погоды

Мотивация

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

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

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

Набор данных

У нас было несколько наборов данных, предварительным из которых был Moving MNIST. Подвижный MNIST состоит из 10 000 последовательностей 2 движущихся цифр, перемещающихся в кадре 64x64. Интуиция, лежащая в основе изучения Moving MNIST, заключается в том, что модель учится представлять входную последовательность и может использовать это представление для прогнозирования будущих кадров последовательности. Перемещение MNIST - это модель, сгенерированная синтетически, без дополнительного шума, сохраняющая данные как можно более простыми, но все же нетривиальными, поскольку она содержит много интересных свойств. Каждая цифра имеет случайную скорость, они отскакивают от стен и перекрывают друг друга. Наша модель должна научиться отображать много информации, поэтому, хотя этот набор данных кажется довольно простым по своей природе, есть несколько функций, которые усложняют проблему. Поскольку это сгенерированная модель, мы также теоретически могли бы сделать наш набор данных таким большим или уникальным, каким мы хотели бы, чтобы избежать переобучения.

Набор данных о пешеходах Калифорнийского технологического института - это набор данных с гораздо большей вариативностью. В частности, теперь есть изменения во всех частях каждого кадра и теперь есть третья ось движения. Уровень детализации, изображения в формате RGB, а не в оттенках серого, и переменные настройки также значительно усложняют задачу генерации. Однако большая часть данных - это автомобиль, движущийся вперед, с небольшими изменениями в окружающей среде между отдельными кадрами. Таким образом, необходимо было внести некоторые изменения в то, как мы обрабатываем данные, которые подробно описаны в разделе «Обработка» ниже. Мотивация использования этого набора данных та же самая: нетривиальный набор данных с большим разбросом в том, что модель должна уметь предсказывать.

Набор данных о погоде, который мы решили использовать, был взят из теста CIKM AnalytiCup 2017 Precipitation Forecasting Challenge. В отличие от предыдущих наборов данных, где для человеческого глаза очевидно, как должен выглядеть следующий кадр, на самом деле здесь особо нечего делать. Погода кажется очень случайной: части облаков исчезают и появляются снова в случайное время. Это набор данных, в котором мы видим полезность нашей модели при выполнении задачи, которую люди с трудом выполняют, основываясь только на изображениях.

Исходная модель

ConvLSTM

Базовая модель, которую мы использовали, называется ConvLSTM, интуитивно похожа на базовую модель LSTM, используемую во многих задачах обработки текста. Однако вместо того, чтобы выполнять базовые операции умножения матриц на входах каждого логического элемента, мы решаем поменять их местами на обучаемые фильтры свертки, которые производят такое же выходное измерение данных. Это можно визуализировать на изображении ниже.

Интуицию можно рассматривать как восприятие умножения матриц в стандартных ячейках LSTM как плотного слоя нейронной сети. Мы надеемся, что с помощью сверточных слоев эти ворота узнают сложные пространственно-временные особенности в контексте последовательных входных изображений. Мы существенно трансформируем стандартную модель LSTM, используемую для одномерного обучения, например, при предсказании текста, и заменяем ее ячейками convLSTM.

Первой моделью, которую мы использовали, была модель, которую мы использовали для изучения набора данных MovingMNIST. Наша базовая модель была ConvLSTM, но мы решили наложить 3 друг на друга для большей глубины и производительности вместе с BatchNormalization между каждым слоем. Вы можете найти модель ниже. Мы подаем десять входных кадров в ячейки ConvLSTM, а затем используем выходные данные для передачи в новые ячейки, которые предсказывают следующий кадр.

Выбор наших функций убытков

Задачи создания изображений предлагают значительно более сложный вопрос о том, как измерить точность, чем задачи стандартной классификации и / или прогнозирования. Хотя люди часто могут на собственном восприятии различать качество выходных данных модели, довольно сложно дать количественную оценку таким образом, чтобы модель могла извлечь уроки. Однако есть несколько подходов, которые мы использовали для экспериментов с нашей идеальной функцией потерь.

Мы соединили нашу исходную модель со среднеквадратическими потерями ошибок. Мы берем квадрат ошибки между каждым соответствующим пикселем выходного изображения и истинным значением, интуитивно измеряя разницу между двумя изображениями. Мы также использовали активацию tanh для последнего слоя со значениями пикселей изображения, масштабируемыми от -1 до 1. Результаты, которые у нас были с этим, приведены ниже. Первая строка изображений - это прогнозируемый 11-й кадр, а нижняя строка - это исходный 11-й кадр.

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

Именно тогда мы столкнулись с функцией потерь SSIM. Хотя MSE сравнивает значения пикселей друг с другом, общая интуиция SSIM состоит в том, чтобы вместо этого сравнить средние значения и распределения значений пикселей. Это, например, позволит увеличить значения сходства между изображениями, которые могут быть одинаковыми, но при более светлом или более темном освещении. Мотивация заключается в том, что эти сравнения позволяют измерить гораздо больше сходств в восприятии, которые важны для человеческого глаза. Ниже мы можем увидеть сравнение с SSIM и MSE.

На приведенном ниже рисунке показано эталонное изображение, а также 6 сравниваемых изображений, которые имеют одинаковые значения MSE по сравнению с эталонным изображением. Однако SSIM оценивает эти изображения как наиболее похожие в самой высокой точке круга и наихудшую в самой нижней точке круга. Это показывает, что у SSIM есть лучшая формула для определения того, похожи ли два изображения. Однако важно отметить, что не существует математической модели, которая идеально подходила бы для этого. Даже у SSIM есть свои недостатки в определенных местах.

Мы также экспериментировали с вариациями SSIM, включая MS-SSIM (многоуровневое структурное сходство), но получили очень похожие результаты.

Приведенные ниже результаты были достигнуты с использованием MSE + SSIM / 8 в качестве нашей функции потерь.

После значительного уменьшения размытости в Moving MNIST, мы попробовали ту же модель в нашем наборе данных пешеходов и получили результаты ниже. Как упоминалось ранее, набор данных между последовательными кадрами был довольно статичным. То есть между 10-м и 11-м кадрами очень мало различий, что затрудняет получение модели действительно полезных прогнозов. Поэтому мы брали каждые 5 кадров, чтобы получить больше движения в последовательностях. Результаты этого пропуска показаны ниже. 2-я и 4-я строки - это наземные изображения, а 1-я и 3-я строки - соответствующие предсказания 11-го кадров в последовательности.

Изменения в однокадровой модели и прогнозирование погоды

После некоторого успеха с двумя предыдущими наборами данных мы наконец перешли к прогнозированию погоды. Изначально мы пробовали использовать те же модели, что и раньше. Однако мы обнаружили, что всегда получали более размытые результаты, чем реальные изображения. Это привело нас к экспериментам с двумя вариантами одной и той же модели, которые экспериментировали с 2D и 3D Conv, как показано на рисунке ниже.

Интуиция, лежащая в основе такой модели, заключается в том, что, хотя ConvLSTM хороши для прогнозирования и получения пространственно точных результатов, они не так хороши, как создание точных с точки зрения восприятия результатов. Это может быть связано с тем, что преобразование логических элементов LSTM для использования сверточных преобразований в первую очередь помогает в извлечении пространственно-временных характеристик. Однако он, вероятно, не заменяет большой объем преобразования функций, который часто требуется в задачах создания изображений с помощью нескольких больших сверточных слоев. Таким образом, слои 2D и 3D Conv должны помочь с кодированием / декодированием пространственной информации для получения более репрезентативного вывода.

Как видно ниже, наше однокадровое предсказание работает довольно хорошо, хотя оно все еще имеет тенденцию быть немного более размытым (вверху) по сравнению с результатами наземной истины.

Многокадровое прогнозирование

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

Таким образом, мы решили попробовать подход Encoder-Forecaster для решения этой проблемы. Модель кодировщика-прогнозиста использует слои LSTM, чтобы сначала генерировать кодирование входных кадров, а затем рекурсивно генерировать новые кадры, перенося состояние ячейки между каждым прогнозом, что делает его лучше, чем простое рекурсивное прогнозирование одного кадра и введение большего количества шума каждый время.

Архитектура кодировщика-прогнозиста

При использовании модели кодировщика-прогнозиста можно фактически обучать кодировщика и прогнозиста отдельно. Во-первых, можно обучить структуру кодировщика-декодера воссоздавать десять входных кадров, сжимая входные данные в пространство меньшего измерения и обеспечивая правильное кодирование исходных входных данных. Затем вы можете просто запустить кодировщик для набора данных и просто обучить прогнозиста предсказывать будущие кадры на основе ранее сгенерированных кодировок. Таким образом, кодирование будет вынуждено захватывать многомерные особенности входных данных и будет менее подвержено шуму. Однако в наших экспериментах мы не обнаружили значительного улучшения при раздельном обучении как таковом, потому что не было большой необходимости запоминать исходные кадры при прогнозировании простых погодных условий.

Для нашей окончательной архитектуры мы объединили несколько кодировщиков-прогнозистов ConvLSTM, чтобы повысить эффективную сложность нашей модели. Мы ставим нашу задачу предсказывать следующие 5 кадров последовательности по ее первым 10 кадрам. Для каждого ввода мы копируем последнюю ячейку и скрытые состояния из кодировочной части модели для инициализации стека декодера ConvLSTM. Мы берем 10-й входной кадр и пропускаем его через декодер, чтобы сгенерировать предсказание 11-го кадра. Затем мы берем 11-й предсказанный кадр и используем его для рекурсивного предсказания 12-го кадра, за исключением обновления ячейки и скрытых состояний в ConvLSTM. Мы использовали активацию SeLU, чтобы избежать проблемы мертвого нейрона, которая часто возникает при активации ReLU, когда вход нейрона всегда отрицательный и, следовательно, никогда не обновляется и никогда не влияет на выход.

Кроме того, для борьбы с шумом, присущим ConvLSTM, мы добавили последний слой 2D CNN, распределенный по всем выходам ConvLSTM, чтобы действовать как преобразование от представления ConvLSTM к окончательному результату - изображению погоды.

Результаты и заключение

Ключ: первые десять изображений являются исходными, 5 правых верхних изображений - истинная правда, а 5 правых нижних изображений - предсказание нашей модели.

После обучения в течение ~ 100 эпох мы смогли получить надежные результаты, которые сделали больше, чем просто скопировали 10-й кадр более 5 раз. Как вы можете видеть в первом и втором примерах, наша модель смогла уловить общее движение погоды в кадре. Однако мы не смогли устранить шум из наших прогнозов, так как окончательные результаты выглядели намного более размытыми, чем истинные изображения. Еще одна вещь, которая очень усложняет эту задачу, - это недостаток информации, доступной для нашей модели. В последнем примере мы видим, что за плотным блоком в последовательности слева следует пробел. Однако, поскольку наша модель не видит этого разрыва в 10 входных кадрах, она предсказывает, что блок растягивается намного дальше, чем это происходит на самом деле. В этом случае модели просто не хватает информации для лучшего прогноза.

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

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