Главная страница

Алгоритм увеличения точности нейронных сетей и его приложения


Скачать 3.63 Mb.
НазваниеАлгоритм увеличения точности нейронных сетей и его приложения
Дата24.06.2022
Размер3.63 Mb.
Формат файлаpdf
Имя файлаdiss_avrutskiy.pdf
ТипДиссертация
#613262
страница9 из 13
1   ...   5   6   7   8   9   10   11   12   13
𝜗
max
, которое во всех случаях не превышало
10
−5
. Для нейронных сетей в схожих обстоятельствах справедлива оценка
𝜗
max
∼ 10𝜗
median
. Это означает, что для предыдущих работ
𝜗
max
∼ 10
−3
. Такое отклонение уже может оказаться слишком большим для некоторых приложений, ведь для нейронных се- тей
𝜗
нельзя уменьшить путём измельчения сетки. Что касается скорости решения, то здесь за счёт относительно большого шага, допустимого только при обучении с дополнительными производными, решение нейронной сетью впервые было получено за меньшее время, чем требовалось бы при использовании конечных разностей. Получить такое преимущество по времени одновременно с высокой точностью невозможно путём изменения архитектуры сети,
настроек параметров обучения или сменой градиентного метода. Более того, точность поряд- ка
10
−4
характерна и для других применений многослойных нейронных сетей. В этой работе её удалось увеличить на два порядка за счет минимизации высших производных ошибки в совокупности с уменьшением сложности алгоритма за счет дифференцирования по случай- ным направлениям. Например, в пятимерном случае минимизация
𝐸
4
для двух случайных направлений требует вычисления 99 различных производных, тогда как полный набор про- изводных включал бы 462. Замедление в 4.6 раза уже не позволило бы обогнать конечные разности в пятимерном случае, с другой стороны, этот множитель растёт как куб размер- ности пространства. Отдельно стоит отметить успешное масштабирование всех параметров обучения на большие размерности. Так, шаг сетки и все параметры, указанные в Таблице
3 были подобраны и протестированы в двумерном случае, а обучение при больших размер- ностях показало практически идентичный результат. Также заметим, что нейронная сеть,
полученная при решении пятимерного уравнения, занимает менее
6 · 10 5
байт, тогда как в случае конечных разностей массив значений функции занимает
6.4 · 10 11
байт.
Выводы к Главе 3
Необходимым условием для использования большого шага сетки при решении диффе- ренциального уравнения с помощью нейронной сети является малость всевозможных част- ных производных невязки во всех точках сетки. В двумерном случае, рассмотренном в Главе
2, малость всех производных невязки вплоть до 3 порядка обеспечивалась их включением в минимизируемое выражение. Однако, при увеличении размерности пространства, коли- чество таких производных растет пропорционально кубу размерности, что приводит к до- полнительному усложнению задачи. Для уменьшения сложности алгоритма был разработан метод случайных направлений, суть которого заключается в том, что в каждой точке сетки минимизируется несколько производных по взаимно ортогональным направлениям, кото- рые случайно меняются от точки к точке. Численные эксперименты показали, что метод обеспечивает качество решения сравнимое с тренировкой всех производных, но при этом дополнительная сложность растет линейно по числу измерений. В совокупности с эффек- тивным алгоритмом обучения производных, описанным в следующей главе, это позволило

84
обогнать метод конечных разностей при решении краевой задачи для уравнения Пуассона внутри пятимерной сферы – время решения было уменьшено с 3000 секунд (оценка снизу)
до 1280 секунд, требования по памяти снижены c
6.4 · 10 11
байт (оценка снизу) до
1 · 10 9
байт, а объем памяти для хранения решения уменьшен с
6.4 · 10 11
до
6 · 10 5
байт. Впервые решение с относительной точностью порядка
10
−6
было получено нейронной сетью быстрее,
чем конечно-разностным методом.

85
Глава 4
Алгоритм дифференцирования
4.1. Прямое распространение
В данном параграфе описывается вычисление производных выхода нейронной сети по компонентам входа
𝑥
𝛼
= (𝑥
1
, . . . , 𝑥
𝑁
)
. Идея, как и в случае классического прямого распро- странения, состоит в том, чтобы определить все необходимые величины на входном слое, а затем распространить до выходного. Выражения для распространения производных будут выведены из классических формул прямого распространения (1.2.2), (1.2.3), (1.2.4). Так как алгоритм должен быть реализован на GPU, сперва перепишем (1.2.2) в матричном виде.
Для этого вместо входного вектора
𝑥
𝛼
рассмотрим набор из
𝑎
таких векторов, собранных матрицу
𝑥
𝛼𝑎
. Для первого скрытого слоя имеем
𝑧
𝛽𝑎
= 𝑡
𝛽
+
∑︁
𝛼
𝑊
𝛽𝛼
𝑥
𝛼𝑎
= 𝑡
𝛽
+ 𝑊
𝛽𝛼
× 𝑥
𝛼𝑎
,
(4.1.1)
где крестом обозначено матричное умножение. Под прибавлением
𝑡
𝛽
к матрице подразумева- ется прибавление к каждому столбцу. Теперь вперед по сети передается матрица активностей нейронов. Для второго скрытого слоя имеем
𝑧
𝛾𝑎
= 𝑡
𝛾
+ 𝑊
𝛾𝛽
× 𝜎
(︀𝑧
𝛽𝑎
)︀ .
(4.1.2)
Для выходного слоя
𝑣
𝜔𝑎
= 𝑡
𝜔
+ 𝑊
𝜔𝜓
× 𝜎
(︀𝑧
𝜓𝑎
)︀ .
(4.1.3)
Для общего случая можно записать рекуррентное соотношение, связывающее активности двух смежных слоёв
𝜅
и
𝜃
𝑧
𝜃𝑎
= 𝑡
𝜃
+ 𝑊
𝜃𝜅
× 𝜎 (𝑧
𝜅𝑎
) ,
(4.1.4)
формулы (4.1.1), (
4.1.2
) и (
4.1.3
) являются его частными случаями.
Перейдем к дифференцированию матриц активностей нейронов по компонентам входа
(𝑥
1
, 𝑥
2
, . . . )
. Напомним, что для производных введено мульти-индексное обозначение, то есть они представляются набором целых неотрицательных чисел
𝑠 = (𝑠
1
, 𝑠
2
, . . . )
, где каждая компонента есть порядок дифференцирования по соответствующей переменной:
𝜕
𝑠

𝜕
|𝑠|
𝜕𝑥
𝑠
1 1
𝜕𝑥
𝑠
2 2
,
|𝑠| =
∑︁
𝑠
𝑖
Процедура прямого распространения, наряду с активностями нейронов
𝑧
𝜅𝑎
, должна переда- вать от слоя к слою также производные этих активностей
𝜕
𝑠
𝑧
𝜅𝑎
для заранее определённого

86
набора мульти-индексов
𝑠
. Весь набор сперва нужно вычислить на входном слое, то есть найти
𝜕
𝑠
𝑥
𝛼𝑎
. Это достаточно просто – первая производная
𝑥
𝛼𝑎
по
𝑥
𝑖
это матрица, где на
𝑖−
й строке стоят единицы, на на всех остальных нули
𝜕
𝜕𝑥
𝑖
𝑥
𝛼𝑎
= 𝛿
𝛼𝑖
Любая высшая производная есть нулевая матрица
𝜕
𝑠
𝑥
𝛼𝑎
= 0,
|𝑠| ≥ 2.
Итак, мы установили вид
𝜕
𝑠
𝑥
𝛼𝑎
. Чтобы определить формулы, с помощью которых этот набор матриц распространяется вперед по сети, применим
𝜕
𝑠
к выражению (4.1.4). Учитывая, что
𝑡
𝜃
и
𝑊
𝜃𝜅
– постоянные величины, имеем
𝜕
𝑠
𝑧
𝜃𝑎
= 𝜕
𝑠
[︀𝑡
𝜃
+ 𝑊
𝜃𝜅
× 𝜎 (𝑧
𝜅𝑎
)
]︀ = 𝑊
𝜃𝜅
× 𝜕
𝑠
𝜎 (𝑧
𝜅𝑎
) .
(4.1.5)
Выражение
𝜕
𝑠
𝜎 (𝑧
𝜅𝑎
)
раскрывается по обычным правилам дифференцирования. Первая про- изводная имеет вид
𝜕𝑧
𝜃𝑎
𝜕𝑥
1
= 𝑊
𝜃𝜅
×
[︂ 𝜕𝑧
𝜅𝑎
𝜕𝑥
1
· 𝜎

(𝑧
𝜅𝑎
)
]︂
,
(4.1.6)
разумеется,
𝑥
1
можно заменить на любую другую компоненту вектора входа. Знаком «
·
»
обозначено поэлементное умножение матриц. Рекурсивно применяя (4.1.6), можно дойти до выходного слоя и вычислить
𝜕𝑣
𝜔𝑎
/𝜕𝑥
1
. Вторая производная в общем случае имеет вид
𝜕
2
𝑧
𝜃𝑎
𝜕𝑥
1
𝜕𝑥
2
=
𝜕
𝜕𝑥
1
𝑊
𝜃𝜅
× [𝑧
𝜅𝑎
2
· 𝜎

(𝑧
𝜅𝑎
)] =
= 𝑊
𝜃𝜅
× [𝑧
𝜅𝑎
1
· 𝑧
𝜅𝑎
2
· 𝜎
′′
(𝑧
𝜅𝑎
) + 𝑧
𝜅𝑎
12
· 𝜎

(𝑧
𝜅𝑎
)] .
(4.1.7)
Для удобства, сократим обозначения следующим образом
𝜕𝑧
𝜃𝑎
𝜕𝑥
1
≡ 𝑧
𝜃𝑎
𝑥
1
≡ 𝑧
𝜃𝑎
1
Теперь формулы (4.1.6) и (4.1.7) имеют вид:
𝑧
𝜃𝑎
1
= 𝑊
𝜃𝜅
× [𝑧
𝜅𝑎
1
· 𝜎

(𝑧
𝜅𝑎
)] ,
𝑧
𝜃𝑎
12
= 𝑊
𝜃𝜅
× [𝑧
𝜅𝑎
1
· 𝑧
𝜅𝑎
2
· 𝜎
′′
(𝑧
𝜅𝑎
) + 𝑧
𝜅𝑎
12
· 𝜎

(𝑧
𝜅𝑎
)] .
В случае совпадения переменных, вторую производную можно упростить
𝑧
𝜃𝑎
11
= 𝑊
𝜃𝜅
×
[︁
[𝑧
𝜅𝑎
1
]
2
· 𝜎
′′
(𝑧
𝜅𝑎
) + 𝑧
𝜅𝑎
11
· 𝜎

(𝑧
𝜅𝑎
)
]︁
,

87
однако, удобнее поступить следующим образом. Выражение (4.1.7) имеет вид
𝑧
𝜃𝑎
12
= 𝐹 (𝑧
𝜅𝑎
1
, 𝑧
𝜅𝑎
2
, 𝑧
𝜅𝑎
12
) ,
(4.1.8)
но если вычислить
𝐹 (𝑧
1
, 𝑧
1
, 𝑧
11
)
, то результатом будет
𝑧
𝜃𝑎
11
. Таким образом, одной формулы для разных переменных достаточно для вычисления всех производных заданного поряд- ка. Нужно только единообразно располагать аргументы
𝐹
. Для краткости, в последующих формулах не будем писать аргумент у
𝜎
и использовать знаки «
·
», подразумевая, что все операции в квадратных скобках выполняются поэлементно. Так, (4.1.6), (4.1.7) имеют вид:
𝑧
𝜃𝑎
1
= 𝑊
𝜃𝜅
× [𝑧
𝜅𝑎
1
] ,
𝑧
𝜃𝑎
12
= 𝑊
𝜃𝜅
× [𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
2
𝜎
′′
+ 𝑧
𝜅𝑎
12
𝜎

] .
Третьи и четвертые производные имеют вид:
𝑧
𝜃𝑎
123
= 𝑊
𝜃𝜅
×
[︁
𝜎
′′′
𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
3
+ 𝜎
′′
(𝑧
𝜅𝑎
12
𝑧
𝜅𝑎
3
+ 𝑧
𝜅𝑎
13
𝑧
𝜅𝑎
2
+ 𝑧
𝜅𝑎
23
𝑧
𝜅𝑎
1
) + 𝜎

𝑧
𝜅𝑎
123
]︁
,
(4.1.9)
𝑧
𝜃𝑎
1234
= 𝑊
𝜃𝜅
×
[︁
𝜎
𝐼𝑉
𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
3
𝑧
𝜅𝑎
4
+ 𝜎
′′′
(︁
𝑧
𝜅𝑎
12
𝑧
𝜅𝑎
3
𝑧
𝜅𝑎
4
+ 𝑧
𝜅𝑎
13
𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
4
+ 𝑧
𝜅𝑎
14
𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
3
+
𝑧
𝜅𝑎
23
𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
4
+ 𝑧
𝜅𝑎
24
𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
3
+ 𝑧
𝜅𝑎
34
𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
2
)︁
+ 𝜎
′′
(︁
𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
234
+ 𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
134
+
𝑧
𝜅𝑎
3
𝑧
𝜅𝑎
124
+ 𝑧
𝜅𝑎
4
𝑧
𝜅𝑎
123
+ +𝑧
𝜅𝑎
12
𝑧
𝜅𝑎
34
+ 𝑧
𝜅𝑎
13
𝑧
𝜅𝑎
24
+ 𝑧
𝜅𝑎
14
𝑧
𝜅𝑎
23
)︁
+ 𝜎

𝑧
𝜅𝑎
1234
]︁
(4.1.10)
Ради универсальности формул мы предположили, что все переменные дифференцирования различны. В некоторых случаях удобно привести подобные слагаемые, чтобы избавиться от лишних арифметических операций. Выражения для пятых производных, необходимые для решения задач из Главы 2, после упрощения имеют вид:
𝑧
𝜃𝑎
11111
= 𝑊
𝜃𝜅
×
[︁
𝜎
𝑉
[𝑧
𝜅𝑎
1
]
5
+ 𝜎
𝐼𝑉
10 [𝑧
𝜅𝑎
1
]
3
𝑧
𝜅𝑎
11
+ 𝜎
′′′
(︁
15𝑧
𝜅𝑎
1
[𝑧
𝜅𝑎
11
]
2
+ 10 [𝑧
𝜅𝑎
1
]
2
𝑧
𝜅𝑎
111
)︁
+
+ 𝜎
′′
(10𝑧
𝜅𝑎
11
𝑧
𝜅𝑎
111
+ 5𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
1111
) + 𝜎

𝑧
𝜅𝑎
11111
]︁
,
(4.1.11)
𝑧
𝜃𝑎
11112
= 𝑊
𝜃𝜅
×
[︁
𝜎
𝑉
[𝑧
𝜅𝑎
1
]
4
𝑧
𝜅𝑎
2
+ 𝜎
𝐼𝑉
(︁
4 [𝑧
𝜅𝑎
1
]
3
𝑧
𝜅𝑎
12
+ 6 [𝑧
𝜅𝑎
1
]
2
𝑧
𝜅𝑎
11
𝑧
𝜅𝑎
2
)︁
+
+ 𝜎
′′′
(︁
6 [𝑧
𝜅𝑎
1
]
2
𝑧
𝜅𝑎
112
+ 3 [𝑧
𝜅𝑎
11
]
2
𝑧
𝜅𝑎
2
+ 12𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
11
𝑧
𝜅𝑎
12
+ 4𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
111
)︁
+
+ 𝜎
′′
(︁
4𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
1112
+ 6𝑧
𝜅𝑎
11
𝑧
𝜅𝑎
112
+ 4𝑧
𝜅𝑎
12
𝑧
𝜅𝑎
111
+ 𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
1111
)︁
+ 𝜎

𝑧
𝜅𝑎
11112
]︁
,
(4.1.12)

88
𝑧
𝜃𝑎
11122
= 𝑊
𝜃𝜅
×
[︁
𝜎
𝑉
[𝑧
𝜅𝑎
1
]
3
[𝑧
𝜅𝑎
2
]
2
+ 𝜎
𝐼𝑉
(︁
3𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
11
[𝑧
𝜅𝑎
2
]
2
+ 6 [𝑧
𝜅𝑎
1
]
2
𝑧
𝜅𝑎
12
𝑧
𝜅𝑎
2
+
+ [𝑧
𝜅𝑎
1
]
3
𝑧
𝜅𝑎
22
)︁
+ 𝜎
′′′
(︁
3𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
11
𝑧
𝜅𝑎
22
+ 3 [𝑧
𝜅𝑎
1
]
2
𝑧
𝜅𝑎
122
+ 6𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
112
𝑧
𝜅𝑎
2
+
+ 6𝑧
𝜅𝑎
11
𝑧
𝜅𝑎
12
𝑧
𝜅𝑎
2
+ 𝑧
𝜅𝑎
111
[𝑧
𝜅𝑎
2
]
2
+ 6𝑧
𝜅𝑎
1
[𝑧
𝜅𝑎
12
]
2
)︁
+ 𝜎
′′
(︁
𝑧
𝜅𝑎
22
𝑧
𝜅𝑎
111
+
+ 6𝑧
𝜅𝑎
12
𝑧
𝜅𝑎
112
+ 3𝑧
𝜅𝑎
11
𝑧
𝜅𝑎
122
+ 2𝑧
𝜅𝑎
2
𝑧
𝜅𝑎
1112
+ 3𝑧
𝜅𝑎
1
𝑧
𝜅𝑎
1122
)︁
+ 𝜎

𝑧
𝜅𝑎
11122
]︁
(4.1.13)
Для установления общих закономерностей подобных выражений сформулируем вспомога- тельное утверждение
1
Лемма 2. Выражение для производной на последующем слое
𝜕
𝑠
𝑧
𝜃𝑎
будет зависеть от двух производных на предыдущем слое
𝜕
𝑝
𝑧
𝜅𝑎
и
𝜕
𝑞
𝑧
𝜅𝑎
если, и только если
𝜕
𝑠
= 𝜕
𝑝
𝜕
𝑞
Доказательство. Нам понадобится комбинаторный вид формулы Фаа-ди-Бруно [125]
𝜕
𝑛
𝜕𝑥
1
. . . 𝜕𝑥
𝑛
𝜎 (𝑧) =
∑︁
𝜋∈𝑃
𝜎
(|𝜋|)
(𝑧)
∏︁
𝐵∈𝜋
𝜕
|𝐵|
𝑧
∏︀
𝑗∈𝐵
𝜕𝑥
𝑗
(4.1.14)
В левой части стоит производная сложной функции
𝜎 (𝑧)
где
𝑧
зависит от
𝑥
1
, . . . , 𝑥
𝑛
(так как матрица
𝑧
𝜃𝑎
дифференцируются поэлементно, её индексы можно опустить). Все пере- менные, по которым идёт дифференцирование считаются различными. В правой части:
𝜋
есть разбиение множества
𝐷 = {1, . . . , 𝑛}
𝜋 = {𝐵
𝑘
} : 𝐵
𝑖
⋂︁
𝐵
𝑗
= ∅,
⋃︁
𝑘
𝐵
𝑘
= 𝐷.
𝑃
есть множество всех возможных разбиений
𝑃 = {𝜋
𝑙
}
. Под знаком суммы
𝜋
пробегает через множество
𝑃
. Под знаком произведения
𝐵
пробегает через все блоки разбиения
𝜋
Величина
|𝜋|
обозначает количество блоков в разбиении
𝜋
, а
|𝐵|
– количество элементов в соответствующем блоке. Сперва рассмотрим случай, когда все компоненты мульти-индекса
𝑠
не превосходят 1. Входы сети переставим так, чтобы все ненулевые компоненты
𝑠
оказались вначале, а за
𝑛
возьмем их число, теперь левая часть формулы (4.1.14) совпадает с
𝜕
𝑠
𝜎 (𝑧)
Рассмотрим подмножество разбиений
𝑃
2
= {𝜋
𝑘
}
, состоящих из двух блоков, то есть
𝜋
𝑘
=
{𝐵
𝑘,1
, 𝐵
𝑘,2
}
,
𝐵
𝑘,1
∪ 𝐵
𝑘,2
= 𝐷
. Очевидно, что для любого блока
𝐵
из любого разбиения
𝜋
найдется блок
𝐵

(возможно пустой), который дополняет его до множества
𝐷
∀𝜋, 𝐵 ∈ 𝜋 ∃ , 𝐵

: {𝐵, 𝐵

} = ˜
𝜋 ∈ 𝑃
2
Каждому блоку
𝐵
соответствует мульти-индекс
𝑝
(возможно нулевой) у которого на
𝑗 ∈ 𝐵
местах стоят единицы:
𝐵 → 𝜕
𝑝
. Если блок
𝐵

дополняет
𝐵
до
𝐷
, и
𝐵

→ 𝜕
𝑞
то очевидно,
что
𝑝+𝑞 = 𝑠
. Согласно формуле (4.1.14), разбиение
{𝐵, 𝐵

}
будет порождать в правой части
1
оно достаточно очевидно, тем не менее в процессе доказательства мы введем полезные для дальнейшего изложения конструкции

89
слагаемое с произведением
𝜕
|𝐵|
𝑧
∏︀
𝑗∈𝐵
𝜕𝑥
𝑗
𝜕
|𝐵

|
𝑧
∏︀
𝑖∈𝐵

𝜕𝑥
𝑖
= 𝜕
𝑝
𝑧 · 𝜕
𝑞
𝑧,
(4.1.15)
которое и означает зависимость
𝜕
𝑠
𝜎 (𝑧)
от
𝜕
𝑝
𝑧
и
𝜕
𝑞
𝑧
при условии
𝑠 = 𝑝 + 𝑞
. Так как лю- бому мульти-индексу можно поставить в соответствие ровно один блок, а для любых
𝑝
и
𝑞
удовлетворяющих
𝑝 + 𝑞 = 𝑠
найдутся блоки
𝐵
и
𝐵

, то верно и обратное. Случай, когда компоненты
𝑠
больше 1, сводится к уже рассмотренному. Действительно, так как в формулы для производных по разным переменным можно подставлять и одинаковые, то достаточно вместо каждой
𝑖
-й переменной с
𝑠
𝑖
> 1
ввести ровно
𝑠
𝑖
вспомогательных переменных, а затем в полученных формулах заменить их все на исходную. Мульти-индексы в таком вспо- могательном наборе переменных будем обозначать тильдой. У
˜
𝑠
по построению на первых
|𝑠|
местах стоят единицы. В силу однозначности соответствия
˜
𝑝 → 𝑝
,
˜
𝑞 → 𝑞
из соотношения
˜
𝑝 + ˜
𝑞 = ˜
𝑠
следует
𝑝 + 𝑞 = 𝑠
. С другой стороны, так как каждому
𝑠
соответствует хотя бы один
˜
𝑠
, то для любых троек
𝑝 + 𝑞 = 𝑠
можно найти вспомогательные мульти-индексы так,
чтобы
˜
𝑝 + ˜
𝑞 = ˜
𝑠

С помощью Леммы 2 можно определить, какие производные следует распространять вперед по сети. Пусть локальная ошибка содержит набор производных, задаваемых мульти- индексами
𝑠 [1] , . . . 𝑠 [𝑘] :
𝑒
𝑎
= 𝑒
(︁
𝑥
𝛼𝑎
, 𝑣
𝜔𝑎
, 𝜕
𝑠[1]
𝑣
𝜔𝑎
, . . . , 𝜕
𝑠[𝑘]
𝑣
𝜔𝑎
)︁
Процедуру прямого распространения нужно будет проводить для всех мульти-индексов
𝑝 [𝑗]
для которых
∃𝑘 : 𝑝 [𝑗] − 𝑠 [𝑘] ≥ 0 4.1.1. Случайные направления. Модификация начальных условий, которая потребу- ется для метода случайных направлений, изложенного в Пункте 3.2.3, довольно проста. Все необходимые производные, которые нужно получить на выходе, должны быть вычислены от матрицы входа
𝑥
𝛼𝑎
. Согласно выражению (3.1.1), первая производная вектора входа
𝑥
𝛼
по направлению
⃗𝑗
есть просто столбец вектора
⃗𝑗
в базисе
𝑥
𝛼
, а все высшие производные равны нулю. Матрица
𝜕𝑥
𝛼𝑎
/𝜕⃗𝑗
будет состоять из одинаковых столбцов
⃗𝑗
, но так как проце- дура прямого распространения работает независимо на разных столбцах, то их все можно выбрать разными. Для каждой точки сетки будет создано
𝐿
случайных ортонормированных векторов, каждый из которых будет записан в соответствующую матрицу
𝜕𝑥
𝛼𝑎
/𝜕⃗𝑗
𝑙
4.2. Обратное распространение
После того как прямой проход выполнен, можно вычислить локальную ошибку, зави- сящую от производных выхода
𝑒
𝑎
= 𝑒
(︁
𝑥
𝛼𝑎
, 𝑣
𝜔𝑎
, 𝜕
𝑠[1]
𝑣
𝜔𝑎
, . . . , 𝜕
𝑠[𝑘]
𝑣
𝜔𝑎
)︁
,

90
а глобальную ошибку задать как сумму локальных
𝐸
(︁
𝑥
𝛼𝑎
, 𝑣
𝜔𝑎
, 𝜕
𝑠[1]
𝑣
𝜔𝑎
, . . . , 𝜕
𝑠[𝑘]
𝑣
𝜔𝑎
)︁
=
∑︁
𝑒
𝑎
Далее, пользуясь явным видом
𝐸
, нужно вычислить её градиент по всем выходным матрицам
𝜕𝐸
𝜕 (𝜕
𝑠
𝑣
𝜔𝑎
)
Он имеет индексы
𝑠
,
𝜔
и
𝑎
, а значит аналогично разбивается на
𝑘
матриц размера
|𝜔| × |𝑎|
Для обратного распространения
𝐸
нужно записать замену переменного
1   ...   5   6   7   8   9   10   11   12   13


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