Главная страница
Навигация по странице:

  • Операции для вычисления значения функции Операции для вычисления производной

  • 3.2.4 Дуальные числа

  • национальный исследовательский томский политехнический университет


    Скачать 1.38 Mb.
    Названиенациональный исследовательский томский политехнический университет
    Дата28.01.2019
    Размер1.38 Mb.
    Формат файлаpdf
    Имя файла_TPU543998.pdf
    ТипДокументы
    #65603
    страница9 из 16
    1   ...   5   6   7   8   9   10   11   12   ...   16

    27
    Таблица 3.1 – Последовательность действий для прямого режима
    Операции для вычисления значения
    функции
    Операции для вычисления
    производной
    ??????
    ??????
    = ??????
    ??????
    ??????
    ??????
    = ??????
    ??????
    ??????
    ??????
    = ??????
    ??????
    ??????
    ??????
    ??????
    ??????
    = ?????????????????? (??????
    ??????
    )
    ??????
    ??????
    = ??????
    ??????
    + ??????
    ??????
    ??????̇
    ??????
    = ?????? (начальное значение)
    ??????̇
    ??????
    = ?????? (начальное значение)
    ??????
    ??????
    ̇ = ??????
    ??????
    ??????̇
    ??????
    + ??????
    ??????
    ??????̇
    ??????
    ??????̇
    ??????
    = ??????̇
    ??????
    ??????????????????(??????
    ??????
    )
    ??????̇
    ??????
    = ??????̇
    ??????
    + ??????̇
    ??????
    На рисунке 3.1 показано графическое изображение этого процесса в виде вычислительного графа.
    Рисунок 3.1 – Прямое вычисление значения производной
    Чтобы вычислить градиент данной функции, для которого требуется производная от ?????? не только по ??????
    ??????
    , но и по ??????
    ??????
    , необходимо провести аналогичные вычисления (таблица 3.1) со следующими начальными значениями:
    ??????̇
    ??????
    =
    ????????????
    ??????
    ????????????
    ??????
    = ??????,
    (3.24)

    28
    ??????̇
    ??????
    =
    ????????????
    ??????
    ????????????
    ??????
    = ??????.
    (3.25)
    3.2.3
    Обратный режим
    Обртный режим АД был впервые опубликован в 1970 году Seppo
    Linnainmaa в его магистерской диссертации [9], [10], [11].
    При обратном накоплении сначала фиксируется зависимая переменная, подлежащая дифференцированию, и рекурсивно вычисляется производная каждого подвыражения:
    ????????????
    ????????????
    =
    ????????????
    ????????????
    ??????
    ????????????
    ??????
    ????????????
    = (
    ????????????
    ????????????
    ??????
    ????????????
    ??????
    ????????????
    ??????
    )
    ????????????
    ??????
    ????????????
    = ⋯
    (3.26)
    Обозначим числовое значение производной следующим образом:
    ??????
    ̅ =
    ????????????
    ????????????
    (3.27)
    Операции по вычислению производной для функции из предыдущего пункта с использованием обратного накопления показаны в таблице 3.2.
    Таблица 3.2 – Последовательность действий для обратного режима
    Операции для вычисления значения
    функции
    Операции для вычисления
    производной
    ??????
    ??????
    = ??????
    ??????
    ??????
    ??????
    = ??????
    ??????
    ??????
    ??????
    = ??????
    ??????
    ??????
    ??????
    ??????
    ??????
    = ?????????????????? (??????
    ??????
    )
    ??????
    ??????
    = ??????
    ??????
    + ??????
    ??????
    ??????
    ̅
    ??????
    = ?????? (начальное значение)
    ??????
    ̅
    ??????
    = ??????
    ̅
    ??????
    ??????
    ̅
    ??????
    = ??????
    ̅
    ??????
    ??????
    ̅
    ??????
    = ??????
    ̅
    ??????
    ??????
    ??????
    ??????
    ̅
    ??????
    = ??????
    ̅
    ??????
    ??????
    ??????
    + ??????
    ̅
    ??????
    ?????????????????? (??????
    ??????
    )
    На рисунке 3.2 показано графическое изображение этого процесса в виде вычислительного графа.

    29
    Рисунок 3.2 – Обратное вычисление значений производных
    Для вычисления всех частных производных необходимо только одно начальное значение, однако обратный режим требует хранения промежуточных переменных ??????
    ??????
    3.2.4
    Дуальные числа
    Автоматическое дифференцирование в прямом режиме осуществляется путём расширения алгебры действительных чисел и получения новой арифметики. Заменим каждое число ?????? числом ?????? + ??????

    ??????, где ??????

    – действительное, а ?????? – абстрактное число, обладающее свойством ??????
    ??????
    = ?????? (бесконечно малая величина).
    Новая арифметика теперь состоит из упорядоченных пар, элементов
    〈??????, ??????

    〉:
    〈??????, ??????

    〉 + 〈??????, ??????

    〉 = 〈?????? + ??????, ??????

    + ??????

    〉,
    (3.28)
    〈??????, ??????

    〉 − 〈??????, ??????

    〉 = 〈?????? − ??????, ??????

    − ??????

    〉,
    (3.29)
    〈??????, ??????

    〉 ∗ 〈??????, ??????

    〉 = 〈????????????, ??????

    ?????? + ????????????

    〉,
    (3.30)
    1   ...   5   6   7   8   9   10   11   12   ...   16


    написать администратору сайта