Введение 4
1. Постановка задачи 5
2. Обзор 6
2.1. Классификация дифференциальных уравнений 6
2.2. Жесткие уравнения 8
2.3. Обучение нейросетевых моделей 8
2.4. Смежные работы 11
3. Реализация 12
3.1. Алгоритм обучения 12
3.2. Проблема форм 14
3.3. Выбор тестовых уравнений 14
3.4. Базовая архитектура нейросети 20
4. Исследование модификаций сети и процесса обучения 25
4.1. Использование LBFGS оптимизатора 25
4.2. Задание начальных условий 27
4.3. Модификация архитектуры 34
5. Выводы 42
6. Заключение 44
Список литературы 45
В последнее время, с ростом доступных вычислительных мощностей и наборов данных, наблюдается популярность применения методов машинного обучения в различных прикладных дисциплинах [10] [11].
Однако при изучении сложных физических, биологических или инженерных систем, стоимость получения данных все еще высока, в связи с чем их анализ проводится с помощью небольших наборов данных. В таких случаях современным алгоритмам машинного обучения, на-пример, глубоким, сверточным или рекуррентным нейронным сетям, недостает обучающих примеров, чтобы найти приемлемое решение.
Другой подход к изучению многих динамических систем состоит в следующем. Для системы составляется дифференциальное уравнение, описывающее динамику этой системы, задаются начальные условия, то есть значения показателей системы на границе области в начальный момент времени. Затем это уравнение решается каким-либо численным методом. Численные методы используются чаще всего потому, что за-частую получить точно решение сложно или невозможно, а также, имея вычислительные мощности, становится возможным проводить большие расчеты.
В данной работе рассматривается возможность использования нейронных сетей для решения дифференциальных уравнений. С использованием нейронных сетей мы получаем сразу несколько возможностей для улучшения: автоматическое дифференцирование, регуляризация с помощью априорных знаний предметной области, например, законов сохранения в физике, модификация архитектуры сети для добавления в нее знаний того, как выглядят решения диффуров. Все это можно использовать для улучшения получаемого решения. Также, ввиду отсутствия привычного набора данных “набор признаков — ответ”, рассматриваемая задача относится к задачам обучения без учителя.
В данной работе ставится задача исследовать особенности нейросетевого подхода к решению дифференциальных уравнений и некоторых модификаций, применимых для этого метода.
В рамках данной работы были достигнуты следующие результаты:
• Изучены существующие работы, связанные с применением методов машинного обучения к решению дифференциальных уравнений.
• Выбраны уравнения для сравнения нейросетевых моделей.
• Выбрана базовая модель для сравнения с ее модификациями.
• Приведены методы для модификации базовой модели и проведены эксперименты с исследованием их эффективности.
• Проведен анализ полученных результатов. Показаны способы модификации сети, дающие улучшение качества получаемого решения. Исследованы как представление влияет на итоговое качество и установлено, что лучше брать уравнения, лишенные делений, и предпочитать уравнения высшего порядка эквивалентным системам первого порядка.
[1] API — Toolz 0.10.0 documentation // https://toolz.readthedocs.io/en/latest/api.html.
[2] Automatic differentiation in ML: Where we are and where we should be going / Bart Van Merri3nboer, Olivier Breuleux, Arnaud Bergeron, Pascal Lamblin // arXiv preprint arXiv:1810.11530. — 2018.
[3] Boole George. A treatise on differential equations. — Macmillan and Company, 1872. — Vol. 1.
[4] Curtiss Charles Francis, Hirschfelder Joseph O. Integration of stiff equations // Proceedings of the National Academy of Sciences of the United States of America. — 1952. — Vol. 38, no. 3. — P. 235.
[5] Deep residual learning for image recognition / Kaiming He, Xi- angyu Zhang, Shaoqing Ren, Jian Sun // Proceedings of the IEEE con¬ference on computer vision and pattern recognition. — 2016. — P. 770¬778.
[6] Dockhorn Tim. A discussion on solving partial differential equations using neural networks // arXiv preprint arXiv:1904.07200.— 2019.
[7] Drabek Pavel, Holubova Gabriela. Classification, Types of Equations, Boundary and Initial Conditions // Elements of Partial Differential Equations. — De Gruyter, 2008. — P. 9-20.
[8] Efficient numerical scheme for solving the Allen-Cahn equation / Ab¬dullah Shah, Muhammad Sabir, Muhammad Qasim, Peter Bastian // Numerical Methods for Partial Differential Equations. — 2018. — Vol. 34, no. 5. — P. 1820-1833.
[9] Kingma Diederik P, Ba Jimmy. Adam: A method for stochastic opti-mization // arXiv preprint arXiv:1412.6980.— 2014.
[10] Krizhevsky Alex, Sutskever Ilya, Hinton Geoffrey E. Imagenet classifi¬cation with deep convolutional neural networks // Advances in neural information processing systems. — 2012. — Vol. 25. — P. 1097-1105.
[11] LeCun Yann, Bengio Yoshua, Hinton Geoffrey. Deep learning // na¬ture. — 2015. — Vol. 521, no. 7553. —P. 436-444.
[12] Liu Dong C, Nocedal Jorge. On the limited memory BFGS method for large scale optimization // Mathematical programming. — 1989. — Vol. 45, no. 1. — P. 503-528.
[13] Meyer Kenneth R. Jacobi elliptic functions from a dynamical systems point of view // The American Mathematical Monthly. — 2001. — Vol. 108, no. 8. - P. 729-737.
[14] Optimize TensorFlow & Keras models with L-BFGS from TensorFlow Probability // https://pychao.com/2019/11/02/optimize-tensorflow-keras-models-with-l-bfgs-from-tensorflow-probability/.
[15] Pardoux E, Veretennikov A Yu. On the Poisson equation and diffusion approximation. I // Annals of probability. — 2001. — P. 1061-1085.
[16] Raissi Maziar, Perdikaris Paris, Karniadakis George Em. Physics in¬formed deep learning (part i): Data-driven solutions of nonlinear par¬tial differential equations // arXiv preprint arXiv:1711.10561. — 2017.
[17] Robertson HH. The solution of a set of reaction rate equations // Numerical analysis: an introduction. -- 1966. -- Vol. 178182.
[18] Ruder Sebastian. An overview of gradient descent optimization algo¬rithms // arXiv preprint arXiv:1609.04747. -- 2016.
[19] Sirignano Justin, Spiliopoulos Konstantinos. DGM: A deep learning algorithm for solving partial differential equations // Journal of com-putational physics. -- 2018. -- Vol. 375. -- P. 1339-1364.
[20] TensorFlow 2.0 is now available! // https://medium.com/tensorflow/tensorflow-2-0-is-now-available-57d706c2a9ab.
[21] TensorFlow Probability API. tfp.optimizer.lbfgs_minimize // https://www.tensorflow.org/probability/api_docs/python/tfp/optimizer/lbfgs_minimize.
[22] TensorFlow Probability is a library for probabilistic reasoning and sta-tistical analysis. // https://www.tensorflow.org/probability.
[23] Visualizing the loss landscape of neural nets / Hao Li, Zheng Xu, Gavin Taylor et al. // arXiv preprint arXiv:1712.09913. — 2017.
[24] Официальный сайт библиотеки Keras // https://keras.io/.
[25] Официальный сайт библиотеки Matplotlib // https://matplotlib.org/.
[26] Официальный сайт библиотеки NumPy // https://numpy.org/.
[27] Официальный сайт языка Python // https://www.python.org/.
[28] Репозиторий с исходным кодом // https://github.com/rprtr258/diploma-2021.