Я. Гудфеллоу, И. Бенджио, А. Курвилль


Require: ???? , множество переменных, градиенты которых нужно вычислить. Require



Download 14,23 Mb.
Pdf ko'rish
bet238/779
Sana14.06.2022
Hajmi14,23 Mb.
#671946
TuriКнига
1   ...   234   235   236   237   238   239   240   241   ...   779
Bog'liq
Гудфеллоу Я , Бенджио И , Курвилль А Глубокое обучение

Require:
𝕋
, множество переменных, градиенты которых нужно вычислить.
Require:
𝒢
, граф вычислений.
Require:
z
, переменная, подлежащая дифференцированию
Обозначим 
𝒢

часть графа 
𝒢
, содержащую только вершины, являющиеся пред-
ками 
z
и потомками вершин из 
𝕋
.
Инициализировать 
grad_table
, структуру данных, ассоциирующую тензоры с их 
градиентами
grad_table
[
z


1
for
V
in 
𝕋
do
build_grad
(
V

𝒢

𝒢


grad_table
)
end for
Return
ограничение 
grad_table
на 
𝕋
Алгоритм 6.6.
Подпрограмма 
build_grad
(
V

𝒢

𝒢


grad_table
), вызываемая в цикле 
алгоритма обратного распространения 6.5
Require:
V
, переменная, градиент которой следует добавить в 
𝒢
и 
grad_table
Require:
𝒢
, модифицируемый граф
Require:
𝒢

, ограничение 
𝒢
на вершины, участвующие в вычислении градиента
Require:
grad_table
, структура данных, отображающая вершины на их градиенты
if
V
находится в 
grad_table
then
Return
grad_table
[
V
]
end if
i

1
for
C
in 
get_consumers
(
V

𝒢


do
op 

get_operation
(
C
)
D

build_grad
(
C

𝒢

𝒢


grad_table
)
G
(
i
)

op.bprop
(
get_inputs
(
C

𝒢

), 
V

D
)


190 

 
Глубокие сети прямого распространения 
i

i
+ 1
end for
G

Σ
i
G
(
i
)
grad_table
[
V
] = 
G
Вставить 
G
и участвовавшие в его создании операции в 
𝒢
Return
G
В разделе 6.5.2 мы объяснили, что алгоритм обратного распространения был раз-
работан, чтобы избежать многократного вычисления одного и того же выражения при 
дифференцировании сложной функции. Из-за таких повторов время выполнения 
наивного алгоритма могло расти экспоненциально. Теперь, описав алгоритм обратно-
го распространения, мы можем оценить его вычислительную сложность. Если пред-
положить, что стоимость вычисления всех операций приблизительно одинакова, то 
вычислительную сложность можно проанализировать в терминах количества выпол-
ненных операций. Следует помнить, что под операцией мы понимаем базовую едини-
цу графа вычислений, в действительности она может состоять из нескольких арифме-
тических операций (например, умножение матриц может считаться одной операцией 
в графе). Вычисление градиента в графе с 
n
вершинами никогда не приводит к выпол-
нению или сохранению результатов более 
O
(
n
2
). Здесь мы подсчитываем операции 
в графе вычислений, а не отдельные аппаратные операции, поэтому важно понимать, 
что время выполнения разных операций может значительно различаться. Например, 
умножение двух матриц, содержащих миллионы элементов, может считаться одной 
операцией в графе. Легко видеть, что для вычисления градиента требуется не более 
O
(
n
2
) операций, потому что на этапе прямого распространения в худшем случае будут 
обсчитаны все 
n
вершин исходного графа (в зависимости от того, какие значения мы 
хотим вычислить, может потребоваться обойти весь граф). Алгоритм обратного рас-
пространения добавляет по одному произведению якобиана на вектор, выражаемому 
через 
O
(1) вершин, на каждое ребро исходного графа. Поскольку граф вычислений – 
это ориентированный ациклический граф, число ребер в нем не более 
O
(
n
2
). Для ти-
пичных графов, встречающихся на практике, ситуация даже лучше. В большинстве 
нейронных сетей функции стоимости имеют в основном цепную структуру, так что 
сложность обратного распространения равна 
O
(
n
). Это намного лучше, чем наивный 
подход, при котором число обрабатываемых вершин иногда растет экспоненциально. 
Откуда возникает экспоненциальный рост, можно понять, раскрыв и переписав пра-
вило дифференцирования сложной функции (6.49) без рекурсии:
(6.55)
Поскольку количество путей из вершины 
j
в вершину 
n
может экспоненциально 
зависеть от длины пути, то число слагаемых в этой сумме, равное числу таких путей, 
может расти экспоненциально с увеличением глубины графа прямого распростра-
нения. Такая высокая сложность связана с многократным вычислением 

u
(
i
)
/

u
(
j
)

Чтобы избежать повторных вычислений, мы можем рассматривать обратное распро-
странение как алгоритм заполнения таблицы, в которой хранятся промежуточные 
результаты 

u
(
n
)
/

u
(
i
)
. Каждой вершине графа соответствует элемент таблицы, в ко-
тором хранится градиент для этой вершины. Заполняя таблицу в определенном по-
рядке, алгоритм обратного распространения избегает повторного вычисления мно-


Обратное распространение и другие алгоритмы дифференцирования 


Download 14,23 Mb.

Do'stlaringiz bilan baham:
1   ...   234   235   236   237   238   239   240   241   ...   779




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish