Обучение нейросети базовым арифметическим операциям, таким как сложение, вычитание, умножение и деление, оказалось возможным. Для этого использовался многослойный перцептрон, и на первых этапах были достигнуты удовлетворительные результаты с небольшими целыми числами. Однако, использование нейросети для простых вычислений является ресурсозатратным, поскольку операция net.Predict требует множества арифметических операций внутри себя.
Для работы с более крупными числами была использована концепция «длинной арифметики», позволяющая выполнять операции с числами произвольной величины, а все вычисления производятся максимум с десятками. Это позволило избежать необходимости увеличения размерности сети и длительного обучения. Реализация была произведена с использованием класса BigNumber, где арифметические операции были переопределены так, что внутри вычисления производятся с помощью обученных нейронных сетей, но только с числами до 9.
Состояние обученной нейросети можно сохранять и загружать, что избавляет от необходимости повторного обучения каждый раз при запуске программы. Это позволяет ускорить работу калькулятора. Однако, текущая реализация калькулятора не поддерживает вычисления с плавающей запятой.
В качестве дальнейших направлений разработки предлагается реализация вычислений с плавающей запятой, а также расширение функциональности калькулятора, добавив вычисления возведения в степень, извлечения корня, логарифма и тангенса. Кроме того, массив нейросети можно использовать для хранения и передачи по интернету различной логики и алгоритмов, зашифровав их таким образом.
Для работы с более крупными числами была использована концепция «длинной арифметики», позволяющая выполнять операции с числами произвольной величины, а все вычисления производятся максимум с десятками. Это позволило избежать необходимости увеличения размерности сети и длительного обучения. Реализация была произведена с использованием класса BigNumber, где арифметические операции были переопределены так, что внутри вычисления производятся с помощью обученных нейронных сетей, но только с числами до 9.
Состояние обученной нейросети можно сохранять и загружать, что избавляет от необходимости повторного обучения каждый раз при запуске программы. Это позволяет ускорить работу калькулятора. Однако, текущая реализация калькулятора не поддерживает вычисления с плавающей запятой.
В качестве дальнейших направлений разработки предлагается реализация вычислений с плавающей запятой, а также расширение функциональности калькулятора, добавив вычисления возведения в степень, извлечения корня, логарифма и тангенса. Кроме того, массив нейросети можно использовать для хранения и передачи по интернету различной логики и алгоритмов, зашифровав их таким образом.