Гиперпараметры свёртки для последовательностей
Одномерная свёртка на последовательностях задаётся параметрами (настраиваемыми градиентной оптимизацией) и гиперпараметрами (задаваемыми пользователем).
Параметрами свёртки являются элементы вектора ядра свёртки и смещение .
Гиперпараметром свёртки является размер ядра . Обычно он нечётный, но может браться и чётн ым. Далее рассмотрим другие гиперпараметры свёртки.
Паддинг
Свёртка приводит к уменьшению длины выходной последовательности, поскольку нельзя прижать ядро свёртки к самым краям. Если требуется на выходе получить такую же длину, как и на входе (например, для реализации ResNet блоков), то используется паддинг (padding) - предварительное расширение входной последовательности перед применением свёртки. Существуют разные виды паддинга - valid, zero, same и mirror. Логика их работы показана на рисунке:
Шаг свёртки
Иногда необходимо уменьшить число выходных элементов свёртки. Обычно это делается, чтобы уменьшить число связей (и, соответственно, параметров модели) на последующих слоях, чтобы сеть меньше переобучалась.
Для этого используется больший шаг свёртки (stride). Стандартная свёртка применяет ядро к определённой позиции, чтобы получить преактивацию (итоговая активация - действие функции нелинейности, такой как ReLU, на преактивацию). Следующая преактивация получается прикладыванием ядра свёртки к соседней позиции, что отвечает единичному шагу. Но для получения следующей преакивации ядро свёртки можно сдвигать не на одну позицию, а сразу на несколько. Величина сдвига и называется шагом свёртки.
Например, если сдвигать ядро свёртки для получения каждой следующей преактивации на 2, то длина выходного ряда будет примерно в 2 раза меньше, как показано на рисунках:
Сдвиг свёртки
Если обрабатываемая последовательность слишком длинная, то свёртки теряют эффективность, поскольку действуют локально и своей областью видимости захватывают лишь малый её фрагмент. Область видимости свёртки (receptive field) можно увеличить, если при перемножении элементов последовательности на элементы ядра свёртки идти не со сдвигом 1, а с большим сдвигом (dilation), как показано на рисунке:
На рисунке показан процесс извлечения лишь одного элемента выходной последовательности. Вся выходная последовательность извлекается аналогично обычной свёртке, когда свертка применяется многократно ко всем валидным позициям входной последовательности.
Пусть
-
- длина входного ряда,
-
- размер ядра,
-
- расширение (padding) для увеличения размера выхода,
-
- шаг свёртки (stride); - сдвиг свёртки (dilation).
Какой будет размер выходной последовательности при данных параметрах?