Форма шума
Чтобы понять SpatialDropout1D
, вы должны привыкнуть к понятию формы шума .При простом ванильном выпадении каждый элемент сохраняется или сбрасывается независимоНапример, если тензор [2, 2, 2]
, каждый из 8 элементов может быть обнулен в зависимости от случайного подбрасывания монеты (с определенной вероятностью "головок");всего будет 8 независимых подбрасываний монет, и любое количество значений может стать нулевым, от 0
до 8
.
Иногда возникает необходимость сделать что-то большее.Например, может потребоваться сбросить весь срез вдоль оси 0
.noise_shape
в этом случае - [1, 2, 2]
, и выпадение включает только 4 независимых случайных броска монеты.Первый компонент будет либо храниться вместе, либо удаляться вместе.Число обнуленных элементов может быть 0
, 2
, 4
, 6
или 8
.Это не может быть 1
или 5
.
Другой способ увидеть это состоит в том, чтобы представить, что входной тензор на самом деле [2, 2]
, но каждое значение имеет двойную точность (или многократную точность).Вместо того, чтобы сбрасывать байты в середине, слой сбрасывает полное многобайтовое значение.
Почему это полезно?
Пример выше приведен только для иллюстрации и не является обычным в реальной жизни.Приложения.Более реалистичный пример: shape(x) = [k, l, m, n]
и noise_shape = [k, 1, 1, n]
.В этом случае каждый пакет и компонент канала будут храниться независимо, но каждая строка и столбец будут сохраняться или не храниться вместе.Другими словами, целом [l, m]
карта объектов будет либо сохранена, либо отброшена.
Вы можете сделать это, чтобы учесть корреляцию соседних пикселей, особеннов ранних сверточных слоях.По сути, вы хотите предотвратить совместную адаптацию пикселей с соседями по картам объектов и заставить их учиться, как если бы не было других карт объектов.Это именно то, что делает SpatialDropout2D
: он продвигает независимость между картами объектов.
SpatialDropout1D
очень похож: учитывая shape(x) = [k, l, m]
, он использует noise_shape = [k, 1, m]
и отбрасывает все карты одномерных объектов.
Ссылка: Эффективная локализация объектов с использованием сверточных сетей Джонатан Томпсон (Alon.
)