Итак, временные сверточные сети сейчас сравниваются с каноническими рекуррентными сетями с LSTM и GRU, чтобы увидеть, что работает лучше. Кажется, что все больше и больше людей встают на сторону TCN, чем на RNN.

Phillipe Remy создал приятный и простой пакет TCN под названием keras-tcn, который упрощает создание TCN с помощью keras / tensorflow. Выберите активацию, выберите количество фильтров, остаточных стеков и активаций - или используйте настройки по умолчанию и добавьте еще один слой для своей задачи. В моем случае я экспериментировал с прогнозированием временных рядов на один шаг вперед, основываясь на лаге в 20, то есть я пытаюсь предсказать одно значение на основе предыдущих 20 значений, так что это своего рода модель авторегрессии. Или для людей, занимающихся глубоким обучением, это можно рассматривать как модель seq2seq с входными последовательностями из 20 значений и выходными последовательностями из 1 значения, (расширенные) сверточные слои, увеличивающие восприимчивое поле, так что без особых дополнительных затрат он может охватывать всю последовательность, с которой работает. В итоге он должен быть таким же хорошим или лучше, чем RNN, за небольшую часть цены.

Наборы данных-ЭКГ.

Один из наборов данных, с которыми я работал, - это 10 000 временных рядов данных ЭКГ из базы данных нормального синусового ритма MIT-BIH. Субъекты, участвовавшие в этом исследовании, не имели серьезных аритмий. Вначале я использовал сигмовидный механизм внимания, за которым последовал TCN от keras-tcn. Я сравнил это с производительностью моделей и прогнозов из пакета autoML, настроенного на использование XGBoost.

Я тренировался примерно на ~ 9 тыс. Точек и использовал ~ 1 тыс. Для вневыборочного прогнозирования. R2 (коэффициент детерминации) и оценка объясненной дисперсии находились в районе 92%, в то время как оценка эффективности Клинга-Гупта была выше 93%. Индекс согласия Уилмотта составил почти 98% (1 - полное совпадение), так что эта модель кажется довольно приличной.

Напротив, XGBoost получил около 90% для R2 и объяснил оценку дисперсии. Эффективность Клинга-Гупты составляла почти 88%, а индекс согласия Уилмотта превышал 97%. Чтобы быть более точным, индекс Уилмотта для TCN был 0,978 для TCN и 0,972 для модели XGBoost. Таким образом, TCN превосходит XGBoost в прогнозах, хотя и не в том смысле, который я бы считал огромным, ошеломляющим.

Наборы данных: число солнечных пятен в группе

Это оказалось победой для XGBoost и TCN. Опять же, это был временной ряд в ~ 10000 точек числа групповых пятен. При использовании TCN с механизмом внимания вначале (сигмовидная нелинейность для взвешивания входных характеристик) баллы R2 и объясненной дисперсии составили около 82% и 87% соответственно. Число Клинга-Гупта составило около 87%, а индекс согласия Уилмотта - около 95%. Однако модель XGBoost от autoML показала неплохие результаты, с R2 и объясненной дисперсией оценили ~ 88%; КПД Клинга-Гупта составил 93%, а индекс Уилмотта около 97%. Если вы просто посмотрите на индекс согласия Уилмотта, то вы не увидите большой разницы, но разница в R2 была довольно большой, как и разница Клинга-Гупты между двумя моделями. Вот блокнот Google Colab с некоторыми расчетами, а также особенностями моделей. Сторона AutoML не требовала настройки гиперпараметров, это было прямо из коробки.