Сегодня хочу вам рассказать про один интересный вид нейронных сетей в физически-информированном машинном обучении (PIML). Одной из задач PIML является поиск решений уравнений динамики. Физику или в общем случае некоторые знания можно интегрировать в нейронную сеть несколькими различными способами. Сегодня мы рассмотрим вариант, как физические законы используются в архитектурных решениях нейронных сетей, а именно лагранжеву нейронную сеть.
Прежде чем перейти непосредственно к ее архитектуре, давайте немного вспомним, что такое лагранжиан и зачем он нужен.
В физике, уравнения динамики можно задать несколькими способами. Со школьных лет все помнят, как мы определяли законы движения через классическую механику Ньютона. Для этого нужно описать все силы, действующие на тело, собрать их в результирующую силу и, наконец, подставить в уравнение Ньютона , чтобы найти ускорение. Если на тело действует несколько сил, то нужно взять их сумму
. Да, стоит еще помнить, что сила и ускорение являются векторными величинами, поэтому при необходимости надо найти проекции сил на соответствующие оси.
Далее существуют следующие варианты:
если нас интересует аналитическое решение, то необходимо проинтегрировать ускорение как функцию от времени дважды. Так мы найдем зависимость координаты от времени — это аналитический подход;
когда система сложная можно прибегнуть к численным методам. Об этом мы как раз поговорим, когда дойдем до лагранжевых сетей.
Другой подход нахождения уравнений динамики заключается в обобщении ньютоновой механики для более широкого класса систем и более элегантного вывода формул. Например, вместо того, чтобы выводить уравнение математического маятника для координат (x, y), намного проще получить уравнение для угла отклонения маятника от вертикали. Новая переменная, угол, называется обобщенной координатой . При этом, нам не нужно расписывать какие силы действуют на маятник в тот или иной момент времени, а достаточно лишь написать функцию, так называемый лагранжиан. А сама механика в данном случае, называется, лагранжевой.
Лагранжиан содержит всю необходимую информацию для нахождения уравнений динамики. В случае с классическими механическими системами лагранжиан равен разности кинетической энергии () и потенциальной (
). Хотя форма потенциальной энергии при этом может быть сложной. Связь между силами и потенциальной энергией
при этом есть
. Зная лагранжиан, его следует подставить в уравнение Эйлера-Лагранжа, откуда мы и получим уравнения динамики. Об этом поговорим еще позже.
Этот подход не просто удобен, но позволяет работать даже с нефизическими системами, например, с экономическими. Но для этого необходимо ввести интерпретационные предложения, которые определят, что такое энергия, импульс и другие величины в экономических терминах. Есть и более технические преимущества в лагранжевой механике, например, из симметрии лагранжиана непосредственно вытекают теоремы Нётер, да и сами уравнения становятся универсальнее.
Резюмируя, ньютонова механика — это искусство, где нужно не забыть все силы и правильно их расставить, а Лагранжева механика — алгоритм, где есть четкая последовательность действий для нахождения уравнений динамики.
Давайте вернемся к уравнениям динамики и нейронным сетям. Классические нейронные сети плохо учитывают симметрии, заложенные в физических законах, поскольку по своей природе они являются всего лишь аппроксиматорами данных. В результате им крайне сложно корректно моделировать динамику физических систем и выявлять их законы. Даже такая простая задача как определение координат математического маятника, становится сложной для классической нейронной сети. Одна из причин как раз кроется в не понимании законов симметрии и сохранения. Именно на решении этой проблемы сосредоточено целое направление — физически-информированное машинное обучение.
Вместо того, чтобы использовать только данные, PIML использует физические знания и интегрирует их в архитектуру, функцию ошибки, алгоритм оптимизации и так далее. Как я уже говорил ранее, знания могут быть не только физическими, главное чтобы их можно было выразить в виде некоторых законов или математических выражений. Об этом можно почитать тут.
Более того, когда системы становятся настолько сложными, что описать их динамику аналитически практически невозможно, прибегают к численным методам. Их также часто используют на начальных этапах проектов, чтобы не тратить время на точные выражения, а оценить поведение системы. Численных методов существует множество: например, симплектический метод Эйлера или метод Рунге–Кутты 4-го порядка.
При чем же тут нейронные сети. Давайте вернемся к вопросу как посчитать траекторию движения, то есть найти зависимость координат от времени. Поскольку уравнения в классической механике — это дифференциальные уравнения не выше второго порядка, это значит, что нам нужно знать ускорение (вторая производная координаты по времени) для определения полной траектории системы.
То есть, зная как посчитать ускорение, мы легко найдем координаты. Для определения какой-то конкретной траектории нужно задать начальные условия. Эти условия в случае уравнения второго порядка — начальное положение (значение функции в начальный момент времени) и начальная скорость (значение производной в начальный момент времени).
Например, пусть дано уравнениеи заданы начальные условия
. Чтобы решить уравнение второго порядка проще всего перейти к системе уравнений первого порядка при помощи замены
. Тогда получим систему
Метод Эйлера для численного решения выглядит следующим образом
где — маленький шаг, а стартует алгоритм с некоторых точек
(начальное время),
. Как мы помним, ускорение есть вторая производная координаты по времени
. Поэтому, зная функцию
, мы легко найдем траекторию движения всей системы. Соответственно, наша мотивация заключается в нахождении ускорения по произвольным начальным условиям.
Так была построена гамильтонова нейронная сеть. Впервые она появилась в работе. И гамильтонова и лагранжева нейронные сети на самом деле подвид одного общего класса моделей нейронных дифференциальных уравнений.
Казалось бы, вот оно решение, но в гамильтоновой механике есть одна вещь, которая с одной стороны дает невероятные преимущества при выводе уравнений, а с другой стороны ограничивает нас — это канонические координаты. Чтобы координаты были каноническими, требуется выполнение соотношений на скобки Пуассона:
Но на практике, наборы данных, которые соответствуют этим координатам не являются такими. В частности импульс не всегда есть . Именно поэтому авторы статьи предлагают использовать лагранжевы нейронные сети. Лагранжиан также сохраняет все законы, но при этом не требует каноничности координат.
Итак, резюмируя мотивацию: лагранжева нейронная сеть позволяет описывать сложные физические системы, не требуя задания канонических координат. Как же интегрировать принципы лагранжевой механики в архитектуру нейронной сети?
Мне кажется лучше всего процесс интеграции демонстрирует схема самих авторов статьи.
На входе в нейронную сеть подаются точки данных, соответствующие обобщенным координатам и обобщенным скоростям
. Далее они пропускаются через "черный ящик", который выдает нам лагранжиан. Согласно теории, необхоидимо взять производные лагранжиана по обобщенной координате и обобщенной скорости и
подставить их в уравнение Эйлера-Лагранжа
Стоит отметить, авторы статьи сразу выражают из этого уравнения ускорение в матричном виде, тем самым все операции становятся быстрыми и удобными для многомерной системы.
Как же взять производную от "черного ящика"? Для этого уже давным давно существуют методы автоматического дифференцирования. Например, в pytorch это реализуется через torch.autograd.
Посчитав производные численно, мы вычисляем обобщенное ускорение по формуле
Вот и все. Теперь у нас есть способ вычисления ускорения, который нам нужен был для численного метода решения уравнений динамики.
Для обучения такой сети нам потребуется тройка данных. При этом они не должны быть отсортированы или что-то в этом роде, просто подаем на вход сети
, вычисляем лагранжиан, вычисляем частные производные, подставляем их в уравнение Эйлера-Лагранжа и выражаем ускорение. Затем сравниваем полученное ускорение с тем ускорением, которое задано в наших данных. Например, при помощи среднеквадратического отклонения.
На этапе инференса нам нужны лишь три точки: начальное время , начальная координата системы
и начальная скорость системы
. Далее, к этим точкам применяется метод Эйлера (или любой другой численный метод решения ОДУ) и мы полностью восстанавливаем траекторию.
Почему же это лучше чем обычная нейронная сеть? А потому что мы напрямую используем в архитектуре лагранжиан и подставляем в уравнение в нужной форме, тем самым даем модели выучить нужные законы сохранения. Именно так модель постигает физические законы. Существуют и другие типы моделей в PIML, но об этом в другой раз.
Давайте рассмотрим иллюстрацию из статьи, которая демонстрирует преимущество лагранжевой сети. По оси X отложено время, а по оси Y — скорость частицы. Мы видим, что гамильтонова сеть дает плохой результат при работе с неканоническими координатами, в то время как лагранжева сеть успешно справилась с решением в произвольных координатах.
Если вы заметили, оригинальная статья вышла в 2020 году, а время не стоит на месте. За это время появились различные обобщения классической работы. Например, в этой работе рассматривается обобщенное уравнение Лагранжа, вместо классического. Отличие заключается в добавлении диссипативных сил, то есть тех сил, из-за которых система становится неконсервативной. Тем самым обобщенные лагранжевы нейронные сети можно использовать для систем не сохраняющих энергию.
Еще одна работа обобщает предыдущую, рассматривая не только диссипации вида Рэлея, а более общие конструкции. А в этой работе авторы идут еще дальше и рассматривают лагранжевы сети для систем с неголономными связями — это такие связи, которые уже нельзя описать только в терминах координат и простыми геометрическими уравнениями, то есть они зависят еще и от скоростей и могут выражаться в виде отдельных дифференциальных уравнений.
Это лишь малая часть, но мой рассказ на этом заканчивается. Методы развиваются стремительно, и еще больше статей по применению этого вида нейронных сетей вы сможете найти — в основном для решения практических задач в физике.
Моей целью было дать краткое введение и рассказать вам об этом прекрасном инструменте, который может быть полезен для решения прикладных задач. Как я уже говорил ранее, не нужно ограничиваться только физикой — лагранжев подход можно адаптировать для широкого круга задач в других областях, хотя это требует особой осторожности и интерпретации.
Подписывайтесь на мой Telegram-канал, где я рассказываю о науке, ML и не только.
Источник


