Решение системы уравнений с помощью нейронной сети

Digiratory

Лаборатория автоматизации и цифровой обработки сигналов

TensorFlow. Решение систем линейных уравнений

Библиотека TensorFlow широко известна, в основном, в контексте машинного обучения и нейронных сетей. Однако, TensorFlow изначально не является библиотекой машинного обучения в чистом виде, а позиционируется разработчиками, как библиотека для высокопроизводительных вычислений (high perfomance computing), а это значит, что область ее применения значительно шире. Итак, выступая на конференции с докладом о том, как мы применяли TensorFlow для задачи оценки показателей надежности, я получил вполне закономерный вопрос: «А можно ли использовать TF для решения систем уравнений?». Ответ, естественно, положительный, и в этой статье рассмотрим, как решать системы линейных алгебраических уравнений.

Для систем линейных алгебраических уравнений TensorFLow содержит уже готовые методы в пакете tf.linalg. Непосредственно для решения систем линейных уравнений используется метод tf.linalg.solve.

Метод имеет следующую сигнатуру:

Где matrix — матрица коэффициентов левой части системы в формате тензора [. M, M] (квадратная матрица), rhs — правая часть системы уравнений в формате тензора [. M, K] , adjoint — указывает на то, что матрица левой части является блочным сопряжением, Name — имя оператора в графе.

Пример решения

В качестве примера возьмем следующую систему линейных уравнений

\[
\begin
2x + 3y + z = 2 \\
3x + y + 2z = 7 \\
x + 2y + 3z = 3
\end
\]

Тогда матрица левой части системы уравнений (\(A\)) принимает вид:

Правой части, соответственно:

Первым делом импортируем TensorFlow:

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

После создания тензоров с исходными данными применим функцию, предварительно создав сессию tensorflow.

получим следующий вывод:

Как видим, результаты соответствуют аналитическому решению.

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

Использование нейронных сетей для решения систем нелинейных уравнений.

Рассмотрена нейросетевая реализация метода Ньютона для решения систем нелинейных алгебраических уравнений, основанный на аппроксимации нелинейной вектор-функции нейронной сетью. При использовании сигмоидальной функции активации матрица Якоби выражена через веса и выходы промежуточного слоя нейронной сети. Приведены результаты моделирования работы нейронной сети с использованием пакета Neural Network Toolbox системы MATLAB.

Горбаченко В.И., Убиенных Г.Ф., Москвитин С.А.

Можно ли обучить нейронную сеть для решения математических уравнений?

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

Итак, учитывая 3 входа: 1-й номер, знак оператора, представленный номером (1 — + , 2 — — , 3 — / , 4 — * и т. Д.), И 2-й номер, то после обучения сеть должна дать мне действительные результаты.

  • Вход 1 2 :; Вход 2: 1 ( + ); Вход 3 2 :; Ожидаемый результат: 4
  • Вход 1 10 :; Вход 2: 2 ( — ); Вход 3 10 :; Ожидаемый результат: 0
  • Вход 1 5 :; Вход 2: 4 ( * ); Вход 3 5 :; Ожидаемый результат: 25
  • и другие

Вышеизложенное можно распространить на более сложные примеры.

Это возможно? Если да, то какая сеть может научиться / достичь этого?

Да, это было сделано!

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

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


источники:

http://neurocomp.ru/ispolzovanie-nejronnyx-setej-dlya-resheniya-sistem-nelinejnyx-uravnenij/

http://qastack.ru/ai/154/is-it-possible-to-train-the-neural-network-to-solve-math-equations