370
Практическая методология
лярный аргумент и одно выходное значение. Обычно имеет смысл повторить тест для
нескольких значений
u
и
v
, чтобы не проглядеть ошибок, ортогональных направле-
нию случайного проецирования.
Если речь идет о вычислениях с комплексными числами, то существует очень эф-
фективный способ численной оценки градиента путем передачи функции комплексно-
го аргумента (Squire and Trapp, 1998). В основе метода лежит следующее наблюдение:
f
(
x
+
i
ε
) =
f
(
x
) +
i
ε
f
′
(
x
) +
O
(
ε
2
),
(11.8)
Re(
f
(
x
+
i
ε
)) =
f
(
x
) +
O
(
ε
2
),
(11.9)
где
i
=
. В отличие от рассмотренного выше вещественного случая, здесь нет по-
тери значащих цифр, потому что вычисляется разность между значениями
f
в разных
точках. Это позволяет брать очень малые значения
ε
, например 10
–150
, так что погреш-
ность
O
(
ε
2
) практически несущественна.
Мониторинг гистограмм активаций и градиента.
Часто бывает полезно визуали-
зировать статистику активаций и градиента нейронной сети, собранную по многим
итерациям обучения (быть может, по одному периоду). Значения скрытых блоков до
активации могут сказать, являются ли блоки насыщенными и как часто такое случа-
ется. Например, если речь идет о блоках линейной ректификации, то как часто они
выключены? А есть ли блоки, которые всегда выключены? В случае tanh-блоков о на-
сыщении блока говорит среднее абсолютных величин до активации. В глубокой сети,
где распространяемые градиенты быстро растут или быстро приближаются к нулю,
могут возникнуть препятствия для оптимизации. Наконец, полезно сравнить модули
градиентов параметров с модулями самих параметров. В работе Bottou (2015) реко-
мендуется, чтобы модуль изменения параметра по мини-пакету составлял примерно
1% от модуля параметра, а не 50% и не 0.001% (тогда изменение параметров было бы
слишком медленным). Может оказаться, что некоторые группы параметров изменя-
ются в хорошем темпе, тогда как другие топчутся на месте. Если данные разрежены
(как в естественном языке), то некоторые параметры могут обновляться очень редко,
и об этом следует помнить, наблюдая за их эволюцией.
Наконец, многие алгоритмы глубокого обучения дают некоторые гарантии относи-
тельно результатов на каждом шаге. Например, в части III мы встретимся с алгорит-
мами приближенного вывода, в основе которых лежит алгебраическое решение задач
оптимизации. Обычно для их отладки можно проверить выполнение каждой гаран-
тии. Приведем несколько примеров подобных гарантий: целевая функция никогда не
увеличивается после одного шага алгоритма; градиент относительно некоторого под-
множества переменных равен 0 после каждого шага алгоритма; градиент по всем пере-
менным равен 0 по достижении сходимости. Обычно из-за ошибок округления эти
условия выполняются неточно, поэтому при отладке нужно делать небольшой допуск.
Do'stlaringiz bilan baham: