Обучающая машина

Когда машинное обучение и физика сталкиваются

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

Некоторое время назад я просматривал недавние статьи arXiv в области машинного обучения и наткнулся на интересный заголовок.

Обучение моделированию сложной физики с помощью графовых сетей

Я решил погрузиться в это глубже и обнаружил, что авторы успешно комбинируют и используют несколько моделей машинного обучения для создания фреймворка под названием «Графические сетевые симуляторы» (GNS).

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

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

Вот моя попытка действительно упрощенного объяснения того, как они это делают.

Платформа GNS состоит из трех основных блоков: кодировщика, процессора и декодера.

Кодировщик

Кодировщик построит начальный график на основе текущего положения каждой частицы. Частицы будут выступать в качестве узлов на графике. Между тем, ребра будут построены между соседними узлами в пределах определенного радиуса связи.

На следующем и каждом временном шаге ребра графа будут восстановлены с использованием алгоритма ближайшего соседа.

Входной вектор состоит из следующего:

  • положение частицы
  • предыдущие скорости частицы (5-кратный шаг)
  • свойства материала (вода, песок, клей и т. д.)

Процессор

Процессор передает «сообщения» между узлами через края. Это та часть, которую усвоила модель. Существует M графовых сетей (GN), которые используются для изучения (и, в конечном итоге, предсказания) взаимодействий между частицами.

В физике эти взаимодействия должны быть обменом энергией и импульсом между частицами. В статье задача моделирования этих взаимодействий ставится перед стеком из M ГН.

Декодер

Задача декодера - извлечь информацию из графа, в частности, положение каждого узла. Однако декодер не выводит координаты каждой частицы.

На выходе получается среднее ускорение каждой частицы за этот временной шаг.

Получив информацию о среднем ускорении частицы, вы можете рассчитать скорость и, в конечном итоге, положение каждой частицы.

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

Как и в обычной нейронной сети, процесс повторяется в течение t временного шага.

Для визуализации результата моделирования информация о положении каждой частицы используется для рисования частиц на каждом временном шаге.

По-видимому, для всех трех модулей (кодировщика, процессора и декодера) авторы просто использовали многослойный персептрон (MLP) с 2 скрытыми слоями (ReLU) и 1 выходным слоем (без функции активации) по 128 узлов каждый.

Что меня больше всего поражает, так это то, как кажущаяся простой архитектура нейронной сети, состоящая из двухуровневого MLP с ReLU в сочетании с алгоритмом ближайшего соседа, может захватывать, казалось бы, сложные взаимодействия.

На приведенном выше изображении показаны различные начальные условия (a-h) и результат как прогноза, так и наземной истины после нескольких временных шагов.

  • (а) показано взаимодействие частиц goop
  • (б) показано взаимодействие частиц воды
  • (c) показывает взаимодействие частиц песка
  • (d) показывает взаимодействие частицы с жестким препятствием.
  • (e) показывает взаимодействие между различными частицами
  • (е) показывает, как модель обрабатывает гораздо больше частиц, чем при обучении.
  • (g) показывает взаимодействие с невидимыми объектами
  • (h) показывает обобщение на более крупных областях

Наши основные выводы заключаются в том, что наша модель GNS может обучаться точному, высокому разрешению, долгосрочному моделированию различных жидкостей, деформируемых и твердых тел, и может распространяться далеко за пределы обучения на гораздо более длительные, большие и сложные условия (источник )

Авторы также заявили, что модель GNS вполне может справиться с обобщением. На рисунке (f) модель может обрабатывать взаимодействия до 28 тыс. Частиц, что более чем в 10 раз превышает количество, которое они использовали при обучении, что составляет 2,5 тыс. Частиц.

На рисунке (g) показано, что модель также может обрабатывать взаимодействие различных материалов, имея при этом непрерывный входящий поток воды на каждом временном шаге.

И последнее, но не менее важное: рисунок (h) показывает состояние симуляции после 5000 шагов, что в 8 раз больше, чем количество шагов, которые они используют для обучения, с 85 тыс. Частиц в области, в 32 раза большей, чем та, на которой обучается модель.

Больше примеров, созданных моделью, вы можете увидеть здесь.

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

В текущем состоянии модель может быть не на 100% точной, чтобы полностью заменить ручной рендеринг для моделирования частиц. Однако ему уже удается правильно смоделировать большую часть физики. Модель, которая сможет достичь почти идеального моделирования, может появиться в ближайшем будущем.

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

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

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

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

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

[1] Санчес-Гонсалес и др., Обучение моделированию сложной физики с помощью графических сетей (2020), arXiv: 2002.09405 [cs.LG]

Learning Machine - это серия рассказов о событиях, происходящих в мире машинного обучения, которые я нашел достаточно интересными, чтобы поделиться ими. Да, а иногда и об основах машинного обучения. Подпишитесь на меня, чтобы получать регулярные обновления о новых историях.