Нейроинформатика

       

Двойственное функционирование и быстрое дифференцирование


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

Всюду в этом разделе область интерпретации - действительная прямая, а все функции дифференцируемы.

Основной инструмент при построении двойственного функционирования - формула для дифференцирования "двухслойной" сложной функции нескольких переменных

Двойственное функционирование и быстрое дифференцирование

(5)

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

Итак, пусть G - связный (но не обязательно ориентированно связный) ориентированный граф без ориентированных циклов. Как и выше, v(G) - множество вершин G, e(G) - множество ребер. Пусть, далее, каждой вершине

Двойственное функционирование и быстрое дифференцирование
сопоставлена метка - символ алфавита p(?), а каждому ребру
Двойственное функционирование и быстрое дифференцирование
сопоставляется метка - конечное множество натуральных чисел P(?', ?) и выполнено условие согласования A: если для данного
Двойственное функционирование и быстрое дифференцирование
множество входящих ребер (?', ?) непусто, то
Двойственное функционирование и быстрое дифференцирование
(является k-местным функциональным символом при некотором k) и семейство множеств

Двойственное функционирование и быстрое дифференцирование

при фиксированном ? образует разбиение множества номеров {1,...,k}. Для каждой вершины

Двойственное функционирование и быстрое дифференцирование
обозначим множество входящих в нее ребер in(?), а выходящих из нее - out(?).

Пусть указана интерпретация всех символов, отмечающих вершины графа, значения переменных, отвечающих входным вершинам и уравнениям функционирования (4) определены значения Z(?) для всех вершин графа. В результате определены значения всех сложных функций, формулы для которых являются термами, соответствующими вершинам графа G.
Тогда для любого

Двойственное функционирование и быстрое дифференцирование


Двойственное функционирование и быстрое дифференцирование


(11)
где
Двойственное функционирование и быстрое дифференцирование
- соответствующая вершине ? функция от независимых переменных и констант, отмечающих вершины нулевого слоя G,
Двойственное функционирование и быстрое дифференцирование
- соответствующая вершине
Двойственное функционирование и быстрое дифференцирование
переменная или константа, а производные в (11) берутся при фиксированных значениях прочих переменных и констант.

Доказательство проводится индукцией по числу слоев. Для графов из двух слоев - нулевого и первого - теорема очевидна. Спуск от i+1-слойных графов к i-слойным производится с помощью формулы 5.

Прохождение вершины графа и прилегающих к ней ребер при прямом и обратном процессах проиллюстрировано на рис. 3.3.

Двойственное функционирование и быстрое дифференцирование

Рис. 3.3. 



Процесс вычисления Z(?) будем называть прямым в противовес обратному или двойственному, к описанию которого мы переходим.

При заданных Z(?) для каждой вершины и каждого ребра строятся переменные двойственного функционирования (или, более кратко, двойственные переменные). Будем обозначать их ?(?) для вершин и ?(?', ?) - для ребер.

Для выходных вершин ?(?) являются независимыми переменными. Пусть их значения заданы. Для вершины ?, не являющейся выходной, значение ?(?) есть сумма значений двойственных переменных, соответствующих выходящим из ? ребрам:

Двойственное функционирование и быстрое дифференцирование


(6)
Для ребра (?', ?) значение ?(?', ?) определяется согласно формуле (5):

Двойственное функционирование и быстрое дифференцирование


(7)
В формуле (7)
Двойственное функционирование и быстрое дифференцирование
- метка ребра ?,
Двойственное функционирование и быстрое дифференцирование
- аргументы "простой" функции
Двойственное функционирование и быстрое дифференцирование
, а производные
Двойственное функционирование и быстрое дифференцирование
берутся при условиях, определяемых прямым процессом:

Двойственное функционирование и быстрое дифференцирование


(8)
при
Двойственное функционирование и быстрое дифференцирование


Для каждого
Двойственное функционирование и быстрое дифференцирование
такое ? существует и единственно в силу того, что метки входящих в вершину ? ребер образуют разбиение множества номеров {1,...,k}.

В самом распространенном случае все метки ребер P(?', ?) содержат по одному элементу. В этом случае формула (7) приобретает особенно простой вид

Двойственное функционирование и быстрое дифференцирование


где

Двойственное функционирование и быстрое дифференцирование


Используя (6)-(8), можно записать правила вычисления двойственных переменных для вершин, не использующие двойственных переменных для ребер:

Двойственное функционирование и быстрое дифференцирование


(9)
где производные
Двойственное функционирование и быстрое дифференцирование
берутся при условиях

Двойственное функционирование и быстрое дифференцирование


(10)
при
Двойственное функционирование и быстрое дифференцирование


Греческими буквами
Двойственное функционирование и быстрое дифференцирование
,
Двойственное функционирование и быстрое дифференцирование
,
Двойственное функционирование и быстрое дифференцирование
здесь обозначены вершины графа.

Опять же, в распространенном случае, когда все P(?', ?) одноэлементны, применяем (7') вместо (7) и получаем

Двойственное функционирование и быстрое дифференцирование


где

Двойственное функционирование и быстрое дифференцирование


(9')
Напомним, что каждой вершине ?, принадлежащей ненулевому слою графа G, соответствуют терм ? и сложная функция
Двойственное функционирование и быстрое дифференцирование
от независимых переменных и констант, отмечающих вершины нулевого слоя G.

Процесс вычисления двойственных переменных организуется послойно от выходных вершин к входным и часто называется процессом обратного распространения (back propagation) или просто обратным процессом.

Теорема 5. Пусть задана интерпретация всех символов, отмечающих вершины графа G, определены значения независимых переменных (а также констант), соответствующих вершинам входного слоя
Двойственное функционирование и быстрое дифференцирование
и значения независимых переменных двойственного функционирования ?(?) для вершин выходного слоя
Двойственное функционирование и быстрое дифференцирование
.


Тогда для любого
Двойственное функционирование и быстрое дифференцирование


Двойственное функционирование и быстрое дифференцирование


(11)
где
Двойственное функционирование и быстрое дифференцирование
- соответствующая вершине ? функция от независимых переменных и констант, отмечающих вершины нулевого слоя G,
Двойственное функционирование и быстрое дифференцирование
- соответствующая вершине
Двойственное функционирование и быстрое дифференцирование
переменная или константа, а производные в (11) берутся при фиксированных значениях прочих переменных и констант.

Доказательство проводится индукцией по числу слоев. Для графов из двух слоев - нулевого и первого - теорема очевидна. Спуск от i+1-слойных графов к i-слойным производится с помощью формулы 5.

Прохождение вершины графа и прилегающих к ней ребер при прямом и обратном процессах проиллюстрировано на рис. 3.3.

Двойственное функционирование и быстрое дифференцирование

Рис. 3.3. 


Содержание раздела