Всем привет! Я пишу, чтобы поделиться одной историей! В рамках своей диссертации я работаю над подходом, вдохновленным классическими нейронными одами, которые впервые были предложены Университетом Торонто и Институтом векторов. Это было награждено лучшей статьей Neurips 2018. Она в основном помогает в решении проблемы временных рядов, но также вдохновила классические методы машинного обучения.

Тема очень математическая, поэтому она относится к людям, которые уже работают в этой области с некоторым опытом, так что это поможет понять подход. Я буду стараться изо всех сил, чтобы все было просто!

1. Почему мы заботимся о нейронных ОДУ?

Как известно, нейронные сети — это универсальные аппроксиматоры. Нейронная сеть — это дифференцируемая, непрерывная модель, которая может интерполировать любую функцию, какой бы сложной она ни была. Они являются примером алгоритма машинного обучения, который на основе набора данных ищет наилучшие параметры, минимизируя функцию потерь с помощью алгоритма оптимизации, чтобы наилучшим образом описать данные данные. Функция потерь минимизируется с использованием набора данных, который у нас есть, и поэтому мы говорим, что минимизируем ошибку обучения, конечно, мы можем сделать вид, что не знаем некоторые части набора данных, и проверить также ошибку там, это называется тестовой ошибкой. Основная цель — минимизировать ошибку теста, поэтому нам удается минимизировать ошибку обобщения.

Что нужно помнить:

  1. Ошибка обобщения: для любых данных, не входящих в набор данных, это разница между фактическим значением и значением, которое предполагает модель.
  2. Интерполяция. Предположим, у нас есть известные точки данных с ti в T=(a,b). Интерполяция — это способ оценки функции, описывающей эти точки в T.
  3. Экстраполяция: способ оценки функции из Т.

Основное ограничение заключается в том, что ошибка обобщения хороша только в той области, в которой мы обучили нейронную сеть. Так что этого недостаточно для экстраполяции.

Другими словами, если я обучаю сеть некоторым изображениям собак и кошек, то домен будет {изображение кошки, изображение собаки}. Нейронная сеть может легко предсказать, есть ли на совершенно новом изображении собака или кошка, но она понятия не имеет, если вы дадите ей лягушку! Во временных рядах это огромное ограничение, потому что, если мы можем с уверенностью прогнозировать также точки вне области, мы можем прогнозировать будущее!

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

2. Описание подхода

Постановка задачи. Нам нужна модель, которая соответствует некоторым данным домена T, предсказывает y(ti) для нового ti в T, а также прогнозирует новое ti из T(будущее).

2.1Предположим, что у нас есть несколько точек (ti, yi) с ti в домене T=(a,b). Мы хотим интерполировать и найти модель, достаточно близкую к y(t). Одним из первых обычных подходов является обучение нейронной сети, например, нейронной сети с прямой связью с одним скрытым слоем.

2.2 Второй подход — это попытка учесть динамическое развитие системы.

  • Предположим, что N(t) — интерполяция нейронной сети из 2.1, тогда

  • Предположим, что y(t) является решением неизвестного дифференциального уравнения первого порядка. Как мы уже говорили, нейронные сети дифференцируемы, поэтому у нас может быть производная от N(t).

  • Обучим нейронную сеть N1 и найдем параметры θ путем минимизации функции потерь:

  • Теперь у нас есть дифференциальное уравнение, и если мы решим его, мы возьмем решение y(t) в надежде, что оно лучше, чем N(t) вне области T, и таким образом примет во внимание динамическую эволюцию системы!
  • Как решить ОДУ? Конечно численно. Существует множество алгоритмов численного решения дифференциального уравнения. Некоторыми из них являются метод Рунге-Кутты или метод Эйлера, который проще или даже с глубоким обучением. Итак, я обучил новую нейронную сеть решать мое дифференциальное уравнение в (-4,5), и результат такой:

3. Заключение

Подводя итог, можно сказать, что в непрерывных динамических системах временная эволюция во многих случаях может быть описана дифференциальными уравнениями, и в этой диссертации я пытаюсь исследовать, как могут помочь ОДУ.

Надеюсь, вы найдете эту статью интересной и полезной, спасибо за прочтение! Свяжитесь со мной для любой идеи, расширения или даже просто поделитесь любым обсуждением по теме!