Как устроены нейросети без слоев: подробный разбор концепции Neural ODE

Yannic Kilcher 65,5 тыс. 22 мин 5 мин 19.02.2019
Главное

В своем видеообзоре популярный исследователь искусственного интеллекта Янник Кильхер (Yannic Kilcher) подробно разбирает фундаментальную научную работу «Neural Ordinary Differential Equations» (Нейронные обыкновенные дифференциальные уравнения). Авторами этого прорывного исследования, кардинально меняющего подход к проектированию глубоких нейросетей, выступили Рики Чен, Юлия Рубанова, Джесси Беттанкур и Дэвид Дювено. Суть новой концепции заключается в отказе от традиционной архитектуры из дискретных слоев в пользу непрерывных математических систем, управляемых специализированными алгоритмами-солверами.

🧠 От дискретных слоев к непрерывному времени: концепция Neural ODE 0:00

Рассматриваемая научная статья описывает совершенно новое семейство моделей глубокого обучения. Вместо того чтобы выстраивать жесткую дискретную последовательность скрытых слоев, исследователи предложили параметризовать производную скрытого состояния с помощью нейросети. Итоговый выход всей системы вычисляется при помощи стороннего «черного ящика» — численного решателя дифференциальных уравнений (ODE solver).

По мнению Янника Кильхера, данная концепция выглядит невероятно многообещающей и свежей. Модели с непрерывной глубиной (continuous-depth models) обладают целым рядом уникальных преимуществ:

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

🔢 Непрерывный предел глубоких сетей 3:37

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

В непрерывном случае производная скрытого состояния сети параметризуется весами нейросети. Математический решатель дифференциальных уравнений (ODE solver) строит траекторию системы, отталкиваясь от стартового состояния. На каждом бесконечно малом шаге алгоритм обращается к функции $F$, чтобы узнать текущий градиент направления движения, и корректирует траекторию.

С практической точки зрения это открывает уникальные возможности для классификации:

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

🛠️ Метод сопряженных состояний: революция в оптимизации памяти 8:20

Для успешного обучения такой системы стандартный подход с фиксацией промежуточных этапов не подходит. Традиционная нейросеть требует хранения в памяти всех активаций слоев для последующего обратного распространения ошибки (backpropagation). В случае с бесконечным числом слоев в Neural ODE это потребовало бы колоссального объема памяти.

Как отмечает Янник Кильхер, функция потерь может зависеть как от конечного состояния системы, так и от промежуточных этапов. Чтобы обучить параметры $\theta$, необходимо вычислять градиенты функции потерь. Прямой бэкпропагейшн через внутренние операции численного решателя привел бы к огромным затратам ресурсов. Авторы статьи изящно обходят эту проблему, применяя метод сопряженных состояний (Adjoint Sensitivity Method).

Этот метод работает следующим образом:

  1. Сначала выполняется прямой проход (forward pass), в ходе которого ODE-солвер вычисляет траекторию системы и находит конечное состояние.
  2. Затем запускается второе, дополненное дифференциальное уравнение в обратном направлении во времени.
  3. Вместе первая и вторая кривые позволяют математически точно рассчитать необходимые градиенты без сохранения промежуточных состояний первого прохода.

Сопряженное состояние (обозначаемое как $a(t)$) представляет собой непрерывный аналог правила дифференцирования сложной функции (chain rule). Оно показывает, как функция потерь зависит от скрытого состояния системы $Z(t)$ в любой произвольный момент времени. Зная финальное значение потерь, алгоритм разворачивает чувствительность системы вспять во времени, позволяя в конечном счете вычислить интеграл и получить точные градиенты для статических параметров $\theta$ сети.

⚖️ Вычислительный компромисс: точность против скорости 16:02

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

Янник Кильхер обращает внимание на ключевой компромисс технологии:

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

🌀 Работа со сложными временными рядами и экстраполяция 18:42

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

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

Эксперименты на игрушечном датасете со спиралевидным поведением наглядно показали разницу в подходах:

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

💬 Цитаты

«Вместо спецификации дискретной последовательности скрытых слоев мы параметризуем производную скрытого состояния с помощью нейросети.»

Янник Кильхер 0:40

«Эти непрерывные модели глубины имеют постоянную стоимость памяти и адаптируют стратегию оценки к каждому входу.»

Янник Кильхер 0:54
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Neural ODE
Архитектура нейронных сетей, которая моделирует скрытые состояния как непрерывный процесс, описываемый обыкновенными дифференциальными уравнениями.
ODE solver
Численный метод (решатель), используемый для нахождения траектории динамической системы по заданному дифференциальному уравнению.
Adjoint Sensitivity Method
Метод сопряженных состояний, позволяющий вычислять градиенты функции потерь путем интегрирования вспомогательной системы в обратном времени без сохранения промежуточных активаций.
ResNet
Остаточная нейронная сеть, слои которой обучаются вычислять остаточную функцию (изменение) относительно входных данных.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Neural ODE Янник Кильхер дифференциальные уравнения алгоритм сопряженных состояний глубокое обучение