Яндекс використовував нейромережа і навчився прогнозувати опади з точністю до хвилин

Сьогодні я знову хотів би поговорити з вами про погоду. Знову — тому що майже рік тому ми вже про неї розмовляли: я розповів про нашу технологію побудови прогнозів Метеум, засновану на метеомоделировании і машинному навчанні. Тепер я хочу поговорити не про ту погоді, яка буде завтра, наступного тижня чи в новорічну ніч, — а про ту, яка вже встановилася за вікном, і про ту, яка настане в найближчі кілька годин.



Під катом я розповім про те, що таке наукастинг і як ми над ним працювали.
Поточна погода впливає на величезну кількість наших щоденних рішень. Якщо за вікном сильний снігопад, ми думаємо, як нам поїхати на роботу — на машині або громадському транспорті. Дивлячись у вікно, вирішуємо, чи брати з собою парасольку і потрібна непромокаємий куртка. Навіть стоячи на виході з метро в проливний дощ, ми гадаємо, коли він скінчиться. Якщо через п'ять хвилин — то можна почекати і прийти на зустріч в сухому костюмі, а якщо через півгодини — то доведеться або промокнути, або запізнитися. Для всіх цих невеликих, але важливих рішень нам потрібна максимально точна інформація про те, яка погода зараз і як вона буде змінюватися в найближчій перспективі. Ви напевно стикалися з ситуацією, коли в одному районі міста світить сонце, а в іншому ллє проливний дощ з грозою.

Як це робилося раніше
Оскільки поточна погода важлива нашим користувачам, саме про цьому параметрі сервісу люди найчастіше пишуть у відгуках, включаючи негативні. Здавалося б, треба всього лише подивитися за вікно і показати на сервісі правильну погоду. Але описати ситуацію за вікном в будь-якій точці країни або світу — завдання не з простих.

По-перше, метеостанції розташовані далеко один від одного і вимірюють параметри в строго певні проміжки часу. Казань, наприклад, є величезним містом, а метеостанцій там всього дві: в центрі і в аеропорту. Температура та інші показники в цих точках і в сусідніх з ними районах можуть кардинально розрізнятися.

По-друге, із-за помилок в початкових умовах прогнозні моделі теж не можуть служити надійним джерелом інформації про фактичну обстановку на вулиці.



Та й вимоги до негайного прогнозом значно вище: завжди можна виглянути за двері і перевірити, чи мають рацію метеорологи.

Ще раз нагадаю, що в Яндекс.Погоду використовується технологія Метеум, заснована на метеорологічних моделях і машинному навчанні. Побудована на базі Матрікснета і навчена на великих масивах даних, наша формула оптимальним чином комбінує подаються на вхід фактори. У результаті прогноз виходить помітно більш точним.

А щоб показати на сервісі нинішню погоду, ми (крім прогнозів математичних моделей) підмішуємо у формулу вимірювання, нещодавно отримані на найближчих метеостанціях. Такий підхід істотно краще інших варіантів вирішення поставленої задачі. Точність визначення погоди в найближчі години сильно зростає, і це не дивно, оскільки ми враховуємо найбільш оперативну і точну інформацію. Наші метрики істотно зросли порівняно з нашими ж власними прогнозами, побудованими до того, як ми почали підмішувати свіжі дані з метеостанцій. У травні цього року, відразу після їх додавання, ми розширили зону дії Метеума на всю Росію, а в листопаді-грудні — на Україну, Білорусь і Казахстан.

Але навіть комбінований підхід з моделей і даних, склеєних за допомогою Матрікснета, не дає бажаної точності. Особливо це стосується опадів — одного з найважливіших для користувача параметрів. Основна причина недосконалості — недолік даних. Метеостанції, як вже було сказано, розташовані далеко один від одного. Використовуючи взяті зі станцій дані, ви не можете повідомити користувачеві, що йому варто почекати 10 хвилин в підземному переході і проливний дощ на вулиці зміниться мінливою хмарністю. Де можна дістати ще які-небудь дані про стан атмосфери?

Потрібно більше даних
Самим останнім досягненням науки і техніки в області моніторингу опадів є метеорологічний радіолокатор. Приблизно раз в 10 хвилин він будує тривимірний знімок атмосфери в радіусі 200 кілометрів від свого місця розташування по горизонталі та до 10 кілометрів по вертикалі. За принципом дії радіолокатор дуже схожий на авіаційний радар, тільки на знімку видно не літаки, а області атмосфери, де є краплі води розміром понад 50 мікрометрів. Якщо такі краплі і правда є, то, швидше за все, з хмари, в якій вони перебувають, випадають опади. Ось як виглядає сам радар і результати його роботи:





В Росії вже зараз існує мережа метеорологічних радарів досить високої якості. Вони встановлені в найбільш населених і цікавих з метеорологічної точки зору регіонах. Область покриття радарів показана на карті:



До речі, в незафарбованої області проживає понад 40 відсотків населення Росії. Дані радара мають просторове дозвіл 2 на 2 кілометри на піксель, що дозволяє описувати поточну погоду з точністю до невеличкого мікрорайону.

В цьому році Яндекс отримав офіційний доступ до вимірювань, які проводяться на мережі радіолокаторів Росгідромету. З тих пір ми інтенсивно працювали над додаванням цих даних у наші продукти.

Сьогодні ми готові представити технологію наукастинга — короткострокового гиперлокального прогнозу опадів. Наукастинг — слово, яке прийшло до нас з англійської мови, складене з двох слів: now і forecasting, тобто дослівно «прогноз на зараз». А насправді через продукти Яндекса тепер можна дізнатися про розподіл опадів у часовому проміжку від двох годин до двох годин вперед.

Наш новий продукт заснований на згорткових нейронних мережах. З точки зору математики завдання формулюється наступним чином: необхідно послідовності радарних знімків і релевантної метеорологічної інформації передбачити майбутні карти опадів з тимчасовим дозволом у 10 хвилин на 2 години вперед.

Для вирішення цієї задачі ми вибрали сверточную мережа певної архітектури. Кожен згортковий шар мережі являє собою послідовний набір фільтрів, автоматично виділяють ознаки з набору даних, що подаються на вхід. Сукупність таких шарів дозволяє виділити велику кількість ознак, за якими можна судити про те, що буде відбуватися з опадами у виділеній області. Почнуться вони або, навпаки, закінчаться? Або ж просто підвищиться їх інтенсивність? Все це можна визначити.

Щоб налаштувати фільтри сверточной мережі і ваги між ними, ми формуємо навчальну вибірку досить великого обсягу — зараз вона складається більш ніж з 800 000 кадрів з кожного радара, що пройшли попередню обробку. Навчання нейронної мережі відбувається на кластері з GPU.

Ось як виглядає ця мережа:



Архітектура мережі
У цілому, рух опадів можна розділити на дві компоненти: перенесення області з опадами за напрямом вітру і зміна форми області. За кожну з компонент відповідають окремі гілки нейромережі, що дозволяє гнучко підбирати параметри оптимізації.

Що стосується data flow — ось як його спрощено описує автор, nes8bit:
Дані радарів і наукастинга, які передаються на бекенд погоди, спочатку інтерполюються з азимутальної проекції, центром якої є радар, на регулярну широтно-долготную. Потім на отриманій сітці будуються контури, що описують області опадів в залежності від інтенсивності і типу. Контури зберігаються у вигляді полігонів в PostgreSQL. Частина даних, наприклад з описом хмарності, зберігається в растровому вигляді в тому ж PostgreSQL: це дозволяє швидко відповідати значень визначених перемінних у певній координаті, одночасно зберігаючи консистетность з векторизированным представленням у вигляді полігонів.

Метрики
Ми оцінюємо точність продукту і налаштовуємо наш нейромережевої прогноз погоди по декільком типам метрик.

По-перше, нам важливо, наскільки правильно ми передбачили кожен наступний кадр нашого прогнозу. Ми використовуємо покадрову метрику f-score, яку можна визначити як «точність передбачення поточного знімка».

По-друге, нам цікаві метрики для тих точок простору, де найближчим часом відбудеться зміна погодного стану. За допомогою них ми дізнаємося найголовніше: наскільки точно визначено час початку або закінчення дощу і, відповідно, наскільки добре спрацьовує сценарій, при якому користувач чекає закінчення опадів. Ми знаходимо потрібні точки і фіксуємо відповідності та невідповідності між прогнозом і реальністю в кожен момент часу.

Ось як виглядає f-міра для першої метрики залежно від горизонту:



Треба сказати, що якщо розрахувати такі ж суворі метрики для регулярного прогнозу будь-якого провайдера, значення будуть не більше 0,1, а частіше — дуже близькі до нуля. Це пов'язано як з відмінностями в самій методиці прогнозування, так і з відсутністю великого і важливого джерела даних.

Ми вибрали типи метрик, орієнтуючись на те, як нові дані будуть представлені в продукті. На головній сторінці Яндекс.Погоди тепер є повідомлення про опади в найближчі дві години. З цього блоку можна дізнатися, що опади закінчаться з хвилини на хвилину або почнуться протягом півгодини. Натиснувши на повідомлення, ви побачите, як області з опадами розподілені у вашому районі. На цій же карті відзначені і всі інші області у зонах дії радарів.



Замість післямови
Скажу ще пару слів про те, про що говорив на самому початку. Технологія, яку ми представили сьогодні, розроблена спеціально для того, щоб зробити життя наших користувачів трохи більш комфортною. Гиперлокальный короткостроковий прогноз опадів допоможе людям приймати рішення, грунтуючись на інформації з принципово нового джерела — мережі метеорологічних радарів. Дані про інтенсивний снігопад з деталізацією до районів вашого міста допоможуть дізнатися про кількість снігу на дорогах, а попередження про рясний дощ дозволить не застудитися навесні.

Зараз це може здатися неймовірним, але скоро настане літо, і всі ми будемо кататися на велосипедах, роликових ковзанах, гуляти в парках, відпочивати на природі. І з сьогоднішнього дня можна будувати плани на найближчий час, не дивлячись на низький або високий політ ластівок, а на сторінку і програми Яндекс.Погоди. Один всім вам знайомий персонаж вже так і робить.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.