Новый класс глубоких нейронных сетей на основе решателей ODE

Нейронные обыкновенные дифференциальные уравнения - официальное название статьи, получившей награду за лучшую работу на NeurIPS (Система обработки нейронной информации - a конференция по машинному обучению и вычислительной нейробиологии, проводимая каждый декабрь; не говоря уже о том, что это крупнейшая конференция по искусственному интеллекту в году). Авторы представили новую сеть без каких-либо слоев. Эта сеть смоделирована как дифференциальное уравнение и реализована мудрость, полученная за столетние исследования решателей дифференциальных уравнений, для аппроксимации основной функции данных временных рядов. Блеск бумаги через мой объектив выглядит следующим образом:

Глубокие нейронные сети - это стеки дискретных слоев, каждый из которых выполняет матричные операции, а сеть оптимизируется с использованием градиентов функции кросс-энтропии. Матричные операции на каждом уровне вносят небольшую ошибку, следовательно, усугубляются по сети. Чтобы уменьшить эту ошибку, Microsoft представила ResNet (Residual Network), которая ввела концепцию пропуска подключений. Авторы этой статьи предполагают, что математическая форма для остаточных сетей похожа на обыкновенное дифференциальное уравнение, и решатели ОДУ, такие как метод Эйлера или сопряженный метод, могут быть развернуты для решения сети ОДУ. Они также нашли лучший прогноз, чем повторяющаяся сеть для некоторых проектов.

Сеть ODE лучше аппроксимировала спиральную функцию, чем рекуррентная сеть.

Давайте вспомним ОДУ и метод Эйлера для его решения.

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

Сети ODE - это проблемы с начальным значением. Здесь идея состоит в том, что если задано состояние системы в момент времени = 0, состояние системы может быть вычислено в момент времени = 1, путем интегрирования производных состояния по времени и аппроксимации функции с помощью числового решателя. Самый старый и простой метод решения ОДУ - это метод Эйлера. Этот метод начинается с некоторого начального состояния и движется в направлении поля градиента в этой точке для конечного размера шага и продолжает приближать решение. Метод Эйлера считается плохим решателем, поскольку он накапливает ошибки на каждом шаге.

Метод Эйлера и ResNets

Нейронная сеть (NN) безумно популярна в качестве моделей машинного обучения. Таким образом, они состоят из серии слоев, которые представляют собой матричные операции. В NN входные данные подаются в слой, умножаются на матрицу весов, добавляется смещение, затем применяется функция активации к результату матричных операций, и выходные данные этого слоя передаются на следующий уровень. Каждый уровень в NN добавляет небольшую ошибку, которая накапливается по сети. Простое решение уменьшить эту ошибку - добавить больше слоев. Но всегда есть порог количества слоев в сети. Вот почему Microsoft представила Остаточные сети (ResNets), чтобы уменьшить эту ошибку.

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

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

Таким образом, нейронные сети можно представить в виде дифференциальных уравнений.

Давайте посмотрим на код Resnet ниже.

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

Просто подайте текущую глубину в блок ResNet и используйте фиксированный набор параметров для всей глубины. Это изменение означает, что динамика теперь определяется даже между слоями и может непрерывно меняться с глубиной.

Сопряженный метод - перспективное направление

Итак, когда нейронные сети моделируются как ODE, как их решать. Ответ - старинный сопряженный метод !!! Этот метод включает вычисление трех интегралов. Один интеграл вычисляет сопряженное, которое фиксирует, как функция потерь L (показанная на рисунке ниже) изменяется по отношению к скрытому состоянию. Второй вычисляет скрытое состояние назад во времени вместе, а третий интеграл сообщает нам, как веса ведут себя по законам. Объединение этих трех интегралов в один вектор с помощью решателя ODE затем решит уравнение.

Приближайте производную, не дифференцируйте приближение!

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

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

Сети ODE требуют меньше параметров, чем повторно сети, потому что динамика сети плавно меняется с глубиной. В приведенной ниже таблице показана точность тестирования для задачи классификации, при этом ODE net достигает той же точности тестирования примерно с одной третью параметров, что и resnet.

Ключевые выводы для сетей ODE

  1. Постоянная стоимость памяти
  2. Меньшие параметры, чем у Resnets
  3. Применяется к данным временных рядов

Настоящий мозг - это тоже системы с непрерывным временем

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