Почему добавление слоя отсева улучшает производительность глубокого / машинного обучения, учитывая, что выпадение подавляет некоторые нейроны из модели?

13

Если удаление некоторых нейронов приводит к более эффективной модели, почему бы не использовать более простую нейронную сеть с меньшим количеством слоев и меньшим количеством нейронов? Зачем строить большую, более сложную модель в начале, а потом подавлять ее?

user781486
источник

Ответы:

31

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

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

Я бы порекомендовал прочитать раздел Dropout в книге глубокого обучения Майкла Нильсена (бесплатно и онлайн), которая дает хорошую интуицию, а также содержит очень полезные схемы / объяснения. Он объясняет это:

Отсев - это принципиально иной метод регуляризации. В отличие от регуляризации L1 и L2, отсева не зависит от изменения функции стоимости. Вместо этого мы изменяем саму сеть.

Вот хорошая сводная статья . Из этой статьи:

Некоторые наблюдения:

  • Выпадение заставляет нейронную сеть изучать более надежные функции, которые полезны в сочетании со многими различными случайными подмножествами других нейронов.
  • Выпадение примерно удваивает количество итераций, необходимых для сходимости. Однако время тренировки для каждой эпохи меньше.
  • С H скрытыми единицами, каждую из которых можно отбросить, мы имеем 2 ^ H возможных моделей. На этапе тестирования рассматривается вся сеть, и каждая активация уменьшается на коэффициент p.

пример

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

n1k31t4
источник
Как определить лучшее значение отсева для классификации нескольких классов? и как определить лучшее количество выпадающего слоя?
N.IT
2
@ N.IT. Насколько мне известно, не существует четко определенного метода, который найдет наилучший уровень выпадения или количество слоев, кроме того, что он пробует много комбинаций. Как и в случае с другими методами регуляризации и исследования архитектуры, вы, вероятно, получите лучшие результаты, обучив модель и сравнив кривые потерь при обучении / проверке. Проверьте это объяснение вокруг темы .
n1k31t4
Отличный ответ. Чтобы быть более конкретным в отношении аналогии с вашей кухней, Dropout используется только во время обучения, а не во время вывода. Следовательно, сложная модель не используется частично.
Вайбхав Гарг
Я набрал этот ответ с закрытыми глазами. дарит больше тренировок. News Moew Seopour.
VHanded
3

Выпадение фактически не удаляет нейроны, просто эти конкретные нейроны не играют никакой роли (не активируются) для данного пакета данных.

Пример. Предположим, что есть дорога из 8 полос движения. Когда прибывают грузовики, они проходят по полосам 1,2,4,6,7, когда приходят автомобили, они проходят по полосам 2,3,4,7,8, а когда появляются велосипеды. , они проходят по полосам 1,2,5,8. Таким образом, независимо от какого-либо транспортного средства, все полосы есть, но используются только некоторые из них.

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

Зачем использовать отсев?

Как дано в книге глубокого обучения Яна Гудфеллоу,

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

Он также говорит:

Одним из преимуществ отсева является то, что это очень дешево в вычислительном отношении.

Другое существенное преимущество отсева состоит в том, что он не ограничивает тип модели или процедуру обучения, которая может быть использована. Он хорошо работает практически с любой моделью, которая использует распределенное представление и может быть обучена с использованием стохастического градиентного спуска. Это включает в себя нейронные сети с прямой связью, вероятностные модели, такие как ограниченные машины Больцмана (Srivastava et al., 2014), и рекуррентные нейронные сети (Bayer and Osendorfer, 2014; Pascanu et al., 2014a).

Эта книга говорит

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

Анкит Сет
источник
Я отредактировал вопрос, чтобы использовать слово подавлять, а не удалять. Вопрос остается. Зачем строить так много переулков, когда в конце концов используются только некоторые из них?
user781486
@ user781486 Для некоторых из них это означает, что некоторые из них для каждой партии данных, но все они будут использоваться, если рассматривать целые данные. Как и в моем примере, все полосы 1-8 используются, если вы берете комбинированный набор номеров полос для каждого транспортного средства.
Анкит Сет,
3

Другой способ взглянуть на то, что делает выпадение, состоит в том, что он подобен предварительному сглаживанию для коэффициента для ковариаты (то есть некоторого сложного члена взаимодействия исходных ковариат с некоторыми сложными функциональными преобразованиями) в байесовской модели. Это интерпретация, предложенная Яриным Галом в его диссертации (см. Его список публикаций ).

Вот краткий аргумент о том, почему это так:

  • В тех пакетах, где нейрон исключен, коэффициент для признака / ковариата (построенный путем соединения в нейронной сети, идущей в нейрон) равен нулю (пик в нуле).
  • В тех партиях, где присутствует нейрон, коэффициент неограничен (неправильный плоский априор = сляб).
  • Усредненный по всем партиям, вы получите колючку до плиты.

Зачем нам нужна пластинка с шипами? Это вызывает усреднение байесовской модели между нейтральной сетью без этого нейрона и одной с ней. Другими словами, это позволяет нам выразить неопределенность относительно того, действительно ли нейтральная сеть должна иметь свою полную возможную сложность, и соответствующим образом учитывает эту неопределенность в прогнозы. Это решает основную проблему способности нейтральных сетей приспосабливаться к данным (хотя, конечно, это не единственный возможный способ достичь этого).

Бьерн
источник
Хорошая точка зрения. Обновлю ответ.
Бьорн,
2

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

Пранав Вемпати
источник
0

Выпуск помогает улучшить производительность модели машинного обучения по следующим причинам:

  • Упрощение работы сети: следовательно, упрощение сети, предотвращение перестройки.
  • Лучше, чем использование одной простой сети: это лучше, чем вручную перепроектировать более простую сеть, потому что после того, как вы спроектировали конкретную архитектуру, вы не сможете изменить ее, пока не закончится весь процесс обучения, т. Е. Для всех эпох сетевая архитектура является фиксированной. Но в выпадении сеть по-разному упрощается в каждую эпоху. Скажем, за 1000 эпох вы на самом деле пробуете 1000 типов более простых вариантов сети.
  • Учиться многим путям: вход и выход сети не меняются, меняется только их соответствие. Так что просто представьте, что сеть изучает одно и то же разными способами. Так что, как и эта сеть, для нас, людей, всякий раз, когда мы по-разному думаем об одной и той же проблеме, мы автоматически учимся обобщать ее, и наши общие знания и понимание также улучшаются, и подобное происходит с сетью. Так как в процессе отсева в каждой эпохе случайно теряются некоторые веса (соединение от нейрона к другому нейрону следующего уровня), следовательно, мы заставляем сеть учиться, используя существующие соединения, которые все еще доступны, и, таким образом, сеть учится как анализировать одну и ту же проблему с разных точек зрения.
hafiz031
источник