101
правка
Изменения
→Архитектура
== Архитектура ==
В алгоритмах ''PixelRNN'' и ''PixelCNN'' используются несколько архитектурных трюков, позволяющих производить вычисления быстро и надежно.
[[File:0_UbiGmm8uyZ-GKhv5_.jpg|350px|thumb|Рисунок 4. MaskA и MaskB.]]
=== Маскированные сверточные слои ===
'''''MaskA''''' используется для того, чтобы учитывать контекст предыдущих каналов, но при этом не учитывать контекст от предыдущих значений текущего канала и следующих каналов.
'''''MaskB''''' выполняет ту же функцию, что и '''''MaskA''''', но при этом учитывает контекст от предыдущих значений текущего канала.
=== Уменьшение размерности ===
[[File:pixel-4.png|350px320px|thumb|Рисунок 5. Блоки уменьшения размерности. Слева {{---}} блок для ''PixelCNN'', справа {{---}} ''PixelRNN''. ]]
На вход в любой их указанных выше алгоритмов (''PixelCNN'', ''RowLSTM'', ''Diagonal BiLSTM'') подается большое количество объектов, поэтому внутри каждого из них сначала происходит уменьшение их количества в два раза, а затем обратное увеличение до исходного размера. Структура алгоритма с учетом уменьшения размерности показана на рисунке 4.
[[File:pixel-5.png|320px|thumb|Рисунок 6. Простой LSTM-блок с тремя вентилями: входным, выходным и забывания.]]
=== Внутреннее устройство LSTM ===
<tex>o_i</tex> {{---}} вектор выходного вентиля, кандидат на выход,
<tex>g_i</tex> {{---}} вектор вентиля данных,