Как стать автором
Обновить

Комментарии 7

Спасибо за комментарий! Однако по поводу "проигрывает" не соглашусь. Смотря что взять как критерий.

Если речь идёт про ошибку прогноза у финальной модели, полученной при помощи n-го количества часов работы m-го количества экспертов (как правило n и m здесь совсем немаленькие числа), то пожалуй да, подходы на основе нейронных сетей могут прогнозировать со значительно меньшей ошибкой (хотя и не всегда, но потенциально да, это более эффективные модели). С другой стороны, если речь идёт про интерпретируемость или обобщаемость подхода на смежные задачи (например прогнозирование временных рядов немного других процессов, чем тех для которых была подготовлена модель на основе нейронных сетей), то тут, как мне кажется, как раз GRU/LSTM и трансформеры уже уступают классическим моделям и моделям на основе AutoML описанных в данной статье.

Далее про размерность - для VAR и описанного подхода размерность и не является проблемой - подход учитывает как одномерные временные ряды, так и многомерные. В описанном обобщении, как бы сказать, не сломана обратная совместимость. Проблемой бы можно было обозначить, если бы предлагаемый подход исключал нативное обобщение с одномерного случая на многомерный. И при этом предлагалась бы какая-нибудь совсем новая концепция просто потому что изначальный подход ну никак не подходил бы для решения новых задач. Здесь же всё выглядит как закономерное масштабирование ПО (и подходов при его разработке) на более широкий класс задач. Не баг, а фича :)

И ещё стоит сказать, что AutoML не предполагает исключение нейросетевых подходов в прогнозировании. В фреймворке например LSTM спокойно сущесвует как составной блок пайплайнов, наряду с ARIMA моделями и другими. Поэтому при необходиомсти эволюционный алгоритм способен выстраивать "гибридные" пайплайны, если это будет приводить к уменьшению ошибки прогноза. И если так смотреть на технологию, то описанный AutoML и нейронные сети совсем не являются конкурентами друг другу

А могли бы пару слов рассказать про ресурсы, необходимые на этапе обучения и на этапе прогнозирования? К примеру можно ли Федота настроить на получение быстрой и компактной модели (в ущерб качеству)? При обучении с расчетом на мобильные устройства какой метод обычно лучше -- трансформеры или ARIMA (через Федота)?

Правильно ли я понимаю, что на небольшом наборе данных Федот даст лучший результат, нежели трансформеры?

Да, конечно ответим :) Если что - коллеги подскажут более подробно, а начать могу я.

Про ресурсы для обучения и прогнозирования: FEDOT версии 0.6.0 строится поверх, как правило, scikit-learn моделей машинного обучения. Поэтому ресурсов каждый узел потребляет соразмерно соответствующим реализациям sklearn'a. Учитывая, что признаков в таких крупных пайплайнах получается много, то и время обучения для разветвленных пайплайнов на больших временных рядах будет относительно большим. С другой стороны, в FEDOT, как и в большинстве современных AutoML фреймворков реализована система "пресетов". Под пресетом в FEDOT можно понимать сценарий использования. Например, пресет "best_quality" предполагает использование всех возможных в фреймворке моделей без каких-либо ограничений. "fast_train" будет использовать только те модели, которые быстрее обучаются, "gpu" - те модели, которые можно обучать на GPU и так далее. То есть при поиске равновесия между "качество" - "время обучения" в первую очередь стоит смотреть на пресеты. Подробнее можно посмотреть документацию - там описано за что каждый пресет отвечает и какие есть варианты.

Компактность моделей. На размер пайплайнов будут влиять два ключевых параметра: максимально возможная глубина пайплайна(max_depth) и арность узлов (max_arity). То есть при желании можно просить фреймворк выращивать пайплайны побольше и поразветвленней. В другом случае уместно будет задать структурные ограничения на сложность ансамблей.

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

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

Говоря про сравнение по быстродействию с нейронными сетями, то конечно обучить связку "траекторная матрица - гребневая регрессия" (а это как правило ключевой составной блок в начальных приближениях FEDOT) значительно быстрее, чем нейронную сеть. При этом, как я понимаю этот ваш компьютер саенс, быстрее такая связка обучаться будет на временных рядах любого размера (хоть одномерных, хоть многомерных) :) Но бенчмарки по производительности не проводил, ровно как и не припомню статьи на эту тему - хотя, возможно, они существуют

И наконец про небольшой набор данных: да, на небольших временных рядах FEDOT в серии наших экспериментов показывал хорошие результаты. Простые модели действительно чаще "выживают" в процессе эволюции на таких данных. Однако, чтобы однозначно ответить на этот вопрос, надо конечно провести сравнение с нейросетевыми моделями, которые идентифицируются (то есть строятся и обучаются / дообучаются) примерно за такое же время, что и ансамбли при помощи FEDOT. Пока напрямую с нейронными сетями таких сравнений не проводили

В одном месте уточним. Я просил не "быстро обучить", а "обучить быструю модель", т.е. чтобы на клиентском устройстве (микроконтроллер, web-cam, телефон) модель работала быстро и не требовала гигабайты памяти. Частично это решается через задание вручную в конфигурацию подходящих именно мне моделей (на этапе обучения). Как понимаю пока специального пресета для создания легковесных моделей нет?
Жаль нет сравнения с нейронками (хотя бы на сравнительно небольших наборах данных).

>Как понимаю пока специального пресета для создания легковесных моделей нет?

Есть близкий по назначению пресет fast_train.

>Жаль нет сравнения с нейронками (хотя бы на сравнительно небольших наборах данных).

Есть статья (не наша, от зарубежных пользователей), где авторы сравнивают FEDOT с с DeepAR и TFT - решениям на основе RNN: https://link.springer.com/chapter/10.1007/978-3-031-16474-3_45

Получилось у них так:

Вывод при этом такой:

" Overall, the interesting results were obtained by the FEDOT AutoTSF tool. FEDOT obtained a low average forecasting error (around 4.58%), while requiring a reasonable computational effort, around 3 minutes to generate a new TSF model"

>К примеру можно ли Федота настроить на получение быстрой и компактной модели (в ущерб качеству)? 

Можно. Есть 2 варианта - или указать пул "легких" моделей, из которых будут строиться пайплпаны; или задать дополнительный критерий оптимизации (время обучения или предсказания, размер модели, etc).

>Правильно ли я понимаю, что на небольшом наборе данных Федот даст лучший результат, нежели трансформеры?

Скорее всего да - за счет того что данных для обучения трансформеров просто не хватит.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории