АНАЛИЗ СПОСОБОВ СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ И ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЗАДАЧАХ ДИНАМИКИ

So, to summarize, the purpose of the article was to show the relevance of the problem being solved, to systematize the existing methods for its solution and to formulate scientific problems for further development.

Scientific tasks, the solution of which can help in the development of your own stand for monitoring the air pressure in tires:

1. establishment of the empirical dependence of the contact patch area on the air pressure in the tire (it is planned to carry out computer modeling and a full-scale experiment);

2. establishment of the dependence of the specific pressure in the contact patch on the air pressure in the tire;

3. development of an algorithm for assessing the air pressure in the tire by indirect signs.

References

1. Petrushov, V.A. Automobiles and road trains: New technologies for studying rolling resistance and air. - M.: TORUS PRESS, 2008. - 352 p. [in Russian]

2. Litmanovich, A.A. Calculation of the calorific value of fuel: guidelines for the calculation work in chemical thermodynamics / A.A. Litmanovich, E.V. Novoselova, G.Yu. Ostaeva, I.M. Papisov, E.V. Polya-kova. - M.: MADI, 2014. - 20 p. [in Russian]

3. Bukhin BL Introduction to the mechanics of pneumatic tires. - M.: Chemistry, 1988. - 224 p. [in Russian]

4. Bench diagnostic equipment of the company VENTECH Systems [Electronic resource]. -2017. - C. 1-21. URL: http://www.ventech.de/en/prod-ucts (accessed: 01.10.2021). [in Germany]

АНАЛИЗ СПОСОБОВ СОВМЕСТНОГО ИСПОЛЬЗОВАНИЯ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ И ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЗАДАЧАХ ДИНАМИКИ

Храмов Д.А.

Институт технической механики НАН Украины и ГКА Украины

г. Днепр. Украина

ANALYSIS OF METHODS FOR JOINT USE OF MACHINE LEARNING AND DIFFERENTIAL EQUATIONS TO SOLVE DYNAMICS PROBLEMS

Khramov D.

The Institute of Technical Mechanics of the NAS of Ukraine and the SSA of Ukraine

Dnepr, Ukraine

АННОТАЦИЯ

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

ABSTRACT

The analysis of methods for joint use of mathematical modeling and machine learning is carried out. It is shown that at present, mathematical and machine learning models are used together to solve direct and inverse modeling problems, data generation and sensitivity analysis. The combination of approaches allows us to increase the accuracy and speed of calculations, as well as overcome a number of problems inherent in each of the approaches separately. The most suitable software for creating combined models has been selected.

Ключевые слова: математическая модель, машинное обучение, глубокое обучение, свободное программное обеспечение.

Keywords: mathematical model, machine learning, deep learning, free software.

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

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

В настоящее время на стыке традиционного математического моделирования и машинного обучения возникает новое научное направление, получившего у разных авторов названия: Scientific Machine Learning (SciML), Physics-Guided Machine

Learning, Physics-Informed Machine Learning, Data-Driven Modeling, Physics-Aware Artificial Intelligence [1-6]. Количество публикаций по теме стремительно растет. Наиболее представительный обзор [1] насчитывает более трехсот ссылок.

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

Среди алгоритмов машинного обучения особое внимание уделяется нейронным сетям или глубокому обучению (deep learning) [7, 8]. Глубокое обучение представляет собой ребрендинг нейронных сетей. В отличие от обычных нейронных сетей, состоящих из единиц и десятков слоев, глубокое обучение работает с сетями, начитывающими сотни и тысячи слоев. Создавать и обучать подобные сети позволили многочисленные новые элементы, появившиеся в архитектуре нейронных сетей за последние 15 лет. Основные изменения коснулись: активационной функции нейронов скрытого слоя, активационной функции нейронов выходного слоя, критерия качества, способов инициализации весов и смещений, регуляризации и методов обучения [8, 9].

Напомним ряд определений, относящихся к математическому моделированию. Моделью называют представление объекта, системы или понятия (идеи) в некоторой форме, отличной от формы их реального существования [10]. Математическая модель отображает некоторые характерные свойства объекта в абстрактной форме, на языке математики [11]. Мы будем использовать более узкое определение, считая математическими такие модели, в которых поведение системы описывается при помощи уравнений (дифференциальных, алгебраических) и методов их решения (как правило, численных).

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

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

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

Упрощение математической модели. В [12] нейронная сеть применяется в качестве аппрокси-матора нелинейной зависимости и используется совместно с проекционными методами (методом Галеркина). Благодаря ее использованию удалось

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

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

Подход, при котором вместо подробной математической модели используется более простая математическая модель, сохраняющая интересующие свойства исходной, в [1] назван понижением порядка модели. Упрощенную модель называют моделью пониженного порядка (reduced-order model). При замене подробной модели на упрощенную, невязки между результатами обеих моделей аппроксимируются методами машинного обучения, в частности, нейронными сетями. В пределе может происходить полная замена математической модели ее аппроксимацией с помощью машинного обучения. Заметим, что говорить о понижении порядка или размерности можно лишь для математических моделей. Вся сложность и нелинейность задачи переходит в нейронную сеть, размерность которой вовсе не обязательно будет снижаться.

Решение дифференциальных уравнений. Нейронные сети можно непосредственно применять для решения дифференциальных уравнений, как обыкновенных, так и в частных производных. В отличие от традиционных численных методов, решения дифференциальных уравнений, полученные с помощью нейронных сетей, дифференцируемы и имеют замкнутую аналитическую форму, которая может быть перенесена в любые последующие вычисления [13].

Проблемы методов решения дифференциальных уравнений с помощью нейронных сетей: медленная сходимость в обучении, ограниченная применимость к ряду сложных систем. Вопросам решения дифференциальных уравнений при помощи нейронных сетей посвящена обширная литература [1].

Прогноз эволюции системы. Как правило, модель, полученная средствами машинного обучения, используется в качестве суррогатной модели, цель которой состоит в том, чтобы точно воспроизвести поведение традиционной математической модели при значительном снижении вычислительных затрат [1]. Однако в ряде случаев применение машинного обучения связано с тем, что привычные методы исследования математических моделей не позволяют добиться результата. Например, при решении систем обыкновенных дифференциальных уравнений функция правой части F(x) может быть

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

В [14] предлагается основанный на данных подход для обучения нейронных сетей эволюции динамических систем. Показано, как тренировкой остаточных нейронных сетей (ResNet) на образцах решения можно построить модели для прогноза эволюции решения во времени. Тестирование предложенного подхода на трех системах обыкновенных дифференциальных уравнений показало, что нейросетевые модели в состоянии качественно верно предсказывать динамику систем.

В [3] рассмотрены подходы по непосредственному применению методов машинного и глубокого обучения для прогнозирования состояния динамических систем. Основной такого применения являются свойства нейронных сетей как универсального аппроксиматора [7]. В идеале такой инструмент являлся бы панацеей: не нужно придумывать уравнения и решать их, достаточно обучить нейронную сеть на имеющихся данных. Одним из препятствий на пути реализации этого подхода является нехватка данных для обучения. Но даже когда данных достаточно, попытки "в лоб" спрогнозировать новые координаты материальных точек и тел при помощи нейронных сетей сталкиваются с проблемой потери устойчивости вычислений: через некоторое время после начала моделирования, что называется, "картинка рассыпается" [3]. Попытка решить эту проблему предпринята в [15], где моделировалось движение облака точек в трехмерном пространстве (снимки объектов, снабженные значениями глубины) при известных внешних силовых воздействиях. За счет архитектуры нейронной сети, система разделялась на объекты, движение которых прогнозировалось. Результаты получились значительно лучше, чем у прежних подходов. Утверждается, что современные физические симуляторы могут прогнозировать движение твердых тел с хорошей точностью при условии, что им точно известно начальное состояние системы (границы объектов, свойства их поверхности, масса объектов и т. п.), но условие это далеко не всегда выполняется [15].

В [16] нейронной сетью заменяли не дифференциальные уравнения модели, а их приближенное представление в виде алгебраических уравнений на сетке. Авторы преодолевают проблему разреженности данных (когда для одних режимов данных много, а для других — мало), для чего в функцию потерь добавлены физические ограничения. Заметим, что полученная модель названа суррогатной, хотя исходные алгебраические уравнения уже были приближенной моделью.

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

- влияние на обучение (модификация функции потерь, инициализация весов);

- влияние на структуру модели (архитектура нейронной сети).

Модификация функции потерь с учетом физических соображений позволяют штрафовать "паразитные" решения, ограничивая область поиска минимума [2]. Для этого в функцию потерь метода машинного обучения добавляется регуляризующий член, полученный из физической модели рассматриваемого явления. Например, требование сохранения энергии.

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

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

Инициализация весов нейронной сети в соответствии с физической информацией (вместо инициализации случайным образом) помогает во время обучения не застрять в "плохом" локальном минимуме [17]. Одним из способов выполнить инициализацию по физической информации является перенос обучения (transfer learning) [18]. При переносе обучения нейронная сеть сначала обучается на большом объеме данных, относящихся к более общей задаче (или к близкой задаче), а затем — на сравнительно небольшом целевом наборе данных, относящимся к конкретной задаче. Обычно заменяются последние несколько слоев предварительно обученной сети. Для последующего обучения старые веса либо фиксируются, и корректируются только веса новых слоев, либо коррекции подвергаются все веса. Математическая модель в этом случае служит для создания набора данных, используемого для предварительного обучения нейронной сети.

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

Один из способов внедрения физических принципов в архитектуру нейронных сетей состоит в приписывании физического смысла определенным нейронам [2]. Это также помогает повысить интерпретируемость модели. Другой подход заключается в том, чтобы зафиксировать один или несколько весов нейронной сети для физически значимых значений (параметров) и сделать их неизменяемыми во время обучения [17]. Знания из предметной области могут быть включены в архитектуру модели машинного обучения в качестве

вспомогательных задач при многозадачном обучении (multi-task learning). Многозадачное обучение решает несколько задач одновременно, в идеале, используя черты сходства и различия между отдельными задачами [17].

Привлекательными выглядят подходы, в которых на архитектуру нейронных сетей оказывают влияние дифференциальные уравнения и численные методы их решения. Так, в [19] показано, что структура ResNet напоминает явный метод Эйлера решения дифференциальных уравнений. В [20] устанавливается соответствие между архитектурой нейронной сети и численным методом (или группой методов) решения дифференциальных уравнений. Данные аппроксимируются сетью наиболее подходящей архитектуры. Вместо уравнения используются решающие его "кубики"-нейросети. Они подбираются так, чтобы быть аналогичными методам решения дифференциальных уравнений, что дает ограничения на архитектуру сетей.

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

Чаще всего, структура модели известна, и необходимо определить некоторые неизвестные параметры. В [21] выполняется идентификация параметров уравнения по зашумленным данным, то есть управляющее уравнение задано, но параметры его неизвестны. Есть небольшое количество зашумлен-ных данных и по ним восстанавливаются параметры дифференциальных уравнений в частных производных.

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

В [22] предлагается метод разреженной регрессии, позволяющий построить управляющие уравнения в частных производных для тестовой системы при помощи измерений временных рядов в пространственной области. Метод уравновешивает сложность модели и точность регрессии, выбирая экономную модель с помощью анализа Парето. Измерения временных рядов могут выполняться как в рамках подхода Эйлера, где датчики фиксируются в пространстве, так и в рамках подхода Лагранжа, где датчики движутся вместе с объектом. Показана способность метода работать с задачами, охватывающими несколько научных областей, включая

уравнения Навье-Стокса, квантовый гармонический осциллятор и уравнение диффузии.

В [23] используют методы поощрения разреженности (sparsity-promoting techniques) чтобы найти управляющие уравнения на основе зашум-ленных данных наблюдений. Единственное предположение о структуре модели состоит в том, что существует несколько важных членов, описывающих динамику системы, так что уравнения являются разреженными в пространстве возможных функций. Для определения наименьшего числа членов в уравнениях динамики, необходимых для точного представления данных, используется разреженная регрессия. Показана работоспособность алгоритма для решения широкого круга задач: линейных и нелинейных осцилляторов, уравнений Лоренца, вихревого течения жидкости за препятствием [23].

В [24] разрабатывается способ перехода к системе координат, в которой динамика системы имеет наиболее простое представление. Спроектирована и настроена нейросеть-автокодировщик для поиска преобразования координат в пространство меньшей размерности. Одновременно изучаются управляющие уравнения и связанная с ними система координат. Результативность подхода продемонстрирована на нескольких примерах многомерных систем с низкоразмерным поведением.

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

Идея генеративных моделей состоит в том, чтобы зафиксировать внутреннее вероятностное распределение существующих данных для генерации аналогичных данных [1]. Благодаря достижениям в области глубокого обучения были разработаны новые генеративные модели, такие как генеративная состязательная сеть и вариационный автокодировщик. Активно развивается направление по созданию генеративных состязательных сетей, которые могут использовать предварительные знания физических законов и свойств инвариантности. Например, модели на основе генеративных состязательных сетей для моделирования турбулентных потоков могут быть дополнительно улучшены за счет включения физических ограничений, например, законов сохранения и энергетического спектра, в функцию потерь [1].

Потребность в данных высокого пространственного и/или временного разрешения, для получения которых обычно требуются слишком большие затраты, вызвало к жизни методы статистического даунскейлинга, то есть получения данных высокого разрешения при помощи методов машинного обучения [1]. Статистический даунскейлинг

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

Анализ чувствительности. Анализ чувствительности математических моделей с использованием традиционных методов, таких как Монте-Карло, обычно затруднен из-за необходимости выполнять тысячи или миллионы оценок моделей, что может занять значительное время. Модель машинного обучения, благодаря высокой скорости получения результата, позволяет быстро оценить чувствительность модели. Комбинирование упрощенной математической модели с моделью машинного обучения, или ее полная замена, позволит существенно сократить затраты на выполнение анализа чувствительности модели [1].

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

Библиотеки и пакеты. Глубокое обучение предполагает работу с функциями, являющимися композицией множества нелинейных преобразований. Такая функция называется потоком или графом вычислений. Пакет для глубокого обучения должен уметь:

1) определять граф вычислений;

2) дифференцировать граф вычислений;

3) вычислять граф вычислений.

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

- фиксированные модули;

- статический граф вычислений;

- динамический граф вычислений.

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

В пакетах со статическим определением графа вычислений последний создается из низкоуровневых элементов — многомерных массивов (называ-

емых тензорами) и операций между ними. Затем готовый граф запускается на выполнение. Такие пакеты используют декларативный стиль программирования и напоминают функциональный язык или математическую нотацию. Представителями этого направления являются TensorFlow версий 1.Х и MXNet. Описанный подход комбинирует гибкость на этапе разработки и скорость в момент выполнения. Основным недостатком является сложность отладки моделей — работа с пакетом похожа на использование компилируемого языка программирования без отладчика.

Представим, что можно перестраивать статический граф перед каждым его запуском. Примерно это происходит в пакетах с динамическим созданием графа вычислений. Только графа как отдельной сущности здесь нет. Он, как в императивных языках программирования, слишком сложен для явного построения и существует лишь в момент выполнения. Подобный подход дает максимальную гибкость и расширяемость, позволяет использовать в вычислениях все возможности языка программирования и не ограничивает пользователя ничем. К этому классу фреймворков относятся Torch и PyTorch. В 2019 году TensorFlow версии 2.0 предоставил возможность создавать динамические графы вычислений.

TensorFlow — открытый программный пакет для создания моделей машинного обучения, в первую очередь нейронных сетей, разработанный компанией Google. Основным языком для работы с TensorFlow является Python, также существуют реализации для R, C Sharp, C++, Haskell, Java, Go и Swift. Выход TensorFlow 2.0 принес два значительных новшества: возможность выполнять код без определения вычислительного графа и интеграцию с Keras. Keras является высокоуровневым интерфейсом для создания нейронных сетей из готовых блоков. Таким образом, TensorFlow 2.0 позволяет использовать все основные подходы к созданию и обучению современных нейронных сетей. Помимо этого, пакет располагает большим числом инструментов, облегчающих работу с нейронными сетями:

- TensorBoard служит для визуализации графиков и позволяет получить представление о поведении модели; используется для анализа обучения и отладки кода;

- TensorFlow Serving — высокопроизводительный сервер, который может принимать входные данные, передавать их в обученную модель и возвращать выходные данные модели;

- TensorFlow Model Optimization Toolkit — набор инструментов для оптимизации моделей машинного обучения перед их развертыванием.

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

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

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

Пакет PyTorch разработан компанией Facebook и распространяется свободно с открытым исходным кодом. За основу пакета взята библиотека Torch, написанная для Lua с ядром на С. PyTorch, как видно из названия, написан на Python. Пакет работает с динамически обновляемым графом вычислений, что позволяет пользователю вносить необходимые изменения в архитектуру модели во время самого процесса обучения. Вокруг PyTorch, как и вокруг TensorFlow, выстроена экосистема из библиотек, разрабатываемых сторонними командами: PyTorch Lightning и Fast.ai упрощают процесс обучения моделей, Pyro — модуль для вероятностного программирования, от Uber, Flair — библиотека для обработки естественного языка и мн. др.

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

В заключении отметим Flux — библиотеку для создания нейронных сетей, полностью реализованную на языке Julia. Flux имеет развитую экосистему вспомогательных пакетов, хотя и менее обширную, по сравнению с TensorFlow и PyTorch. Зато в ней есть DiffEqFlux.jl пакет для решения дифференциальных уравнений, позволяющий использовать нейронные сети в качестве функций правых частей. Наконец, организация SciML [25] использует пакеты Flux и Zygote (автоматическое дифференцирование на Julia) для комбинирования нейронных сетей и дифференциальных уравнений с целью получения новых, более эффективных моделей.

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

- TensorFlow, PyTorch — разработка нейронных сетей;

- NumPy — численные расчеты и обработка информации;

- SciPy — продвинутое моделирование;

- scikit-learn — методы машинного обучения и сопутствующие задачи (кроме нейронных сетей);

- Pandas — таблицы для хранения и обработки данных;

- Matplotlib, Seaborn—визуализация информации;

- PyBrain — разработка нейронных сетей и обучение с подкреплением;

- NLTK — обработка естественных языков.

В научных вычислениях Python распространен не так широко, как в машинном обучении. Несмотря на большое количество специализированных пакетов, он не может претендовать на лидирующие позиции в этой области. Дело в том, что сам по себе Python — довольно медленный язык, он эффективно используется как «обертка» библиотек, написанных на Fortran и С. К тому же синтаксис Python не столь удобен для реализации научных вычислений, как у признанных лидеров: MATLAB и Fortran.

С другой стороны, существует Julia — молодой и набирающий популярность язык для научных и инженерных расчетов, ориентированный на проведение высокопроизводительных и параллельных вычислений. Многие элементы синтаксиса Julia позаимствованы у MATLAB, что позволяет сравнительно быстро осваивать язык. В то же время, написанные на Julia программы лишь немногим уступают в производительности программам, написанным на C и C++ [26]. Это позволяет рассматривать Julia в качестве эффективной свободной альтернативы MATLAB в области научных расчетов и, в частности, в области моделирования динамики КА. Julia обладает большим набором математических библиотек, а также библиотек анализа данных и машинного обучения.

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

Выводы. Показано, что в настоящее время математические модели и модели машинного обучения совместно используются для решения прямых и обратных задач моделирования, генерации данных и анализа чувствительности. Цели объединения подходов — решить проблемы, стоящие перед каждым из подходов по отдельности: повысить точность и скорость расчетов, при сохранении физического смысла результатов; сократить время на обучение; улучшить обобщающую способность модели; улучшить объясняемость модели; обеспечить данными требуемого качества.

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

TensorFlow и PyTorch совместно с языком программирования Python, а также библиотека Flux совместно с Julia.

Литература

1. Willard J. Integrating physics-based modeling with machine learning: A survey / J. Willard [et al.] -URL: http://arxiv.org/abs/2003.04919 (дата обращения: 10.11.2021).

2. Karpatne A. Theory-guided data science: A new paradigm for scientific discovery from data / A. Karpatne, G. Atluri, J. Faghmous, M. Steinbach [et al.] // IEEE Transactions on Knowledge and Data Engineering. - 2017. - V. 29. - P.2318-2331.

3. Rajendra P. Modeling of dynamical systems through deep learning / P. Rajendra, V. Brahmajirao // Biophysical Reviews. - 2020. - V. 12. - № 6. - P. 1311-1320.

4. Verma S. A Survey on Machine Learning Applied to Dynamic Physical Systems [Электронный ресурс]. - URL: https://hal.archives-ouvertes.fr/hal-03120225 (дата обращения: 10.11.2021).

5. Noe F. Machine learning for molecular simulation / F. Noe, A. Tkatchenko, K.-R. Müller, C. Clem-enti // Annual Review of Physical Chemistry. - 2020. -V. 71. - № 1. - P. 361-390.

6. Brunton S. L. Data-Driven Science and Engineering / S. L. Brunton, J. N. Kutz. - Cambridge, MA, USA: Cambridge University Press, 2019. DOI: https://doi.org/10.1017/9781108380690

7. Хайкин С. Нейронные сети: полный курс, 2-е изд. / C. Хайкин. - М.: Издательский дом "Виль-ямс", 2006.

8. Goodfellow I. Deep learning / I. Goodfellow, Y. Bengio, A. Courville. - Cambridge, MA, USA: The MIT Press, 2016.

9. Николенко С. Глубокое обучение / С. Нико-ленко, А. Кадурин, Е. Архангельская. - СПб.: Питер, 2018.

10. Шеннон Р. Имитационное моделирование систем — искусство и наука / Р. Шеннон. - М.: Мир, 1978.

11. Математический энциклопедический словарь / Гл. ред. Ю. В. Прохоров. - М.: Сов. энциклопедия, 1988. - 847 с.

12. San O. Neural network closures for nonlinear model order reduction / O. San, R. Maulik // Advances in Computational Mathematics. - 2018. - V. 44. - № 6. - P. 1717-1750.

13. Lagaris I. Artificial neural networks for solving ordinary and partial differential equations / I. Lagaris, A. Likas, D. Fotiadis // IEEE Transactions on Neural Networks. - 1998. - V. 9. - № 5. - P. 987-1000.

14. Chashchin A., Botchev M., Oseledets I., Ovchinnikov G. Predicting dynamical system evolution

with residual neural networks [Электронный ресурс]. - URL: https://keldysh.ru/pa-

pers/2019/prep2019_131.pdf (дата обращения: 10.11.2021).

15. Byravan A. SE3-nets: Learning rigid body motion using deep neural networks / A. Byravan, D. Fox // IEEE international conference on robotics and automation (ICRA), May 29, 2017 - Jun 3, 2017. - Singapore, IEEE, 2017. - P. 32-40.

16. Sun L. Surrogate modeling for fluid flows based on physics-constrained deep learning without simulation data / L. Sun, H. Gao, S. Pan, J.-X. Wang // Computer Methods in Applied Mechanics and Engineering. - 2020. - V. 361. - P. 112.

17. Karpatne A. Physics-guided neural networks (PGNN): an application in lake temperature modeling / A. Karpatne [et al.]. - URL: http://arxiv.org/abs/1710.11431 (дата обращения: 10.11.2021).

18. Transfer learning - Wikipedia [Электронный ресурс]. - URL: https://en.wikipedia.org/wiki/Trans-fer_learning (дата обращения: 10.11.2021).

19. Chen T. Neural ordinary differential equations / T. Chen [et al.]. - URL: http://arxiv.org/abs/1806.07366 (дата обращения: 10.11.2021).

20. Qin T. Data driven governing equations approximation using deep neural networks / T. Qin, K. Wu, D. Xiu // Journal of Computational Physics. -2019. - V. 395. - P. 620-635.

21. Raissi M. Hidden physics models: Machine learning of nonlinear partial differential equations / M. Raissi, G. Karniadakis // Journal of Computational Physics. - 2018. - V. 357. - P. 125-141.

22. Rudy S. Data-driven discovery of partial differential equations / S. Rudy, S. Brunton, J. Proctor, J. Kutz // Science Advances. - 2017. - V.3. - № 4. -P. 345-352.

23. Brunton S. Discovering governing equations from data by sparse identification of nonlinear dynamical systems / S. Brunton, J. Proctor, J. Kutz // Proceedings of the National Academy of Sciences. - 2016. - V. 113. - P. 3932-3937.

24. Champion K. Data-driven discovery of coordinates and governing equations / K. Champion, B. Lusch, J. Kutz, S. Brunton // Proceedings of the National Academy of Sciences. - 2019. - V. 116. -P.22445-22451.

25. SciML_ Open Source Software for Scientific Machine Learning [Электронный ресурс]. - URL: https://sciml.ai (дата обращения: 24.11.2021).

26. Sells R. Julia Programming Language Benchmark using a Flight Simulation / R. Sells // 2020 IEEE Aerospace Conference, 7-14 March 2020. - Big Sky, MT, 2020. DOI: 10.1109/AER047225.2020.9172277