В 2020–2021 годах написал много постов в LinkedIn, объясняющих 𝗻-𝗽𝗲𝗿𝗳𝗼𝗿𝗺𝗶𝗻𝗴 𝗳𝗼𝗿𝗲𝗰𝗮𝘀𝘁𝗶𝗻𝗴 𝗮𝗹𝗴𝗼𝗿𝗶𝘁 𝗺 𝘁𝗵𝗮𝘁 𝗻𝗼𝘁 𝗼𝗻𝗹𝘆 𝗱𝗼𝗲𝘀 𝗻𝗼𝘁 𝘄𝗼𝗿𝗸 𝗮𝗰𝗿𝗼𝘀𝘀 𝗮𝗻𝘆 𝗿𝗲𝗮𝘀𝗼𝗻𝗮𝗯𝗹𝗲 𝘀𝗲𝘁 𝗼𝗳 𝘁𝗶𝗺𝗲𝘀𝗲𝗿𝗶𝗲𝘀 𝗱 𝗮𝘁𝗮𝘀𝗲𝘁𝘀, но и 🆄🅽🅳🅴🆁🅿🅴🆁🅵🅾🆁🅼🆂 🅼 🅾🆂🆃 🅾🅵 🅾🆃🅷🅴🆁 🅵🅾🆁🅴🅲🅰🆂🆃🅸🅽🅶 🅰🅻🅶🅾🆁🅸🆃🅷 🅼🆂.

Обновление 2022 года: Meta прекратила все заявления, сделанные первоначальной командой разработчиков Facebook Prophet, в том числе гротескные заявления, такие как «любой может достичь производительности прогнозирования наравне с экспертами-людьми, используя Facebook Prophet».

Как я уже упоминал в своем интервью журналу Analytics India (см. Facebook Prophet теряет популярность), доверие к Facebook Prophet и его популярность сильно пострадали. Ранее я указывал, что в недавних работах о временных рядах Facebook Prophet не использовался в качестве основы, поскольку он неэффективен ни в одной общей задаче прогнозирования.

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



С недавним запуском NeuralProphet, о котором с большой помпой трубит новая команда разработчиков: «Мы представляем NeuralProphet, 𝙤𝙠 𝙋𝙧𝙤𝙥𝙝𝙚𝙩, 𝙬𝙝𝙞𝙘𝙝 𝙨𝙚𝙩 𝙖𝙣 𝙞𝙣𝙙𝙪𝙨𝙩𝙧𝙮 𝙨𝙩 𝙖𝙣𝙙𝙖𝙧𝙙 𝙛𝙤𝙧 𝙚𝙭𝙥𝙡𝙖𝙞𝙣𝙖𝙗𝙡𝙚, 𝙨𝙘𝙖𝙡𝙖𝙗𝙡𝙚, 𝙖 𝙣𝙙 𝙪𝙨𝙚𝙧-𝙛𝙧𝙞𝙚𝙣𝙙𝙡𝙮 𝙛𝙤𝙧𝙚𝙘𝙖𝙨𝙩𝙞𝙣𝙜 𝙛𝙧𝙖𝙢𝙚𝙬𝙤𝙧𝙠𝙨'.

Я не понимал, что пророк Facebook устанавливает какие-либо стандарты, кроме как вообще ужасной производительности прогнозирования, но давайте не будем портить шоу.

Запуск «NeuralProphet» вызвал странное чувство дежавю, напоминающее о том, как разработчики оригинального пророка Facebook заявили, что «любой может добиться превосходной производительности наравне с людьми-экспертами, используя пророк Facebook', в то время как статья о пророке Facebook даже не сравнивала пророка Facebook должным образом с какими-либо наборами данных, кроме внутреннего набора данных Facebook, или даже с любыми другими наборами данных или алгоритмами.

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

Возвращаясь к новому воплощению «пророка» — команда разработчиков NeuralProphet недавно опубликовала статью на ArXiv, в которой говорится, что необходимы гибридные решения для преодоления разрыва между интерпретируемыми классическими методами и масштабируемыми методами глубокого обучения. Однако это утверждение не подкреплено никакими научными данными. Результаты конкурса M5 показали, что методы машинного обучения на основе данных превзошли как простые, так и гибридные методы.

Никаких «гибридных методов» не было замечено в соревновании по прогнозированию M5 рядом с верхней таблицей победителей, и создатели обоих победивших «гибридов» (Славек Смил и команда из Монаша, занявшие 1 и 2 места в соревнованиях по прогнозированию M4) также не занял ни одного призового места в соревновании M5. Вместо этого в соревновании по прогнозированию M5 победили различные методы LightGBM, которые долгое время доминировали в соревнованиях Kaggle.

Согласно утверждениям команды разработчиков NeuralProphet:

𝑶𝒕𝒉𝒆𝒓𝒘𝒊𝒔𝒆, 𝑵𝒆𝒖𝒓𝒂𝒍𝑷𝒓𝒐𝒑𝒉𝒆𝒕 𝒓𝒆𝒕𝒂𝒊𝒏𝒔 𝒕𝒉𝒆 𝒅𝒆𝒔𝒊𝒈𝒏 𝒑𝒉𝒊𝒍𝒐𝒔𝒐𝒑𝒉𝒚 𝒐𝒇 𝑷𝒓𝒐𝒑𝒉𝒆𝒕 𝒂𝒏𝒅 𝒑𝒓𝒐𝒗𝒊𝒅𝒆𝒔 𝒕𝒉𝒆 𝒔𝒂𝒎𝒆 𝒃𝒂𝒔𝒊𝒄 𝒎𝒐𝒅𝒆𝒍 𝒄𝒐𝒎𝒑𝒐𝒏𝒆𝒏𝒕𝒔. 𝑶𝒖𝒓 𝒓𝒆𝒔𝒖𝒍𝒕𝒔 𝒅𝒆𝒎𝒐𝒏𝒔𝒕𝒓𝒂𝒕𝒆 𝒕𝒉𝒂𝒕 𝑵𝒆𝒖𝒓𝒂𝒍𝑷𝒓𝒐𝒑𝒉𝒆𝒕 𝒑𝒓𝒐𝒅𝒖𝒄𝒆𝒔 𝒊𝒏𝒕𝒆𝒓𝒑𝒓𝒆𝒕𝒂𝒃𝒍𝒆 𝒇𝒐𝒓𝒆𝒄𝒂𝒔𝒕 𝒄𝒐𝒎𝒑𝒐𝒏𝒆𝒏𝒕𝒔 𝒐𝒇 𝒆𝒒𝒖𝒊𝒗𝒂𝒍𝒆𝒏𝒕 𝒐𝒓 𝒔𝒖𝒑𝒆𝒓𝒊𝒐𝒓 𝒒𝒖𝒂𝒍𝒊𝒕𝒚 𝒕𝒐 𝑷𝒓𝒐𝒑𝒉𝒆𝒕 𝒐𝒏 𝒂 𝒔𝒆𝒕 𝒐𝒇 𝒈𝒆𝒏𝒆𝒓𝒂𝒕𝒆𝒅 𝒕𝒊𝒎𝒆 𝒔𝒆𝒓𝒊𝒆𝒔. 𝑵𝒆𝒖𝒓𝒂𝒍𝑷𝒓𝒐𝒑𝒉𝒆𝒕 𝒐𝒖𝒕𝒑𝒆𝒓𝒇𝒐𝒓𝒎𝒔 𝑷𝒓𝒐𝒑𝒉𝒆𝒕 𝒐𝒏 𝒂 𝒅𝒊𝒗𝒆𝒓𝒔𝒆 𝒄𝒐𝒍𝒍𝒆𝒄𝒕𝒊𝒐𝒏 𝒐𝒇 𝒓𝒆𝒂𝒍-𝒘𝒐𝒓𝒍𝒅 𝒅𝒂𝒕𝒂𝒔𝒆𝒕𝒔. 𝑭𝒐𝒓 𝒔𝒉𝒐𝒓𝒕 𝒕𝒐 𝒎𝒆𝒅𝒊𝒖𝒎-𝒕𝒆𝒓𝒎 𝒇𝒐𝒓𝒆𝒄𝒂𝒔𝒕𝒔, 𝑵𝒆𝒖𝒓𝒂𝒍𝑷𝒓𝒐𝒑𝒉𝒆𝒕 𝒊𝒎𝒑𝒓𝒐𝒗𝒆𝒔 𝒇𝒐𝒓𝒆𝒄𝒂𝒔𝒕 𝒂𝒄𝒄𝒖𝒓𝒂𝒄𝒚 𝒃𝒚 55 𝒕𝒐 92 𝒑𝒆𝒓𝒄𝒆𝒏𝒕.'

Мы уже знаем, что пророк Facebook — это низкопроизводительный алгоритм прогнозирования ужасного качества, который превосходит многие другие алгоритмы, в том числе в отношении наборов данных, где должен работать пророк Facebook. Так что, во всяком случае, новая статья команды разработчиков NeuralProphet подтверждает, что пророк Facebook ужасен, указывая на то, что он превосходит (на 55–92) процента, будучи концептуально того же типа алгоритма [мы поговорим о различиях позже в этом статья].

Но документ NeuralProphet ничего не говорит нам о том, хорош ли NeuralProphet вообще по сравнению со многими другими доступными алгоритмами, поскольку он просто не сравнивает NeuralProphet ни с чем, кроме… Facebook Prophet.

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

Итак, давайте начнем путешествие, чтобы увидеть, насколько на самом деле хорош «NeuralProphet» (если он вообще есть).

В первой части серии мы вытащим NeuralProphet из гаража, откроем капот (капот) и пнем шины.

Для начала мы будем использовать тот же набор данных, который использовала команда разработчиков NeuralProphet https://neuralprophet.com/html/energy_solar_pv.html.

Сначала мы проведем те же эксперименты здесь, чтобы обеспечить воспроизводимость и сравнить яблоки с яблоками.



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

Как видно на графике ниже, без терминов AR (авторегрессии) подгонка, даже в выборке, совершенно неверна. Это соответствует текущим знаниям в области предметной области — без терминов AR Neural Prophet является оригинальным пророком Facebook.

Во всяком случае, новая модель Neural Prophet является еще одним подтверждением того, что Facebook Prophet не удалось воспроизвести данные с учетом сезонности, для которых она была специально разработана.

Прогнозы по тестовому набору на неделю и на сутки вперед тоже ужасны.

Давайте увеличим это, чтобы увидеть, что происходит с прогнозами на один день (24 часа) вперед — Neural Prophet без терминов AR не может уловить простую закономерность. Среднеквадратическое отклонение для тренировочного набора составляет 118, а для тестового набора — 143.

Таким образом, мы можем прийти к нашему первому выводу — без терминов AR Neural Prophet = Facebook Prophet = вообще бесполезная модель прогнозирования, которая не соответствует цели.

Второй нейронный пророк — добавлены термины линейной дополненной реальности.

Следующим мы подбираем нейронный пророк с терминами дополненной реальности, используя те же параметры, что и на веб-сайте нейронного пророка (n_lags = 3*24)

Соответствие внутри выборки теперь намного лучше. Используя термины дополненной реальности, Neural Prophet теперь может лучше фиксировать динамику временных рядов.

RMSE для тренировочного набора теперь составляет 53, а для тестового набора — около 31.

Гораздо лучше, чем Neural Prophet без терминов AR; однако, как и пророк Neural Prophet, похоже, он не может сдержать прогнозы радиации от падения ниже нуля…

Давайте сделаем еще одну финальную архитектуру с веб-сайта Neural Prophet, прежде чем пинать шины и открывать капот, чтобы проверить двигатель.

Третья (и последняя) модель нейронного пророка с использованием (нелинейной) AR-Net.

Прогноз на шаг вперед с AR-Net: использование нейронной сети с несколькими скрытыми слоями. Мы используем оптимизированную скорость обучения 0,003, как в окончательной версии упражнения на веб-сайте Neural Prophet.

m = NeuralProphet(growth='off', yearly_seasonality=False, \
  weekly_seasonality=False, daily_seasonality=False, n_lags=3*24, \
  num_hidden_layers=4, d_hidden=16, learning_rate=0.003)

Мы обучаем Neural Prophet, предоставляя ему тренировочный набор.

m = NeuralProphet()
df_train, df_test = m.split_df(df, valid_p=0.1)
train_metrics = m.fit(df_train)
test_metrics = m.test(df_test)

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

Среднеквадратичное отклонение для обучающей выборки теперь равно 39, а для тестовой выборки — около ~31.

Мы отмечаем, что хотя ошибка обучения (RMSE) снизилась с 53 до 39 из-за гораздо большей емкости модели (4-слойная DNN вместо линейной функции), ошибка тестане изменилась. Таким образом, в этом случае для этого конкретного набора данныхAR_Net не обеспечил улучшения вне выборки по сравнению с линейными терминами AR.

Вывод 1. Термины дополненной реальности имеют решающее значение. Neural Prophet добавляет ценность через Facebook Prophet только при включенной авторегрессивной терминологии.

Но с другой стороны, другие модели включают термины AR, в частности ARIMA.

Вывод 2: AR-Net, похоже, не добавляет особой ценности после включения линейных терминов AR. Будет ли это для этого набора данных или более общего результата, еще предстоит увидеть, но на данный момент следует иметь в виду, что если это общее наблюдение, то Neural Prophet не предлагает ничего нового в дополнение к ARIMA/SARIMA образцовое семейство.

Давайте построим окончательные прогнозы Neural Prophet Model (AR-Net с 4 скрытыми слоями) на тестовом наборе.

Пока все хорошо, шины не слетели, когда мы их пинали, но двигатель нуждался в масле и настройке. В нашей следующей статье Бенчмаркинг Neural Prophet. Часть II — изучение набора данных об электричестве, мы берем нашу модель Neural Prophet на прогулку и проверяем, что еще находится на дороге, и может ли она оставаться в полосе или должна двигаться в медленную полосу.

Продолжение следует…

Использованная литература:

  1. «Пророк Facebook впал в немилость»
  2. Бенчмаркинг Neural Prophet. Часть II — изучение набора данных по электроэнергии'
  3. Сравнение пророка Facebook