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

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

прогнозувати

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

Як це робилося раніше

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

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

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

яндекс

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

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

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

Потрібно більше даних

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

яндекс

використав

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

нейромережу

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

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

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

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

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

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

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

прогнозувати

Архітектура мережі

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

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

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

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

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

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

навчився

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

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

навчився

Замість післямови

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

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

прогнозувати

Ви можете допомогти і перевести небагато коштів на розвиток сайту