Реализация дуальных чисел на объектно-ориентированном языке высокого уровня

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

Implementing dual numbers in a high-level object-oriented language

This paper describes the use of dual numbers to implement automatic differentiation. Dual numbers are one of three special cases of generalized complex numbers that arise when considering solutions to a General square equation. On the other hand, dual numbers also appear in non-standard analysis. In applied mathematics, dual numbers have found their main application as a purely instrumental means of implementing classical differentiation without loss of accuracy. However, to use them, it is enough to axiomatically determine the necessary properties and there is no need to draw information from non-standard analysis. Automatic differentiation has a number of advantages. Thus, in contrast to the use of finite differences, the conversion is done without loss of accuracy. In addition, the calculation process can be performed before the compilation stage, for example, by implementing it as a macro or using symbolic calculations. This can significantly affect performance in tasks that require finding a large number of derivatives. Automatic differentiation has become very popular, for example, in the field of machine learning in the implementation of neural networks. The work consists of three parts. The first part introduces the necessary definitions and describes the properties of dual numbers. The second part describes the use of dual numbers for differentiating functions. The third part provides an overview of current libraries that implement the type of dual numbers and automatic differentiation operations using them.

Авторы
Издательство
Российский университет дружбы народов (РУДН)
Язык
Русский
Страницы
225-228
Статус
Опубликовано
Год
2020
Организации
  • 1 Российский университет дружбы народов
Ключевые слова
generalized complex numbers; dual numbers; automatic differentiation; обобщённые комплексные числа; дуальные числа; автоматическое дифференцирование
Дата создания
02.11.2020
Дата изменения
02.11.2020
Постоянная ссылка
https://repository.rudn.ru/ru/records/article/record/66665/
Поделиться

Другие записи