Почему выпадение на сверточных слоях принципиально отличается от выпадения на полносвязных слоях.

Dropout обычно используется для регуляризации глубоких нейронных сетей; однако применение исключения к полносвязным слоям и применение исключения к сверточным слоям - принципиально разные операции. Хотя в сообществе глубокого обучения известно, что отсев имеет ограниченные преимущества применительно к сверточным слоям, я хотел показать простой математический пример того, почему они разные. Для этого я определю, как выпадение работает на полносвязных слоях, определю, как выпадение работает на сверточных слоях, и сопоставлю эти две операции.

Выпадение на полностью связанных слоях

n -уровневая полносвязная нейронная сеть (без учета смещения) может быть определена как:

где ϕᵢ - нелинейность (например, ReLU), Wᵢ для i ∈ {1,…, n } - матрицы весов, а x - входные данные.

Рассмотрим единственную полносвязную нейронную сеть со скрытым слоем f (x): ℝ⁹ → ℝ⁹ без нелинейности или смещения. Мы можем выразить сеть как:

Ниже приведена схема нашей нейронной сети со скрытым слоем.

Давайте добавим отсев в эту сеть. Пусть r ∈ {0,1} ⁹ - вектор независимых и одинаково распределенных (iid) случайных величин Бернулли. Отсев в нашей ранее определенной нейронной сети может быть выражен как:

где Vx был свернут до h для места.

Чтобы увидеть, как это эквивалентно отсеву, рассмотрим конкретный случай, когда r = (1, 0, 0,…, 0) ᵀ. Результирующая сеть:

о чем и говорилось в оригинальной Отрывной статье.

Мы видим, что выпадение в полносвязных нейронных сетях эквивалентно обнулению столбца из весовой матрицы, связанной с полносвязным слоем. Эта операция соответствует «отбрасыванию» нейрона в нейронную сеть. Удаление нейрона таким способом разумно, потому что - качественно - это способствует избыточности в матрице весов, то есть подсети могут надежно выполнять желаемую операцию.

Пропадание в сверточных нейронных сетях

n -уровневая сверточная нейронная сеть (без учета смещения) может быть определена как:

где ∗ - оператор свертки, ϕᵢ - нелинейность, Kᵢ для i ∈ {1,…, n } - сверточные ядра, а x - входные данные.

Чтобы сориентироваться, давайте сначала рассмотрим сверточную операцию. Мы можем переписать дискретную свертку как умножение матриц. Давайте рассмотрим свертку x ∈ ℝ³ ˣ ³ с K ∈ ℝ² ˣ ². Тогда Kx определяется как:

что до операции изменения формы эквивалентно:

Теперь, когда мы установили, что свертка может применяться как умножение матриц, давайте сформулируем сверточную сеть примерно так же, как мы сформулировали полносвязную сеть.

Пусть g (x): ℝ³ ˣ ³ → ℝ³ ˣ ³ будет полностью сверточной нейронной сетью без нелинейности или смещения. В духе нашей предыдущей сети мы определяем g как:

где u, v ∈ ℝ³ ˣ ³ - сверточные ядра, а x ∈ ℝ³ ˣ ³ - изображение.

Для простоты и поскольку это не влияет на наш анализ, пусть h = v x . Обратите внимание, что для того, чтобы преобразование g было действительным, нам нужно будет использовать заполнение нулями на каждом сверточном слое. Это может быть включено в матричную форму сверточного ядра, и поэтому наша сеть может быть записана как:

Доказательство этого предоставляется читателю в качестве упражнения.

Как и раньше в нашей полностью подключенной сети, давайте добавим отсев в нашу сверточную сеть.

Пусть U определяется как матрица в предыдущем уравнении (т. Е. Развернутое сверточное ядро ​​с нулевым заполнением) и пусть r ∈ {0 , 1} iid случайные величины Бернулли, как и раньше. Тогда у нас есть:

Чтобы показать, что это применение выпадения не эквивалентно полностью связанному случаю, достаточно сосредоточиться на верхнем левом блоке 3 × 3 ранее показанной матрицы:

Обратите внимание, что веса u, u, u находятся по крайней мере дважды в трех столбцах. в этом вырезе. Таким образом, если r ₁ = 0 и r ₂ = 1 или r ₁ = 1 и r ₂ = 0, мы по-прежнему будем обновлять веса u ₅ и u ₄ (независимо от значения r ₃!).

Upshot

В нашем анализе отсева в полносвязных сетях мы показали, что операцию отсева можно понимать как обнуление столбцов весовой матрицы в нейронной сети. Эта операция соответствовала тому, чтобы нейрон не тренировался или не «выпадал из строя».

В приведенном выше анализе мы показали, что отключение сверточных слоев не дает тот же эффект. Это демонстрируется тем фактом, что обнуление столбца матрицы весов, соответствующего сверточному ядру, по-прежнему позволяет обучать веса в этом столбце.

Поскольку выпадение обычно используется для того, чтобы не обучать подмножества нейронов случайным образом во время обучения, а выпадение на сверточных слоях не выполняет эту операцию, название вводит в заблуждение и - поскольку эффект не является очевидным интерпретируемым - странным.

Я не говорю, что выпадение сверточных слоев бесполезно. В этих статьях авторы получают лучшие результаты при использовании dropout на сверточных слоях. Однако эффект отсева на сверточных слоях, по-видимому, сводится к умножению шума Бернулли на карты характеристик сети. Я считаю, что выбор такого способа введения шума в систему кажется странным без более основополагающей теории; теория, которая присутствует в случае полносвязных слоев.

Так что, если вы попытаетесь добавить выпадение после сверточного слоя и получите плохие результаты, не расстраивайтесь! Похоже, нет веских причин, по которым он должен обеспечивать хорошие результаты.

Дополнительное примечание

Исключение, применяемое к полносвязным нейронным сетям с одним скрытым слоем, было показано как соответствующее интерпретируемому регуляризатору, который выравнивает весовые матрицы. Однако при выводе этих результатов широко используется тот факт, что веса каждого элемента матрицы не зависят друг от друга; факт, который не выполняется в сверточных слоях. Я не сразу понимаю, как согласовать этот факт со сверточными слоями, поэтому не понимаю, как отсев может обеспечить аналогичную интерпретируемую регуляризацию.